Criar classe usando DDD

22/02/2013

0

Escrever uma classe em C # baseado em duas tabelas, incluindo a conexão com o banco de dados, utilizando os conceitos de DDD (Domain Driven Design), e os testes de unidade apropriados.

Abaixo as tabelas:

Tables

Order

IdOrder

INT(pk)

dataOrder

DATETIME

nmOwner

VARCHAR(50)


OrderItem

IdOrderItem

INT(pk)

IdOrder

INT(fk)

valorItem

MONEY
Pjava

Pjava

Responder

Posts

22/02/2013

Rodrigo Odasaki

? ? ?
Responder

22/02/2013

Pjava

Eu passei as tabelas e como eu crio a(s) classe(s) baseadas nessas tabelas, usando DDD?
Responder

04/03/2013

Code Easy

Vamos a implementação seguindo o DDD. Como não sei qual é o domínio da sua aplicação vou montar o exemplo como Faturamento, mas se não for, depois você muda:
1) Crie um projeto de domínio do tipo Class Library chamado Faturamento.Domain ou em português, Faturamento.Dominio. Eu particularmente prefiro em inglês;
2) Crie uma pasta chamada Entity ou Entidade para armazenar as classes de negócio;
3) Crie uma classe chamada Order ou Ordem na pasta Entity;
4) Faça o mesmo para a classe ItemDaOrdem ou ItemOrdem, como preferir. Mas se for usar preposição, use para todas as classes.

Obs: os nomes das propriedades devem ser os mais descritivos possível, pois é isso que visa o DDD, ser o mais informativo possível, ou seja, sem abreveações, mesmo que o nome fique grande mais. Ex.:
a coluna IdOrder ficará a propriedade Identificador;
A coluna dataOrder virará a propriedade DataDaOrdem;
A coluna nmOwner virará a propriedade e assim por diante.

Qualquer dúvida, posso te mandar uns exemplos e material. Meu email é contato@codeiteasy.com.br
Responder

04/03/2013

Code Easy

Vamos a implementação seguindo o DDD. Como não sei qual é o domínio da sua aplicação vou montar o exemplo como Faturamento, mas se não for, depois você muda:
1) Crie um projeto de domínio do tipo Class Library chamado Faturamento.Domain ou em português, Faturamento.Dominio. Eu particularmente prefiro em inglês;
2) Crie uma pasta chamada Entity ou Entidade para armazenar as classes de negócio;
3) Crie uma classe chamada Order ou Ordem na pasta Entity;
4) Faça o mesmo para a classe ItemDaOrdem ou ItemOrdem, como preferir. Mas se for usar preposição, use para todas as classes.

Obs: os nomes das propriedades devem ser os mais descritivos possível, pois é isso que visa o DDD, ser o mais informativo possível, ou seja, sem abreveações, mesmo que o nome fique grande mais. Ex.:
a coluna IdOrder ficará a propriedade Identificador;
A coluna dataOrder virará a propriedade DataDaOrdem;
A coluna nmOwner virará a propriedade e assim por diante.

Qualquer dúvida, posso te mandar uns exemplos e material. Meu email é contato@codeiteasy.com.br
Responder

04/03/2013

Code Easy

Esqueci de falar sobre a camada de dados.
1) Crie um outro projeto chamado Faturamento.Infrastruture ou Faturamento.Infraestrutura para armazenar as classes de dados.
2) Crie uma pasta chamada Repository ou Repositorio
3) Crie uma classe chamada OrdemRepository dentro da pasta Repository
4) crie os métodos da ordem na classe de repositório (ObterTodos, Inserir, Excluir, Alterar, ObterPelaChave, etc).
Obs: Como boa prática, Você pode criar uma interface de Repositorio para criar o padrão de métodos que todos os repositórios irão ter (ObterTodos, Inserir, Excluir, Alterar, ObterPelaChave, etc)

Para os repositórios, aconselho usar um ORM (ex.: NHibernate ou Entity Framework).

Para as classes de teste, crie um outro projeto só para isso.
Responder

05/03/2013

Pjava

Code, meu note quebrou e não consegui ainda testar o seu exemplo. Tão logo eu o tenha em minhas mãos, testarei e postarei o resultado. De antemão, te agradeço.
Responder

30/06/2013

Joel Rodrigues

Fala, PJava, li um artigo muito interessante recentemente sobre a união do DDD com TDD no desenvolvimento de uma aplicação. Achei bem legal a abordagem, que criava as classes com base em testes que foram feitos sobre alguns requisitos do sistema.

Você chegou a implementar algo nesse caminho? Gostaria de compartilhar a experiência conosco?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar