w3ti.OpenBaseNET.SQLServer.Template 10.3.2

There is a newer version of this package available.
See the version list below for details.
dotnet new install w3ti.OpenBaseNET.SQLServer.Template@10.3.2
                    
This package contains a .NET Template Package you can call from the shell/command line.

OpenBaseNET SQLServer Template

GitHub repo size NuGet Version GitHub language count License: MIT

.Net SQL Server

Template .NET 10 para criação rápida de Web APIs robustas com Arquitetura Limpa, DDD, CQRS e SQL Server.

Iniciar um novo projeto exige muita configuração repetitiva: estruturar as camadas, configurar o acesso a dados, definir pipelines de validação, conectar o logger, etc. Este template elimina esse trabalho inicial. Com um único comando, você obtém uma solução .NET completa e pronta para produção — seu foco fica nas regras de negócio.


Arquitetura

O template segue os princípios de Clean Architecture com Domain-Driven Design (DDD), organizando as responsabilidades em camadas independentes e testáveis.

MinhaApi/
├── src/
│   ├── MinhaApi.Domain          # Entidades, interfaces, serviços de domínio
│   ├── MinhaApi.Application     # Casos de uso, comandos, queries, DTOs
│   ├── MinhaApi.Infrastructure  # EF Core, Dapper, repositórios, UoW
│   └── MinhaApi.API             # Controllers, middlewares, Program.cs
└── tests/
    └── MinhaApi.Tests.Unit      # Testes unitários
Camada Responsabilidade
Domain Entidades de negócio, interfaces dos repositórios e serviços de domínio. Não depende de nenhuma outra camada.
Application Casos de uso via CQRS (commands e queries). Orquestra o domínio sem conhecer detalhes de infraestrutura.
Infrastructure Implementações concretas: EF Core, Dapper, Unit of Work, resiliência com Polly, Serilog.
API Entrada e saída da aplicação: Controllers, tratamento global de exceções, Swagger.

Funcionalidades

Acesso a Dados

  • Entity Framework Core 10 com extensões para retry automático
  • Dapper integrado para queries SQL de alta performance
  • Repository Pattern genérico com suporte a paginação, filtros e includes
  • Unit of Work para controle transacional com suporte a EF Core + Dapper na mesma transação

CQRS e Mediator

  • MediatR 14 para separação de commands e queries
  • Pipeline Behaviors pré-configurados:
    • ValidationBehaviour — executa validações FluentValidation antes de qualquer handler
    • LoggingBehaviour — registro automático de cada request processada

Validação

  • FluentValidation integrado ao pipeline do MediatR — erros retornam automaticamente como 422 Unprocessable Entity

Mapeamento

  • AutoMapper configurado via injeção de dependência, com suporte a null em destinos e coleções

Resiliência

  • Polly com pipeline de retry exponencial com jitter (3 tentativas, delay inicial de 2s) para:
    • Operações SQL Server (via Dapper e EF Core)
    • Chamadas HTTP
    • Azure Storage

Observabilidade

  • Serilog com saída estruturada em JSON (formato CompactJsonFormatter)
  • Enriquecimento automático com nome da máquina e nome do ambiente
  • Configuração por appsettings.json
  • Log automático de operações de repositório (add, update, remove, query, execute)

Tratamento de Exceções

  • GlobalExceptionHandlerMiddleware com resposta no padrão RFC 9457 (ProblemDetails):
    • ValidationException422 Unprocessable Entity
    • KeyNotFoundException404 Not Found
    • ArgumentException400 Bad Request
    • Demais exceções → 500 Internal Server Error

API e Documentação

  • Swagger / OpenAPI configurado e disponível em ambiente de desenvolvimento
  • HTTPS e autenticação pré-configurados no pipeline

Testes

  • Projeto de testes unitários com xUnit, Moq e Coverlet

Tecnologias

Pacote Versão
.NET 10
Entity Framework Core 10
MediatR 14
FluentValidation
AutoMapper 16
Dapper
Polly
Serilog
xUnit 2.9
Moq 4.20

Como Usar

Pré-requisitos

1. Instalar o template

dotnet new install w3ti.OpenBaseNET.SQLServer.Template

2. Criar um novo projeto

mkdir MinhaApi
cd MinhaApi
dotnet new openbasenet-sql -n MinhaApi

3. Configurar a connection string

Edite src/MinhaApi.Presentation.Api/appsettings.json:

{
  "ConnectionStrings": {
    "OpenBaseSQLServer": "Server=.;Database=MinhaApi;Trusted_Connection=True;TrustServerCertificate=True"
  }
}

4. Executar

dotnet run --project src/MinhaApi.Presentation.Api/MinhaApi.Presentation.Api.csproj

A API estará disponível com Swagger em https://localhost:{porta}/swagger.


Contato e Feedback

Rodrigo S. Brito — rodrigo@w3ti.com.br

Feedbacks e contribuições são sempre bem-vindos.

  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.3.5 149 6/12/2026
10.3.4 349 5/13/2026
10.3.3 183 5/12/2026
10.3.2 171 5/11/2026
10.3.1 204 5/10/2026
10.3.0 172 5/10/2026
10.2.4 194 5/3/2026
10.2.3 205 4/25/2026
10.2.2 198 4/24/2026
10.2.1 200 4/16/2026
10.2.0 186 4/16/2026
10.1.22 193 4/15/2026
10.1.21 206 4/8/2026
10.1.20 211 4/3/2026
10.1.19 215 3/18/2026
10.1.18 230 3/14/2026
10.1.16 220 3/10/2026
10.1.15 215 3/10/2026
10.1.14 226 3/4/2026
10.1.13 257 2/26/2026
Loading failed

- Atualização de pacotes nuget