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