Estoy buscando comentarios sobre mi arquitectura de aplicaciones CMS basada en ASP.NET MVC."pautas" de la arquitectura de aplicaciones ASP.NET MVC
Modelo de dominio: depende de nada más que las clases del sistema para definir los tipos. Por ahora, mayormente anémico.
capa de repositorio - abstraído acceso a los datos, sólo el llamado por la capa de servicios
servicios de la capa - realiza la lógica de negocio en los modelos de dominio. Expone modelos de vista a los controladores.
ViewModelMapper - servicio que se traduce de ida y vuelta entre la vista de modelos y modelos de dominio
Controllers - super "policía de tránsito" funcionalidad estilo fino que interactúa con la capa de servicio y sólo habla en términos de modelos de vista, nunca modelos de dominio
Mi modelo de dominio se utiliza principalmente como objetos de transferencia de datos (DTO) y tiene una lógica mínima en este momento. Estoy descubriendo que esto es bueno porque no depende de nada (ni siquiera las clases en la capa de servicios).
La capa de servicios es un poco complicada ... Solo quiero que los controladores tengan acceso a los modelos de vista para facilitar la programación de la GUI. Sin embargo, algunos de los servicios necesitan hablar entre ellos. Por ejemplo, tengo un servicio de eventos que notifica a otros servicios de escucha cuando se etiqueta el contenido, cuando se crean publicaciones de blog, etc. Actualmente, los métodos que toman modelos de dominio como entradas o los devuelven están marcados como internos para que no puedan ser utilizados por los controladores.
¿Suena como una exageración? No hay suficiente abstracción? Principalmente estoy haciendo esto como un ejercicio de aprendizaje al ser estricto con la arquitectura, no con un producto real, así que por favor no envíen comentarios como "el derecho depende de lo que quieran hacer".
gracias!
El hecho de que hayas logrado decir tanto en pocas palabras debería darte una pista de que estás en el camino correcto. – pdr