Freigeben des Domänenmodells mit dem WCF-Dienst

8

Es empfiehlt sich, die Klassenbibliothek der Webanwendung-Domänenschicht auf die WCF-Dienstanwendung zu verweisen.

Dadurch habe ich einfachen Zugriff auf die bereits vorhandenen Klassen in meinem Domänenmodell, so dass ich keine ähnlichen Klassen für den WCF-Dienst neu definieren muss

Andererseits mag ich nicht die Kopplung, die es zwischen der Anwendung und dem Service schafft, und ich bin neugierig, wenn es auf lange Sicht Schwierigkeiten für mich schaffen könnte.

Ich denke auch, dass die Verwendung von Klassen für meine WCF-App effizienter wäre, da diese Klassen nur die Mitglieder enthalten, die vom Dienst verwendet werden, und nichts anderes. Wenn ich die Klassen von meinem Domain-Layer verwende, gibt es viele Felder in den Klassen, die vom Service nicht verwendet werden, und es wird unnötige Datenübertragung verursachen.

Ich freue mich, wenn Sie mir Ihre Gedanken aus Ihrer Erfahrung geben können

    
kaivalya 23.09.2009, 21:21
quelle

3 Antworten

2

Ich persönlich missbrauche die direkte Weitergabe von Domänenobjekten direkt über WCF. Wie Krzysztof sagte, handelt es sich um einen Datenvertrag, nicht um einen Vertrag über das Verhalten der Sache, die du über die Leitung passierst.

Normalerweise mache ich das:

  • Definieren Sie die Datenverträge in ihrer eigenen Baugruppe
  • Der Dienst hat einen Verweis auf die Datenkonvertierungsassembly und die Geschäftssentitätsassembly.
  • Erstellen Sie Erweiterungsmethoden im Service-Namespace, die die Entitäten ihren entsprechenden Datenverträgen zuordnen und umgekehrt.

Setzen Sie die konzeptionelle Reinheit dessen, was ein "Datenvertrag" zur Seite ist, fest. Wenn Sie beginnen, Entitäten in der Umgebung weiterzuleiten, richten Sie Ihre gemeinsame Entität so ein, dass sie auf jeder Seite der WCF-Grenze unterschiedliche Entwurfsrichtungen ziehen. Zwangsläufig werden Sie mit Verhaltensweisen enden, die nur zu einer Seite gehören, oder noch schlimmer - Methoden offenlegen müssen, die konzeptionell dasselbe tun, aber auf eine andere Art und Weise für jede Seite der WCF-Grenze. Es kann langfristig sehr unordentlich werden.

    
Daniel Auger 23.09.2009, 21:52
quelle
4

Nein, ist es nicht. Bei den Entitäten dreht sich alles um das Verhalten. Daten Vertrag dreht sich alles um ... Daten. Plus, wie Sie erwähnt haben, würden Sie nicht wollen, sie zusammen zu koppeln, weil es Ihre Fähigkeit verkrümmen wird, auf Änderung sehr bald zu reagieren.

    
Krzysztof Kozmic 23.09.2009 21:29
quelle
4

Für diejenigen, die immer noch über diesen Beitrag kommen, wie ich ....

Überprüfen Sie diese Website . Es ist eine gute Erklärung zu dem Thema.

Fazit: Gehen Sie durch die Bemühungen, die Grenzen Ihrer Architektur klar und sauber zu halten. Sie werden eines Tages etwas dafür bekommen;)

    
Mevius 14.06.2012 19:28
quelle

Tags und Links