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