WebService、WCF、WebAPI、MVC的區別


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是對於ASMX,.Net Remoting,Enterprise Service,WSEMSMQ等技術的整合
  • Address:每一個WCF的Service都有一個唯一的地址。這個地址給出了Service的地址和傳輸協議(Transport Protocol)
  • Binding:封裝好的通信方式;
  • 契約(Contact) 數據契約,消息契約,操作契約...----------Service Contract, Data Contract, Fault Contract和Message Contract
  • 統一性,面向對象得方式創建面向服務的應用程序;
  • 互操作性,跨進程,跨平台,跨機器的通信;
  • 安全與信賴;
  • 兼容性,版本之間的兼容

WCF Rest

  • wcf rest service ,需要在wcf中應用webHttpBindings
  • 分別使用WebGet 和 WebInvoke屬性,實現了HTTP的Get 和POST動詞
  • 要想使用其他的HTTP動詞,你需要在IIS中做些配置,使.svc 文件可以接受這些動詞的請求
  • 使用WebGet通過參數傳遞數據,也需要配置,而且必須指定URiTemplate 
  • 支持XML,JSON,ATOM數據

 

Web API

1、這是一個簡單的構建HTTP服務的新框架

2、在.net平台上Web API 是一個開源的、理想的、構建REST-ful 服務的技術

3、不像WCF REST Service.它可以使用HTTP的全部特點(比如URIs、request/response頭,緩存,版本控制,多種內容格式)

4、它也支持MVC的特征,像路由、控制器、action、filter、模型綁定、控制反轉(IOC)或依賴注入(DI),單元測試。這些可以使程序更簡單、更健壯

5、它可以部署在應用程序和IIS上

6、這是一個輕量級的框架,並且對限制帶寬的設備,比如智能手機等支持的很好

7、Response可以被Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。

 

Web API 和 MVC可以說是兩個不同的東西。Web API更傾向於基於HTTP協議的服務,直接返回用戶的數據請求。MVC是建站的一種框架,傾向於返回用戶的頁面請求。

 

1、當你想創建一個支持消息、消息隊列、雙工通信的服務時,你應該選擇WCF

2、當你想創建一個服務,可以用更快速的傳輸通道時,像TCP、NamedPipes或者甚至是UDP(在WCF4.5中),在其他傳輸通道不可用的時候也可以支持HTTP。

3、當你想創建一個基於HTTP的面向資源的服務並且可以使用HTTP的全部特征時(比如URIs、request/response頭,緩存,版本控制,多種內容格式),你應該選擇WebAPI

4、當你想讓你的服務用於瀏覽器、手機、iPhone和平板電腦時,你應該選擇Web API


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM