Ich habe einen WCF-Dienst und eine Hauptbibliothek.
Angenommen, ich habe einen Dienst zum Speichern von Profilen. WCF erhält Daten (mit vordefiniertem Datenvertrag) vom Client und übergibt diese an die Hauptklasse Lib1, generiert eine Antwort und sendet sie an den Client zurück.
WCF-Methode: SaveProfile (ProfileDTO-Profil)
Aktuelle Version 1.0 ProfileDTO hat das folgende Benutzername Passwort Vorname DOB (In Zeichenfolge JJJJ-MM-TT) Erstelltes Datum (In Zeichenfolge JJJJ-MM-TT)
Nächste Version (V2.0) ProfileDTO hat das folgende Benutzername Passwort Vorname DOB (In UnixTimeStamp) CreatedDate (In UnixTimeStamp)
Version 3.0 ProfileDTO hat Folgendes (mit Änderung der Überprüfung von Benutzername und Kennwortlänge) Benutzername Kennwort Vorname DOB (In UnixTimeStamp) CreatedDate (In UnixTimeStamp)
In einfachen Worten, DataContract und Workflow ändern sich zwischen jeder Version 1. Wie benenne ich die Methoden in WCF Service und Main Class Lib1? 2. Muss ich ein bestimmtes Muster verwenden, um die Entwicklung und Wartung zu vereinfachen? 3. Muss ich unterschiedliche Endpunkte für unterschiedliche Versionen haben?
Im obigen Beispiel habe ich eine Methode namens "SaveProfile". Muss ich die Methoden wie "SaveProfile1.0", "SaveProfile2.0" usw. benennen? Wenn dies der Fall ist, wenn zwischen Version "3.0" und "4.0" keine Änderung erfolgt, ist die Wartung schwierig. Ich suche nach einem Ansatz, der die Wartung erleichtert
quelle
Antworten:
Es gibt zwei Möglichkeiten, verschiedene Versionen desselben Kontakts zu haben. Der erste besteht darin, Namespaces zu verwenden, und der zweite darin, unterschiedliche Dienstnamen zu verwenden . Persönlich bevorzuge ich den unterschiedlichen Namespace-Ansatz, nur weil er die "Version" mit einem Namespace-Titel kapselt und es Anrufern ermöglicht, ihre Vertragsanforderungen genau zu definieren.
Das Erstellen neuer Vertragsversionen birgt jedoch das Risiko, die Abwärtskompatibilität mit vorhandenen Anrufern zu beeinträchtigen.
quelle