WCF與 Web Service的區別是什麼?各自的優勢在哪裏呢?

這是不少.NET開發人員容易搞錯的問題。面試的時候也常常遇到,初學者也很難分快速弄明白web

Web service面試

.net技術中其實就指ASP.NET Web Service,用的時間比較長,微軟實際上是想將C#做爲web service的首選語言,其做用就是經過一系列常規的產業標準以及已有的一些技術來實現分佈式應用程序的建立和管理,其是行業標準,也就是Web Service 規範,也稱做WS-*規範,既不是框架,也不是技術。編程

 它有一套完成的規範體系標準,並且在持續不斷的更新完善中。json

 它使用XML擴展標記語言來表示數據(這個是誇語言和平臺的關鍵)。微軟的Web服務實現稱爲ASP.NET Web Service.它使用Soap簡單對象訪問協議來實現分佈式環境裏應用程序之間的數據交互。WSDL來實現服務接口相關的描述。此外Web services 能夠註冊到UDDI中心.供其客戶查找使用。 
     後來微軟作了ASP.NET Web Service的安全,性能,數據加密、解密,託管宿主等多方面的擴展,稱爲WSE系列,這個是過分產品,最高到WSE3.0.後來就是WCF時代。(WCF分佈式開發必備知識(4):Web Service )安全

WCF架構

WCF 是一個分佈式應用的開發框架,屬於特定的技術,或者平臺。既不是標準也不是規範。框架

WCF服務的公開是須要運行服務的宿主環境的,分佈式

WCF的典型宿主包括如下四種:性能

一、"Self-Hosting" in a Managed Application(自託管宿主)
2Managed Windows ServicesWindows Services宿主)
3Internet Information ServicesIIS宿主)
4Windows Process Activation ServiceWAS宿主)學習

用的比較多的是23,咱們能夠創建一個控制檯應用程序做爲宿主也能夠將wcf服務寄宿在IIS上。

WCF具體實現起來比較複雜,讓初學者很難快速抓住要領。而ASP.NET Web Service相對而言簡單多了

 WCF其實必定程度上就是ASP.NET Web Service,由於它支持Web Service的行業標準和核心協議,所以ASP.NET Web ServiceWSE能作的事情,它幾乎都能勝任,跨平臺和語言更不是問題(數據也支持XML格式化,並且提供了本身的格式化器)。 
可是WCF做爲微軟主推一個通信組件或者平臺,它的目標不只僅是在支持和集成Web Service,由於它還兼容和具有了微軟早期不少技術的特性。 
         根據微軟官方的解釋,WCF(以前的版本名爲「Indigo」)是使用託管代碼創建和運行面向服務(Service Oriented)應用程序的統一框架。它使得開發者可以創建一個跨平臺的安全、可信賴、事務性的解決方案,且能與已有系統兼容協做。WCF是微軟分佈式應用程序開發的集大成者,它整合了.Net平臺下全部的和分佈式系統有關的技術,如Enterprise Sevices(COM+).Net RemotingWeb Service(ASMX)WSE3.0MSMQ消息隊列。以通訊(Communiation)範圍而論,它能夠跨進程、跨機器、跨子網、企業網乃至於 Internet;以宿主程序而論,能夠以ASP.NETEXEWPFWindows FormsNT ServiceCOM+做爲宿主(Host)WCF能夠支持的協議包括TCPHTTP,跨進程以及自定義,安全模式則包括SAML, KerberosX509,用戶/密碼,自定義等多種標準與模式。也就是說,在WCF框架下,開發基於SOA的分佈式系統變得容易了,微軟將全部與此相關的技術要素都包含在內,掌握了WCF,就至關於掌握了叩開SOA大門的鑰匙 。若是你想對WCF學習系統化一些,必須向對如Enterprise Sevices(COM+).Net RemotingWeb Service(ASMX)WSE3.0MSMQ消息隊列也有個詳細的認識的話,你能夠看看個人博客,在此以前我對WCF學習相關的知識都系統的進行了整理。

我的心得:

     本人是先接觸webservice後學習wcf的,我也建議你們先從簡單的學其,經過創建webservice服務爲桌面應用程序提供接口,其數據傳輸能夠是json也能夠是xml格式的文本體。熟悉webservice以後(其實這個過程很短)再試着去編寫wcf服務接口,這樣不只有個緩急過程,更容易讓人理解

我的總結:

      Webservice是一種行業標準,wcf是一個開發技術框架(是.net一個組件,由.NET Framework3.0 開始引入),兩者貌似沒什麼可比性,可是就其效率而言,wcf比同開發平臺下的ASP.NET Web Service相對而言高些,WCF雖然是個服務開發框架,可是若是你深刻學習,會發現WCF架構的強大之處。單單是WCF安全這一塊已經至關的複雜了。何況還要統一編程模型,兼容和支持許多早期的分佈式技術。

相關文章
相關標籤/搜索