Implementação de padrão CQRS e MediatR usando API da Web .NET Core 6

Dec 17 2022
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.

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.