Skip to content

thenoobsbr/template-repository-csharp

Repository files navigation

.NET Template

Este é um repositório de template para projetos .NET, projetado para fornecer uma base sólida e estruturada seguindo boas práticas de desenvolvimento e arquitetura.

Como usar este template

Este repositório serve como um modelo. Ao iniciar um novo projeto a partir dele, é necessário realizar algumas configurações manuais para adequá-lo à sua nova solução.

1. Renomear Solução e Projetos

Você deve renomear os arquivos e diretórios para corresponder ao nome do seu novo projeto. Isso inclui:

  • O arquivo de solução (Solution.slnx).
  • As pastas dos projetos dentro de src/ e tests/ (ex: Solution.Api, Solution.UnitTests).
  • Os arquivos .csproj dentro dessas pastas.

2. Ajustar Placeholders nos .csproj

Os arquivos de projeto (.csproj) contêm placeholders que precisam ser substituídos por valores reais.

  • Abra os arquivos .csproj (especialmente em src/Solution.Api).
  • Procure por valores entre chaves duplas, como {{...}}.
  • Realize as substituições necessárias:
    • {{add-new-guid}}: Gere um novo GUID para o UserSecretsId.
    • {{repository}}: Insira o nome do repositório Git do seu projeto.

3. Ajustar Configurações do Docker

Os arquivos de configuração do Docker também precisam ser atualizados para refletir o novo nome do projeto.

  • devops/docker-compose.yml:
    • Atualize o nome do serviço (ex: solution-api para seuprojeto-api).
    • Atualize o nome da imagem (ex: solution:local para seuprojeto:local).
  • devops/Dockerfile:
    • Atualize os caminhos de cópia (COPY) que referenciam src/Solution.Api/Solution.Api.csproj.
    • Atualize o comando RUN dotnet restore.
    • Atualize o WORKDIR para a nova pasta do projeto.
    • Atualize o ENTRYPOINT para o novo nome da DLL (ex: SeuProjeto.Api.dll).

4. Executar a Aplicação com Docker

Para rodar a aplicação utilizando Docker, execute o seguinte comando na raiz da solução:

docker compose -f .\devops\docker-compose.yml up --build

Caso deseje rodar em segundo plano (detached mode), adicione a flag -d:

docker compose -f .\devops\docker-compose.yml up --build -d

Estrutura do Projeto

O projeto segue uma organização baseada em Clean Architecture, dividida em:

  • src/: Código-fonte da aplicação.
    • Solution.Api/: Projeto Web API, ponto de entrada da aplicação.
      • Domain/: O núcleo da aplicação, contendo entidades e regras de negócio.
      • Application/: Casos de uso e orquestração da lógica de aplicação.
      • Infrastructure/: Implementações concretas (banco de dados, serviços externos).
  • tests/: Projetos de testes automatizados.
    • Solution.UnitTests/: Testes de unidade para validar a lógica isolada.
    • Solution.IntegrationTests/: Testes de integração para validar o funcionamento conjunto dos componentes.
  • devops/: Arquivos relacionados a CI/CD e infraestrutura.
  • .husky/: Hooks do Git para automação de tarefas de qualidade (linting, testes) antes de commits/pushes.

Objetivo

O objetivo deste template é acelerar o "setup" inicial de novos microsserviços ou aplicações .NET, garantindo que todos os projetos iniciem com:

  • Uma arquitetura desacoplada e testável.
  • Configurações de qualidade de código já estabelecidas.
  • Padrões de observabilidade e resiliência pré-configurados (como visto nas dependências do projeto).

Feito com amor <3!

About

The short repository description

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors