WCF 和 ASP.NET Web API

WCF 是Microsoft用于生成面向服务的应用程序的统一编程模型。 它使开发人员能够构建安全、可靠、事务化的解决方案,这些解决方案可跨平台集成,并与现有投资进行互作。 ASP.NET Web API 是一种框架,可用于轻松构建访问各种客户端(包括浏览器和移动设备)的 HTTP 服务。 ASP.NET Web API 是用于在 .NET Framework 上生成 RESTful 应用程序的理想平台。 本主题提供了一些指导,可帮助你确定哪种技术最能满足你的需求。

选择要使用的技术

下表描述了每种技术的主要功能。

WCF(Windows Communication Foundation) ASP.NET Web API
启用支持多个传输协议(HTTP、TCP、UDP 和自定义传输)的生成服务,并允许在它们之间进行切换。 仅限 HTTP。 HTTP 的一流编程模型。 更适合从各种浏览器、移动设备等访问,从而实现广泛的覆盖范围。
允许构建支持同一消息类型的多种编码(文本、MTOM 和二进制)的服务,并支持在它们之间切换。 启用生成支持各种媒体类型的 Web API,包括 XML、JSON 等。
支持使用 WS-* 标准构建服务,例如 Reliable Messaging、Transactions、Message Security。 使用 HTTP、WebSocket、SSL、JSON 和 XML 等基本协议和格式。 不支持更高级别的协议,例如 Reliable Messaging 或 Transactions。
支持请求-回复、单向和双向消息交换模式。 HTTP 是请求/响应,但可以通过 SignalR 和 WebSocket 集成来支持其他模式。
WCF SOAP 服务可以在 WSDL 中描述,从而允许自动化工具生成客户端代理,即使对于具有复杂架构的服务也是如此。 可通过多种方式描述 Web API,从自动生成的 HTML 帮助页到 OData 集成 API 的结构化元数据。
随 .NET Framework 一起提供。 随 .NET Framework 一起提供,但它是一个开放源代码程序,也可通过独立下载以带外方式获得。

使用 WCF 创建可通过各种传输访问的可靠安全 Web 服务。 使用 ASP.NET Web API 创建可从各种客户端访问的基于 HTTP 的服务。 如果要创建和设计新的 REST 样式服务,请使用 ASP.NET Web API。 尽管 WCF 为编写 REST 样式服务提供了一些支持,但对 ASP.NET Web API 中的 REST 的支持更为完整,并且将来的所有 REST 功能改进都将在 ASP.NET Web API 中完成。 如果你有现有的 WCF 服务并且想要公开其他 REST 终结点,请使用 WCF 和 WebHttpBinding.

另请参阅