SlideShare una empresa de Scribd logo
1 de 46
André Zanatta Borgonovo
1.   Introdução
2.   Conceitos
3.   Arquitetura
4.   Artefatos de Domínio (exemplos em C#)
5.   Aplicação e Processo
O que é e não é DDD
   Algo que resolve tudo
   Sempre a melhor solução
   Um caminho fácil para seguir



     “Everything should be made as simple as
            possible, but not simpler.”
                  Albert Einsten
   Design (Projeto) Orientado ao Domínio
   Uma abordagem de desenvolvimento de
    software
   Uma metodologia de arquitetura para a
    evolução de um sistema alinhado às
    necessidades do negócio
   Software OO feito da maneira correta (Jak
    Charlton, DDD Step-by-step)
“Atacando as Complexidades
  no Coração do Software”
                             Eric Evans
1.   Corrige a arquitetura do projeto. Diminui a
     complexidade e aumenta a manutenibilidade
     da aplicação
2.   Você faz software para durar
3.   Quem deve se preocupar com DDD?
4.   “Durabilidade” do DDD
5.   Outros *DDs
   O foco é no domínio, são as regras de
    negócio, os comportamentos
   O foco NÃO é trabalhar com o banco de
    dados
   Software de negócios com regras complexas

              “Domínio é a área de
           conhecimento do software”
   O foco deve ser o domínio e a lógica do domínio
   Projetos complexos devem ser baseados em um
    modelo
   Iniciar uma colaboração criativa entre a área
    técnica e os domain experts para iterativamente
    estarem mais perto do coração conceitual do
    problema
Linguagem ubíqua, contextos
delimitados, módulos, domain
expert, domínio e modelo
Ubiquitous = Ubíquo = Está em todo lugar

Linguagem ubíqua é a linguagem usada pelo:

    Business expert = Domain expert = Product owner (Scrum)

•       O time inteiro utiliza a mesma linguagem
•       Não utilizar linguagem técnica para falar com o Domain
        expert
•       Proximidade entre o Domain expert e os desenvolvedores
•       A análise realizada deve ser natural para o Domain expert
•       É importante que todos do projeto conheçam o domínio
    •      Substantivos = Classes
    •      Verbos = Métodos, Serviços e etc.
   É relativo. Não tem padrão. Baseado em
    abstrações.
   É usado para resolver problemas. Tem que
    ser útil.
   Deve estar atualizado. Deve refletir no
    código.
   Representa o domínio.

       Use POCOs (Plain Old CLR Objects)
Pode ser assim:   Ferramenta ajuda a manter
                    seu modelo atualizado


                      …Ou assim:
Apresentação
Aplicação
Domínio
Infraestrutura
•   Camadas devem estar separadas
•   Separação de responsabilidades
•   Arquitetura flexível



                   Layers X Tiers
             Layers: Camadas lógicas
         Tiers: “Projetos do Visual Studio”
Usuário pode ser outro sistema.
Camada de apresentação
Coordena as atividades (workflow)
da aplicação. Transformação de
objetos (DTOs).
Transação, auditoria e segurança.
“A camada de domínio é o
coração do software”
Persistência de dados.
Conceitos transversais:
autenticação, autorização,
cache, gerenciamento de
exceções, log, validação.
Usuário pode ser outro sistema.
Camada de apresentação

Coordena as atividades (workflow)
da aplicação. Transformação de
objetos (DTOs). Transação,
auditoria e segurança.
“A camada de domínio é o
coração do software”

Persistência de dados.
Conceitos transversais:
autenticação, autorização,
cache, gerenciamento de
exceções, log, validação.
Entidades, objetos de valor,
agregações, fábricas, serviços
e repositórios
   Objetos que tem significado no Domínio

   Tem identidade

   Exemplos:
    ◦ Cliente
    ◦ Carro
    ◦ Produto
Abstração para entidades


Entidade simples
   Não tem identidade para o negócio
   São reconhecidos pelos seus atributos
   Atributo diferente = objeto diferente
   Imutáveis
   Exemplos:
    ◦ Cores
    ◦ Coordenadas
    ◦ Endereços
Abstração para
                          objetos de valor




Objeto de valor simples
   Reúne entidades e objetos de valor que
    fazem sentido no domínio
   Raiz da agregação (Aggregate Root)
   Regras de agregações:
    ◦ Todas as atualizações passam pela raiz
    ◦ Todas as referencias obtidas para os objetos
      recupera-se pela raiz
    ◦ Exclusão apaga todos os filhos da agregação
    ◦ Regras de negócio são garantidas pela raiz
   Resolvem problemas de negócio, mas não
    são entidades ou objetos de valor
   Um bom serviço tem três caracteristicas:
    1. A operação é relacionada a um conceito do
       domínio que não é naturalmente parte de uma
       entidade ou objeto de valor
    2. A interface é definida baseada em outros objetos
       do modelo do dominio
    3. A operação é Stateless
   Criam objetos de negócio

   É responsabilidade de um objeto construir a
    si mesmo?

   Regras complexas para construção

   Fábrica cria objetos consistentes
   “Não tem banco de dados”
   Persistence Ignorance
   Representam uma lista de itens em memória
   Não tem lógica de negócio. No máximo valida
    consistência do objeto. Assim como guardou
    deve ser recuperado
   São especificados para Agregações, não para
    Entidades
Abstração para repositórios




Repositório simples
Exemplo de
implementação de
repositório com Entity
Framework
   Fábricas criam os objetos

   Repositórios:
    ◦   Inserem;
    ◦   Recuperam;
    ◦   Alteram;
    ◦   Destroem os objetos.
Go DDD, go Agile!
 Regras de negócio complexas
 Atenção:
    ◦ Arquitetos geralmente trabalham em projetos
      complexos
    ◦ Projetos simples podem se tornar importantes para
      o negócio da empresa no futuro



Use DDD na maior parte dos softwares que tem
             regra de negócio
   Não para o desenvolvimento em cascata
    (Waterfall). Recomendado desenvolvimento
    ágil

   DDD aceita as mudanças. Software se torna
    altamente adaptável

   Proximidade e contato com o Domain expert
Autor
André Zanatta Borgonovo
azborgonovo@gmail.com
@azborgonovo



Links Recomendados
http://domaindrivendesign.org/
http://microsoftnlayerapp.codeplex.com/
http://blog.lambda3.com.br/

Más contenido relacionado

La actualidad más candente

SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
alinebicudo
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vie
Harun Mouad
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
elliando dias
 

La actualidad más candente (20)

SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 
Introdução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de SoftwareIntrodução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de Software
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vie
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Itil v3 estratégia de serviço
Itil v3 estratégia de serviçoItil v3 estratégia de serviço
Itil v3 estratégia de serviço
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Introduction au génie logiciel 1.2
Introduction au génie logiciel 1.2Introduction au génie logiciel 1.2
Introduction au génie logiciel 1.2
 
Feature Driven Development - FDD
Feature Driven Development - FDDFeature Driven Development - FDD
Feature Driven Development - FDD
 
Diagrama de sequência
Diagrama de sequênciaDiagrama de sequência
Diagrama de sequência
 
ROSIK Stammtisch „Clean Architecture“
ROSIK Stammtisch „Clean Architecture“ROSIK Stammtisch „Clean Architecture“
ROSIK Stammtisch „Clean Architecture“
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesDomain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Destacado

Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao Domain Driven Design
Lambda3
 
Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011
thinkddd
 

Destacado (20)

Domain driven design - Visão Geral
Domain driven design - Visão GeralDomain driven design - Visão Geral
Domain driven design - Visão Geral
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Domain Driven Design Up And Running
Domain Driven Design Up And RunningDomain Driven Design Up And Running
Domain Driven Design Up And Running
 
DDDesign Challenges
DDDesign ChallengesDDDesign Challenges
DDDesign Challenges
 
Design de software com ASP.NET MVC
Design de software com ASP.NET MVCDesign de software com ASP.NET MVC
Design de software com ASP.NET MVC
 
Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao Domain Driven Design
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutória
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
 
Criandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVCCriandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVC
 
Event sourcing
Event sourcingEvent sourcing
Event sourcing
 
Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011
 
Event based modeling - eng
Event based modeling - engEvent based modeling - eng
Event based modeling - eng
 
Apache mahout - introduction
Apache mahout - introductionApache mahout - introduction
Apache mahout - introduction
 
An introduction to predictionIO
An introduction to predictionIOAn introduction to predictionIO
An introduction to predictionIO
 
Docker cloud
Docker cloudDocker cloud
Docker cloud
 
Vagrant
VagrantVagrant
Vagrant
 
PC = Personal Cloud (or how to use your development machine with Vagrant and ...
PC = Personal Cloud (or how to use your development machine with Vagrant and ...PC = Personal Cloud (or how to use your development machine with Vagrant and ...
PC = Personal Cloud (or how to use your development machine with Vagrant and ...
 
Introduction to CFEngine
Introduction to CFEngineIntroduction to CFEngine
Introduction to CFEngine
 
Managing computational resources with Apache Mesos
Managing computational resources with Apache MesosManaging computational resources with Apache Mesos
Managing computational resources with Apache Mesos
 
Docker hub
Docker hubDocker hub
Docker hub
 

Similar a Introdução ao Domain-Driven Design

Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
Marcius Brandão
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
abacrazy
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
Ryan Padilha
 

Similar a Introdução ao Domain-Driven Design (20)

Treinamento DDD .Net
Treinamento DDD .NetTreinamento DDD .Net
Treinamento DDD .Net
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
clean code
clean codeclean code
clean code
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
DDD
DDDDDD
DDD
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Programando com prazer com DDD
Programando com prazer com DDDProgramando com prazer com DDD
Programando com prazer com DDD
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquitetura
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Clean Code na Prática
Clean Code na PráticaClean Code na Prática
Clean Code na Prática
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de Versão
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
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
 

Último

Último (8)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Introdução ao Domain-Driven Design

  • 2. 1. Introdução 2. Conceitos 3. Arquitetura 4. Artefatos de Domínio (exemplos em C#) 5. Aplicação e Processo
  • 3. O que é e não é DDD
  • 4. Algo que resolve tudo  Sempre a melhor solução  Um caminho fácil para seguir “Everything should be made as simple as possible, but not simpler.” Albert Einsten
  • 5. Design (Projeto) Orientado ao Domínio  Uma abordagem de desenvolvimento de software  Uma metodologia de arquitetura para a evolução de um sistema alinhado às necessidades do negócio  Software OO feito da maneira correta (Jak Charlton, DDD Step-by-step)
  • 6. “Atacando as Complexidades no Coração do Software” Eric Evans
  • 7. 1. Corrige a arquitetura do projeto. Diminui a complexidade e aumenta a manutenibilidade da aplicação 2. Você faz software para durar 3. Quem deve se preocupar com DDD? 4. “Durabilidade” do DDD 5. Outros *DDs
  • 8. O foco é no domínio, são as regras de negócio, os comportamentos  O foco NÃO é trabalhar com o banco de dados  Software de negócios com regras complexas “Domínio é a área de conhecimento do software”
  • 9. O foco deve ser o domínio e a lógica do domínio  Projetos complexos devem ser baseados em um modelo  Iniciar uma colaboração criativa entre a área técnica e os domain experts para iterativamente estarem mais perto do coração conceitual do problema
  • 10. Linguagem ubíqua, contextos delimitados, módulos, domain expert, domínio e modelo
  • 11. Ubiquitous = Ubíquo = Está em todo lugar Linguagem ubíqua é a linguagem usada pelo: Business expert = Domain expert = Product owner (Scrum) • O time inteiro utiliza a mesma linguagem • Não utilizar linguagem técnica para falar com o Domain expert • Proximidade entre o Domain expert e os desenvolvedores • A análise realizada deve ser natural para o Domain expert • É importante que todos do projeto conheçam o domínio • Substantivos = Classes • Verbos = Métodos, Serviços e etc.
  • 12. É relativo. Não tem padrão. Baseado em abstrações.  É usado para resolver problemas. Tem que ser útil.  Deve estar atualizado. Deve refletir no código.  Representa o domínio. Use POCOs (Plain Old CLR Objects)
  • 13. Pode ser assim: Ferramenta ajuda a manter seu modelo atualizado …Ou assim:
  • 15. Camadas devem estar separadas • Separação de responsabilidades • Arquitetura flexível Layers X Tiers Layers: Camadas lógicas Tiers: “Projetos do Visual Studio”
  • 16.
  • 17. Usuário pode ser outro sistema. Camada de apresentação
  • 18. Coordena as atividades (workflow) da aplicação. Transformação de objetos (DTOs). Transação, auditoria e segurança.
  • 19. “A camada de domínio é o coração do software”
  • 20. Persistência de dados. Conceitos transversais: autenticação, autorização, cache, gerenciamento de exceções, log, validação.
  • 21. Usuário pode ser outro sistema. Camada de apresentação Coordena as atividades (workflow) da aplicação. Transformação de objetos (DTOs). Transação, auditoria e segurança. “A camada de domínio é o coração do software” Persistência de dados. Conceitos transversais: autenticação, autorização, cache, gerenciamento de exceções, log, validação.
  • 22.
  • 23. Entidades, objetos de valor, agregações, fábricas, serviços e repositórios
  • 24. Objetos que tem significado no Domínio  Tem identidade  Exemplos: ◦ Cliente ◦ Carro ◦ Produto
  • 26. Não tem identidade para o negócio  São reconhecidos pelos seus atributos  Atributo diferente = objeto diferente  Imutáveis  Exemplos: ◦ Cores ◦ Coordenadas ◦ Endereços
  • 27. Abstração para objetos de valor Objeto de valor simples
  • 28.
  • 29.
  • 30. Reúne entidades e objetos de valor que fazem sentido no domínio  Raiz da agregação (Aggregate Root)  Regras de agregações: ◦ Todas as atualizações passam pela raiz ◦ Todas as referencias obtidas para os objetos recupera-se pela raiz ◦ Exclusão apaga todos os filhos da agregação ◦ Regras de negócio são garantidas pela raiz
  • 31.
  • 32.
  • 33. Resolvem problemas de negócio, mas não são entidades ou objetos de valor  Um bom serviço tem três caracteristicas: 1. A operação é relacionada a um conceito do domínio que não é naturalmente parte de uma entidade ou objeto de valor 2. A interface é definida baseada em outros objetos do modelo do dominio 3. A operação é Stateless
  • 34.
  • 35. Criam objetos de negócio  É responsabilidade de um objeto construir a si mesmo?  Regras complexas para construção  Fábrica cria objetos consistentes
  • 36.
  • 37. “Não tem banco de dados”  Persistence Ignorance  Representam uma lista de itens em memória  Não tem lógica de negócio. No máximo valida consistência do objeto. Assim como guardou deve ser recuperado  São especificados para Agregações, não para Entidades
  • 40. Fábricas criam os objetos  Repositórios: ◦ Inserem; ◦ Recuperam; ◦ Alteram; ◦ Destroem os objetos.
  • 41. Go DDD, go Agile!
  • 42.  Regras de negócio complexas  Atenção: ◦ Arquitetos geralmente trabalham em projetos complexos ◦ Projetos simples podem se tornar importantes para o negócio da empresa no futuro Use DDD na maior parte dos softwares que tem regra de negócio
  • 43. Não para o desenvolvimento em cascata (Waterfall). Recomendado desenvolvimento ágil  DDD aceita as mudanças. Software se torna altamente adaptável  Proximidade e contato com o Domain expert
  • 44.
  • 45.
  • 46. Autor André Zanatta Borgonovo azborgonovo@gmail.com @azborgonovo Links Recomendados http://domaindrivendesign.org/ http://microsoftnlayerapp.codeplex.com/ http://blog.lambda3.com.br/