WCF初探-1:認識WCF


1.WCF是什么?

 

WindowsCommunication Foundation(WCF)是由微軟發展的一組數據通信的應用程序開發接口,它是.NET框架的一部分,由.NET Framework 3.0開始引入,與Windows Presentation Foundation及 Windows Workflow Foundation並行為新一代Windows操作系統以及WinFX的三個重大應用程序開發類庫。

在.NETFramework 2.0以及前版本中,微軟發展了Web Service(SOAP with HTTP communication),.NET Remoting(TCP/HTTP/Pipeline communication)以及基礎的Winsock等通信支持,由於各個通信方法的設計方法不同,而且彼此之間也有相互的重疊性(例如.NET Remoting可以開發SOAP, HTTP通信),對於開發人員來說,不同的選擇會有不同的程序設計模型,而且必須要重新學習,讓開發人員在用戶有許多不便。同時,服務導向架構(Service-Oriented Architecture)也開始盛行於軟件工業中,因此微軟重新查看了這些通信方法,並設計了一個統一的程序開發模型,對於數據通信提供了最基本最有彈性的支持,這就是Windows Communication Foundation。

 

2.WCF能做什么?

 

根據微軟官方的解釋,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大門的鑰匙。

 

3.WCF示例

 

我們通過VS2010自帶的模板創建一個WCF程序,來認識一下WCF服務

第一步:打開VS2010,選擇WCF模板中的"WCF服務應用程序",將解決方案的名稱改為WcfTest,名稱改為Service

 

第二步:創建完成后,解決方案中生成3個文件,服務契約接口和服務實現類,以及服務寄宿文件和配置文件

 

 

 

 

 

第三步:對服務進行寄宿,點擊Service1.svc在瀏覽器中進行查看,既可以寄宿該服務

 

 

 

第四步:服務寄宿后,我們就可以查看其元數據的信息以及調用服務產生客戶端代理類

 

點擊鏈接就可以看到服務的元數據信息如下:

 

 

第五步:我們通過svcutil.exe工具生成客戶端代理類和客戶端的配置文件

svcutil.exe是一個命令行工具,位於路徑C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin下,我們可以通過命令行運行該工具生成客戶端代理類

1.在運行中輸入cmd打開命令行,輸入 cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

2.輸入svcutil.exe /out:f:\TestProxy.cs /config:f:\App.confighttp://localhost:10998/Service1.svc?wsdl(注意:端口號改成本機服務寄宿的端口號)

 

此時,你可以在你的f盤的根目錄查看到你剛剛生成的客戶端代理文件和配置文件TestProxy.cs 、App.config

 

第六步:創建一個控制台應用程序的客戶端(Client),將生成的代理文件拷貝到該工程中(也可以點擊引用"添加服務引用",靠VS2010自動生成客戶端代理類)

此時你會看到客戶端代理類中出現錯誤,原因是我們並未對服務需要的程序集進行引用。我們引用System.Runtime.Serialization和System.ServiceModel

在客戶端的Program.cs中輸入如下代碼

 

設置客戶端(Client)未啟動項目,運行程序就可以看到第一個服務程序運行的結果

 

到此,我們完成了一個簡介的WCF程序,下一篇,我們將自己手動編寫一個wcf服務程序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM