Implementação de padrão CQRS e MediatR usando API da Web .NET Core 6
Neste artigo, discutiremos o funcionamento dos padrões CQRS e MediatR e a implementação passo a passo usando a API da Web .NET Core 6.
Agenda
- Introdução do padrão CQRS
- Quando usar CQRS
- MediatR
- Implementação passo a passo
- Visual Studio 2022
- servidor SQL
- .NET Núcleo 6
- CQRS significa Segregação de responsabilidade de comando e consulta e usa para separar leitura (consultas) e gravação (comandos).
- Nele, as consultas executam a operação de leitura e o comando executa a operação de gravação, como criar, atualizar, excluir e retornar dados.
- Como sabemos, em nosso aplicativo, usamos principalmente um único modelo de dados para ler e gravar dados, que funcionará bem e executará operações CRUD facilmente. Mas, quando o aplicativo se torna vasto nesse caso, nossas consultas retornam diferentes tipos de dados como um objeto, de modo que fica difícil de gerenciar com diferentes objetos DTO. Além disso, o mesmo modelo é usado para executar uma operação de gravação. Como resultado, o modelo torna-se complexo.
- Além disso, quando usamos o mesmo modelo para operações de leitura e gravação, a segurança também é difícil de gerenciar quando o aplicativo é grande e a entidade pode expor dados no contexto errado devido à carga de trabalho no mesmo modelo.
- O CQRS ajuda a desacoplar as operações e tornar o aplicativo mais escalável e flexível em grande escala.
- Podemos usar a segregação de responsabilidade de consulta de comando quando o aplicativo é enorme e acessa os mesmos dados em paralelo. O CQRS ajuda a reduzir os conflitos de mesclagem durante a execução de várias operações com dados.
- Na terminologia DDD, se o modelo de dados de domínio for complexo e precisar executar muitas operações prioritariamente, como validações e executar alguma lógica de negócios, nesse caso, precisamos da consistência que usaremos usando o CQRS.
- O padrão MediatR ajuda a reduzir a dependência direta entre vários objetos e torná-los colaborativos por meio do MediatR.
- No .NET Core, o MediatR fornece classes que ajudam a se comunicar com vários objetos de forma eficiente de maneira fracamente acoplada.
Passo 1
Criar uma nova aplicação
Passo 2
Configure seu aplicativo
etapa 3
Forneça informações adicionais
Passo 4
Estrutura do Projeto
Passo 5
Instale os seguintes pacotes NuGet
Passo 6
Crie uma classe de detalhes do aluno dentro da pasta do modelo
Passo 7
Em seguida, adicione DbContextClass dentro da pasta Data
Passo 8
Crie um repositório do aluno e uma classe relacionada a ele.
IStudentRepository
AlunoRepositório
Passo 9
Depois disso, adicione consultas de leitura
GetStudentListQuery
GetStudentByIdQuery
Passo 10
Em seguida, crie diferentes comandos
CriarAlunoComando
AtualizarAlunoComando
DeleteStudentCommand
Passo 11
Agora, adicione manipuladores de consulta e comando
GetStudentListHandler
GetStudentByIdHandler
CreateStudentHandler
UpdateStudentHandler
DeleteStudentHandler
Passo 12
Configure a string de conexão do banco de dados dentro do arquivo appsettings.json
Passo 13
Registre alguns serviços dentro da classe do programa
Passo 14
Em seguida, execute os comandos de migração e atualização do banco de dados
add-migration “initial”
atualizar o banco de dados
Passo 15
Depois disso, crie o Students Controller e injete o serviço MediatR dentro dele para enviar a consulta e o comando
Passo 16
Por fim, execute seu aplicativo e acesse diferentes endpoints usando a interface do usuário swagger.
URL do GitHub
https://github.com/Jaydeep-007/CQRSAndMediatRDemo.git
Conclusão
Aqui discutimos os padrões de design CQRS e MediatR e sua finalidade e benefícios em aplicativos de grande escala e implementação passo a passo usando a API da Web .NET Core.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)