Pergunta

Eu tenho uma solução VS, com os seguintes projectos.

-gui
-DataAccess
-BusinessLogic
-BusinessObjects

mas onde deve o principal reside classe de modelo? Este é geralmente um cache de um conjunto de objectos que são o resultado da camada de acesso a dados e a interface gráfica utilizando redes virtuais para ler os dados no interior do modelo. A questão seria a mesma coisa usando MVC ou MVP

pensamentos?

Foi útil?

Solução

Esta é uma questão subjetiva, mas muitas vezes para impor que seus objetos de modelo não tem dependências diretas à infra-estrutura, as pessoas muitas vezes colocá-los em um projeto separado. você também precisa considerar o que outros projetos podem usar esses modelo objetos.

Outra opção para dividir a funcionalidade em unidades separadas implementáveis ??(conjuntos) é de modo a que as equipas podem funcionar de modo mais independente. projetos separados com base na frequência de implantação e equipe de autonomia.

Finalmente eu vi alguns projetos onde os objetos do modelo foram invocados remotamente (como com .NET comunicação remota) e servido em um servidor de aplicativos separado do servidor web. Eu realmente não recomendo essa abordagem, mas é uma opção.

Se você não planeja reutilizá-los, e você está ciente do fato de que colocá-los no mesmo assembly permite que você crie dependências cruzadas com qualquer outra coisa definida nesse projeto, mas você está suficientemente inteligente para não fazer isso, você pode colocá-los todos no mesmo projeto.

Dito isso, 99% do tempo eu tenho esses projetos:

  • UI
  • Núcleo
  • Persistência
  • testes

Mas você ainda tem que tomar as suas necessidades do projeto em conta.

Outras dicas

I tendem a ter

  • Justice.Project.Core - o modelo de domínio POCO - ou seja, objetos de negócios)
  • Justice.Project.Data - NHibernate mapeamentos etc., onde reside o esquema de persistência
  • Justice.Project.Services - repositórios, bem como a lógica de negócio que não pode ser facilmente se encaixam os objetos de negócios
  • Justice.Project.(Web|UI)

O modelo é - ou deve ser -. Os objetos de negócios

As minhas soluções tem 3 projectos (não-teste)

  1. UI - óbvio
  2. Núcleo - todos objetos de domínio e lógica de negócios
  3. Acesso a dados - padrão Repository para preencher / poupança Modelo objetos

i concordam que os objetos do modelo entrar em POCO. Então, digamos que eu tenho uma Ordem objeto. A minha pergunta é onde eu tenho a classe que armazena uma coleção de ordens ??

Isso depende de seu negócio. Muito provavelmente você vai ter uma coleção de pedidos em alguns lugares diferentes ...

Em seu objeto cliente, cada cliente deve ter um conjunto de ordens, então você teria um lá.

Se você tem departamentos, cada departamento deve ter um conjunto de ordens que eles criaram.

Se você tem armazéns, cada armazém pode ter uma coleção de pedidos que eles são responsáveis ??por cumprir.

Alguns objetos não têm pai, e isso é bom. No meu sistema, temos clientes. O proprietário do mundo real dos clientes nós (o negócio) é, mas não há nenhum objeto "Us" no sistema. Se você estiver olhando para obter uma lista de seus clientes (no nosso caso) que consultar o repositório para ele.

IRespoistory<Client> repository = new Repository<Client>();
IList<Client> clients = repository.GetAllClients();

O mesmo poderia se aplicar a suas ordens.

Eu recomendo verificar este livro DDD: http://www.amazon .com / gp / produto / 0321268202 / ref = s9k2a_c1_at1-rfc_p-3237_p? pf_rd_m = ATVPDKIKX0DER & pf_rd_s = centro-1 & pf_rd_r = 1BWAPTN787CTZXJDV5BA & pf_rd_t = 101 & pf_rd_p = 463383351 & pf_rd_i = 507846

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top