SlideShare uma empresa Scribd logo
1 de 19
Fabrício Rissetto
 Diversos sistemas legados acessando diretamente uma única base
Procedures
9000+
Tabelas
2000
+ Views, Functions
Regras de negócio no banco de dados
 Criar uma aplicação para centralizar
essas regras expondo dados via Web
API
 Mapeamento das tabelas usando EF
 SDK
 Muitos testes unitários!
Domain Model:
Private
Set!
Construtor
evidenciando
regras de
inicialização
Construtor
pro que faz
sentido
Construtor
pro que faz
sentido
Métodos que
revelam intenção
e encapsulam
regras de negócio
Persistence Model:
Fluent Mapping:
Dois em um:
Juntas
 Vantagens:
 Boost no desenvolvimento
 Desvantagens:
 Quanto maior a diferença maior a
dificuldade
 Medo de refactorings
Separadas
 Vantagens:
 Liberdade para modelar o domínio
 Prontos para Bounded Contexts
 Desvantagens:
 Maior esforço em conversões
 Perda das vantagens de utilizar
ORM 
Dapper.NET! 
E pra popular um dropdown?
WS
DDD não é bala de prata
 SmartUI as vezes é mais adequado
 Domínio simples (crud intensive)
 Equipe inexperiente
 Foco é o prazo
Avaliar uso de ORM
Avaliar separação Command/Query
E-mail: fabriciorissetto@gmail.com
Blog: fabriciorissetto.com
Obrigado!

Mais conteúdo relacionado

Destaque (11)

Instagram
InstagramInstagram
Instagram
 
Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptual
 
LetterFromRegency
LetterFromRegencyLetterFromRegency
LetterFromRegency
 
Diploma Bac Techno - Sebastien Tréché
Diploma Bac Techno - Sebastien TréchéDiploma Bac Techno - Sebastien Tréché
Diploma Bac Techno - Sebastien Tréché
 
Law of supply sp mishra
Law of supply sp mishraLaw of supply sp mishra
Law of supply sp mishra
 
Shitokai 2012
Shitokai 2012Shitokai 2012
Shitokai 2012
 
Experience Limbtech Pg 1
Experience Limbtech Pg 1Experience Limbtech Pg 1
Experience Limbtech Pg 1
 
Información para compartir
Información para compartirInformación para compartir
Información para compartir
 
Mapa emocional
Mapa emocionalMapa emocional
Mapa emocional
 
Choice of programming language for web developing.
Choice of programming language for web developing.Choice of programming language for web developing.
Choice of programming language for web developing.
 
What should or not be programmed on the web
What should or not be programmed on the  webWhat should or not be programmed on the  web
What should or not be programmed on the web
 

Semelhante a DDD - Cicatrizes de guerra

Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioRalph Rassweiler
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoÉberli Cabistani Riella
 
Separando a regra de negócios do Rails
Separando a regra de negócios do RailsSeparando a regra de negócios do Rails
Separando a regra de negócios do RailsCelso Crivelaro
 
TDC2016SP - Desacoplando suas regras de negócio do Rails
TDC2016SP - Desacoplando suas regras de negócio do RailsTDC2016SP - Desacoplando suas regras de negócio do Rails
TDC2016SP - Desacoplando suas regras de negócio do Railstdc-globalcode
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Arquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain LayerArquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain LayerAndré Faria Gomes
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCguest489a65e
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 
Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Fernanda Bernardo
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Taller Negócio Digitais
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010Rafael Leonhardt
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...tdc-globalcode
 

Semelhante a DDD - Cicatrizes de guerra (20)

Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
Separando a regra de negócios do Rails
Separando a regra de negócios do RailsSeparando a regra de negócios do Rails
Separando a regra de negócios do Rails
 
TDC2016SP - Desacoplando suas regras de negócio do Rails
TDC2016SP - Desacoplando suas regras de negócio do RailsTDC2016SP - Desacoplando suas regras de negócio do Rails
TDC2016SP - Desacoplando suas regras de negócio do Rails
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Frameworks PHP @edgarsandi
Frameworks PHP @edgarsandiFrameworks PHP @edgarsandi
Frameworks PHP @edgarsandi
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
Arquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain LayerArquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain Layer
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 
Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 

Mais de Fabrício Rissetto

Functional Domain Driven Design
Functional Domain Driven DesignFunctional Domain Driven Design
Functional Domain Driven DesignFabrício Rissetto
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroFabrício Rissetto
 
Kotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem modernaKotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem modernaFabrício Rissetto
 
Threads tasks e o tal do thread pool
Threads tasks e o tal do thread poolThreads tasks e o tal do thread pool
Threads tasks e o tal do thread poolFabrício Rissetto
 
Threads Tasks e o tal do Thread Pool
Threads Tasks e o tal do Thread PoolThreads Tasks e o tal do Thread Pool
Threads Tasks e o tal do Thread PoolFabrício Rissetto
 
Programação reativa e o actor model
Programação reativa e o actor modelProgramação reativa e o actor model
Programação reativa e o actor modelFabrício Rissetto
 

Mais de Fabrício Rissetto (8)

Functional Domain Driven Design
Functional Domain Driven DesignFunctional Domain Driven Design
Functional Domain Driven Design
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
 
Kotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem modernaKotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem moderna
 
Construindo um Context Map
Construindo um Context MapConstruindo um Context Map
Construindo um Context Map
 
Threads tasks e o tal do thread pool
Threads tasks e o tal do thread poolThreads tasks e o tal do thread pool
Threads tasks e o tal do thread pool
 
Threads Tasks e o tal do Thread Pool
Threads Tasks e o tal do Thread PoolThreads Tasks e o tal do Thread Pool
Threads Tasks e o tal do Thread Pool
 
Programação reativa e o actor model
Programação reativa e o actor modelProgramação reativa e o actor model
Programação reativa e o actor model
 
Web Scraping
Web ScrapingWeb Scraping
Web Scraping
 

DDD - Cicatrizes de guerra