WCF自承載實踐心得分享
WCF自承載這一詞匯你可能從沒有聽過。其實對于它的理解還是比較容易的。首先我們要弄清楚WCF自承載優(yōu)缺點,方便我們深入的研究這一知識。#t#
要能夠?qū)崿F(xiàn)WCF自承載,必須滿足兩個條件。
第一,需要 WCF 運行時;第二,需要可以承載 ServiceHost 的托管 .NET 應(yīng)用程序。您需要自己動手編寫啟動和停止宿主的代碼。
下面是WCF自承載的優(yōu)點:
◆易用性:只需幾行代碼即可使服務(wù)運行。
◆靈活性:通過 ServiceHost<T> 的 Open() 和 Close() 方法,可以輕松控制服務(wù)的生存期。
◆易調(diào)試性:可以使用熟悉的調(diào)試方式對自承載環(huán)境中承載的 WCF 服務(wù)進行調(diào)試,而不必連接到單個應(yīng)用程序來激活服務(wù)。
◆易部署性:通常,部署簡單 Windows 應(yīng)用程序與使用 xcopy 一樣容易。您不必在服務(wù)器場和類似地方部署復(fù)雜的方案,即可部署簡單的 Windows 應(yīng)用程序來充當(dāng) WCF ServiceHost。
◆支持所有綁定和傳輸:自承載并不限制您僅能使用現(xiàn)有的綁定和傳輸技術(shù)。在 Windows XP 和 Windows Server 2003 上,IIS 限制您只能使用 HTTP。
下面WCF自承載的缺點:
◆可用性受到限制:服務(wù)只有在應(yīng)用程序運行時才能被訪問。
◆功能受到限制:自承載的應(yīng)用程序在對高可用性、易管理性、可靠性、可恢復(fù)性、版本控制和部署方案的支持方面受到一定限制。至少,現(xiàn)有的 WCF 無法提供這些支持,因此在自承載的情況中,您必須自己實現(xiàn)這些功能;例如,默認(rèn)情況下 IIS 提供了這些功能中幾項。
換句話說,對于企業(yè)級方案來說不應(yīng)考慮自承載方式。自承載適用于企業(yè)項目的開發(fā)或演示階段。此外,當(dāng)您希望用戶桌面應(yīng)用程序進行相互通信或在點對點情況下,可以對服務(wù)進行自承載。本書第 12 章對此進行了描述。
為了在實際工作環(huán)境中更好地說明WCF自承載,本章提供了一個 WinForms 應(yīng)用程序,該程序所承載的服務(wù)用于跟蹤 QuickReturns Ltd. 案例研究中證券商發(fā)布的報價。在此方案中,有兩個不同的WinForms 應(yīng)用程序。
一個是證券商管理器應(yīng)用程序,證券商可以使用該程序發(fā)布報價并進行證券交易。另一個程序是單獨的 WinForms 應(yīng)用程序,用于跟蹤發(fā)布的報價。如列表,該程序公開一個服務(wù),所公開的服務(wù)實現(xiàn)了 ITradeTrackingService 約定,從而實現(xiàn)對報價的跟蹤。證券商管理器應(yīng)用程序會在成功通過 TradeService 發(fā)布報價后調(diào)用該服務(wù)。
- using System.ServiceModel;
- using QuickReturns.StockTrading.
ExchangeService.DataContracts;- namespace QuickReturns.StockTrading.
TradeTrackingService.Contracts- {
- [ServiceContract()]
- interface ITradeTrackingService
- {
- [OperationContract()]
- void PublishQuote(Quote quote);
- }
- }