實戰-架構設計
在微軟的陣營中,将其在不同領域提出的技術解決方案利用一個項目,串起來,融會貫通,例如底層采用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》