J'ai vu un tas de questions relatives à la cartographie des Otd à des Objets du Domaine, mais je n'ai pas l'impression d'avoir répondu à ma question. J'ai utilisé de nombreuses méthodes d'avant et d'avoir mon propre avis, mais je suis à la recherche de quelque chose d'un peu plus concret.
La Situation:
Nous avons de nombreux objets de domaine. Nous sommes à l'aide d'un AAPC modèle, de sorte que nos objets de domaine peut être assez complexe et elles contiennent leur propre accès aux données. Vous ne souhaitez pas passer ces derniers autour de sur le fil. Nous allons écrire des nouveaux services de données de retour dans un certain nombre de formats (.Net, JSON, etc.). Pour cela (et pour d'autres raisons) nous sommes également à la création d'un maigre, objet de transfert de données pour passer sur le fil.
Ma question est comment la DTO de Domaine et objet connecté?
Ma première réaction est d'utiliser un Fowler, DTO modèle-type de solution. J'ai vu que cela fait de nombreuses fois et il se sent le droit pour moi. L'objet de domaine ne contient aucune référence à la DTO. Une entité extérieure (un "mapper" ou "assembleur") est appelé à créer un DTO à partir d'un Objet du Domaine. Normalement il y a un ORM sur l'objet du domaine côté. L'inconvénient de cette est que le "mapper" tend à devenir extrêmement complexe pour toute situation réelle, et peut être très fragile.
Une autre idée a mis en avant pour le Domaine de l'Objet pour "contenir" la DTO, puisque c'est juste un maigre objet de données. Le Domaine des propriétés de l'Objet serait à l'interne de référence de la DTO des propriétés et pourrait juste retour de la DTO si demandé. Je vois pas de problèmes avec cela, mais il se sent mal. J'ai vu quelques articles où les gens à l'aide de NHibernate est apparu à utiliser cette méthode.
Il existe d'autres moyens? Est l'un des moyens ci-dessus mérite l'aide? Si oui ou si non, pourquoi?
Merci pour toute la perspicacité à l'avance.