¿Tiene sentido agrupar todas las interfaces de su capa de dominio (módulos, modelos, entidades, servicios de dominio, etc.) dentro de la capa de infraestructura? Si no es así, ¿tiene sentido crear un proyecto/componente "compartido" que agrupe todos estos en una biblioteca compartida? Después de todo, la definición de "capa de infraestructura" incluye "bibliotecas compartidas para capas de dominio, aplicaciones y UI".DDD: ¿Dónde guardar las interfaces de dominio, la infraestructura?
Estoy pensando en diseñar mi código base alrededor de las capas DDD: UI, Aplicación, Dominio, Infraestructura. Esto crearía 4 proyectos respetuosamente. Mi punto es que usted hace referencia a la capa de infraestructura desde la capa de dominio. Pero si define las interfaces en el proyecto de capa de dominio, digamos para IPost, tendrá una referencia circulur cuando tenga que hacer referencia al proyecto de capa de dominio del proyecto de infraestructura cuando esté definiendo el método IPostRepository.Save (IPost post) . Por lo tanto, la idea de "definir todas las interfaces en la biblioteca compartida".
Quizás los repositorios no deberían esperar que un objeto se guarde (IPostRepository.Save (publicación de IPost); en cambio, se esperan los params del objeto (que podría ser un conjunto largo de params en el Guardar()). , esto podría ser una situación ideal que muestra cuando un objeto está recibiendo demasiado complejo, y adicionales objetos de valor debe ser estudiado para ello.
Pensamientos?
Geobarteam excelente. Eso me dio un momento duh. Sí, definir interfaces en el dominio, los repositorios deberían implementarse en ensamblajes separados (MySqlProviver, MsSqlProvider, XmlProvider, etc.). Y algún tipo de Contenedor IOC (Castle Windsor I love) utilizado para conectarlo a la capa App. Perfecto. – eduncan911
En el caso de ASP.NET MVC, es realmente fácil inyectar el repositorio en el Controller (UI) capa) vía Castle Windosr. Steven Sanderson tenía un buen ejemplo de esto en ASP.NET MVC Framework Preview. -Driven Design Quick book He dice que UI, App y Domain pueden usar Infra. – eduncan911
El único problema que tengo con esto es que mi libro dice que Infraestructura nunca hace referencia a nada. UI-> Aplicación, dominio e Infra. Aplicación-> Dominio e Infra. Y, Dominio-> Infra. Sé que lo sé, se supone que son pautas de todos modos. – eduncan911