Two-tier 架構改變成 three-tier

筆者近期遇到一個案例,原本系統架構是 Windows Form 直接連接資料庫進行存取(如下圖左),
如今要在介面層與資料處理層間加入Web層 (如下圖右)。

image

筆者實作的想法是:

1. 新增 Web Service 專案,使用原本Data Access Library 存取資料庫

2. 新增 Interface 專案,將原本的資料處理類別逆向產生 Interface

3. 新增一個資料代理類別層,並實作上述所有介面,實作方法就是直接呼叫Web Service

4. 參考MSDN : ConfigurationElement Class 將要實例的類別填在組態設定檔,
     UI 層讀取組態設定檔透過 Activator 產生資料處理物件。

組態設定檔如下

<configSections>
  <section name="DbFactory" type="ProviderFactory.DbFactorySection, ProviderFactory" />
</configSections>
<DbFactory>
  <dbclass>
    <add name="DBClass" type="DBProxyLibrary.DBClass, DBProxyLibrary" />
    <add name="DBClass2" type="DBProxyLibrary.DBClass2, DBProxyLibrary" />
  </dbclass>
</DbFactory>

 

前後兩版本的程式碼範例:http://files.dotblogs.com.tw/robin/1303/201337173959928.zip

 

PS: 架構設計完成,接著如何自動化實作程式碼,請參閱: 使用反映(Reflection)讀取組件的資訊