est-il une bonne pratique de référencer ma bibliothèque de classe de couche de domaine applications Web à l'application de service WCF. p>
Cela me donne un accès facile aux classes déjà existantes sur mon modèle de domaine afin que je n'ai pas besoin de ré-définir des classes similaires à utiliser par le service WCF P>
D'autre part, je n'aime pas le couplage qu'il crée entre l'application et le service et je suis curieux s'il pouvait créer des difficultés pour moi à long terme. P>
Je pense aussi avoir des classes dédiées à mon application WCF serait plus efficace car ces classes ne contiendront que les membres qui seront utilisés par le service et rien d'autre. Si j'utilise les classes de ma couche de domaine, il y aura de nombreux champs dans les classes qui ne seront pas utilisés par le service et cela entraînera un transfert de données inutile. P>
J'apprécierai si vous pouvez me donner vos pensées de votre expérience p>
3 Réponses :
Non, ce n'est pas le cas. Les entités sont toutes sur le comportement. Data Strong> Le contrat est tout autour ... Données. De plus, comme vous avez mentionné, vous ne voudriez pas les coupler ensemble, car cela vous permettra de réagir pour changer très bientôt. P>
Je suis personnellement froncé sur des objets de domaine directement directement à travers WCF. Comme le dit Krzysztof, il s'agit d'un contrat de données et non d'un contrat sur le comportement de la chose que vous passez sur le fil. p>
Je fais généralement ceci: p>
Mettre de côté la pureté conceptuelle de ce qu'un "contrat de données" est de côté, si vous commencez à passer des entités autour de vous, vous configurez votre entité partagée pour tirer dans différentes directions de conception de chaque côté de la limite du WCF. Inévitablement, vous vous retrouverez avec des comportements qui n'appartiennent qu'à un côté, voire pire - doivent exposer des méthodes qui font de la même chose, mais de manière différente pour chaque côté de la limite du WCF. Cela peut potentiellement devenir très désordonné à long terme. p>
C'est parfait; Souhaitez-vous avoir un exemple ou vu un exemple de ceci implémenté (lien, blog, etc.)? Il y a quelques questions pour moi qui pourraient être répondues si j'ai vu un petit exemple de cela dans la mise en œuvre.
Pour ceux qui tombent toujours sur ce poteau, comme je ... p>
Checkout Ce site . C'est une bonne explication sur le sujet. P>
Conclusion: passer à travers l'effort de garder les limites de votre architecture claire et propre. Vous obtiendrez un certain jour un jour;) p>