前幾篇文章我們簡單的介紹了WCF以及怎樣使用它,今天我們來討論一下WCF和WebService的異同。
相信大多數同學跟我一樣,對於WebService有所了解。並且應該說你是先聽說WebService,后聽說還有個WCF的。對不正確?那好,我們今天來一起看看。這兩者有何不同。
WebService是標准,是一種規范。嚴格來說WebService是一種行業標准,不是一種特定的技術。而WCF是一種WebService的實現。在WCF之前,微軟系列中有ASP.NET Web Service,后來微軟做了ASP.NETWeb Service的安全。性能,數據加密、解密,托管宿主等多方面的擴展。稱為WSE系列。WSE3.0.后來就是WCF時代。
WCF是一個分布式應用的開發框架。屬於特定的技術,或者平台。既不是標准也不是規范。
一定程度上WCF就是ASP.NET Web Service,由於它支持Web Service的行業標准和核心協議。因此ASP.NET WebService和WSE能做的事情,它差點兒都能勝任,跨平台和語言更不是問題,但它的目標不不過在支持和集成Web Service。
WCF是使用托管代碼建立和執行面向服務(ServiceOriented)應用程序的統一框架。
它使得開發人員可以建立一個跨平台的安全、可信賴、事務性的解決方式,且能與已有系統兼容協作。WCF是微軟分布式應用程序開發的集大成者,它整合了.Net平台下全部的和分布式系統有關的技術,如EnterpriseSevices(COM+).Net Remoting、WebService(ASMX)、WSE3.0和MSMQ消息隊列。以通信(Communiation)范圍而論,它能夠跨進程、跨機器、跨子網、企業網乃至於 Internet。以宿主程序而論,能夠以ASP.NET,EXE,WPF,WindowsForms,NT Service,COM+作為宿主(Host)。
WCF能夠支持的協議包含TCP。HTTP,跨進程以及自己定義,安全模式則包含SAML,Kerberos,X509,用戶/password,自己定義等多種標准與模式。也就是說,在WCF框架下,開發基於SOA的分布式系統變得easy了。微軟將全部與此相關的技術要素都包含在內,掌握了WCF,就相當於掌握了叩開SOA大門的鑰匙。
關於WCF大家的一些錯誤的理解,以及從網上找了一些解釋:
1、Web Service太舊了
框架都版本號的差異。功能特性上卻是有新舊之分,可是對於特定的系統。適合自己的就是最好的。
2、Web Service 就是 ASP.NET Web Service
相同不是一個范疇。
前者規范,后者是框架
3、WCF比Web Service性能好:不是一個范疇。
4、WCF 比 ASP.NET Web Service快
不一定,須要特定的限制條件,WCF使用BasicHttpBinding的時候與ASP.NET Web Service協議一樣。
5、WCF比Web Service速度快:相同概念不嚴格。
6、WCF比Web Service強大
WCF卻是集成了多種微軟的分布式技術,可是這里應該嚴格說是:ASP.NET Web Service
7、WCF比 Web Service安全:不嚴格。
其次WCF也能夠開發全然裸奔的應用程序。
8、Web Service必將被WCF代替
Web Service不會被WCF代替!
前者是一套廣泛使用的規范。
假設說WCF能代替的是ASP.NET WebService。由於二者都是.NET平台上的技術。
9、WCF事實上就是Web Service
WCF在某些情況下不遵守 Web服務規范,也就是能夠開發非服務性質的應用。並且不能簡單等同。
10、WCF很easy。事實上沒有什么
WCF盡管是個服務開發框架,可是假設你深入學習。會發現WCF架構的強大之處。單單是WCF安全這一塊已經相當的復雜了。
況且還要統一編程模型,兼容和支持很多早期的分布式技術。
好了,這里僅僅是拋磚引玉,詳細有哪些不同。還須要大家親自己主動手查一下。做做樣例體驗一下。