[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.基於SO ...
[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或者其他自定義數據。