WCFのバージョン管理、名前付け、エンドポイントURL


8

WCFサービスとメインLib1を持っています。

たとえば、Save Profile Serviceがあるとします。WCFはクライアントからデータ(事前に定義されたデータコントラクトを含む)を取得し、それをメインクラスLib1に渡し、応答を生成してクライアントに送り返します。

WCFメソッド:SaveProfile(ProfileDTOプロファイル)

現在のバージョン1.0 ProfileDTOには、次のUserName Password FirstName DOBがあります(文字列yyyy-mm-dd)CreatedDate(文字列yyyy-mm-dd)

次のバージョン(V2.0) ProfileDTOには、次のUserName Password FirstName DOB(UnixTimeStampの場合)CreatedDate(UnixTimeStampの場合)があります。

バージョン3.0の ProfileDTOには次のものがあります(ユーザー名とパスワードの長さの検証が変更されています)UserName Password FirstName DOB(UnixTimeStampの場合)CreatedDate(UnixTimeStampの場合)

簡単に言うと、各バージョン1の間でDataContractとワークフローが変更されています。WCFサービスとメインクラスLib1のメソッドに名前を付けるにはどうすればよいですか?2.開発と保守を容易にするために、特定のパターンを使用する必要がありますか?3.バージョンごとに異なるエンドポイントが必要ですか?

上記の例では、「SaveProfile」という名前のメソッドがあります。「SaveProfile1.0」、「SaveProfile2.0」などのメソッドに名前を付ける必要がありますか。バージョン「3.0」と「4.0」の間で変更がない場合、メンテナンスが困難になります。メンテナンスを容易にするのに役立つアプローチを探しています



考慮すべきもう1つのことは、バージョンの太陽設定の概念を引き上げて、バージョンが利用可能になる期間について明確な期待を設定することです。
ケビン

回答:


1

同じ連絡先の異なるバージョンを作成するには2つの方法があります。1つ目は名前空間を使用する方法で、2つ目は異なるサービス名を使用する方法です。個人的には、名前空間のタイトルで「バージョン」をカプセル化し、呼び出し元が契約要件について特定できるようにするという理由だけで、異なる名前空間のアプローチを好みます。

ただし、新しいコントラクトバージョンを作成すると、既存の呼び出し元との下位互換性が失われる危険があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.