在一個好的架構下編程,不僅對於開發人員是一件賞心悅目的事情,更重要的是軟件能夠表現出一個健康的姿態;而架構設計的不合理,不僅對於開發人員是一件受苦受難的事情,軟件本身的質量更是受到嚴重威脅。
-
架構設計圖
-
架構說明
一個標准的四層架構包含如下四個部分:
-
展示層,負責系統與客戶的交互
-
業務邏輯層,負責處理系統的業務
-
數據訪問層,負責處理數據,與不同的數據庫打交道
-
服務層,負責與其他系統進行數據交互和業務集成
我們在此四層架構的基礎上進行一些擴展,就是將業務邏輯的方法抽象出業務接口層(IBLL)。
-
組件設計圖
-
組件說明
以下是在架構圖的框架下設計的9個組件。
1. App——頁面展示
因為是BS架構的項目,所以選擇最新的MVC 3.0框架,使用Jquery腳本庫。
2. BLL——業務邏輯
業務邏輯的操作,包括業務處理,事務等。
3. DAL——數據訪問
數據庫訪問的操作,數據實體,數據校驗,使用微軟的EF技術。
4. IBLL——業務接口
業務邏輯層的方法對外暴露的接口和服務契約。
5. Common——公共組件
整個應用程序使用的公共輔助方法。
6. ModelingProject——模型設計
在此設計項目的圖例,如:架構圖。
7. WcfHost——服務宿主
為對外的服務提供宿主,使用微軟WCF技術。
8. WFActivitys——工作流活動層
定義了工作流的活動,使用微軟WF技術。
9. WFDesigner——工作流設計器
實施人員自由配置工作流的設計器,使用微軟WPF技術。
-
我們約定:
調用關系請將架構圖和組件圖結合來看,如下:
- 展示層(App)調用業務接口層(IBLL),業務接口層(IBLL)被業務邏輯層(BLL)實現,業務邏輯層(BLL)調用數據訪問層(DAL),公共組件(Common)則是抽象了系統中可以共用和重用的部分,每個層都可以調用
- 增加了一個服務層(WcfHost),將業務接口層(IBLL)暴露給其他系統,使其方便與其他系統進行數據交互和業務集成
- 此處沒有讓展示層(App)調用服務層(WcfHost),是因為我們有共同的業務接口層(IBLL),也是為了性能的考慮
- 因為"數據實體"放在DAL層中,所以展示層(App)也需要引用數據訪問層(DAL),但不許在展示層做數據庫操作
下一個章節我們一起來探討一下這個架構的數據訪問層的具體實現。
此架構的代碼實現,請參考 www.langben.com