Exemple d'architecture ASP .NET
Conception basée sur le domaine de modèles DDD
01 - Présentation
La couche d'interface utilisateur
API de base :
- Le contrôleur "Sample" est utilisé pour DI et l'échantillon de la classe CacheManager.
- Le contrôleur "SampleAlt" est utilisé pour démontrer l'utilisation de "services" > " référentiel " > " UoW " > " EF "
02 - Domaine
La couche de gestion des données
Utiliser la conception "module" : interfaces de services avec leur implémentation (Module : agrégats/services [DDD])
DTO : Objet de transfert de données (exemple : MyApp.Domain.DTO.SampleDataDTO).
Le modèle de spécification (bientôt).
"Select Builder" : Grâce à LINQ vous pouvez créer une expression personnalisée pour renvoyer directement un DTO (exemple : MyApp.Domain.SampleModule.Aggregates.SampleDataSelectBuilder).
03 - Données
La couche d'accès aux données
- Utilisez EntityFramework (EF) avec DbSet/Annotations pour lier un SQL/Table à une classe/un objet (exemple : MyApp.Domain.SampleModule.Aggregates.SampleData).
- Le modèle Unit Of Work (UnitOfWork / UoW) ajoute des transactions pour la résolution des problèmes de concurrence (MyApp.Data.UnitOfWorkContext).
- Le Repository Pattern ajoute une couche entre DbSet (retour IQueryable) avec UoW et les données utilisées dans la couche "Domain". La manipulation interrogeable est judicieuse, un référentiel renvoie un Enumerable ou une Entity. (MyApp.Data.Core.Repository && MyApp.Domain.Core.IRepository)
04 - Infrastructures
La couche de gestion des applications
- CrossCutting : une couche peut être utilisée dans toutes les autres.
- L'inversion du contrôle.
- Injection de dépendances (DI) et LifeTimeManager.