2010-11-09 31 views
1

J'ai des objets métier et des objets de contrat de données correspondants très similaires pour l'obtention de données via le service WCF.Un objet de gestion doit-il être informé de son objet de contrat correspondant?

Quel mécanisme dois-je utiliser pour obtenir des objets de contrat de données remplis à partir d'objets métier?

Dans un monde idéal, la couche de contrat de données doit-elle connaître la couche de gestion?

ou

devrait savoir la couche d'affaires de la couche de contrat de données?

ou

Faut-il une autre couche de cartographie qui a des méthodes statiques comme GetDataContractFromBusinessObject?

+0

Voir http://stackoverflow.com/questions/11681475/wcf-message-data-contract-dto-domain-model-and-shared-assemblies/15828836#15828836 qui explique (avec un exemple) comment les clients vont cassez si vous n'avez pas de couche de transformation. – Lijo

Répondre

2

Je suis un grand fan de la technique "couche de cartographie avec méthodes statiques" que vous mentionnez. Ensuite, vos objets métier et vos contrats de données ne dépendent pas l'un de l'autre.

0

Je vais souvent ajouter une classe dérivée pour gérer la consommation de données d'un magasin de sauvegarde spécifique dans ma couche de gestion.

Une autre option est une représentation de couche de données d'interface que la classe métier comprend. Et ensuite, votre couche de données implémente cette interface. Je préfère cette méthode car il est beaucoup plus simple de faire interagir votre couche de gestion avec une version abstraite de votre couche de données, puis de faire en sorte que votre couche de données comprenne vos objets métier.