DDD - qui couche DTO devraient être mises en œuvre
Je me penche sur DDD alors, toutes mes excuses si ma question est naïve. Je pense que j'ai besoin d'utiliser l'Objet de Transfert de Données afin d'afficher des données pour les utilisateurs comme de nombreuses propriétés ne font pas partie de l'un quelconque de l'Entité /des Objets de Valeur.
Cependant, je ne suis pas sûr de l'endroit où cette DTO devrait être mis en œuvre dans un Domaine de Couche ou dans une Application de la Couche de Service. La DTO la mise en œuvre semble partie sur le Domaine, mais cela signifie que lorsque je crée une collection de Dto dans la Couche de Service et de passer à une Couche de Présentation, j'ai du Domaine de référence de la Couche dans la Couche de Présentation, ce qui semble erroné.
Quelle est la bonne façon de mettre en œuvre DTO à l'aide de DDD principes?
Je vous remercie pour toutes vos réponses. Cela rend les choses plus claires dans ma tête.
OriginalL'auteur user2105030 | 2015-07-15
Vous devez vous connecter pour publier un commentaire.
De le placer dans le Domaine de la Couche de Service. DTO est une sortie de cette couche, il un sens si vous le définir.
Ne mettez pas votre DTO dans le Domaine de la Couche. La Couche Domaine ne se soucie pas des choses à l'extérieur de la couche.
Oui un Domaine de la Couche de Service. Je pense que le DDD monde ont passer de la "Couche de Service" de "Domaine"de la Couche de Service. Je pense que cela fait beaucoup plus de sens de l'appeler spécifiquement un domaine de service de la couche aujourd'hui en raison de l'autre les couches de service apparaissant dernièrement.
OriginalL'auteur Yorro
Yorro est en droit de savoir où les placer DTO, mais je vous encourage à éviter "DTO état d'esprit". Ce mode de pensée entre en collision avec DDD façon de penser.
Réflexion au sujet de "j'ai besoin d'un DTO ici" est de penser à la technique de la représentation (comme plalx dit), c'est un niveau d'abstraction trop faible. Essayez un higer niveau de abtraction et de penser au sujet de votre domaine, l'utilisateur tâches et de votre INTERFACE utilisateur.
Avez-vous besoin d'obtenir des données d'affichage pour l'utilisateur? L'amener à l'INTERFACE utilisateur par l'intermédiaire d'un Service qui retournent un spécifique YourViewInfo classe.
Avez-vous besoin d'envoyer des données à un Service à accomplir une tâche? Envoyer un spécifique TaskMessageInfo classe ou d'une Commande spécifique de la classe.
Lorsque vous commencez à la modélisation de l'intérieur de ces classes, c'est quand vous devriez commencer à penser à sa représentation technique; alors vous pouvez atteindre à la conclusion que pourrait être, c'est à dire, la DTO des classes pour plus de commodité.
Penser de cette façon vous aide à modéliser le système et ne pas déclencher des questions comme
Pas de. Mon point est que, dans un domaine contextualisée de l'architecture (DDD) DTO ne veut pas dire rien de sorte que vous ne pouvez pas demander à propos, où sont-ils placés. Vous pourriez parler de Dto si vous êtes à la généralisation de concepts pour expliquer quelque chose, mais, dans votre architecture, vous ne devriez pas modèle Otd; vous le modèle le contexte et le contexte qui détermine l'endroit où est placé le modèle. Mon point est que la question n'a pas de sens dans un DDD monde.
OriginalL'auteur jlvaquero
DTO et le Domaine sont différentes couches.
Donc, il exige une cartographie de l'un à l'autre et le plus souvent il est fait dans ce qui est appelé les Services d'Application de la couche.
Jetez un oeil à la suite des articles pour aller plus loin avec les DTO et de la dispersion:
OriginalL'auteur FireAlkazar