WCF-Versionierung, Benennung und Endpunkt-URL

8

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

Vinothkumar VJ
quelle
Eine andere Sache, die Sie berücksichtigen sollten, ist die Erhöhung des Begriffs des Sonnenuntergangs in der Version, damit Sie eine klare Erwartung dafür setzen, wie lange eine Version verfügbar sein wird.
Kevin

Antworten:

1

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.

Chris Mylonas
quelle