Pregunta

Tengo una solución VS, con los siguientes proyectos.

-GUI
-DataAccess
-BusinessLogic
-BusinessObjects

pero ¿dónde debería residir la clase de modelo principal? Esto suele ser un caché de un conjunto de objetos que son los resultados de la capa de acceso a datos y la GUI que usa cuadrículas virtuales para ver datos dentro del modelo. La pregunta sería la misma usando MVC o MVP

pensamientos?

¿Fue útil?

Solución

Esta es una pregunta subjetiva, pero a menudo para garantizar que los objetos de su modelo no tengan dependencias directas de la infraestructura, las personas a menudo los colocan en un proyecto separado. también debe considerar qué otros proyectos podrían usar estos objetos modelo.

Otra opción para dividir la funcionalidad en unidades desplegables separadas (ensamblajes) es para que los equipos puedan funcionar de manera más independiente. Proyectos separados basados ??en la frecuencia de despliegue y la autonomía del equipo.

Por último, he visto algunos proyectos en los que los objetos del modelo se invocaron de forma remota (como con la comunicación remota .NET) y se presentaron en un servidor de aplicaciones separado del servidor web. Realmente no recomiendo este enfoque, pero es una opción.

Si no planea reutilizarlos, y es consciente del hecho de que colocarlos en el mismo ensamblado le permite crear dependencias cruzadas con cualquier otra cosa definida en ese proyecto, pero eres lo suficientemente inteligente como para no hacerlo, puedes colocarlos a todos en el mismo proyecto.

Dicho esto, el 99% del tiempo tengo estos proyectos:

  • UI
  • Core
  • Persistencia
  • Pruebas

Pero aún debe tener en cuenta las necesidades de su proyecto.

Otros consejos

Tiendo a tener

  • Justice.Project.Core : el modelo de dominio POCO, es decir, objetos de negocios)
  • Justice.Project.Data : asignaciones de NHibernate, etc., donde reside el esquema de persistencia
  • Justice.Project.Services - repositorios, así como la lógica de negocios que no pueden encajar fácilmente en los objetos de negocios
  • Justice.Project.(Web|UI)

El modelo es , o debería ser , los objetos comerciales.

Mis soluciones tienen 3 proyectos (que no son de prueba)

  1. UI - obvio
  2. Núcleo: todos los objetos de dominio y lógica empresarial
  3. Acceso a datos: patrón de repositorio para llenar / guardar objetos de modelo
  

acepto que los objetos modelo entren   POCO así que digamos que tengo una orden   objeto. Mi pregunta es donde tengo   la clase que almacena una colección de   pedidos ??

Eso depende de su negocio. Lo más probable es que tenga una colección de pedidos en algunos lugares diferentes ...

En su objeto de cliente, cada cliente debe tener una colección de pedidos, por lo que tendrá uno allí.

Si tiene departamentos, cada departamento debe tener una colección de pedidos que hayan creado.

Si tiene almacenes, cada almacén puede tener una colección de pedidos que son responsables de cumplir.

Algunos objetos no tienen padre, y eso está bien. En mi sistema, tenemos clientes. El propietario real de los clientes somos nosotros (el negocio), pero no hay "Nosotros". objeto en el sistema. Si está buscando obtener una lista de sus clientes (en nuestro caso), consultaremos el repositorio.

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

Lo mismo podría aplicarse a sus pedidos.

Recomiendo revisar este libro DDD: http: //www.amazon .pc.

scroll top