實戰-架構設計


在微軟的陣營中,將其在不同領域提出的技術解決方案利用一個項目,串起來,融會貫通,例如底層采用ef,展示層使用mvc,自定義一個業務層,讓兩者串聯,就成一個簡單的三層架構,這是催動其他多層架構的內功。

在一個好的架構下編程,不僅對於開發人員是一件賞心悅目的事情,更重要的是軟件能夠表現出一個健康的姿態;而架構設計的不合理,不僅對於開發人員是一件受苦受難的事情,軟件本身的質量更是受到嚴重威脅。

架構設計圖

架構說明

一個標准的四層架構包含如下四個部分:

  1. 展示層,負責系統與客戶的交互
  2. 業務邏輯層,負責處理系統的業務
  3. 數據訪問層,負責處理數據,與不同的數據庫打交道
  4. 服務層,負責與其他系統進行數據交互和業務集成

我們在此四層架構的基礎上進行一些擴展,就是將業務邏輯的方法抽象出業務接口層(IBLL)。

調用關系請結合下面的組件圖一起來看,如下:

展示層(App)調用業務接口層(IBLL),業務邏輯層(BLL)實現了接口層(IBLL),業務邏輯層(BLL)調用數據訪問層(DAL),公共組件(Common)則是抽象了系統中可以共用和重用的部分,每個層都可以調用。

另外,增加了一個服務層(WcfHost),將接口層(IBLL)暴露給其他系統,使其方便與其他系統進行數據交互和業務集成。

注意:此處沒有讓展示層(App)調用服務層(WcfHost),是為了性能的考慮。

組件設計圖

組件說明

  1. App——頁面展示

是BS架構的項目,選擇最新的MVC框架,使用Jquery腳本庫。

  1. BLL——業務邏輯

業務邏輯的操作,包括業務處理,事務等。

  1. DAL——數據訪問

數據庫訪問的操作,數據實體,業務實體,數據校驗,使用Entity Framework。

  1. IBLL——業務接口

業務邏輯層的方法對外暴露的接口和服務契約。

  1. Common——公共組件

整個應用程序使用的公共輔助方法。

  1. ModelingProject——模型設計

在此設計項目的圖例,如:架構圖。

  1. WcfHost——服務宿主

為對外的服務提供宿主,使用微軟WCF技術。

  1. WFActivitys——工作流活動層

定義了工作流的活動,使用微軟WF技術。

  1. WFDesigner——工作流設計器

實施人員自由配置工作流的設計器,使用微軟WPF技術。

以上是在架構圖的框架下設計的9個組件,我們結合架構圖一起分析:

  1. 展示層,包含App和WFDesigner項目
  2. 業務邏輯層,包含BLL,IBLL和WFActivitys項目
  3. 數據訪問層,包含DAL項目
  4. 服務層,包含WcfHost項目
  5. 公共組件層,包含Common項目

"數據實體"在DAL層中,是Entity Framework自動生成的實體;

"業務實體"是基於"數據實體"進行擴展的實體,或者自定義的實體。因為是基於Entity Framework自動生成的數據實體,所以也放在DAL層中。另外,數據實體和業務實體集成了數據驗證的作用。

注意:因為"業務實體"也放在DAL訪問層中,所以展示層(App)也需要引用數據訪問層,但此處約定不許在展示層做數據庫操作。

下一個我們探討一下《2數據訪問層.doc》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM