1. 程式人生 > 其它 >WCF和Web API和WCF REST以及Web Service區別(Web API初級二)

WCF和Web API和WCF REST以及Web Service區別(Web API初級二)

原文:https://www.dotnettricks.com/learn/webapi/difference-between-wcf-and-web-api-and-wcf-rest-and-web-service

.Net framework有很多技術手段允許你建立HTTP服務,例如Web Service,WCF和現在的Web API。在網際網路上有許多部落格介紹如何使用他們。在今天,你在.Net framework框架下有很多選擇去建立HTTP服務。

在這篇文章,我想就Web Service、WCF和現在的Web API與大家分享我的觀點。更多關於Web API的資訊可參考 什麼是WebAPI以及為什麼要使用它(https://www.cnblogs.com/wuhanjackh/p/16174277.html)

Web Service
01.它是一個基於SOAP協議且返回XML表單格式
02.僅支援HTTP協議
03.非開源,但任何理解XML格式的人都可以在客戶端使用它
04.僅託管在IIS

WCF
01.它也是基於SOAP協議且返回XML表單格式
02.是Web Service(ASMX)的進化,而且還支援如TCP, HTTP, HTTPS, Named Pipes, MSMQ各種各樣的協議
03.WCF的主要問題是其冗長而複雜的配置
04.非開源,但任何理解XML格式的人都可以在客戶端使用它
05.它能託管在程式,IIS以及使用到Windows服務中

WCF Rest
01.要將WCF用作WCF Rest服務,必須啟用webHttpBindings
02.通過 [WebGet] 和 [WebInvoke] 屬性分別支援HTTP GET 和 POST
03.可以在IIS中進行一些配置去啟用其它HTTP的操作,從而接收.csv檔案的特定請求
04.使用WebGet 進行引數傳遞需要配置。必須指定配置
05.支援XML,JSON和ATOM資料格式

Web API
01.這是一個建立HTTP服務方便且簡單的新框架
02.Web API開源,在過去是整個.NET Framework建立REST-ful服務最理想的平臺
03.不像WCF Rest服務,使用了HTTP所有特徵(比如URI、請求/響應頭、快取、版本控制、各種內容格式)
04.它還支援MVC特性,如路由、控制器、操作結果、過濾器、模型繫結、控制反轉和依賴項注入、單元測試,使其更簡單、更穩定
05.可託管在程式或IIS中
06.它是一種輕量級結構,適用於智慧手機等頻寬有限的裝置。
07.響應由Web API的MediaTypeFormatter格式化為JSON、XML或任何您想新增為MediaTypeFormatter的格式

什麼情況下選擇WCF,什麼情況下選擇WEB API?
01.當你想要建立一個支援特殊場景的服務時,請選擇WCF,例如單向訊息傳遞、訊息佇列、雙工通訊等
02.當你想要建立一個隨時用隨時使用的快速傳輸通道的服務,如TCP、命名管道,甚至可能是UDP(在WCF 4.5中),並且當所有其他傳輸通道都不可用時,您還想要支援HTTP時,請選擇WCF
03.當你想要通過使用HTTP豐富的特徵(像URI、請求/響應頭、快取、版本控制、各種內容格式)來建立一個面向資源的HTTP服務時,請選擇Web API
04.當你想將你的服務公開給包括瀏覽器、手機、iphone和平板電腦在內的廣泛客戶時,請選擇WebAPI。

 

翻譯不易,如有轉載,請標註出處