Asp.Net Web API和WCF服务有什么区别?

Sau*_*abh 8 api wcf asp.net-web-api

自上个月以来,这个Asp.Net Web API似乎是微软的一个突出产品.它是WS*服务的替代品.它与WCF服务有什么不同?我们在哪里可以看到它最适合Web应用程序开发?

And*_*ebb 9

ASP.NET Web API是用于构建通过HTTP公开的Web服务的框架.它非常适合(但不限于)构建RESTful Web服务.

此类Web服务是构建SOAP RPC/WS*Web服务的替代方法,因为它们更简单,更轻,并且客户端和服务器之间的耦合更少.

传统的"WCF服务"支持SOAP RPC而不是REST,这些服务往往很复杂,并且在客户端和服务器之间具有紧密耦合.广泛的互操作性可能变得难以实现.但是,传统的WCF服务可以通过各种协议进行通信 - TCP对于内部服务(同一DMZ中的服务)特别有用.

(虽然WCF大多与SOAP RPC式的服务相关的,至少有三次在WCF支持的RESTful Web服务建设.这些尝试都被的ASP.NET Web API所取代.)

ASP.NET Web API最适合通过HTTP生成面向公共的RESTful Web服务(即超媒体API).为此,在开始使用ASP.NET Web API之前,充分了解REST架构风格非常重要.请参阅"REST in Practice","RESTful Web Services Cookbook"和"使用HTML5和Node构建超媒体API"等书籍.