原文地址:http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-REST-and-Web-Service.htmlhtml
WCFweb
1.基于Soap协议,以XML形式返回。json
2.是Web Service的进化 支持多种协议:TCP,HTTP,HTTPS,命名管道,消息队列。windows
3.缺点:冗长的大量配置。api
4.不开源,可是能够被懂xml的定制。浏览器
5.能够部署在应用、IIS或windows 服务。框架
Web APIspa
1.建立http服务的一个简单快捷的框架。orm
2.开源。xml
3.WCF不一样的:使用了整个HTTP特性。
4.支持MVC特性包括:routing, controllers, action results, filter, model binders, IOC container or dependency injection, unit testing
5.部署在应用或IIS上。
6.轻量级的,适合对带宽有要求的像智能手机等设备。
7.Responses 格式是多样的,例如json,xml等任何能够转化为MediaTypeFormatter 的。
WCF Rest
1.使用WCF Rest 须要webHttpBindings;
2.支持HTTP Get 和HTTP Post
3.支持其余http verbs 须要对IIS进行设置。
4.使用webGet 参数传递数据须要设置。
5.支持XML、json和ATOM数据
WEB Service
1.基于SOAP 返回数据为xml类型
2.仅支持http 协议
3.不开源,可是能够被懂xml的定制。
4.仅能在IIS上发布。
选择WCF仍是Web API
1.在特定的情景下,如单向传递,消息队列,双端通讯等选择WCF。
2.须要快速可靠的传输通道TCP 命名管道 UDP 同事须要在传输信道不可靠时支持http。
3.须要建立资源导向的基于http的服务(用到HTTP全部特性)时 使用Web API
4.向多种客户例如浏览器,移动端等同时提供服务的选择Web API