簡體   English   中英

WCF,Web API,WCF REST和Web服務之間的區別?

[英]Difference between WCF, Web API, WCF REST and Web Service?

WCF和Web API以及WCF REST和Web服務有什么區別? WCF真的如此復雜以至於應該使用webapi嗎? WebApi能否完成所有工作而不利用其他工作?

.Net框架有許多技術允許您創建HTTP服務,例如Web Service,WCF和現在的Web API。 互聯網上有很多文章可能描述你應該使用誰。

網絡服務

  • 它基於SOAP並以XML形式返回數據。
  • 它僅支持HTTP協議。
  • 它不是開源的,但可以被任何理解xml的客戶端使用。
  • 它只能在IIS上托管。

WCF

  • 它還基於SOAP並以XML格式返回數據。
  • 它是Web服務(ASMX)的發展,支持TCP,HTTP,HTTPS,命名管道,MSMQ等各種協議。
  • WCF的主要問題是其繁瑣而廣泛的配置。
  • 它不是開源的,但可以被任何理解xml的客戶端使用。
  • 它可以在應用程序中或IIS上或使用窗口服務托管。

WCF休息

  • 要將WCF用作WCF Rest服務,您必須啟用webHttpBindings。
  • 它分別通過[WebGet]和[WebInvoke]屬性支持HTTP GET和POST動詞。
  • 要啟用其他HTTP謂詞,您必須在IIS中進行一些配置,以接受.svc文件上該特定謂詞的請求
  • 使用WebGet通過參數傳遞數據需要配置。 必須指定UriTemplate。
  • 它支持XML,JSON和ATOM數據格式。

Web API

  • 這是用簡單方法構建HTTP服務的新框架。
  • Web API是開源的,是通過.NET Framework構建REST-ful服務的理想平台。
  • 與WCF Rest服務不同,它使用HTTP的全部功能(如URI,請求/響應頭,緩存,版本控制,各種內容格式)
  • 它還支持MVC功能,例如路由,控制器,操作結果,過濾器,模型綁定器,IOC容器或依賴注入,單元測試使其更加簡單和健壯。
  • 它可以在應用程序或IIS上托管。
  • 它是輕量級架構,適用於智能手機帶寬有限的設備。
  • 響應由Web API的MediaTypeFormatter格式化為JSON,XML或您要添加為MediaTypeFormatter的任何格式。

在WCF或WEB API之間選擇誰

  • 如果要創建應支持特殊方案的服務(例如單向消息傳遞,消息隊列,雙工通信等),請選擇WCF。
  • 如果要創建可在可用時使用快速傳輸通道的服務(例如TCP,命名管道,甚至UDP(在WCF 4.5中)),請選擇WCF,並且還希望在所有其他傳輸通道不可用時支持HTTP。
  • 如果要通過HTTP創建可以使用HTTP的完整功能(如URI,請求/響應頭,緩存,版本控制,各種內容格式)的面向資源的服務,請選擇Web API。
  • 如果要將服務公開給廣泛的客戶,包括瀏覽器,手機,iPhone和平板電腦,請選擇Web API。

參考: http//www.dotnettricks.com
作者:Shailendra Chauhan

.Net框架有許多技術允許您創建HTTP服務,例如Web Service,WCF和現在的Web API。 互聯網上有很多文章可能描述你應該使用誰。 現在有一天,你有很多選擇在.NET框架上構建HTTP服務。 在這里你可以閱讀更多:

WCF與ASP.NET Web API

WCF服務與ASP.NET Web Api

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM