YC.Boilerplate 框架介紹
YC.Boilerplate 是一套快速開發框架,采用當下流行的前后端分離開發模式,前端 采用VUE、后端采用Net 5.0;框架實現了 多租戶、動態webApi、多種ORM、IOC、數據庫表和業務代碼生成等等一系列模塊,並開發了用戶管理、角色權限、組織機構、 數據字典、審計日志等常規功能,前后端代碼一鍵生成。
框架的宗旨:構建一套松耦合、靈活組合、功能齊全、開發便捷、減少開發工作量的樣板化開發框架。
在線文檔:http://doc.yc-l.com/#/README
在線演示地址:http://yc.yc-l.com/#/login
源碼github:https://github.com/yc-l/yc.boilerplate
源碼gitee:https://gitee.com/yc-power/yc.boilerplate
元磁之力框架技術群QQ:1060819005
視頻教程:
元磁之力框架開源初心和框架設計介紹(上): https://www.bilibili.com/video/BV1VM4y1G7hC/
元磁之力框架開源初心和框架設計介紹(下): https://www.bilibili.com/video/BV15h411s7w6/
元磁之力框架數據庫表和代碼生成使用教程實戰: https://www.bilibili.com/video/BV1oM4y137D5/
后續:關於框架demo和細節技巧,會在QQ群中發布,就不撰文說明。
框架技術棧和開發模式
- 開發模式:當下流行的前后端分離。
- 前端:vue、elementUI等技術棧,為單頁面應用程序提供了項目模板。
- 后端采用NET 5.0。
框架特點
- 模塊化開發,靈活組合,將解耦進行到底,按需注入使用。
- 當下流行的開發模式,分層明確。
- 配合框架自帶代碼生成器快速完成CRUD和樹形等復雜功能邏輯實現,不敲一行代碼,節省60%工作量。
框架分層介紹
- 核心層:
YC.Core
主要實現頂層設計類接口規范和一些類的封裝,比如:租戶接口、AopInterceptor AOP 攔截注入、TokenContext token邏輯、公共特性等等。 - 數據層:
YC.DapperFrameWork
、YC.FreeSqlFrameWork
多項ORM 封裝,主要存在倉儲、工作單元等。 - 公共層:
YC.Common
主要是各種公共類的使用。 - 業務服務層:
YC.ApplicationService
業務邏輯實現,默認實現動態webapi。 - 實體層:
YC..Model
常規的數據表實體,枚舉等,以及常規的model需要用的基礎方法。 - 業務Api層:
YC.ServiceWebApi
提供對外接口服務啟動項目。
模塊層(按需使用)
- 數據庫表和代碼生成模塊:
YC.CodeGenerate
- Redis 緩存模塊:
YC.Cache.Redis
- 動態WebApi模塊:
YC.Core.DynamicApi
- 日志模塊:
YC.Log.Serilog
- 定時服務
Quartz.net YC.QuartzService
- Mongodb 模塊
YC.MongoDB
- 圖數據庫Neo4j
YC.Neo4j
單元測試
微軟自帶單元測試:UnitTestProject
數據庫表和代碼生成測試:YC.CodeGenerateTest
其他各個模塊配套的單元測試:YC.QuartzTest
、YC.MongoDbXUnitTest
、YC.Neo4jXUnitTest
框架功能模塊
框架特性
- 基於最新的.NET技術 NET 5.0。
- 實現領域驅動設計(實體、倉儲、領域服務、領域事件、應用服務、數據傳輸對象,工作單元等等)。
- 實現分層體系結構(領域層,應用層,展現層和基礎設施層)。
- 提供了一個基礎架構來開發可重用可配置的模塊。
- 集成一些最流行的開源框架/庫,也許有些是你正在使用的。
- 提供了一個基礎架構讓我們很方便地使用依賴注入(使用Autofac作為依賴注入的容器)。
- 提供Repository倉儲模式支持不同的ORM(已實現dapperFramework 、freesqlFrameWork、Redis等)。
- 支持並實現數據庫遷移(采用自由映射Table )。
- 模塊化開發(每個模塊有獨立的采用autofac模塊注入形式,根據不同業務可以動態切換指定數據庫)。
- 統一的異常處理(應用層幾乎不需要處理自己寫異常處理代碼)。
- 通過Application Services自動創建Web Api層(不需要寫ApiController層了)。
- 提供基類和幫助類讓我們方便地實現一些常見的任務。
- 使用“約定優於配置原則”。
- 實現多租戶,按照不同的租戶分庫服務端。
- 實現了基於表模型生成對應的全流程代碼,包括:model、DTO、Service、前端展示界面(常規CRUD和樹形功能)、路由規則、Mapper model和Dto映射等代碼。
- 框架已經實現常規基礎功能,如:身份驗證用戶&角色管理、系統設置、存取管理(系統級、租戶級、用戶級,作用范圍自動管理)、審計日志(自動記錄每一次接口的調用者和參數)、組織機構等,實現框架開箱即用。
- 框架采用redis 作為cache和session 存儲,脫離cookie 使用,解決非web的等也可以使用框架進行多樣的場景需求改造。