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/linbin524/yc.boilerplate
原始碼gitee:https://gitee.com/linxuanming/yc.boilerplate
元磁之力框架技術群QQ:1060819005
框架技術棧和開發模式
- 開發模式:當下流行的前後端分離。
- 前端: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
單元測試
微軟自帶單元測試:UnitTestProject
資料庫表和程式碼生成測試:YC.CodeGenerateTest
框架功能模組
框架特性
- 基於最新的.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的等也可以使用框架進行多樣的場景需求改造。