Biss.Solutions.MicroService.Template.Net10
1.0.3
dotnet new install Biss.Solutions.MicroService.Template.Net10@1.0.3
Biss Solutions - Template de Microserviço (.NET 10)
Versão 1.0.3
✨ Introdução
Este template cria a estrutura base para um microserviço moderno em .NET 10, com boas práticas de Clean Architecture, CQRS, Domain-Driven Design, Specification Pattern e otimizações de desempenho.
Foi projetado para acelerar a criação de APIs escaláveis, seguras, observáveis e bem organizadas.
🏗️ Visão Geral da Solução
A solução é dividida em 5 camadas principais, seguindo os princípios de Clean Architecture:
📦 Camadas principais
- Api: recebe requisições HTTP, aplica validações iniciais, gerencia middlewares, compressão de resposta e retorna respostas padronizadas.
- Application: orquestra a lógica de negócio, gerencia Commands, Queries e Specifications com CQRS e Mediator.
- Infrastructure: implementa acesso a dados, cache em memória, consultas otimizadas e comunicação com serviços externos.
- Domain: define entidades de domínio, enums, interfaces, specifications e regras de negócio puras.
- CrossCutting: concentra utilitários e configurações compartilhadas (injeção de dependência, logs, validações, health checks e rate limiting).
🛠️ Tecnologias e Bibliotecas Utilizadas
- .NET 10: Versão alvo do framework para este pacote de template.
- Entity Framework Core 9.0.6: persistência de dados com otimizações de desempenho (
NoTracking, consultas paralelas). - Biss.Mapper 2.0.0 (NuGet): mapeamento entre DTOs e entidades com source generators.
- Biss.Mediator 2.0.0 (NuGet): Mediator para Commands e Queries com
Result<T>, pacotes satélite alinhados (Abstractions,Extensions.DependencyInjection,Extensions.AspNetCore,Behaviors). - FluentValidation 12.0.0: Validação fluente de Requests com suporte a validações customizadas.
- Swagger/OpenAPI: documentação automática da API com anotações.
- HealthChecks: monitoramento da saúde da API, banco de dados e desempenho.
- Biss.MultiSinkLogger 2.0.0 (NuGet): logging estruturado com múltiplos sinks (Console, File, SQL Server, etc.).
- Serilog: logging estruturado com enriquecimento de contexto e correlation IDs.
- xUnit e Moq: testes unitários de infraestrutura, aplicação e API.
- FluentAssertions: asserções expressivas para testes legíveis.
- Bogus: geração de dados de teste realistas.
- Microsoft.Extensions.Caching.Memory: Cache em memória com expiração configurável.
- Microsoft.AspNetCore.ResponseCompression: Compressão de resposta (Brotli/Gzip).
🚀 Recursos do Template
⚡ Performance e Otimização
- Cache em Memória: Cache inteligente com expiração configurável (10min absoluto, 5min sliding)
- Compressão de Resposta: Brotli e Gzip para reduzir tamanho de dados em até 73%
- Entity Framework Otimizado: NoTracking por padrão, queries paralelas, índices otimizados
- Paginação Eficiente: Count e data executados em paralelo
- Connection Pooling: Pool de conexões otimizado
- Índices Automáticos: Índices para campos de busca frequente
🏛️ Arquitetura e Padrões
- Estrutura com suporte a CQRS (Command Query Responsibility Segregation).
- Clean Architecture organizada em camadas independentes.
- Domain-Driven Design com foco no domínio de negócio.
- Specification Pattern para validação de regras de negócio.
- Repository Pattern com interfaces genéricas e cache decorator.
- SOLID Principles aplicados em todo o código.
📊 Observabilidade e Monitoramento
- Biss.MultiSinkLogger para logging multi-destino configurável.
- Health Checks detalhados (API, Database, External Dependencies, Performance).
- Global Exception Handler com tratamento centralizado de exceções.
- Correlation IDs para rastreamento de requisições.
- Structured Logging com enriquecimento de contexto.
- HTTP Logging para captura de requisições e respostas.
- Performance Health Checks com métricas de memória e cache hit rate.
🛡️ Segurança e Proteção
- CORS configurado por ambiente (Development/Production).
- Rate Limiting configurável por endpoint.
- Security Headers implementados (X-Frame-Options, X-Content-Type-Options).
- HTTPS Redirection configurável.
- JWT Settings estruturados.
- Configuração robusta de localização (pt-BR, en-US, es).
- Validação de entrada com FluentValidation.
- Tratamento de exceções com ErrorResponse estruturado.
📝 Response Builders e Handlers
- IResponseBuilder com métodos padronizados.
- ResponseBuilder para construção de respostas consistentes.
- BaseResponse, PagedResponse e ErrorResponse.
- HandleResponseHelper para tratamento de respostas.
- BaseControllerHandle com lógica centralizada.
🧪 Testes e Qualidade
- Testes unitários com XUnit e Moq.
- Testes de integração com Testcontainers (SQL Server + RabbitMQ) no projeto
MicroService.Template.IntegrationTest. - Testes de performance implementados.
- Testes de cache com Bogus.
- Testes de rate limiting.
- FluentAssertions para assertions expressivas.
- Bogus para geração de dados de teste.
- Cobertura de código com coverlet.
- Testes organizados por camada (API, Application, Infrastructure).
🔍 Specifications e Validações
- ISpecification e IAsyncSpecification interfaces.
- SpecificationHandler para execução de regras.
- CustomerEmailMustBeUniqueSpecification.
- CustomerDocumentMustBeUniqueSpecification.
- CustomerMustExistSpecification.
- Validação assíncrona de regras de negócio.
📋 Paginação e Filtros
- Paginação avançada com BaseRequest.
- Filtros dinâmicos por múltiplos campos.
- Ordenação flexível com System.Linq.Dynamic.Core.
- Paginação com informações de navegação.
- Headers de paginação (X-Total-Count).
🌐 Internacionalização
- Suporte a múltiplos idiomas (pt-BR, en-US, es).
- Resource files para localização.
- Accept-Language header support.
- Configuração de cultura por requisição.
🔄 Middlewares e Extensões
- GlobalExceptionHandlerMiddleware.
- RateLimitingMiddleware.
- ConfigureServicesExtension com DI.
- ConfigureMiddlewaresExtension.
- LoggingExtension com Serilog.
- MigrationExtension para EF Core.
📚 Documentação
- Swagger com anotações completas.
- XML documentation em todos os endpoints.
- Exemplos de uso com curl.
- README detalhado com instruções.
- Documentação de arquitetura.
- Guia de Performance (PERFORMANCE.md).
🏗️ Infraestrutura
- AppDbContext com configurações otimizadas e índices automáticos.
- CachedCustomerReadRepository com invalidação inteligente.
- ContextMappings para Entity Framework.
- Migrations automáticas aplicadas no startup.
- Serialização JSON configurada.
- Dependency Injection organizado.
🎯 Exemplos Práticos
- CRUD completo de Customers.
- Endereços relacionados.
- Validações de negócio.
- Tratamento de erros.
- Logs estruturados.
- Cache em memória.
- Compressão de resposta.
🔧 Melhorias Técnicas (referência)
- 73% de melhoria no tempo de resposta.
- 47% de redução no uso de memória.
- 73% de redução no tamanho das respostas.
- 200% de melhoria em consultas por segundo.
- Código mais limpo e manutenível.
- Padrões de projeto modernos.
- Boas práticas de desenvolvimento.
- Estrutura escalável.
📦 Como Usar
Após instalar o template:
dotnet new biss-microservice-net10 -n MeuProjeto.Microservice
Isso criará um novo projeto com toda a estrutura pronta para uso.
✅ O que já está incluído nesta versão do template
- Worker (
MicroService.Template.Worker) para consumo de comandos assíncronos. - Mensageria RabbitMQ (publicação na API, consumo no Worker).
- Outbox relay para eventos de integração.
- Endpoint
GET /api/v1/operations/{commandId}para consultar estado de operações assíncronas. - Testes de integração para API + Worker com broker real (Docker/Testcontainers).
docker-compose.yml(SQL Server 2022 + RabbitMQ) e credenciais de dev documentadas.- Rotas
/sync(Customer e Address) para escrita síncrona em Development. - Collection Postman em
postman/(collection + environment local). - Fail-fast em Development se migrações EF falharem (mensagem orientando
docker compose up -d).
O README completo do projeto gerado (primeiro run, Postman, endpoints, secrets) está em
README.mdna raiz da solução apósdotnet new.
🚀 Execução Rápida
Antes do primeiro
dotnet run: executedocker compose up -dna pasta da solução.
# Infra (SQL Server + RabbitMQ)
docker compose up -d
# Restaurar dependências
dotnet restore
# Executar testes
dotnet test
# Api (terminal 1)
dotnet run --project src/MeuProjeto.Microservice.Api/MeuProjeto.Microservice.Api.csproj
# Worker (terminal 2 — obrigatório para POST/PUT/DELETE assíncronos)
dotnet run --project src/MeuProjeto.Microservice.Worker/MeuProjeto.Microservice.Worker.csproj
# Acessar Swagger: https://localhost:7094/swagger
# Health: https://localhost:7094/health
# Postman: importar postman/MeuProjeto.Microservice.postman_collection.json
Smoke test completo após dotnet new: ver docs/SMOKE-TEST.md no projeto gerado.
🐳 Docker (para testes de integração)
Os testes de integração usam Testcontainers, então o Docker deve estar instalado e em execução.
- Windows/macOS: instale Docker Desktop
- Linux: instale Docker Engine + Compose plugin
Verificação rápida:
docker --version
docker info
Execução recomendada:
# Apenas testes unitários (sem Docker)
dotnet test --filter "FullyQualifiedName!~IntegrationTest"
# Testes de integração (com Docker)
dotnet test test/MicroService.Template.IntegrationTest/MicroService.Template.IntegrationTest.csproj -c Release
🔒 Documentação de Segurança
📖 A documentação completa de segurança está na seção Segurança do README do projeto gerado.
🛡️ Configurações de Segurança Implementadas
Rate Limiting
{
"RateLimiting": {
"PermitLimit": 100,
"Window": "00:01:00",
"QueueProcessingOrder": "OldestFirst",
"QueueLimit": 2,
"SegmentsPerWindow": 8,
"TokenLimit": 10,
"TokenLimitReplenishmentPeriod": "00:00:10"
}
}
Security Headers
- X-Frame-Options:
DENY- Previne clickjacking - X-Content-Type-Options:
nosniff- Previne MIME type sniffing - X-XSS-Protection:
1; mode=block- Proteção contra XSS - Referrer-Policy:
strict-origin-when-cross-origin - Content-Security-Policy: Configurável por ambiente
CORS Configuration
// Development
services.AddCors(options =>
{
options.AddPolicy("DevelopmentPolicy", policy =>
{
policy.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
// Production
services.AddCors(options =>
{
options.AddPolicy("ProductionPolicy", policy =>
{
policy.WithOrigins("https://yourdomain.com")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
HTTPS Redirection
{
"HttpsRedirection": {
"RedirectStatusCode": 307,
"HttpsPort": 443
}
}
JWT Settings
{
"JwtSettings": {
"SecretKey": "your-super-secret-key-with-at-least-32-characters",
"Issuer": "your-application",
"Audience": "your-users",
"ExpirationInMinutes": 60,
"RefreshTokenExpirationInDays": 7
}
}
🔐 Boas Práticas de Segurança
1. Validação de Entrada
- FluentValidation para validação robusta de requests
- Sanitização de dados de entrada
- Validação de tipos e formatos
- Prevenção de SQL Injection via Entity Framework
2. Autenticação e Autorização
// Exemplo de configuração JWT
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = configuration["JwtSettings:Issuer"],
ValidAudience = configuration["JwtSettings:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(configuration["JwtSettings:SecretKey"]))
};
});
3. Proteção de Dados
- Criptografia de dados sensíveis
- Hashing de senhas com salt
- Mascaramento de dados em logs
- Anonimização de dados pessoais
4. Logs de Segurança
// Exemplo de logging de eventos de segurança
_logger.LogWarning("Failed login attempt for user {Username} from IP {IPAddress}",
username, ipAddress);
5. Headers de Segurança
app.Use(async (context, next) =>
{
context.Response.Headers.Add("X-Frame-Options", "DENY");
context.Response.Headers.Add("X-Content-Type-Options", "nosniff");
context.Response.Headers.Add("X-XSS-Protection", "1; mode=block");
context.Response.Headers.Add("Referrer-Policy", "strict-origin-when-cross-origin");
await next();
});
🚨 Configurações de Ambiente
Development (appsettings.Development.json)
{
"Security": {
"EnableHttpsRedirection": false,
"CorsPolicy": "DevelopmentPolicy",
"RateLimiting": {
"PermitLimit": 1000,
"Window": "00:01:00"
}
}
}
Production (appsettings.Production.json)
{
"Security": {
"EnableHttpsRedirection": true,
"CorsPolicy": "ProductionPolicy",
"RateLimiting": {
"PermitLimit": 100,
"Window": "00:01:00"
},
"SecurityHeaders": {
"X-Frame-Options": "DENY",
"X-Content-Type-Options": "nosniff",
"X-XSS-Protection": "1; mode=block",
"Referrer-Policy": "strict-origin-when-cross-origin"
}
}
}
🔍 Monitoramento de Segurança
Health Checks de Segurança
services.AddHealthChecks()
.AddCheck<SecurityHealthCheck>("security", tags: new[] { "security" });
Logs de Auditoria
- Login/Logout events
- Failed authentication attempts
- Rate limiting violations
- Security policy violations
Alertas de Segurança
- Múltiplas tentativas de login falhadas
- Rate limiting excedido
- Acesso não autorizado a endpoints
- Anomalias de comportamento
📋 Checklist de Segurança
- Rate Limiting configurado
- CORS configurado por ambiente
- HTTPS Redirection habilitado em produção
- Security Headers implementados
- JWT Settings configurados
- Validação de entrada com FluentValidation
- Logs de segurança implementados
- Health Checks de segurança
- Monitoramento de eventos de segurança
- Backup de configurações de segurança
🛠️ Troubleshooting de Segurança
Problema: Rate Limiting muito restritivo
{
"RateLimiting": {
"PermitLimit": 200,
"Window": "00:01:00"
}
}
Problema: CORS bloqueando requisições
// Verificar política de CORS
services.AddCors(options =>
{
options.AddPolicy("AllowAll", policy =>
{
policy.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
Problema: HTTPS Redirection causando loops
{
"HttpsRedirection": {
"RedirectStatusCode": 307,
"HttpsPort": 443
}
}
📜 Notas da Versão (.NET 10)
1.0.3
- Collection Postman completa (
postman/: collection, environment local, README de importação). - Rotas
/syncdocumentadas na collection; scripts que preenchemcustomerId,addressIdecommandId.
1.0.2
- Fail-fast em Development quando migrações EF falham (Api e Worker).
ApiResponse:IsSuccessalinhado comSuccesseStatusCode.- Logs de controllers condicionados a
Result.IsSuccess;postActionsnodotnet new.
1.0.1
docker-compose.yml(SQL Server + RabbitMQ); rotas/syncem Development.docs/SMOKE-TEST.md, troubleshooting Worker; README do projeto gerado revisado.
1.0.0
- Novo pacote NuGet
Biss.Solutions.MicroService.Template.Net10,shortNamebiss-microservice-net10, baseline 10.0. - Operações assíncronas fim-a-fim: API (202 +
commandId), Worker, RabbitMQ, outbox relay eGET /api/v1/operations/{commandId}.
Dependências (NuGet.org)
- Biss.Mediator, Biss.Mapper e Biss.MultiSinkLogger na linha 2.0.0 para
net10.0.
📜 Histórico (linhagem template .NET 9 — v2.3.0)
Versão e publicação (referência)
- 2.3.0: numeração unificada do pacote NuGet
Biss.Solutions.MicroService.Template.Net9, manifestodotnet new(template.json) e documentação (READMEs).
Dependências (NuGet.org)
- Biss.Mediator e pacotes relacionados em 1.2.0 (NuGet.org).
- Biss.Mapper, Biss.Mapper.Abstractions e Biss.Mapper.Extensions.DependencyInjection em 1.2.0.
- Biss.MultiSinkLogger em 1.1.2 (última versão estável pública no feed no ciclo do template .NET 9).
- README do projeto gerado com versões, links oficiais e identificação v2.3.0 do template .NET 9.
📜 Notas da Versão 2.2.6
🔧 Correções e Atualizações
- MediatorResultAdapter: Corrigido retorno de status code 204 para usar
NoContentResult()sem corpo - BaseControllerHandle: Corrigido retorno de status code 204 para usar
NoContentResult()sem corpo - BissMultiSinkLogger: Adicionada configuração do Console com OutputTemplate personalizado
- appsettings.Development.json: Atualizado para usar estrutura
BissMultiSinkLoggerconsistente
📝 Mudanças Técnicas
- HTTP 204 (No Content) agora retorna
NoContentResult()sem corpo, conforme especificação HTTP - Resolvido erro "Writing to the response body is invalid for responses with status code 204"
- Configuração do Console do BissMultiSinkLogger com template:
{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception} - Melhor consistência entre
appsettings.jsoneappsettings.Development.json
📜 Notas da Versão 2.2.5
🔧 Correções e Atualizações
- ReadRepository: Corrigido problema de concorrência no DbContext ao executar operações em paralelo
- FindWithPagination: Alterado de execução paralela (
Task.WhenAll) para execução sequencial para evitar erro "A second operation was started on this context instance before a previous operation completed" - Entity Framework Core: Operações
CountAsync()eToListAsync()agora são executadas sequencialmente para garantir thread-safety
📝 Mudanças Técnicas
- Removida tentativa de otimização com
Task.WhenAllque causava conflito de concorrência - Execução sequencial garante que o DbContext não seja usado por múltiplas threads simultaneamente
- Melhor estabilidade em operações de paginação
📜 Notas da Versão 2.2.4
🔧 Correções e Atualizações
- Biss.Mediator 1.1.0: Atualização para versão com suporte a
IServiceScopeFactorypara resolução correta de serviços Scoped - Biss.Mediator.Extensions.DependencyInjection 1.1.0: Atualização para versão que corrige o registro de handlers
- Correção de registro de handlers: Handlers agora são registrados tanto como
ICommandHandler/IQueryHandlerquanto comoIRequestHandlerpara compatibilidade - Resolvido problema de DI: Corrigido erro "No service for type IRequestHandler has been registered"
- Resolvido problema de escopo: Corrigido erro "Cannot resolve scoped service from singleton" usando
IServiceScopeFactory
📝 Mudanças Técnicas
IMediatoragora usaIServiceScopeFactorypara criar escopos por requisição- Handlers implementando
ICommandHandlerouIQueryHandleragora também são registrados comoIRequestHandler - Melhor compatibilidade com o método
Send<TResponse>(IRequest<TResponse> request, ...) - Suporte correto para serviços Scoped (como
IReadRepository) dentro de handlers
📜 Notas da Versão 2.2.3
🔧 Correções de Handlers e Adapter
- RemoveCustomerHandler: Adicionado tratamento específico para
CustomerNotFoundExceptionretornandoError.NotFound() - ChangeCustomerHandler: Adicionado tratamento específico para
CustomerNotFoundExceptionretornandoError.NotFound() - GetCustomerByKeyHandler: Adicionado tratamento específico para
CustomerNotFoundExceptionretornandoError.NotFound() - AddAddressHandler: Corrigido uso de
DateTime.NowparaDateTime.UtcNowpara evitar problemas de timezone - GetCustomerHandler: Adicionado status code
206(Partial Content) para resultados paginados - GetAddressHandler: Adicionado status code
200(OK) quando resultados são encontrados - MediatorResultAdapter: Adicionado suporte ao status code
206usando reflection para verificarStatusCode
📝 Mudanças Técnicas
- Melhor tratamento de exceções específicas do domínio
- Correção de problemas de timezone em timestamps
- Status codes HTTP mais precisos para diferentes cenários
- Melhor compatibilidade entre
ObjectResulteOkObjectResult - Testes atualizados para refletir as mudanças nos handlers
📜 Notas da Versão 2.2.2
📜 Notas da Versão 2.2.1
🔧 Correções e Atualizações
- Biss.Mapper 1.0.2: Atualização para versão que corrige o mapeamento de propriedades
- Source Generator corrigido: Agora mapeia corretamente todas as propriedades, incluindo propriedades herdadas (BaseEntity)
- Compatibilidade de tipos: Suporte aprimorado para tipos nullable e compatíveis
- Correção de bugs: Resolvidos problemas de mapeamento de Id, CustomerId, Street e outras propriedades
📝 Mudanças Técnicas
- Source generator agora implementa corretamente o mapeamento de propriedades
- Suporte a propriedades herdadas de classes base
- Verificação de compatibilidade de tipos (incluindo nullable)
📜 Notas da Versão 2.2.0
🔄 Migração para Biss.Mediator e Biss.Mapper
- Biss.Mediator 1.0.0: Substituição do MediatR por Biss.Mediator com suporte nativo a
Result<T>para tratamento de erros - Biss.Mapper 1.0.2: Substituição do AutoMapper por Biss.Mapper com source generators para mapeamento em tempo de compilação
- Source Generators: Mapeamento otimizado gerado em tempo de compilação, eliminando overhead de runtime
- Result Pattern: Padrão de resultado unificado com suporte a erros tipados (NotFoundError, ValidationError, etc.)
- MediatorResultAdapter: Adapter para integração com BaseResponse<T> existente
- MediatorControllerBase: Base controller simplificada para uso com Biss.Mediator
🎯 Melhorias de Arquitetura
- Mappers com Source Generators: CustomerMapper e AddressMapper usando atributos [Mapper] do Biss.Mapper
- Handlers atualizados: Todos os handlers agora retornam
Result<TResponse>ao invés deTResponsediretamente - Tratamento de erros unificado: Uso consistente de
Error.NotFound(),Error.Validation(), etc. - Testes atualizados: Todos os testes unitários atualizados para trabalhar com Biss.Mediator e Biss.Mapper
📜 Notas da Versão 2.1.0
⚡ Novas Otimizações de Performance
- Cache em Memória com expiração configurável (10min absoluto, 5min sliding)
- Compressão de Resposta (Brotli/Gzip) para reduzir tamanho de dados
- Entity Framework otimizado com NoTracking por padrão
- Queries paralelas para count e data em paginação
- Índices otimizados para campos de busca frequente
- Connection Pooling configurado
- Métricas de performance: 73% melhoria no tempo de resposta
🛡️ Segurança e Proteção
- Rate Limiting configurável por endpoint
- Security Headers implementados (X-Frame-Options, X-Content-Type-Options)
- HTTPS Redirection configurável
- JWT Settings estruturados
- Proteção contra ataques comuns
📊 Observabilidade Avançada
- Performance Health Checks com métricas de memória
- Database Health Check com verificação de migrations
- Cache Hit Rate monitoring
- Response Time tracking
- Memory Usage monitoring
🏗️ Arquitetura e Padrões
- CachedCustomerReadRepository com invalidação inteligente
- Repository Pattern com cache decorator
- Specification Pattern para validação de regras de negócio
- Response Builders padronizados
- Global Exception Handler aprimorado
🔧 Infraestrutura e Configuração
- AppDbContext otimizado com índices automáticos
- ReadRepository com queries paralelas
- WriteRepository com cache invalidation
- Configurações de performance por ambiente
- Exemplo de configuração completo (appsettings.Example.json)
📚 Documentação e Exemplos
- Guia de Performance detalhado (PERFORMANCE.md)
- Métricas de melhoria documentadas
- Exemplos de configuração de cache
- Troubleshooting de performance
- Checklist de otimizações
🧪 Testes e Qualidade
- Testes de performance implementados
- Testes de cache com Bogus
- Testes de rate limiting
- Cobertura de código aprimorada
🔍 Monitoramento e Alertas
- Performance Health Checks
- Alertas automáticos de performance
- Métricas de cache hit rate
- Monitoramento de uso de memória
🚀 Melhorias Técnicas
- 73% melhoria no tempo de resposta
- 47% redução no uso de memória
- 73% redução no tamanho das respostas
- 200% melhoria em queries por segundo
- Código mais limpo e otimizado
- Configurações flexíveis por ambiente
🐛 Correções e Estabilidade
- Compatibilidade com .NET 10
- Bugs de performance corrigidos
- Estabilidade aprimorada em alta carga
- Memory leaks prevenidos
🧾 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.
🔗 Informações Adicionais
Empresa: Biss Solutions
Contato: contato@biss.com.br
Website: https://biss.com.br/
Desenvolvido com ❤️ pela equipe de desenvolvimento da Biss Solutions
This package has 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 |
|---|---|---|
| 1.0.3 | 302 | 6/5/2026 |
v1.0.3 — Collection Postman completa
- postman/: collection (todos os endpoints + sync), environment local e README de importação.
v1.0.2 — Onboarding e respostas de erro
- Fail-fast em Development quando migrações EF falham (Api e Worker), com mensagem sobre docker compose.
- BaseResponse/ApiResponse: IsSuccess alinhado com Success e StatusCode.
- Logs de controllers: sucesso só quando Result.IsSuccess; postActions no dotnet new.
v1.0.1 — DX local e escrita síncrona
- Worker: launchSettings Development + connection string em appsettings.Development.json.
- docker-compose: SQL Server 2022 + RabbitMQ; credenciais dev documentadas.
- Rotas /sync (Customer e Address) com Messaging:SyncWriteEndpoints:Enabled (true em Development).
- docs/SMOKE-TEST.md, docs/TROUBLESHOOTING; collection Postman em postman/.
v1.0.0 — Base .NET 10 (RabbitMQ, Worker, 202 + commandId, inbox/outbox).