Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/01/2014, 03:00
thanos
 
Fecha de Ingreso: octubre-2012
Ubicación: España
Mensajes: 30
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: Consejo sobre Arquitectura en MVC con Repositorios.

Hola, yo no soy informático ni me dedico a ello, sólo soy aficionado pero en mi opinión buscas hacer una aplicación con una arquitectura domain driven design, si buscas en internet sobre esta arquitectura verás bastantes ejemplos sobre repositorios y las capas que lleva. Yo de lo que he sacado en claro de lo que llevo leído lo hago así:

- Capa DAL o acceso a datos. (referencia a entity framework y a la capa Core). Aquí sólo pongo una clase que hereda de DbContext y que implementa una interfaz que está situada en la capa Core.

-Capa Core o de dominio. (referencia a entity framework). Aquí defines tus entidades y te planteas cuales de tus entidades serán agregados, objetos-valor o entidades raíz para tenerlo claro a la hora de implementar la capa de aplicación. Además de las entidades aquí pones también la interfaz que implementa la clase de la capa de acceso a datos y las interfaces que implementarán los servicios de la capa de aplicación. Mediante estas interfaces es como tendrás acceso a la base de datos y a la capa de aplicación.

-Capa de Aplicación. (referencia a entity framework y a Core). Aquí van los servicios osea, los insertar, eliminar... e implementan las interfaces estas de la capa Core. Aquí es donde tienes que tener claro lo de los agregados porque para acceder al agregado debes hacerlo desde la entidad raíz.

-Capa de Infraestructura Transversal. (referencia a ninject en tu caso yo lo hago con Unity y a Core). Aquí según he leído es donde se pone lo relacionado con el Ioc, envío de mails...

-Capa de Presentación. (referencia a Core y a Infraestructura Transversal). Aquí está claro lo que va.

También puedes poner capa de servicios distribuídos si tienes webservices. Si te fijas en las referencias ves que sólo tiene referencia a Core o a Inf. Transversal pero claro también necesitas las dll de aplicación y dal para que funcione. Yo en lugar de agregar la referencia lo que hago es abrir las propiedades de las capas de Aplicación y de acceso a datos y en los eventos de compilación en la parte que pone línea de comando del evento posterior a la compilación pongo esto:

copy /Y "$(SolutionDir)ShiftsOfWork.Dal\bin\Debug\ShiftsOf Work.Dal.dll" "$(SolutionDir)ShiftsOfWork.Presentation\bin"

Este comando copia la dll de la capa de acceso a datos en la capa de presentación después de que compilas el proyecto. Como también la necesitas en la capa de Inf. Transversal, pues pones debajo el mismo comando cambiando el Presentation por Inf. Transversal. En la capa de Aplicación haces igual. Si lo haces así, acuérdate de incluir estas dll en el proyecto desde el visual studio porque si no las incluyes al publicar el proyecto no te las añade.

Más o menos esto es lo que llevo yo sacado en claro pero ya te digo ni soy profesional ni nada, sólo me dedico a leer por curiosidad y gusto así que si alguien con una formación más adecuada puede orientarte mejor pues también me vendría bien a mi.
Saludos