wcf和web service的區別

2021-06-29 12:28:54 字數 4566 閱讀 2759

1.webservice:嚴格來說是行業標準,不是技術,使用xml擴充套件標記語言來表示資料(這個是誇語言和平台的關鍵)。微軟的web服務實現稱為asp.net web service.它使用soap簡單物件訪問協議來實現分布式環境裡應用程式之間的資料互動。wsdl來實現服務介面相關的描述。此外web services 可以註冊到uddi中心.供其客戶查詢使用。

後來微軟做了asp.net web service的安全,效能,資料加密、解密,託管宿主等多方面的擴充套件,稱為wse系列,這個是過度產品,最高到wse3.0.後來就是wcf時代。

2.wcf:其實一定程度上就是asp.net web service,因為它支援web service的行業標準和核心協議,因此asp.net web service和wse能做的事情,它幾乎都能勝任,跨平台和語言更不是問題(資料也支援xml格式化,而且提供了自己的格式化器)。

但是wcf作為微軟主推乙個通訊元件或者平台,它的目標不僅僅是在支援和整合web service,因為它還相容和具備了微軟早期很多技術的特性。

根據微軟官方的解釋,wcf(之前的版本名為「indigo」)是使用託管**建立和執行面向服務(service oriented)應用程式的統一框架。它使得開發者能夠建立乙個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統相容協作。wcf是微軟分布式應用程式開發的集大成者,它整合了.net平台下所有的和分布式系統有關的技術,如enterprise sevices(com+).net remoting、web service(asmx)、wse3.0和msmq訊息佇列。以通訊(communiation)範圍而論,它可以跨程序、跨機器、跨子網、企業網乃至於 internet;以宿主程式而論,可以以asp.net,exe,wpf,windows forms,nt service,com+作為宿主(host)。wcf可以支援的協議包括tcp,http,跨程序以及自定義,安全模式則包括saml, kerberos,x509,使用者/密碼,自定義等多種標準與模式。也就是說,在wcf框架下,開發基於soa的分布式系統變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了wcf,就相當於掌握了叩開soa大門的鑰匙。

問題:

wcf與 web service的區別是什麼?

和asp.net web service有什麼關係?

wcf與asp.net web service的區別是什麼?

這是很多.net開發人員容易搞錯的問題。面試的時候也經常遇到。而很多新手也會因為初次接觸wcf或者web service而陷入迷惑的境地,很多資料介紹的也不準確。我甚至和許多許多年開發經驗的開發人員討論這些問題,他們都無法分清二者的區別。相信很多人也被誤導。以下是最常見的錯誤觀點:

web service太舊了;

web service 就是 asp.net web service;

wcf比web service效能好;

wcf 比 asp.net web service快;

wcf比web service速度快;

wcf比web service強大;

wcf比 web service安全;

web service必將被wcf取代;

wcf其實就是web service;

wcf非常簡單,其實沒有什麼;

——————————————————————————————————————–

下面有個類似的問題是來自於wcf中文論壇,引用ymq: 

不錯 以前用web service用的比較多,基本熟悉了,最近接觸到wcf,也許是剛接觸的原因,感覺怎麼比 web service 複雜的多,優點好像也不是很明顯 。。。。。 

謝謝,我曾經在wcf中文技術論壇裡和他們討論過乙個問題。

——————————————————————————————————————–

下面我們來詳細討論一下二者的區別。web service和wcf的到底有什麼區別。

web service:嚴格來說是行業標準,也就是web service 規範,也稱作ws-*規範,既不是框架,也不是技術。

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

它使用xml擴充套件標記語言來表示資料(這個是誇語言和平台的關鍵)。微軟的web服務實現稱為asp.net web service.它使用soap簡單物件訪問協議來實現分布式環境裡應用程式之間的資料互動。wsdl來實現服務介面相關的描述。此外web services 可以註冊到uddi中心.供其客戶查詢使用。 

後來微軟做了asp.net web service的安全,效能,資料加密、解密,託管宿主等多方面的擴充套件,稱為wse系列,這個是過度產品,最高到wse3.0.後來就是wcf時代。(wcf分布式開發必備知識(4):web service )

asp.net web service:微軟提供了web服務的開發框架,屬於asp.net framework的一部分,但是支援早起的ws規範。比如soap1.1。 

wcf:wcf 是乙個分布式應用的開發框架,屬於特定的技術,或者平台。既不是標準也不是規範。

wcf其實一定程度上就是asp.net web service,因為它支援web service的行業標準和核心協議,因此asp.net web service和wse能做的事情,它幾乎都能勝任,跨平台和語言更不是問題(資料也支援xml格式化,而且提供了自己的格式化器)。 

但是wcf作為微軟主推乙個通訊元件或者平台,它的目標不僅僅是在支援和整合web service,因為它還相容和具備了微軟早期很多技術的特性。 

