WCF 和 Web API 之间的区别

什么是 WCF?

WCF 代表 Windows 外场通讯 Foundation。它用于创建分布式和可互操作的应用程序。WCF 是开发面向服务的应用程序的有效平台。它允许开发人员创建安全、可靠和高配置的开发解决方案,这些解决方案可以跨平台集成并与现有投资互操作。

什么是 Web API?

ASP.NET Web API 是一个框架,它允许您为浏览器和移动设备构建 HTTP 服务。它是开发 RESTful 应用程序 在 ASP .NET Framework 上。

ASP.NET Web API 是一个可扩展的框架,用于构建基于 HTTP 的服务,可以通过不同平台(如 Web、Windows、移动设备等)上的不同应用程序访问这些服务。

主要区别

  • WCF 提供请求-答复、单向或双工,而 Web API 默认仅为请求-答复。
  • WCF 用于开发基于 SOAP 的服务,而 Web API 用于基于 SOAP 和 RESTful 的服务。
  • WCF 不提供任何对 MVC 功能的支持,而 Web API 支持 MVC 功能。
  • WCF 支持 HTTP、UDP 和自定义传输协议,而 Web API 仅支持 HTTP 协议。
  • WCF 提供文本、MTOM 和二进制编码支持,而 Web API 支持 UTF-8 编码格式。
  • WCF 支持消息队列、消息安全、双工通信、事务,而 Web API 不支持。
  • WCF 代表 Windows 外场通讯 Foundation 而 API 代表应用程序接口。

为什么使用 WCF?

Stack Overflow 问题 ASP.net web API 与 WCF
Stack Overflow 问题 ASP.net web API 与 WCF

以下是使用 WCF 的优点/好处:

  • 如果你打算使用 .NET Framework 3.5。
  • WCF 支持多种协议,例如 HTTP、TCP、命名管道。
  • 如果您想使用事务消息安全和可靠消息安全等标准构建服务,WCF 服务很有用。
  • 您可以在 WCF 中使用请求-答复、单向和双工消息交换模式。

为什么使用 Web API?

Google 趋势 WCF 与 ASP.Net Web API

Google 趋势 WCF 与 ASP.Net Web API

以下是使用 Web API 的优点/好处:

  • Web API 提供对基于约定的 CRUD 操作的支持,因为它可以与 HTTP 动词(GET、PUT、POST 和 DELETE)配合使用
  • 它很容易以 REST-ful 方式定义、公开和使用。
  • ASP.Net Web API 允许您向各种设备展示您的数据和服务。
  • Web API 是开源的,因此它是通过 .NET 平台创建 RESTful 服务的理想选择。
  • 允许您开发可扩展、解耦的 Web 服务,该服务可供其他开发人员共享和使用以访问 Web 服务。
  • 构建简单的、非基于 SOAP 的 HTTP 服务也很有帮助。

WCF 的特征

  • 高度可配置的传输
  • 更好的序列化选择
  • 与 IIS 完美集成
  • 易于自行托管
  • 非常丰富的元数据
  • 出版复杂模型
  • 丰富的数据契约

Web API 的特点

  • 与 HTTP 紧密耦合
  • 易于测试
  • 提供内容协商支持
  • 允许开放式格式
  • 不依赖平台
  • 坚实的资源导向
  • 具有新生超媒体支持的 2 级经验

WCF 与 Web 服务

WCF 与 Web 服务

产品型号 WCF 网络API
消息交换模式 请求答复,单向,还是双工。 默认情况下仅支持请求-回复。但是,通过 Web 套接字集成可以支持其他消息模式。
托管 IIS 托管、自托管和工作激活服务。 自托管和 IIS 托管。
开源 它不是开源软件。 它随.Net框架一起提供。也可以独立下载。
支持 MVC 功能 WCF 不提供任何 MVC 功能支持,例如控制器、路由、过滤器、拍卖结果等。 ASP.NET Web API 支持 MVC 功能,如路由、控制器、结果、过滤器、动作等。
编码支持 文本、MTOM 和二进制。 默认支持UTF-8编码格式。
经验 支持HTTP、UDP和自定义传输协议。 仅支持HTTP协议
模型的使用 基于用户属性的编程模型。 将 HTTP 动词映射到方法
配置 使用 web.config 和属性来配置 HttpConfiguration 类,但不在 web.config 服务上配置。 可以使用 web.config 服务进行配置 Web API。
RESTful 服务 它提供对 RESTFUL 服务的支持,但有局限性。 非常适合构建 RESTFUL 服务。

WCF 与 Web API 的决定因素

以下是一份快速检查表,可帮助您确定是否使用 WCF 或 Web API

EventXtra XNUMX大解决方案 WCF 4.5 ASP.NET Web API
需要支持消息队列、端到端消息安全、双工通信、分布式事务等场景。 选择 请勿选择
当您已经有现有的可运行的 WCF 服务并且想要另外添加 HTTP 支持时。 选择 请勿选择
一个代码库可同时支持 SOAP 和 RESTful 端点。 选择 请勿选择
想要通过 HTTP 创建面向资源的服务。 请勿选择 选择
您的项目是一个 MVC 应用程序,需要通过 HTTP 实现一些功能。 请勿选择 选择
您只想构建 HTTP / RESTful 服务 请勿选择 选择