web-dev-qa-db-ja.com

WebサービスWCFのバージョン管理のベストプラクティス

私はWebサービスを持っていますSOAP WCFで開発されましたが、バージョン管理にベストプラクティスがありますか?契約を変更するとき、すべてのクライアントの参照を更新したくないが、単に公開したいだけです。古いバージョンと共存する新しいバージョン。


スタディケース:1つのエンドポイントを持つWebサービスを使用していて、すべてのクライアントがそれをポイントしているため、すぐに契約を変更する必要があり、すべてのクライアントがクラッシュするのを回避する方法を検索します。これを回避する2つの方法を知っています。

  • 別のサーバーで新しいコントラクトを使用してWebサービスを公開する
  • 新しいコントラクトで新しいファイルsvcを作成する

他の方法はありますか?

4
Guerra

これは、どのような変更を行うか、クライアントがどのプラットフォームで構築されているか、変更追跡ポリシーは何かなど、多くの事柄に依存します。

たとえば、データコントラクトに新しいプロパティを追加するか、サービスコントラクトに新しい操作を追加するだけの場合は、クライアントがバージョントレラントであり(DataContractSerializerがバージョントレラントである限り)、それを現在の実装に追加しても安全です。変更追跡ポリシー。ただし、変更がより深刻な場合に備えて、新しいコントラクトを作成し、それを新しいエンドポイントで公開することを必要とする厳密なバージョン管理戦略を使用することをお勧めします。

私はこれらの記事を読むことを提案しました:

バージョン管理戦略
ベストプラクティス:データコントラクトのバージョン管理

これは、適切なバージョン戦略を選択し、従うべきベストプラクティスを提供するのに役立ちます。

2
Maksym Strukov