根據微軟官方的解釋,wcf(之前的版本名為「indigo」)是使用託管**建立和執行面向服務(service oriented)應用程式的統一框架。它使得開發者能夠建立乙個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統相容協作。wcf是微軟分布式應用程式開發的集大成者,它整合了.net平台下所有的和分布式系統有關的技術,如enterprise sevices(com+).net remoting、web service(asmx)、wse3.0和msmq訊息佇列。以通訊(communiation)範圍而論,它可以跨程序、跨機器、跨子網、企業網乃至於 internet;以宿主程式而論,可以以asp.net,exe,wpf,windows forms,nt service,com+作為宿主(host)。wcf可以支援的協議包括tcp,http,跨程序以及自定義,安全模式則包括saml, kerberos,x509,使用者/密碼,自定義等多種標準與模式。也就是說,在wcf框架下,開發基於soa的分布式系統變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了wcf,就相當於掌握了叩開soa大門的鑰匙。(msdn)(wcf分布式開發步步為贏(1):wcf分布式框架基礎概念 ) 

如果你想對wcf學習系統化一些,必須向對如enterprise sevices(com+).net remoting、web service(asmx)、wse3.0和msmq訊息佇列也有個詳細的認識的話,你可以看看我的部落格,在此之前我對wcf學習相關的知識都系統的進行了整理。這個是文章目錄:老徐的部落格:文章目錄 。 

還有一點就是,很多人對wcf學習感興趣,當初我也是,直接奔wcf而來,其實在後來的學習中感覺吃力,因為wcf宣稱的很多特性和優勢,我們無法理解,更無法體會。文中提到了很多微軟的早期技術如果都沒有接觸過,這些對比我們就無法有深刻的體會。

建議先從基礎開始,然後在關注一些wcf較高階的應用或者概念,循序漸進。網上也有很多wcf學習的資料,等有了一定基礎以後可以看看付中凱大哥的講座,這個需要一定的基礎。 

結論:那麼我們看了這些分析以後,就可以知道以上的結論為什麼錯誤了。

不能哪乙個技術框架和行業標準作比較,任何對於二者的比較 都是錯誤的,因為兩者根不不在同乙個範疇裡。就好比不能拿個汽車和交通法規比較一樣。這是個誤區。

web service太舊了:框架都版本的差異,功能特性上卻是有新舊之分,但是對於特定的系統,適合自己的就是最好的。

web service 就是 asp.net web service:同樣不是乙個範疇。前者規範,後者是框架

wcf比web service效能好:不是乙個範疇,

wcf 比 asp.net web service快:不一定,需要特定的限制條件,wcf使用basichttpbinding的時候與asp.net web service協議一樣。

wcf比web service速度快:同樣概念不嚴格。

wcf比web service強大:wcf卻是整合了多種微軟的分布式技術,但是這裡應該嚴格說是:asp.net web service

wcf比 web service安全:不嚴格。其次wcf也可以開發完全裸奔的應用程式。

web service必將被wcf取代;web service不會被wcf取代!前者是一套廣泛使用的規範。如果說wcf能取代的是asp.net web service,因為二者都是.net平台上的技術。

wcf其實就是web service:wcf在某些情況下不遵守 web服務規範,也就是可以開發非服務性質的應用。而且不能簡單等同。

wcf非常簡單,其實沒有什麼:wcf雖然是個服務開發框架,但是如果你深入學習,會發現wcf架構的強大之處。單單是wcf安全這一塊已經相當的複雜了。況且還要統一程式設計模型,相容和支援許多早期的分布式技術。很多人輕易下這樣的結論,一定是僅僅看了一些文章或書籍,不一定寫過**。高手不會這樣武斷地下結論。

看了這個文章,希望你對於wcf和webservice有個透徹的理解。

而不會再產生這樣的疑惑。

Web Service和WCF的關係

對於 web service 和wcf 之前總是在用,但是直到前幾天的面試的時候,被問到了二者之間的關係的時候,才去想了想這兩者之間的含義和關係。webservice 當時面試的時候,專案經理問到我它和 wcf的區別的時候,我就蒙了,我就在想,web service 不就是那個 web servic...

webservice和wcf的區別

web service 嚴格來說是行業標準,是一種跨平台 跨語言的規範。能夠解決不同平台 不同語言編寫的應用之間如何相互呼叫問題,既不是框架,也不是技術。soap 簡單物件訪問協議 通過 http 呼叫業務物件執行遠端功能呼叫,web使用者能夠使用 soap 和 http通過 web呼叫的方法來呼叫...

WCF 與Web Service的區別

問題 wcf與 web service的區別是什麼?和asp.net web service有什麼關係?wcf與asp.net web service的區別是什麼?這是很多.net開發人員容易搞錯的問題。面試的時候也經常遇到。而很多新手也會因為初次接觸wcf或者web service而陷入迷惑的境地...