Mediator
Guia completo para implementar Clean Architecture com MediatR
Por que usar Mediator?
Vantagem principal
Instalação do MediatR
dotnet add package MediatR<PackageReference Include="MediatR" Version="12.2.0" />Análise Arquivo por Arquivo
Response.cs
Implementação Anterior (sem Mediator)
Implementação Atual (com Mediator)
Análise das Alterações
Comparação Conceitual
Aspecto
Abordagem Anterior (sem Mediator)
Abordagem Atual (com Mediator)
Benefício Principal
Command.cs
Implementação Anterior (sem Mediator)
Implementação Atual (com Mediator)
Análise das Alterações
Comparação Conceitual
Aspecto
Abordagem Anterior
Abordagem Atual
Consideração Importante
Handler.cs
Implementação Anterior (sem Mediator)
Implementação Atual (com Mediator)
Análise das Alterações
Comparação de Segurança em Operações Assíncronas
Cenário
Implementação
Comportamento
Alterações Adicionais
Alteração
Descrição
Impacto
Importância do CancellationToken
DependencyInjection.cs (NOVO)
Funcionalidade implementada
Explicação do método de extensão
Funcionamento do RegisterServicesFromAssembly
RegisterServicesFromAssembly Definição de Assembly
Program.cs (API)
Implementação Anterior (sem MediatR)
Implementação Atual (com MediatR)
Análise das Alterações
Aspecto
Implementação Anterior
Implementação Atual
Explicação da Implementação
Comparação Conceitual
Fluxo de Funcionamento do MediatR
Fluxo de Execução
Mapeamento Interno (Visão Simplificada)
Exemplo de Mapeamentos Internos
Registro Automático versus Manual
Registro Automático (com MediatR)
Registro Manual (sem MediatR)
Análise Comparativa
Benefício do Abordagem Automática
Testando a Implementação
Execução da Aplicação
Saída esperada
Teste da Funcionalidade
Resposta esperada
Sequência do Fluxo da Requisição
Verificação dos Registros (Depuração)
Observação
Análise Crítica: Adoção do Padrão Mediator
Cenário Atual (3 Handlers)
Aspecto
Sem MediatR
Com MediatR
Impacto
Cenário Futuro (50 Handlers)
Aspecto
Sem MediatR
Com MediatR
Impacto
Análise de Custo-Benefício
Fator
Impacto em Sistema Pequeno
Impacto em Sistema Grande
Explicação
Diretrizes para Adoção do MediatR
Contexto
Justificativa
Contexto
Justificativa
Análise de Decisão por Tamanho de Projeto
Tamanho do Projeto
Handlers
Recomendação
Razão Principal
Considerações Técnicas Específicas
Característica
Favorece MediatR
Desfavorece MediatR
Transição para MediatR: Guia de Migração
Alterações por Componente
Comando (Request)
Handler
Mudanças Principais
O que mudou
Antes
Depois
Etapas Adicionais da Migração
Comparação Detalhada
Aspecto
Sem MediatR
Com MediatR
Próximos Passos (se usar MediatR)
Pipeline Behaviors (Middleware)
Validação Centralizada
Eventos (Pub/Sub)
Evoluindo a Implementação
Adicionando Validação com FluentValidation
Perguntas Frequentes
1. O MediatR substitui minha lógica de negócio?
2. Posso migrar gradualmente?
3. E se dois Handlers processarem mesmo Command?
4. Funciona com controllers MVC tradicionais?
5. O CancellationToken é obrigatório?
Resumo
Benefícios
Vantagem
Efeito Concreto
Contrapontos
Aspecto
Implicação
Recomendações
Diretrizes para Decisão
Contexto
Recomendação
Critério Decisório
Princípio Orientador
Indicador Prático
Implementação Realizada
Alterações Efetuadas
Benefícios Concretizados
Custos Inerentes
Estratégia de Adoção Progressiva
Fase Inicial
Ponto de Transição
Observação
Atualizado