下面我說開始例子,假設有這麼一個應用場景,我們需求一個Hello服務,并且需要在XML WebService、.NET Remoting和本地同程序中三種不同環境的應用,也就是說,這個服務可能會有三中實作,具體使用那一個,在應用過程中決定,我先貼個簡單的類圖:
<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/SL_13CFC/wps_clip_image-20776_2.png"></a>
現在我們來開始幹活,一步一步實作這個應用,首先定義服務接口,建一個名稱為Hello.Interface的類庫項目,定義一個IHello接口:
接着我們做WebService實作,添加一個Hello.WebService的ASP.NET Web服務應用程式并引用Hello.Interface,添加一個HelloService的WebService:
實作.NET Remoting和LocalComponent,添加一個名稱為Hello.Service類庫項目,添加一個類Hello:
實作一個簡單的.NET Remoting的運作環境,建一個名稱為Hello.ServiceConsole的控制台項目:
最後完成我們的調用用戶端,建一控制台項目Hello.Client,引用Hello.Interface項目和EAS.IOCContainer.dll、EAS.ServiceLocator.dll程式組,定義服務消費者HelloClient:
控制台程式入口Program :
定義配置檔案App.config :
運作客戶段,可以看到如下的輸入截圖:
<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/SL_13CFC/wps_clip_image-23084_2.png"></a>
是不是很簡單,在實際應用中,對于這種服務運作環境的未知性,我們可以通過這種簡單的方法進行處理,服務消費者隻需求知道接口,而無需知道具體的實作,開發人員可以根據客戶的不同應用場景而做出不同的實作,上例中的服務定義配置項中,我注釋了DotNetRemoting和LocalComponent兩種方式的Hello服務,大家可以釋放放開其中的一個而注釋另外兩個用于配置運作。
QQ群:120661978,125643764
<a href="http://www.cnblogs.com/eastjade/archive/2010/04/19/1715662.html">AgileEAS.NET之靈活并行開發方法</a>
<a href="http://www.agilelab.cn/">靈活軟體工程實驗室</a>
本文轉自 agilelab 51CTO部落格,原文連結:http://blog.51cto.com/agilelab/561923