WCF服务可以像WEB API服务一样模块化吗?

时间:2015-05-10 20:46:00

标签: .net wcf asp.net-web-api

我已经看到的所有WCF服务都是一个带有一堆方法的“神”接口/类。如果我想要另一个模块,我总是创建一个新服务。

使用WEB API我不必这样做,因为我可以开发几个负责不同功能的控制器。

WCF服务总是这样一个有很多方法的“上帝”类,还是我错过了什么?

我已经阅读了WCF与WEB API之间的许多比较,但我没有看到其中任何一个提到的这一点。

2 个答案:

答案 0 :(得分:1)

我将假设当您说“WCF服务”时,您指的是SOAP服务。因为WCF也支持REST风格的服务。

您可以随意开发WCF服务。

一个区别是WEB API服务不公开自己的元数据。如果添加(或删除)控制器,则它不会影响发送给请求客户端的元数据,因为 无。

如果您添加或删除服务合同,或者从现有服务合同中添加或删除操作,则可以更改客户端可用的元数据。其中一些客户端可能会中断(客户端,如在运行时使用元数据的PHP),或者可能根本无法使用新的服务合同(因为它们没有代理类来匹配它)。

答案 1 :(得分:1)

通过体系结构,WCF服务比WEB API服务更“模块化”。您已经看到过一个单独的“上帝”接口/类,其中包含许多方法,可能是因为之前的开发人员可能通常会遇到以下不法行为。

  1. 所有方法的一个界面
  2. 在同一个程序集中混合接口和实现
  3. 如果软件架构设计得当,大多数或所有业务逻辑都应该封装在没有与WCF或Web API耦合的模型类中,因此Web Api或WCF的代码应该很薄。