關於WCF、WebAPI、WCFREST、WebService之間的區別理解

2020-12-05 免費高清壁紙大全

在.Net平臺下,有大量的技術讓你創建一個HTTP服務,像Web Service,WCF,現在又出了Web API。在.Net平臺下,你有很多的選擇來構建一個HTTP Services。我分享一下我對Web Service、WCF以及Web API的理解。

一、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、想使用WCF Rest service,你必須在WCF中使用webHttpBindings

2、它分別用[WebGet]和[WebInvoke]屬性,實現了HTTP的GET和POST動詞

3、要想使用其他的HTTP動詞,你需要在IIS中做一些配置,使.svc文件可以接受這些動詞的請求

4、使用WebGet通過參數傳輸數據,也需要配置。而且必須指定UriTemplate

5、它支持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 或者任何你想轉換的格式。  

WCF和WEB API我該選擇哪個?

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

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

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

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

相關焦點

  • [WCF REST] 提高性能的一個有效的手段:條件資源獲取(Conditional...
    gt;</ArrayOfEmployee> 3:  4: 第2次服務調用: 5: 服務端數據未發生變化 原文連結:http://www.cnblogs.com/artech/archive/2012/02/13/wcf-rest-conditional-retrieval.html
  • Wcf官網品種標準-英國長毛貓
    各部分評分所佔比例~所有英文部分摘自官網~翻譯以及理解不足之處請各位鏟屎官見諒~揪咪!
  • 它們之間有啥區別?
    很高興認識你」,那「meet」和「meet with」之間有啥區別呢?下面我們一起來看看!meet(1)遇見、碰到、認識例句:I have just met the man I want to spend the rest of my life with.
  • Delta Expands Its Catering Partnership With Newrest
    This is in addition to the Newrest catering provided in points in the United States.Newrest and DeltaDelta and Newrest currently work together in the United States at two major Delta stations: Salt Lake City (SLC) and Raleigh-Durham (RDU).
  • 歪果仁說不是「have a rest」,那是啥
    恐怕很多人都會說「Let's have a rest」但這句話真的不能隨便說!「have a rest」,的確表示休息。但「rest」,英文中指的是幾小時休息,甚至幾個月的休假。Have a rest,表示較長時間的休息。
  • 關於FPGA與CPLD之間的區別分析
    關於FPGA與CPLD之間的區別分析 電子發燒友 發表於 2019-04-03 11:08:47 FPGA與CPLD的區別 1.CPLD CPLD主要是由可編程邏輯宏單元(LMC,
  • change是改變,那a change is as good as a rest是什麼意思?
    rest的意思有「休息,放鬆」。「as…as…」的意思是「和……一樣……」。那大家猜猜看,習語a change is as good as a rest是什麼意思呢?a change is as good as a rest的意思是「you can get as much good from changing the work you do as from having a rest」,即「改換工作益如休養,換個環境等於休息」。這句習語源於維多利亞時代。
  • 商業智能和數據分析之間的區別
    更多關於以下內容。   商業智能如何與分析不同   乍一看,聽起來像數據分析和商業智能只是兩種說法相同的方式。兩者之間存在一些重要的差異。數據分析側重於找到業務發生的原因。但是,通過引入其他人口統計和興趣數據,您可以發現現有客戶與潛在客戶之間的相似之處,然後使用該數據覆蓋已經在線或離線的潛在客戶。   清晰的數據視圖:BI最令人興奮的元素之一是能夠讓每個人-甚至那些沒有數據科學技能的人-理解並深入了解信息和趨勢。
  • 本體和知識圖譜之間的區別是什麼?
    具體來說,他們想知道兩者之間的區別。本體和知識圖譜是一回事嗎?它們有何不同?兩者之間是什麼關係?在這篇博客中,我將引導您了解本體和知識知識圖譜,講述它們之間的區別以及它們如何組織大量數據和信息。 什麼是本體?本體是語義數據模型,用於定義domain中事物的類型以及可用於描述它們的屬性。
  • 初一數學概念:單項式、多項式、整式三者之間的區別和關係
    d、字母與字母之間的乘積,是單項式;比如abc、bd......e、數字與字母之間的乘積,是單項式;比如3a、2cf......什麼是多項式?其實,理解了單項式,那麼多項式就更好理解了。是不是很好理解哈。從多項式的概念中不難看出,多項式是由單項式組成的,多項式中的單項式之間的關係是「和」的關係。概念是判斷的唯一標準。
  • PS、SOP和 ML之間的區別是什麼?
    然而很多人對於PS,ML和SOP的理解千奇百怪,把它們混作一談,以至於在書寫文書時只是簡單的將PS,ML和SOP相互之間串改,這樣的留學申請文書肯定是要大打折扣的。那麼SOP,PS,ML又都是什麼呢?SOP、PS、ML之間都有什麼區別呢?今天就由我們小編來為大家指點迷津吧!
  • 哲學與科學之間的區別是什麼?
    波普爾認為科學是可證實或證偽的,我認為科學與哲學之間最大的區別就在於,科學可以這證明某個事物是正確地或者是錯誤的,而哲學既不能證明是正確地也不能證明是錯誤的。最後來看看哲學家羅素是如何理解哲學、科學與神學之間的區別:「哲學,就我對這個詞的理解來說,乃是某種介乎神學與科學之間的東西。
  • 關於EMC、EMI、EMS之間的區別與聯繫淺析
    那麼這三者之間有什麼區別?又有什麼聯繫呢?今天小編就給大家簡單的分析一下。  什麼是EMI?  EMI(Electro Magnetic Interference)直譯是電磁幹擾。這是合成詞,我們應該分別考慮"電磁"和"幹擾"。
  • 初一數學概念精講:單項式、多項式、整式三者之間的區別和關係
    關於係數的重點:a、在包含數字的單項式中,數字部分就是該單項式的係數,數字部分原先的正負號也是係數的一部分。b、在沒有數字的單項式中,該單項式中的係數要麼是「1」要麼是「-1」,是「1」還是「-1」,主要取決於該單項式的正負。
  • 關於哲學和宗教之間的關係
    由於您的這種雙重身份,作為一個哲學家和神學家,您是如何理解哲學和宗教之間的關係的呢? 科布:哲學和宗教之間的關係,在幾乎所有宗教傳統中都是非常密切的。例如,在印度,要區分哲學和宗教幾乎是不可能的。
  • 「I get it、I got it、Got it、Get it」之間的區別在哪裡?
    它們之間究竟是有區別還是可以通用的?下面就這個問題,我們來細細探討一下。「 I get it」和「 I got it」、「Got it」之間區別雖然很小,但表達的意思卻需要結合語境進行區分。I get it/I got it/Got it當你想讓對方知道,你明白他的意思了,你就可以說「I get it」。