WCF服务向后兼容性检查

时间:2009-03-19 18:03:39

标签: wcf web-services metadata versioning backwards-compatibility

我刚刚编写了一个新版本的WCF Web服务,我想确保我没有对服务和数据合同进行任何重大更改。

回想起我作为VB6 Com Api开发人员的日子,我记得在编译时指定组件的先前发行版本是多么容易,并让编译器检查是否正在维护二进制兼容性。

我设想类似的(希望是)“合同兼容性”检查。它将使用元数据执行与VB6 dev env所做的类似的检查。这可以作为执行实用程序的单独构建步骤来完成。

我准备接受那里没有这样的效用。如果是这种情况,是否有人对如何实现这一目标的算法有任何想法?

  1. 从当前实时服务版本
  2. 检索元数据
  3. 从新服务版本
  4. 检索元数据
  5. 检查服务合同和每个数据合同的兼容性。仅报告重大变化。
  6. 步骤3似乎很复杂,但肯定是自动化的......

4 个答案:

答案 0 :(得分:4)

通过集成/回归测试解决了这些情况。您为初始版本编写集成测试,在将服务修改为新版本后,您使用旧客户端再次运行集成测试。如果他们成功了你就没有破坏任何东西。如果它们失败,您会看到确切的调用导致的问题。

答案 1 :(得分:1)

没有类似的东西存在安迪,但如果你得到一些东西,你有2个DLL(一个旧的和一个新的),你可以使用像BitDiffer之类的东西来比较它们。

Codeplex上有一个帮助WCF发布的项目,但我不记得它叫什么了,抱歉。

祝你好运,

-Keith

答案 2 :(得分:0)

答案 3 :(得分:0)

尝试使用"Codeplex WCF Load Test"为旧接口契约生成单元测试并在新的上运行它们:

  

此工具采用WCF跟踪文件和WCF客户端代理或WCF接口协定,并生成C#单元测试,该测试重放跟踪文件中找到的相同调用序列。然后可以使用单元测试对目标进行负载测试。