WCF學習(1)概念

2021-04-29 00:28:37 字數 2582 閱讀 2932

windows communication foundation (wcf)是microsoft為構建面向服務的應用提供的分布式通訊程式設計框架,是.net framework 3.5的重要組成部分。使用該框架,開發人員可以構建跨平台、安全、可靠和支援事務處理的企業級互聯應用解決方案。

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

wcf是建立在.net framework 2.0基礎之上的,正式的版本應該會作為windows vista的核心部分而release。然而,這並不代表wcf只能執行在windows vista下。只要安裝了winfx runtime components,在windows xp和windows 2003作業系統下,仍然可以使用。visual studio 2005中並沒有包含wcf,但是當安裝好了winfx runtime components後,我們就可以在visual studio 2005環境下開發和建立wcf的程式了。

wcf是微軟重點介紹的產品,因此也推出了專門的官方**(http://windowscommunication.net),該**有最新的wcf新聞發布,以及介紹wcf的技術文件和樣例**。

二、wcf的優勢

從功能的角度來看,wcf完全可以看作是asmx,.net remoting,enterprise service,wse,msmq等技術的並集。(注:這種說法僅僅是從功能的角度。事實上wcf遠非簡單的並集這樣簡單,它是真正面向服務的產品,它已經改變了通常的開發模式。)因此,對於上述汽車預約服務系統的例子,利用wcf,就可以解決包括安全、可信賴、互操作、跨平台通訊等等需求。開發者再不用去分別了解.net remoting,asmx等各種技術了。

概括地說,wcf具有如下的優勢:

1、統一性

前面已經敘述,wcf是對於asmx,.net remoting,enterprise service,wse,msmq等技術的整合。由於wcf完全是由託管**編寫,因此開發wcf的應用程式與開發其它的.net應用程式沒有太大的區別,我們仍然可以像建立物件導向的應用程式那樣,利用wcf來建立面向服務的應用程式。http://wayfarer.cnblogs.com/images/cnblogs_com/wayfarer/wcf/wcf01.gif

2、互操作性

由於wcf最基本的通訊機制是soap,這就保證了系統之間的互操作性,即使是執行不同的上下文中。這種通訊可以是基於.net到.net間的通訊,如下圖所示:

可以跨程序、跨機器甚至於跨平台的通訊,只要支援標準的web service,例如j2ee應用伺服器(如websphere,weblogic)。應用程式可以執行在windows作業系統下,也可以執行在其他的作業系統,如sun solaris,hp unix,linux等等。如下圖所示:

3、安全與可信賴

ws-security,ws-trust和ws-secureconversation均被新增到soap訊息中,以用於使用者認證,資料完整性驗證,資料隱私等多種安全因素。

在soap 的header中增加了ws-reliablemessaging允許可信賴的端對端通訊。而建立在ws-coordination和ws- atomictransaction之上的基於soap格式交換的資訊,則支援兩階段的事務提交(two-phase commit transactions)。http://wayfarer.cnblogs.com/images/cnblogs_com/wayfarer/wcf/wcf04.gif

上述的多種ws-policy在wcf中都給與了支援。對於messaging而言,soap是web service的基本協議,它包含了訊息頭(header)和訊息體(body)。在訊息頭中,定義了ws-addressing用於定位soap訊息的位址資訊,同時還包含了mtom(訊息傳輸優化機制,message transmission optimization mechanism)。如圖所示:http://wayfarer.cnblogs.com/images/cnblogs_com/wayfarer/wcf/wcf05.gif

4、相容性

wcf充分的考慮到了與舊有系統的相容性。安裝wcf並不會影響原有的技術如asmx和.net remoting。即使對於wcf和asmx而言,雖然兩者都使用了soap,但基於wcf開發的應用程式,仍然可以直接與asmx進行互動。

WCF學習筆記1

wcf全面解析 1 wcf初建 建立4個 第乙個類庫service.inte ce 用於服務契約 service contract 引用system.servicemodel.dll 第二個類庫service 用於實際第乙個類庫 第三個控制台hosting 作為服務宿主的控制台應用,引用上面兩個專案...

wcf學習筆記3 wcf中基本概念

1.wcf系統基本組成要件 2.關鍵概念 wcf構建的目的就是進行系統之間的message的交換,主要包含下面幾部分 1.message and endpoint 簡單的將message是在endpoint之間進行傳遞 2.communication protocols 訊息message可以通過i...

《WCF按部就班學習系列1 WCF基礎概述》

1 wcf的概述 what 1.1.wcf全稱windows communication foundation,是microsoft為構建面向服務的應用提供的分布式通訊程式設計框架,是.net framework 3.5的重要組成部分。使用該框架,開發人員可以構建跨平台 安全 可靠和支援事務處理的企...