Skip to content

cleberspirlandeli/base-ddd-web-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

Base Backend

Estrutura elaborada para resolver problemas complexos utilizando o design DDD com versionamento de Endpoints

DDD

É uma abordagem de modelagem de software que segue um conjunto de práticas com objetivo de facilitar a implementação de complexas regras / processos de negócios que tratamos como domínio.
Domain Driven Design como o nome já diz é sobre design. Design guiado pelo domínio, ou seja, uma modelagem de software focada em resolver problemas na complexidade do negócio.
“Toda arquitetura é design, mas nem todo design é arquitetura” – Grady Booch
O DDD não é uma receita pronta sobre como desenvolver uma arquitetura baseada em Presentation, Services, Application, Domain e Infra.
Fonte: Eduardo Pires

Objetivo:

  • Criar uma estrutura base, separando responsabilidades com fundamentos no design DDD.
  • Realizar versionamento de endpoints
  • Retorno padronizado e inclusive erros
  • Erros gerados serão incluidos em uma lista ao em vez de gerar um New Error - (Exception Patterns)
  • Documentação da API utilizando Swagger
  • Utilizar AutoMapper
  • Validação de regras de negocio, classes e DTO's com FluentValidation
  • Autenticação com JWT
  • Implementar ASP.NET Identity com permissões de acesso com Claims e Roles
  • Captação de informações para monitoramento da API utilizando Prometheus
  • Conversão de 3.1 para 5.x
  • TODO - Implementar Interfaces (record .NET5)
  • TODO - Implementar Testes automatizados
  • TODO - Integração com outra API utilizando HTTP
  • TODO - Integração com outra API utilizando RabittMQ
  • TODO - Apresentação das informações de monitoramento em gráficos com Grafana
  • TODO - Implementar Ambiente Docker
  • TODO - Subir aplicação no IIS local e no Azure


Tecnologias

  • Banco de dados SQL Server
  • .Net Core 3.1

Frameworks e Packages

  • EntityFramework
  • FluentValidation
  • Api Version
  • AutoMapper



Como executar

Criar banco de dados com o nome MinhaAppMvcCore

Configurar conexão com o banco de dados no arquivo appsettings.json

  "ConnectionStrings": {
    "DefaultConnection": "Server=YOUR_SERVER;Database=MinhaAppMvcCore;Trusted_Connection=True;"
  },

Executar no terminal Package Manager Console (PM) no projeto Infrastructure:

update-dabase -Context DefaultDataBaseContext --verbose
update-dabase -Context DefaultIdentityDbContext --verbose

Build >> Clean Solution
Build >> Build Solution


alt text


alt text


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published