/ASP.NET-Core-API-DDD-SOLID

ASP.NET Core, C#, REST API, DDD, Princípios SOLID e Clean Architecture

Primary LanguageC#MIT LicenseMIT

Sistema Gerenciador de Pedidos (SGP)

Build SonarCloud CodeQL DevSkim License

Lines of Code Coverage Maintainability Rating Security Rating Vulnerabilities Bugs Code Smells

Sparkline

Dê uma estrela! ⭐

Se você gostou deste projeto, aprendeu algo, dê uma estrelinha. Obrigado!

  • ASP.NET Core 8
  • Entity Framework Core 8
  • RESTful API
  • Banco de dados relacional: SQL Server
  • Cache Distribuído: Redis
  • Clean Architecture
  • Princípios S.O.L.I.D.
  • Conceitos de modelagem de software DDD (Domain Driven Design)
  • Padrão Repository-Service (Repository-Service Pattern)
  • Padrão decorador (decorator pattern) The decorator pattern
  • Padrão de Camada-Anticorrupção (Anti-Corruption Layer) (FluentValidation)
  • Padrão Resultado (FluentResults) Functional C#: Handling failures
  • Scrutor automaticamente registrando os serviços no ASP.NET Core DI
  • Testes Unitários, Integrações com xUnit, FluentAssertions, NSubstitute
    => Melhores práticas de teste de unidade com .NET Core
  • Monitoramento de performance da aplicação: MiniProfiler for .NET
  • Verificações de integridade da aplicação com HealthChecks
  • SonarCloud para qualidade do código, codesmell, bugs, vulnerabilidades e cobertura de código

Executando a aplicação usando o Docker

Após executar o comando no terminal docker-compose up --build, basta abrir a url no navegador: http://localhost:8000/swagger/

MiniProfiler for .NET

Para acessar a página com os indicadores de desempenho e performance: http://localhost:8000/profiler/results-index

Configurando Banco de dados

Por padrão é utilizado o SQL Server LocalDB, para alterar a conexão, modifique o valor da chave DefaultConnection no arquivo appsettings.Development.json

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=SgpContext;Trusted_Connection=True;MultipleActiveResultSets=true;",
    "Collation": "Latin1_General_CI_AI"
  }
}

License