Ejemplo de arquitectura ASP .NET
Patrón de diseño basado en dominios DDD
01 - Presentación
La capa de interfaz de usuario
API básica:
- El controlador "Muestra" se utiliza para DI y muestra de la clase CacheManager.
- El controlador "SampleAlt" se utiliza para demostrar el uso de "servicios" > "repositorio" > "UoW" > "EF"
02 - Dominio
La capa de gestión de datos.
Utilice la concepción de "módulo": los servicios interactúan con su implementación (Módulo: agregados/servicios [DDD])
DTO: Objeto de transferencia de datos (muestra: MyApp.Domain.DTO.SampleDataDTO).
El patrón de especificación (pronto).
"Select Builder": gracias a LINQ puede crear expresiones personalizadas para devolver directamente un DTO (muestra: MyApp.Domain.SampleModule.Aggregates.SampleDataSelectBuilder).
03 - Datos
La capa de acceso a datos
- Utilice EntityFramework (EF) con DbSet/Annotations para vincular un SQL/Tabla a una clase/objeto (ejemplo: MyApp.Domain.SampleModule.Aggregates.SampleData).
- El patrón Unidad de trabajo (UnitOfWork / UoW) agrega transacciones para la resolución de problemas de concurrencia (MyApp.Data.UnitOfWorkContext).
- El patrón de repositorio agrega una capa entre DbSet (devuelve IQueryable) con UoW y los datos utilizados en la capa "Dominio". La manipulación consultable es sensata, un Repositorio devuelve un Enumerable o una Entidad. (MiAplicación.Datos.Core.Repositorio && MiAplicación.Dominio.Core.IRepositorio)
04 - Infraestructura
La capa de gestión de aplicaciones
- CrossCutting: una capa se puede utilizar en todas las demás.
- La inversión del control.
- Inyección de dependencia (DI) y LifeTimeManager.