[MY NOTE]
Translate Source:http://www.dotnettricks.com/learn/webapi/difference-between-wcf-and-web-api-and-wcf-rest-and-web-service
Web Service
1.基于SOAP协议,以XML格式返回数据。
2.只支持HTTP协议。
3.不开源,能用于所有能解析XML的客户端。
4.只能寄宿在IIS上面。
WCF
1. 也是基于SOAP协议,以XML格式返回数据。
2.是Web Service(ASMX)的升级,支持多种协议,如:TCP, HTTP, HTTPS, Named Pipes, MSMQ。
3.WCF配置过于繁杂。
4.不开源,能用于所有能解析XML的客户端。
5.能够寄宿在应用程序,IIS和Windows服务中。
WCF REST
1.需要启用webHttpBindings。
2.支持HTTP GET和POST,通过添加[WebGet]和[WebInvoke]属性实现。
3.如果需要使用其他HTTP请求方式(e.g. PUT, DELETE),需要在IIS中进行额外配置。
4.通过URL参数传输数据,需要进行WebGet配置,必须要指定其中的UriTemplate。
5.支持XML, JSON等数据格式。
WEB API
1.微软提供的一种更简单方便地创建HTTP服务的新框架。
2.开源项目,是在.NET平台上建立REST-ful服务的理想平台。
3.和WCF Rest比较,Web API支持全部的HTTP特性(like URIs, request/response headers, caching, versioning, various content formats.)。
4.也支持MVC特性,如routing, controllers, action results, filter, model binders, IOC container or dependency injection, unit testing。
5.可以寄宿在应用程序或者IIS上。
6.是一个轻量级架构,可以更好的用于像智能手机这样具有有限带宽的设备。
7.返回数据时,通过MediaTypeFormatter, 可以返回JSON, XML或者其他自定义数据。