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