基於領域式驅動設計(DDD)、Ioc(autofac)實現高性能後臺框架(1)——StudioCore.1.0

1、環境及優勢介紹:html

       開發環境:vs2017(.Net Framework 4.5)前端

       數據庫:MySQL(選擇緣由是佔用資源少)git

       ORMSqlSuger(是由園中大神孫凱旋寫的,向大神致敬!膜拜!博客園官網github

       前端LayUI(扁平化設計,我的體驗(看着舒服、用着方便 模塊化開發)向團隊致敬)sql

       Web:MVC5數據庫

      Iocautofac(推薦博客:NET領域最爲流行的IOC框架之一AutofacASP.NET MVC IOC 之AutoFac攻略等)編程

 

優勢:性能高、可擴展、靈活性好、安全性(數據安全,即便是本地後臺取數據,也有安全過濾)、代碼規範、開發維護簡單、面向插件編程、功能(模塊)獨立緩存

 

 

 

2、總體框架介紹:安全

先來張圖(項目架構):架構

 

框架中各個模塊介紹

01:Client

 

Client:主要負責客戶端,上圖建的意義是多個項目能夠放到一塊兒,但又不衝突,方便維護管理(MVC 空項目:我的喜歡乾淨不喜歡冗餘的一些代碼)

02PluginServices

 

 PluginServices:主要負責插件 (以組件模式編程)有ClientsPlugin (本地)、InterPlugin (get/post)WCFPlugin (服務) 插件功能同樣

2.1:ClientsPlugin 這裏是項目內部插件(負責本地一些插件模塊)上圖主要是後臺的插件  主要項目包含:AdminPlugin、BasePlugin、IAdminPlugin

2.1.1AdminPlugin:實現插件功能

2.1.2BasePlugin:過濾插件安全等

2.1.3IAdminPlugin:插件契約

2.2:InterPlugin 這裏是針對WebAPI 插件 負責get/post 調用插件

2.3:WCFPlugin 這裏是針對服務插件  負責服務調用(跨平臺)

2.4:IocCorePlugin 負責插件Ioc集合 方便其餘調用

03Manager

 

 

 

Manager:主要負責業務(至關於鏈接器,把插件和數據倉儲鏈接起來)

3.1 AdminManager 後臺業務鏈接器 

3.2RedisManager 把業務數據緩存到Redis 提升訪問效率 可擴展分佈式(我的理解:爲何要加到Manager業務這呢?可能不少人以爲不合理,通常可能會放到數據倉儲哪(Repository),我以爲加緩存的意義應該是項目啓動的時候 就把須要的東西加載出來,緩存起來,若是加到倉儲的話,會把全部的都緩存起來,有些當前用不到的模型數據也會緩存起來,這樣就會形成資源浪費(財大氣粗的當作空氣~),加到Manager就是按需加載)

 

04Repository

 

Repository:數據倉儲主要負責模型的一些實現

4.1:BaseRepositorys 定義公共模型契約

4.2:IocCoreRepository 負責數據倉儲Ioc集合 方便其餘調用

4.3:IRepositorys 數據倉儲契約

4.4:Repositorys 數據倉儲實現

 05Domain

 

 

 

 

 Domain:主要負責模型及其業務

 5.1 BaseModels 裏邊包含全部模型的基類(公共方法、屬性等)和公共返回模型

5.2 DBModels 主要是數據庫基礎模型

5.3 DTOModels 裏邊功能在Domain裏業務最多的  通常用戶 添加、修改、查詢等

5.4 QueryModels 這個主要是用於集合查詢  業務較Dto 少 查詢映射少 速度快  用於分頁等

 

 06Infrastructure

 

 

 

 

Infrastructure: 基礎設施類  主要提供一些Helper 

 6.1 AutofacProxy ioc代理 主要負責autofac ioc 的配置

 6.2 DBBuild: 負責生成數據庫實體(sqlsuger裏邊有T4模板生成 有代碼生成 我使用的是第二種)

6.3 Factory:工廠 處理一些臨時業務

6.4 Utility:幫助類 提供基礎服務

 

 07UnitTest

 

 

 UnitTest:單元測試 負責調試功能

 

 

 

3、實現圖

 來幾張實現圖吧~~~~  哈哈   

後臺登陸頁

 

 

 

 

 

 

 

後臺主頁

 

後臺主頁(摺疊側邊欄)

頁面列表

 

 -----------------未完待續(下一篇 Domain——框架的核心)------------------------------

 

源碼下載

聯繫方式 QQ:358638080

相關文章
相關標籤/搜索