原文地址: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