6

WCF Webサービスの新しいバージョンを作成したばかりですが、サービスとデータの契約に関して重大な変更を加えていないことを確認したいと思います。

VB6 Com Api開発者としての日々を振り返ると、コンパイル時にコンポーネントの以前のリリースバージョンを指定するのがいかに簡単であったかを思い出し、コンパイラにバイナリ互換性が維持されていることを確認してもらいます。

私は、(うまくいけば)「契約の互換性」チェックと呼ばれる同様の何かを想定しています。メタデータを使用して、VB6devenvが実行したものと同様のチェックを実行します。これは、ユーティリティを実行する別のビルドステップとして実行できます。

私はそこにそのようなユーティリティが存在しないことを受け入れる準備ができています。その場合、これを達成するためのアルゴリズムがどのように見えるかについて誰かが何か考えを持っていますか?

  1. 現在のライブサービスバージョンからメタデータを取得する
  2. 新しいサービスバージョンからメタデータを取得する
  3. 互換性については、サービス契約と各データ契約を確認してください。重大な変更のみを報告します。

ステップ3は複雑に見えますが、確かに自動化できます...

4

4 に答える 4

4

これらの状況は、統合/回帰テストによって解決されます。初期バージョンの統合テストを作成し、サービスを新しいバージョンに変更した後、古いクライアントを使用して統合テストを再度実行します。彼らが成功した場合、あなたは何も壊していません。それらが失敗した場合、どの呼び出しが問題を引き起こしたかを正確に確認できます。

于 2011-03-07T12:51:34.857 に答える
1

Andyにはそのようなものはありませんが、2つのDLL(古いものと新しいもの)があるものを起動して実行している場合は、BitDifferなどを使用してそれらを比較できます。

WCFのリリースを支援するCodeplexのプロジェクトがありましたが、それが何と呼ばれているのか思い出せません。申し訳ありません。

幸運を、

-キース

于 2009-03-19T19:51:06.427 に答える
0

「WCF サービスのバージョン管理: パート I」および「WCF サービスのバージョン管理: パート II」を参照してください。

于 2011-03-07T13:05:34.333 に答える