6

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

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

我设想了类似的东西,称为(希望)“合同兼容性”检查。它将使用元数据执行与 VB6 开发环境类似的检查。这可以作为执行实用程序的单独构建步骤来完成。

我准备接受不存在这样的实用程序。如果是这种情况,是否有人对实现这一目标的算法有任何想法?

  1. 从当前实时服务版本中检索元数据
  2. 从新服务版本中检索元数据
  3. 检查服务合同和每个数据合同的兼容性。仅报告重大更改。

第 3 步似乎很复杂,但肯定是可自动化的……

4

4 回答 4

4

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

于 2011-03-07T12:51:34.857 回答
1

安迪不存在这样的东西,但如果你启动并运行了一些有 2 个 DLL(一个旧的,一个新的)的东西,那么你可以使用 BitDiffer 之类的东西来比较它们。

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

祝你好运,

-基思

于 2009-03-19T19:51:06.427 回答
0

尝试使用“Codeplex WCF 负载测试”为旧接口合约生成单元测试,并在新接口合约上运行它们:

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

于 2011-03-07T13:17:07.140 回答
0

请参阅“版本化 WCF 服务:第一部分”“版本化 WCF 服务:第二部分”

于 2011-03-07T13:05:34.333 回答