2012-04-12 3 views
1

Ich schreibe gerade eine Mid/Large Silverlight-Anwendung.Datenvertrag oder Kundenmodell?

Meine aktuelle Architektur ist wie folgt.

Auf der Serverseite habe ich Entitätsobjekte, die aus einer bestehenden Datenbank mit dem Entity Framework ORM erstellt werden.

Ich habe WCF-Dienste, deren Methoden Datenkontrakte zurückgeben, die meine Entitätsobjekte für die Client silverlight-Anwendung darstellen.

Meine Frage ist die Datacontract auf recieving auf der Seite sollte Silverlight i 1) in MVVM dieses Datacontract als mein Modell verwenden 2) wandeln die Datacontract in ein Objekt Client-Seite Modell in MVVM zu verwenden.

Option 1: Ich bin mir nicht sicher, ob es allgemein als schlechte Praxis angesehen wird, Datacontacts auf der Clientseite als Modelle zu betrachten, da es sich letztendlich um WCF-Nachrichtentypen handelt.

Option 2: Diese Option hält mich vollständig vom Server entkoppelt und ermöglicht es mir, meinen Code aus einem behavior Driven Ansatz zu entwickeln.

+0

Haben Sie in Betracht gezogen, WCF RIA Services zu verwenden, die mit Silverlight erstellt wurden? http://msdn.microsoft.com/en-us/library/ee707344(v=vs.91).aspx –

+0

Ja, aber unglücklicherweise wurde die Entscheidung getroffen, Ria nicht zu verwenden, da diese Dienste nur für Silverlight verfügbar sind. – caa

Antwort

2

Sie haben Recht, wenn Sie die Datenverträge für WCF als Datenübertragungsobjekte betrachten, die ein Mittel zum Übertragen von Daten zum und vom Dienst sind.

Ihre Modelle auf der anderen Seite enthalten wahrscheinlich Verhalten, Geschäftsregeln und Validierung. Also würde ich mit Option 2 gehen.

Dies wird Ihnen auch ermöglichen, Änderungen im Dienst und in der Client-Anwendung leichter zu verwalten, da der Dienst nicht mit einem bestimmten Verbraucher des Dienstes gekoppelt wird.

Verwandte Themen