系列導航
- MVC實用架構設計(〇)——總體設計
- MVC實用架構設計(一)—— 項目結構搭建
- MVC實用架構設計(二)—— 使用MEF應用IOC
- MVC實用架構設計(三)—— EF-Code First(1):Repository,UnitOfWork,DbContext
- MVC實用架構設計(三)—— EF-Code First(2):實體映射、數據遷移,重構
- MVC實用架構設計(三)—— EF-Code First(3):使用T4模板生成相似代碼
- MVC實用架構設計(三)—— EF-Code First(4):數據查詢
- MVC實用架構設計(三)—— EF-Code First(5):二級緩存
- MVC實體架構設計(三)—— EF-Code First(6):數據更新
- 未完待續。。。
〇、目錄
一、 前言
二、 結構圖
三、
結構說明
一、前言
一直以來都想寫這個系列,但基于各種理由(主要是懶惰),遲遲沒有動手。今天,趁著周末的空檔,終于把系列的目錄公布出來了,算是開個頭,也給自己一個堅持寫博客的理由吧。
這個架構是從我近期在做的一個項目中剝離出來的,這個項目由我從0開始一手搭建,在整個過程中不斷學習(在博客園中參考了很多大牛的作品)與思考中不斷完善,項目的結構也從一個普通的類PetShop三層結構演變成了現在這樣,一切以實用為目的,所以項目的改造過程中并不太嚴格遵守傳統三層的定義,這個在下篇《項目結構搭建》及以后的系列文章中都會提及到,也會與傳統三層結構進行對比。
寫這個系列的目的之一也是想把當前項目的架構抽象出來,以希望得到高手大牛們的指點,指出不足之處,以求發展改進。
本系列使用的開發環境為: Windows 7 SP1、 Visual Studio 2012 (Update2)、TFS2012 (微軟TFS云服務)、SQL Server 2008+,并使用 Resharper 7.1 進行代碼優化。
二、結構圖
上圖是本構架的設計圖,縱向中間一列為架構主體部分,兩邊的小列為周邊的依賴項,如果橫向有交集,則說明主體部分對周邊存在依賴。比如GMF.Demo.Core.Data依賴于Domain Models與EntityFramework,但GMf.Demo.Site.Web與GMF.Demo.Site對Entityframework不存在依賴。同樣,Log模塊也僅為GMF.Demo.Site.Web服務等等,這些在下面的結構說明中也會詳加說明。
三、結構說明
-
Infrastructure(基礎設施層):提供系統中與業務無關的基礎設施功功能
- GMF.Component.Tools:工具組件,提供通用輔助操作功能,擴展方法,異常定義,日志記錄定義與實現等功能
- GMF.Component.Data:數據組件,提供 與業務無關的 EF數據上下文,單元操作,倉儲操作,EF二級緩存等功能的定義與實現
-
Core (業務核心層):提供與業務實體密切相關的業務功能
- GMF.Demo.Core.Models:業務實體模型,定義用于系統核心業務實現的數據模型的定義
- GMF.Demo.Core.Data:業務數據訪問定義與實現:提供與 業務相關的 數據訪問功能的實體映射,數據遷移,倉儲操作的定義與實現
-
GMF.Demo.Core:業務核心功能定義與實現:提交
與客戶端(網站,桌面端,移動端)無關的
業務邏輯的實現,業務核心層主要特征如下:
- 此層是業務邏輯處理的核心,數據載體為業務實體
- 此層所有類為抽象類,需要在相應的客戶端(網站,桌面端,移動端)進行繼承后才能被展現層調用
- 此層要做到客戶端(網站、桌面端、移動端)狀態(如網站的Cookie,Session等)無關性,所有客戶端特有的業務都要在相應的派生層中進行處理,轉換為狀態無關后再調用此層進行運算
- 對于不同客戶端(網站、桌面端、移動端)的數據,只需要轉換為業務實體即可調用此層代碼進行運算,解決相同業務在不同客戶端代碼重復的問題
-
Application (站點應用層)
- GMF.Demo.Site.Models:網站業務視圖模型:定義用于網站業務實現的視圖模型的定義
- GMF.Demo.Site:網站業務實現,此項目 繼承于 GMF.Demo.Core,主要職能如下:
-
- 對業務執行權限進行檢查
- 負責把從網站接收的業務視圖實體轉換為核心業務模型,傳給業務核心層進行業務處理
- 處理與Http密切相關的數據(Session、Cookie等),處理成與Http狀態無關后再交由核心層進行處理
-
Presentation (展現層)
- GMF.Demo.Client.Consoles:業務控制臺,可對功能代碼段,核心業務等功能進行調用測試。
-
GMF.Demo.Site.Web:網站UI展現
- 對Action執行權限進行檢查
- 接收用戶輸入并轉交給站點業務層進行處理
- 記錄功能操作的日志記錄與異常日志
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
