Repositório com projetos .NET 10 (console, APIs web e testes) que exploram técnicas e bibliotecas recorrentes no ecossistema .NET moderno.
- Visão geral
- Projetos na solução
- Requisitos
- Instalação e build
- Como executar um projeto
- CI/CD e workflows
- Documentação adicional
- Contribuições
- Artigos e conteúdos
- Licença
- Contato
O dopTenEssentialTechNet agrupa vários projetos independentes, todos direcionados ao .NET 10 (net10.0). A maior parte são aplicativos de console; há também APIs minimais (por exemplo, FastEndpoints ou EF Core com HTTP) quando o tema pede hospedagem web. Cada pasta corresponde a um tema (Span, configuração, resiliência HTTP, testes com containers, pooling de DbContext, logging gerado em compile time, entre outros), para estudo, artigos ou referência rápida.
A solução principal está em dopTenEssentialTechNet.sln na raiz do repositório.
| Projeto | Tema (foco) |
|---|---|
| SubStringSpan | Strings e Span/Memory para código eficiente e com menos alocações |
| OptionsConfig | Padrão Options e IConfiguration |
| BackgroundServer | Serviços em segundo plano com Host / hospedagem genérica |
| WorkflowCore | Orquestração de fluxos com WorkflowCore |
| VerticalSliceFastEndpoints | Organização vertical slice com FastEndpoints |
| HTTPolly | Chamadas HTTP com políticas de resiliência (Polly) |
| Flurl | Cliente HTTP fluente com Flurl |
| TddContainers | Testes de integração com Testcontainers |
| DynamicDapper | Acesso a dados com Dapper e cenários dinâmicos |
| ContextPool | EF Core com AddDbContextPool, SQL Server e Minimal API |
| SourceGeneratedLogging | Logging com [LoggerMessage] (source generator de alto desempenho) |
- .NET SDK 10 (TFM
net10.0)
Verifique a versão instalada:
dotnet --versiongit clone https://github.com/daniloopinheiro/dopTenEssentialTechNet
cd dopTenEssentialTechNet
dotnet restore
dotnet buildPara compilar apenas a solução:
dotnet build dopTenEssentialTechNet.slnSubstitua NomeDoProjeto por uma das pastas listadas acima (por exemplo, SubStringSpan):
dotnet run --project NomeDoProjeto/NomeDoProjeto.csprojNa pasta WorkflowCore o arquivo de projeto é WorkflowCore.App.csproj (nome escolhido para não conflitar com o pacote NuGet WorkflowCore).
Na pasta Flurl o arquivo é FlurlDemo.App.csproj (o nome Flurl conflita com o pacote NuGet Flurl usado pelo Flurl.Http).
O projeto TddContainers é de testes (xUnit + Testcontainers). Execute com dotnet test — é necessário Docker em execução para subir o PostgreSQL em container.
APIs web (Minimal API / ASP.NET Core):
| Projeto | URL predefinida (desenvolvimento) |
|---|---|
| VerticalSliceFastEndpoints | http://localhost:5088 |
| ContextPool | http://localhost:5089 |
SQL Server (LocalDB ou instância própria):
- DynamicDapper — connection string em
ConnectionStrings:Default(appsettings.json). - ContextPool —
ConnectionStrings:DefaultConnection; o arranque cria a base e insere dados de exemplo. Ajuste a string se não usar LocalDB.
Logging com source generator:
- SourceGeneratedLogging —
dotnet runexecuta uma chamada gerada em compile time ([LoggerMessage]) e imprime na consola (nível Debug).
Exemplo:
dotnet run --project SubStringSpan/SubStringSpan.csprojO repositório inclui workflows em .github/workflows/ para integração contínua, dependências, monitoramento, deploy e versionamento. Resumo:
| Workflow | Arquivo | Função principal |
|---|---|---|
| CI - Build & Test | ci.yml |
Build, testes e verificações de qualidade |
| CD - Deploy | cd.yml |
Entrega e artefatos de deploy |
| Dependencies Check & Update | dependencies.yml |
Dependências e atualizações |
| Monitoring & Performance | monitoring.yml |
Monitoramento e performance |
| PR Automation | pr-automation.yml |
Automação de pull requests |
| Auto Tag & Version | auto-tag.yml |
Tags e versionamento |
| Auto Release | auto-release.yml |
Releases automáticas |
| Create Version Tags | create-tags.yml |
Criação de tags de versão |
| Create Release | release.yml |
Criação de releases |
Documentação complementar:
- Artigo — contexto editorial sobre o repositório
- CHANGELOG
- Segurança
- Contribuição
Contribuições são bem-vindas. Consulte CONTRIBUTING.md e o código de conduta. Para bugs e ideias, use Issues.
MIT — veja LICENSE.md.
- Issues: GitHub Issues
Danilo O. Pinheiro
- Email pessoal: daniloopro@gmail.com
- Email empresarial: devsfree@devsfree.com.br
- Consultoria: contato@dopme.io
- LinkedIn: Danilo O. Pinheiro