Clean Architecture com .NET Core

gabrielschade1 227 views 26 slides Apr 29, 2019
Slide 1
Slide 1 of 26
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26

About This Presentation

Clean Architecture utilizando .NET Core (C# e F# juntos). O objetivo é demonstrar uma arquitetura simples que pode ser aplicada no dia a dia, mesmo em projetos pequenos.


Slide Content

Globalcode – Open4education


Clean Architecture com .NET Core
Gabriel Schade Cardoso
Microsoft MVP | Software Engineer | Mestre em Computação Aplicada |
Professor | Escritor

Globalcode – Open4education


Mestre em Computação Aplicada (IA)
Microsoft MVP – Dev. Technologies
Software Engineer
Revisor
Escritor
Gabriel Schade Cardoso

Globalcode – Open4education


Produtividade
Como vai a produtividade da sua equipe?
<Insira aqui um gráfico convincente>

Globalcode – Open4education


Bugs
Efeitos colaterais no software?

Globalcode – Open4education


Tem que entregar!
Commita assim mesmo, depois a gente arruma!

Globalcode – Open4education


Tem que entregar!
Spoiler: provavelmente você não
vai arrumar.
A longo prazo, fazer bagunça
sempre é mais lento que manter
o código limpo.

Globalcode – Open4education


Pensando em arquitetura
A arquitetura dita como os elementos do seu software irão
interagir entre si.
Existem várias arquiteturas diferentes;
Sempre depende do problema que você vai resolver.

Globalcode – Open4education


Arquitetura
Vamos falar de:
Arquitetura hexagonal;
Ports and Adapters;
Arquitetura limpa.
Arquitetura BEM limpa

Globalcode – Open4education


Arquitetura
Independente de:
Framework;
Interface de Usuário;
Banco de dados;
Linguagem

Globalcode – Open4education


Arquitetura Limpa

Globalcode – Open4education


Arquitetura Limpa
Núcleo da aplicação:
Entidades;
Regras de negócio;
Resolve o problema proposto;
Não enxerga nada além dela;
Exceptions?

Globalcode – Open4education


Arquitetura Limpa
Adaptadores:
Adapters;
Controllers;
Faz a cola entre o mundo
externo e o mundo da sua
aplicação;
Projeto Shared?

Globalcode – Open4education


Arquitetura Limpa
Externo:
DB;
Web;
Serviços;
Arquivos;
Console;
...

Globalcode – Open4education


O mundo externo
O mundo externo são detalhes;
Sua aplicação ser web, usar SQL Server, C# ou F#... Detalhes;
Isso porque na visão da arquitetura limpa, isso não altera em
nada o que sua aplicação faz.

Globalcode – Open4education


DEMO
Uma aplicação que armazena dados sobre usuários;
Mais de um target de linguagem;
Mais de um target de interface;
Mecanismo de armazenamento;

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


DEMO

Globalcode – Open4education


O que mais?
Dependency Injection?
ORM? - Fluent Validation > Properties Attributes
DDD?
CQRS + MediatR?

/gabrielschade /gabrielschade
medium.com/@gabrielschade
https://gabrielschade.github.io