![]() |
Hoje vou apresentar um template disponível no Visual Studio MarketPlace que gera um projeto seguindo as boas práticas e recomendações da Clean Architecture. |
Que tal um template de projeto pronto com uma arquitetura com baixo acoplamento para ASP.NET Core 3.1 Web Api que usa padrões de projetos e boas práticas para aplicativos corporativos ?
Se você não esta com tempo para se debruçar sobre os fundamentos e criar um template com esses recursos, ganhou o dia, pois você pode baixar este template pronto aqui.
Para obter mais detalhes siga a página do projeto aqui.
Qual o objetivo do template ?
Ser uma implementação de arquitetura limpa para um projeto Web API com ASP.NET Core 3.1.
Com este modelo de código aberto, você terá acesso ao mundo da Arquitetura com baixo acoplamento e com várias práticas recomendadas.
Como usar o template
Baixe esta extensão no Visual Studio MarketPlace e instale-a em seu ambiente.
Certifique-se de
que o Visual Studio 2019 esteja instalado e com o SDK mais recente.
Para iniciar, após instalar o template, basta criar um novo projeto usando o
template instalado.
Em seguida, abra o arquivo appsettings.json para alterar as strings de conexão conforme as usada em seu ambiente.
Aqui você pode escolher ter vários bancos de dados para separar a implementação do IdentityDB ou ter o mesmo banco de dados para o Identity e o aplicativo.
Uma vez que isso
esteja definido, execute estes comandos para atualizar o banco de dados.
update-database -Context IdentityContext
update-database -Context ApplicationDbContext
Finalmente, faça o deploy e execute o aplicativo.
Funções e credenciais padrão
Assim que você constrói e executa seu aplicativo, usuários e funções padrão são
adicionados ao banco de dados.
Os perfis padrão definidos são as seguintes:
SuperAdmin
Admin
Moderador
Básico
Aqui estão as credenciais definidas para os usuários padrão :
Email - superadmin@gmail.com / Senha -
123Pa$$word!
Email - basic@gmail.com / Senha -
123Pa$$word!
Você pode usar essas credenciais padrão para gerar
JWTokens válidos no endpoint ../api/account/authenticate.
Objetivo deste Projeto
Realmente faz sentido configurar sua solução ASP.NET Core toda vez que você
inicia um novo projeto Web Api ?
Não estamos
perdendo muito tempo fazendo esse trabalho repetidamente ?
Este é exatamente o problema que este Template se propõe a resolver.
O objetivo principal é criar uma implementação que seja bem documentada junto
com as etapas executadas para construir esta solução do zero.
Tecnologias usadas
ASP.NET Core 3.1 WebApi
Padrões REST
Bibliotecas .NET Core 3.1 / Standard 2.1
Recursos abordados
[x] Arquitetura Cebola
[x] CQRS com Biblioteca MediatR
[x] Entity Framework Core - Code First
[x] Padrão de Repositório - Genérico
[x] Registro e validação do pipeline MediatR
[x] Serilog
[x] IU Swagger
[x] Wrappers de resposta
[x] Verificações de saúde
[x] Paginação
[] Cache na memória
[] Cache Redis
[x] Banco de dados In-Memory
[x] Identidade Microsoft com autenticação JWT
[x] Autorização baseada em função
[x] Sementeira de identidade
[x] Sementeira de banco de dados
[x] Middlewares de tratamento de exceções personalizadas
[x] Controle de versão de API
[x] Validação Fluente
[x] Automapper
[x] Serviço de e-mail SMTP / Mailkit / Sendgrid
[x] Módulo de gerenciamento de usuário completo (registrar / gerar token /
esqueci a senha / mensagem de confirmação)
[x] Auditoria de usuário
Pré-requisitos
- Visual Studio 2019 Community ou superior;
- SDK do .NET Core 3.1 ou superior;
- Compreensão básica de arquiteturas e princípios do código limpo;
- Recomendo que você leia:
Arquitetura Onion no ASP.NET Core com CQRS - artigo detalhado para entender
melhor essa implementação. (Veja o meu artigo sobre arquitetura Onion:
.NET - A arquitetura
Cebola (Onion Architecture)
E estamos conversados...
"Ninguém jamais
viu a Deus; se nos amamos uns aos outros, Deus está em nós, e em nós é perfeito
o seu amor.
Nisto conhecemos que estamos nele, e ele em nós, pois que nos deu do seu
Espírito.
E vimos, e testificamos que o Pai enviou seu Filho para Salvador do mundo."
1 João 4:12-14
Referências:
ASP .NET - Apresentando Web API
Criando sua primeira Web API com ASP .NET Core ..
ASP .NET Web API - Criando e Consumindo uma ..
ASP .NET Core - Criando uma Web API - I -
Xamarin Forms - Consumindo uma Web API ASP ...