Les services devraient-il toujours revenir Otd, ou peuvent-ils aussi le retour des modèles de domaine?

Je suis (re)conception de l'application à grande échelle, nous utilisons multi-couche de l'architecture, basé sur DDD.

Nous avons MVC avec couche de données (mise en œuvre de référentiels), domaine de la couche (définition de modèle de domaine et des interfaces - référentiels, des services, de l'unité de travail), de la couche de service (mise en œuvre de services). Jusqu'à présent, nous utilisons des modèles de domaine (pour la plupart des entités) à travers toutes les couches, et nous utilisons des Otd seulement que les modèles de vue (dans le contrôleur, le service renvoie au modèle du domaine(s) et le contrôleur crée la vue du modèle, qui est passé à la vue).

J'ai réussit à lire de nombreux articles sur l'utilisation, ne pas utiliser, de la cartographie et de passage Otd. Je comprends qu'il n'y a pas de réponse définitive, mais je ne suis pas sûr si c'est ok ou pas retourner au domaine des modèles de services aux contrôleurs. Si je retourne modèle de domaine, il est encore jamais passé à la vue, puisque le contrôleur crée toujours de la vue spécifique du modèle de vue - dans ce cas, il semble légitime. D'autre part, il ne se sent pas à droite lorsque le modèle de domaine feuilles d'affaires de la couche (couche de service). Parfois, les besoins en services pour renvoyer des données de l'objet qui n'était pas définie dans le domaine, puis nous soit nécessaire d'ajouter de nouveaux objets pour le domaine qui n'est pas mappé, ou créer POCO objet (ce qui est laid, car certains services de retourner les modèles de domaine, certains efficacement retour Otd).

La question est de savoir si nous avons strictement l'utilisation des modèles de vue, est-il ok pour revenir domaine de modèles de tous les contrôleurs, ou faut-il toujours utiliser les Dto pour la communication avec la couche de service? Si oui, est-il ok pour ajuster les modèles de domaine basé sur ce que les services de besoin? (Franchement, je ne pense pas, étant donné que les services devraient consommer ce domaine est.) Si l'on doit strictement Otd, devraient-ils être définis dans la couche de service? (Je crois.) Parfois, il est clair que nous devrions utiliser les Dto (par exemple, lorsque le service effectue beaucoup de la logique d'entreprise et crée de nouveaux objets), parfois il est clair que nous devrions utiliser seulement les modèles de domaine (par exemple, lorsque l'Appartenance à des retours de service anémique Utilisateur(s) - il semble qu'il ne serait pas beaucoup de sens pour créer des DTO qui est le même que le modèle de domaine), mais je préfère la cohérence et les bonnes pratiques.

Article Domaine vs DTO vs ViewModel - Comment et Quand les utiliser? (et aussi quelques autres articles) est très similaire à mon problème, mais il n'a pas répondu à cette question(s). Article Dois-je mettre en œuvre des Otd dans un modèle de référentiel avec EF? est également similaire, mais il n'a pas affaire à DDD.

Avertissement: je n'ai pas l'intention d'utiliser le design pattern seulement parce qu'il existe et qu'il est fantaisie, d'autre part, je tiens à utiliser des modèles et des pratiques aussi parce qu'il contribue à la conception de l'ensemble de la demande, aide à la séparation des préoccupations, de même tohugh l'aide d'un modèle particulier n'est pas "nécessaire", au moins pour le moment.

Comme toujours, je vous remercie.

  • Pour les gars qui vote pour le proche - s'il vous plaît pourriez-vous expliquer pourquoi voulez-vous fermer cette question d'opinion sur la base?
  • Parce que c'EST l'avis de la base. Bonne architecture peut-être due à un consensus, mais il est encore l'opinion. Ce n'est pas un bon ajustement pour le Q&Un format de soi, car elle tend à susciter un débat. Essayez CodeReview.
  • L'examen est une question et une réponse du site de partage de code du projet sur lequel vous travaillez pour l'examen par les pairs." - ma question n'est pas du tout sur le code, de sorte qu'il serait hors sujet là;: "Focus sur les questions à propos d'un problème réel que vous avez rencontrés. D'inclure des détails sur ce que vous avez essayé et exactement ce que vous essayez de faire." - Je suis expert problème, j'ai essayé de résoudre. Pourriez-vous être plus précis, quel est le problème avec cette question, car beaucoup de questions sont sur l'architecture et de telles questions sont apparemment ok, donc je peux éviter de nouveaux malentendus?
  • Je vous remercie de poser cette question. Vous avez fait une faveur pour moi, et m'a rendu la vie beaucoup plus simple et heureux, je vous remercie.
  • ne me dérange pas SI Proche de la Mafia, votre question est légitime.
  • Grand merci pour cette question
  • Un bon beaucoup de questions sont opinion fondée, par définition, et qui n'est pas diminuer la valeur de la question et la réponse. En particulier, toute question qui se rapporte à des modèles de conception.