天天看點

實戰架構設計實戰-架構設計架構設計圖架構說明元件設計圖元件說明

實戰-架構設計

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