我已经看到的所有WCF服务都是一个带有一堆方法的“神”接口/类。如果我想要另一个模块,我总是创建一个新服务。
使用WEB API我不必这样做,因为我可以开发几个负责不同功能的控制器。
WCF服务总是这样一个有很多方法的“上帝”类,还是我错过了什么?
我已经阅读了WCF与WEB API之间的许多比较,但我没有看到其中任何一个提到的这一点。
答案 0 :(得分:1)
我将假设当您说“WCF服务”时,您指的是SOAP服务。因为WCF也支持REST风格的服务。
您可以随意开发WCF服务。
一个区别是WEB API服务不公开自己的元数据。如果添加(或删除)控制器,则它不会影响发送给请求客户端的元数据,因为 无。
如果您添加或删除服务合同,或者从现有服务合同中添加或删除操作,则可以更改客户端可用的元数据。其中一些客户端可能会中断(客户端,如在运行时使用元数据的PHP),或者可能根本无法使用新的服务合同(因为它们没有代理类来匹配它)。
答案 1 :(得分:1)
通过体系结构,WCF服务比WEB API服务更“模块化”。您已经看到过一个单独的“上帝”接口/类,其中包含许多方法,可能是因为之前的开发人员可能通常会遇到以下不法行为。
如果软件架构设计得当,大多数或所有业务逻辑都应该封装在没有与WCF或Web API耦合的模型类中,因此Web Api或WCF的代码应该很薄。