Clean Architecture com ASP.NET Core
Rodolfo Fadino
Sócio e Head de Tecnologia na tech.fit
(Dieta e Saúde, Tecnonutri e Numee)
Processamento de Dados Fatec-SP
Prof MBA Fiap – Pós Graduação Arquitetura .NET
Microsoft MVP Reconnect
https://rodolfofadino.com.br
https://github.com/rodolfofadino
Rodolfo Fadino Jr
Objetivos de uma Arquitetura
Qualidade
Manutenção
Testabilidade
Independência de framework
Independência de UI
Independência de Banco de dados
Independência de Agentes Externos
SOLID (legenda das fotos seguintes)
• SRP - Single responsibility principle
• Uma classe deve ter uma, e somente uma responsabilidade.
• OCP - Open/closed principle
• Capacidade de estender um comportamento de uma classe sem a necessidade de modificá-lo.
• LSP - Liskov substitution principle
• As classes derivadas devem ser substituíveis por suas classes bases.
• ISP - Interface segregation principle
• Muitas interfaces específicas são melhores do que uma interface única geral.
• DIP - Dependency inversion principle
• Princípio da inversão de dependência - Dependa de abstrações e não de implementações.
Clean Architeture
• by Robert C. Martin (Uncle Bob)
• https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-
architecture.html
Domain
Domain
• Entities
• Value Objects
• Enumerations
• Logic
• Exceptions
Domain
Application
Application
• Interfaces
• Models
• Logic
• Validators
• Events
• Exceptions
Presentation
PersistenceInfrastructure
Domain
Application
Persistent
• DbContext
• Configurations
• Migrations
• Seeding
• Abstractions
Presentation
PersistenceInfrastructure
Domain
Application
Infrastructure
• Clients
• File Systems
• Email / SMS
• System Clock
• Recursos Externos
Presentation
PersistenceInfrastructure
Domain
Application
Presentation
• Web Forms
• MVC
• Razor Pages
• Web API
• Single Page Apps
• Console
Presentation
PersistenceInfrastructure
Domain
Application
Clean Architecture
• Domain
• Application
• Infrastructure/Persistent
• Presentation
Ferramentas
• MediatR
• FluentValidation
• AutoMapper
• CQRS
• IoC
https://www.meetup.com/pt-BR/tech-fit-talks
TDC 2019  Clean Architeture com .net core

TDC 2019 Clean Architeture com .net core

Notas do Editor

  • #6 SRP - Single responsibility principle Uma classe deve ter uma, e somente uma responsabilidade
  • #7 OCP - Open/closed principle Capacidade de estender um comportamento de uma classe sem a necessidade de modificá-lo.
  • #9 LSP - Liskov substitution principle As classes derivadas devem ser substituíveis por suas classes bases.
  • #10 ISP - Interface segregation principle Muitas interfaces específicas são melhores do que uma interface única geral.
  • #11 DIP - Dependency inversion principle Princípio da inversão de dependência - Dependa de abstrações e não de implementações.