分析公司項目使用的架構
下面的架構設計是公司項目中實際使用的,希望大家不吝指教,溝通改進。
架構設計圖
架構說明
一個標準的三層架構包含如下三個部分:
-
展示層,負責系統與客戶的交互
-
業務邏輯層,負責處理系統的業務
-
數據訪問層,負責處理數據,與不同的數據庫打交道
我們在此三層架構的基礎上進行一些小的擴展,增加了一個服務層,使其方便與其他系統進行數據交互和業務集成。
公共組件則是抽象了系統中可以共用和重用的部分。
組件設計圖
組件說明
-
App——頁面展示
采用MVC 3.0框架,使用Jquery腳本庫,控件選用Easyui。
-
BLL——業務邏輯
業務邏輯的操作,包括業務處理,事務,日志。
-
DAL——數據訪問
數據庫訪問的操作,數據實體,業務實體,數據校驗,使用Entity Framework。
-
IBLL——業務接口
業務邏輯層的方法對外暴露的接口和服務契約。
-
Common——公共組件
整個應用程序使用的公共輔助方法。
-
ModelingProject——模型設計
在此設計項目的圖例,如:架構圖。
-
WcfHost——服務宿主
為對外的服務提供宿主,使用微軟WCF技術,采用HTTPS通訊協議。
-
WFActivitys——工作流活動層
定義了工作流的活動,使用微軟WF技術。
-
WFDesigner——工作流設計器
可以讓實施人員自由配置工作流的設計器,使用微軟WPF技術。
以上是在架構圖的框架下設計的9個組件,讓每個層職責獨立,松耦合,適合團隊開發。
在架構圖中我們看到有"數據實體"、"業務實體"和"頁面模型",他們之間的關系呢?數據實體是數據庫表和表關系的映射,是Entity Framework自動生成的;但在不同的業務領域,數據實體無法滿足需求,就需要我們在數據實體的基礎上擴展或者自定義,于是就有了業務實體的概念;務實體經過業務處理后,需要展示給客戶的模型就叫做頁面模型,頁面模型是一個頁面動態數據的載體,每個頁面都對應著自己的頁面模型。如果我們只是做一個單表的增刪改查,那么"數據實體"、"業務實體"和"頁面模型"是一樣的,但在復雜業務中,三者就有差別了。
"數據實體"在DAL層中,是Entity Framework自動生成的實體;
"業務實體"也在DAL層中,是基于"數據實體"進行擴展的實體
"頁面模型"則比較復雜,簡單的頁面模型,可以直接使用業務實體,復雜的頁面模型則需要自定義,放在了Modles文件夾下。
此架構實現的下載地址http://files.cnblogs.com/langben/www.langben.com.zip
原文鏈接:http://www.cnblogs.com/langben/archive/2012/07/17/langben.html
【編輯推薦】