L’image suivante décrit comment une application peut être mise en couche dans de multiple modules. Ces modules peuvent communiquer les un avec les autre par des messages bien définis et des contrats définis dans le module de la couche d’Infrastructure.
En outre, ils récupèrent et manipulent des objets de données par les Services WCF qui sont convenus pour le DDD (appelé WCF RIA Services). Ces objets de données sont souvent appelés des entités et peuvent représenter votre « Domain Model » et sont perssister dans le data store en utilisant « Data Access Objects ».
WCF RIA Services fournit des voies pour vous pour manipuler vos entités dans le client de la même façon comme vous feriez dans le serveur , des données de changement et des changements de soumission, mettre à jour des données ou soumettre des modification.
Une telle application compte souvent sur l’infrastructure de côté de serveur pour l’authentification et l’autorisation, l’enregistrement et la gestion des erreurs. Du côté client ils comptent sur des structures que l’aide réduit, harmonise et réutilise le code dans le développement de module tant à la logique de présentation qu’aux vues de présentation. Quelques couches peuvent avoir les composants qui dépendent de composants d’autres couches.
Dans de tels cas, nous réduisons ces dépendances avec des conteneurs IoC ou des structures semblables comme MEF.
Le développement dans une architecture N-Tiers peut être ennuyeux quand vous voulez réutiliser le code qui doit être spécifié tant du côté serveur que du côté client quand il s’agit de la validation ou de la logique métier.
Notez que la couche de mapping entre les « Data Entities » et le « Domain entities ». cette couche est optionnelle et peut être utile quand vous ne voulez pas exposer vos « data entities » comme « domain model ». Cela aide à réaliser l’ignorance de persistance et vous permet aussi de créer des classes simples et légères pour transporter des données. Pour la simplicité, je ne vais pas utiliser cette couche aux postes prochains, donc mes entités de données seront mes entités de domaine.
Suite : prochain poste
PS : cet article est une adaptation en français d’une suite d’articles par Manuel FelÃcio
Kamel DJELLAL
Chef de projet
EDIS CONSULTING – GROUPE UBISIDE
http://www.ubiside.fr/