差异摘要 WCF 和 Web API

本文关键字:Web API WCF | 更新日期: 2023-09-27 17:56:11

我正在寻找MVC Web APIWCF服务之间的差异摘要 ASP.NET。

我看过这个问题 Asp.Net Web API 和 WCF 服务有什么区别? 这个问题 WCF 与 Web API ASP.NET 也是如此,但它们没有总结我可以用一个实现什么,我不能用另一个实现什么。

  • 两者都可以通过网址联系,我最初认为这是它们之间的区别。

简而言之:我可以用WCF做什么,而我不能用 ASP.NET Web API做什么,反之亦然?

差异摘要 WCF 和 Web API

此列表绝不是详尽无遗的。

WCF 执行使用 Web API 无法(轻松)完成的操作。

  1. 支持基于 SOAP 的 XML 格式。
  2. 支持强类型数据协定。
  3. 支持使用 WSDL 等进行单点元数据信息交换。
  4. 支持各种绑定,如TCP,命名管道,MSMQ,甚至UDP等。
  5. 支持各种托管选项,如控制台应用程序,WAS,IIS,Windows服务。
  6. 支持单向消息传递、双工、开箱即用的消息队列。
  7. 支持多种身份验证方案,如Windows,表单,证书等。

Web API 使用 WCF 无法(轻松)完成的操作。

  1. 支持HTTP的全部功能。(基于 Uri 的访问、Http 请求/响应、Http 缓存等)要在 WCF 中执行此操作,您需要额外的工作来将其配置为 REST 服务等。
  2. 是轻量级的,配置最少。
  3. 支持路由、控制器/操作 MVC 范例、模型绑定等。

基本上,Web API是一种通过Http执行RESTful服务的简单方法,而无需了解Web服务。

若要在 WCF 中执行相同的操作,您需要在 httpBindings、UriTemplates、Verbs 等方面做额外的工作。这意味着,首先要了解WCF。然后使用 WCF 通过 http 实现 RESTFul 服务,这是 Web API 提供的开箱即用的服务。

这本身不是摘要。我希望这是一种实用的指南。

对我来说,它最终归结为我希望我的前端应用程序代码看起来多么简单,以及如何实现最大生产力。

传统的 WCF over http 是基于 SOAP 的消息传递协议。在项目中添加服务引用,Visual Studio 负责生成代理类。并且您使用代理类的实例。因此,当您编写前端代码时,您有智能感知来帮助您。不要上当。这只是让您的生活更简单的IDE。在它相当复杂的下面。但我的生产力在一定程度上得到了提高。我不必编写代理类。因此,这就是我选择的基于 c# 的前端。

或者,如果我必须处理 Webapi 端点,我就没有 IDE 生成代理类的奢侈。因此,我会为所有内容编写代码。通常,我使用 HttpClient 类与我的 Web API 端点进行通信。假设,我可以编写一个代理类来与 Web API 通信。但这并不像在 wcf 案例中那样简单,在 wcf 案例中,它们是为您自动生成的。

另一方面,如果我的前端是JavaScript,那么我唯一最好的选择就是通过Web api而不是wcf托管Web服务。如果我要从 Js 与 wcf 端点交谈,那将是一个 PITN。

因此,它最终取决于您的产品计划,设计,项目进度等软件开发计划。万事如意。