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