公司項(xiàng)目使用的架構(gòu)分析
在一個好的架構(gòu)下編程,不僅對于開發(fā)人員是一件賞心悅目的事情,更重要的是軟件能夠表現(xiàn)出一個健康的姿態(tài);而架構(gòu)設(shè)計的不合理,不僅對于開發(fā)人員是一件受苦受難的事情,軟件本身的質(zhì)量更是受到嚴(yán)重威脅。
架構(gòu)設(shè)計圖
架構(gòu)說明
一個標(biāo)準(zhǔn)的四層架構(gòu)包含如下四個部分:
-
展示層,負(fù)責(zé)系統(tǒng)與客戶的交互
-
業(yè)務(wù)邏輯層,負(fù)責(zé)處理系統(tǒng)的業(yè)務(wù)
-
數(shù)據(jù)訪問層,負(fù)責(zé)處理數(shù)據(jù),與不同的數(shù)據(jù)庫打交道
-
服務(wù)層,負(fù)責(zé)與其他系統(tǒng)進(jìn)行數(shù)據(jù)交互和業(yè)務(wù)集成
我們在此四層架構(gòu)的基礎(chǔ)上進(jìn)行一些擴(kuò)展,就是將業(yè)務(wù)邏輯的方法抽象出業(yè)務(wù)接口層(IBLL)。
組件設(shè)計圖
組件說明
以下是在架構(gòu)圖的框架下設(shè)計的9個組件。
因?yàn)槭荁S架構(gòu)的項(xiàng)目,所以選擇***的MVC 3.0框架,使用Jquery腳本庫。
2. BLL——業(yè)務(wù)邏輯
業(yè)務(wù)邏輯的操作,包括業(yè)務(wù)處理,事務(wù)等。
數(shù)據(jù)庫訪問的操作,數(shù)據(jù)實(shí)體,數(shù)據(jù)校驗(yàn),使用微軟的EF技術(shù)。
業(yè)務(wù)邏輯層的方法對外暴露的接口和服務(wù)契約。
整個應(yīng)用程序使用的公共輔助方法。
在此設(shè)計項(xiàng)目的圖例,如:架構(gòu)圖。
為對外的服務(wù)提供宿主,使用微軟WCF技術(shù)。
定義了工作流的活動,使用微軟WF技術(shù)。
實(shí)施人員自由配置工作流的設(shè)計器,使用微軟WPF技術(shù)。
我們約定:
調(diào)用關(guān)系請將架構(gòu)圖和組件圖結(jié)合來看,如下:
- 展示層(App)調(diào)用業(yè)務(wù)接口層(IBLL),業(yè)務(wù)接口層(IBLL)被業(yè)務(wù)邏輯層(BLL)實(shí)現(xiàn),業(yè)務(wù)邏輯層(BLL)調(diào)用數(shù)據(jù)訪問層(DAL),公共組件(Common)則是抽象了系統(tǒng)中可以共用和重用的部分,每個層都可以調(diào)用
- 增加了一個服務(wù)層(WcfHost),將業(yè)務(wù)接口層(IBLL)暴露給其他系統(tǒng),使其方便與其他系統(tǒng)進(jìn)行數(shù)據(jù)交互和業(yè)務(wù)集成
- 此處沒有讓展示層(App)調(diào)用服務(wù)層(WcfHost),是因?yàn)槲覀冇泄餐臉I(yè)務(wù)接口層(IBLL),也是為了性能的考慮
- 因?yàn)?quot;數(shù)據(jù)實(shí)體"放在DAL層中,所以展示層(App)也需要引用數(shù)據(jù)訪問層(DAL),但不許在展示層做數(shù)據(jù)庫操作
下一個章節(jié)我們一起來探討一下這個架構(gòu)的數(shù)據(jù)訪問層的具體實(shí)現(xiàn)。
此架構(gòu)的代碼實(shí)現(xiàn),請參考 http://files.cnblogs.com/langben/www.langben.com.zip
原文鏈接:http://www.cnblogs.com/langben/archive/2012/07/17/langben.html