gpt4 book ai didi

WCF "Add Service Reference"或 "Share the Contract assembly"项目之间?

转载 作者:行者123 更新时间:2023-12-04 23:32:12 26 4
gpt4 key购买 nike

在我工作的公司中,有 3 个团队在从事不同的项目,在这些项目之间使用 Web 服务时,我有一个两难选择,是应该通过“ 添加服务引用 ”还是我们可以 将契约(Contract)作为程序集共享 并使用 ChannelFactory 调用它?任何推荐的解决方案或有比这更好的解决方案吗?

最佳答案

就像关于软件开发的大多数问题一样,这取决于:)。

如果您的服务是保持核心/业务逻辑的东西,并且构建客户端是为了为服务制作 UI,我不会看到耦合客户端和服务的问题,因为客户端的目的是耦合到某些服务。

如果情况并非如此,并且客户端具有更广泛的用途,并且使用服务只是其功能的一小部分,那么考虑到以下因素:
- 在共享合约的情况下,您不必在合约更改的情况下更改/重新生成客户端,因为它会自动传播,因为双方都使用相同的类型。这还有一个好处,那就是,如果在服务端更改某些内容(删除/重命名消息字段),它将自动破坏客户端的构建,并且通常可以更快地修复整个问题。否则,您必须等待第一次调用(或系统测试)以通知服务已更改并且出现问题(使用添加服务引用方法也有一些方法可以实现此目的)。

在某些情况下,您不希望新版本的服务契约(Contract)对客户端代码产生影响,而希望客户端独立工作(构建)。在这种情况下,生成客户端将是更好的方法。

基本上答案在于客户端和服务是分开开发的还是它们是同一个项目/应用程序的一部分。

是的,在这两种情况下,您都可以使用 ChannelFactory

关于WCF "Add Service Reference"或 "Share the Contract assembly"项目之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com