就以一個簡單的DirectCenter項目開始介紹這個架構吧,DirectCenter主要分為使用者管理,部門管理,公司管理三個模組。首先先搭建起解決方案DirectCenter:
DirectCenter:
DirectCenter.Model (類庫項目)實體類庫,其中包括hibernate對應檔(可以把對應檔放到DAL層,這樣使Model也比較單純,而DAL則只是Nhibernate的完整實現)
DirectCenter.IDAL (類庫項目)資料訪問層介面
DirectCenter.DAL (類庫項目)資料庫訪問層實現(採用NHibernate)
DirectCenter.IBLL (類庫項目)業務層介面
DirectCenter.BLL (類庫項目)業務層實現(使用IDAL,通過spring.net的IOC注入實際的資料訪問層)
DirectCenter.App (類庫項目)系統的配置,其中包括Nhibernate,Spring.net的一些配置資訊,業務層的DAL注入.
DirectCenter.UnitTest (類庫項目) 使用nunit對業務層進行單元測試
DirectCenter.DTO (類庫項目) data transform object 用於和前台UI層互動的實體。之所以分出來,也是為了考慮不只是為了Web項目,同時包括WebService等其它UI.(可能會有不少人會問已經有Model了,為什麼還需要DTO?)
DirectCenter.Controllers (類庫項目) Web控制器。使用者請求和後台業務層的中轉,接收並分析使用者請求,調用業務層完成請求,再分發給使用者。(注意這裡調用的是IBLL,是商務邏輯介面,也是通過Spring.Net的IOC注入具體的業務實現)。
DirectCenter.Web (Web Application) 單純的View層,主要由ExtJs完成介面和Ajax請求。
當然,這裡也可以加一個Controllers的單元測試項目,不過我覺得這裡很多時候用處不是很大。因為這裡Controllers的工作比較統一和單純了。
首先先設計和建立資料庫,欄位和說明如下: