第一章 Net 5.0 快速開發框架 YC.Boilerplate--框架介紹

linbin524發表於2021-08-31

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.DapperFrameWorkYC.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

框架功能模組

框架特性

  1. 基於最新的.NET技術 NET 5.0。
  2. 實現領域驅動設計(實體、倉儲、領域服務、領域事件、應用服務、資料傳輸物件,工作單元等等)。
  3. 實現分層體系結構(領域層,應用層,展現層和基礎設施層)。
  4. 提供了一個基礎架構來開發可重用可配置的模組。
  5. 整合一些最流行的開源框架/庫,也許有些是你正在使用的。
  6. 提供了一個基礎架構讓我們很方便地使用依賴注入(使用Autofac作為依賴注入的容器)。
  7. 提供Repository倉儲模式支援不同的ORM(已實現dapperFramework 、freesqlFrameWork、Redis等)。
  8. 支援並實現資料庫遷移(採用自由對映Table )。
  9. 模組化開發(每個模組有獨立的採用autofac模組注入形式,根據不同業務可以動態切換指定資料庫)。
  10. 統一的異常處理(應用層幾乎不需要處理自己寫異常處理程式碼)。
  11. 通過Application Services自動建立Web Api層(不需要寫ApiController層了)。
  12. 提供基類和幫助類讓我們方便地實現一些常見的任務。
  13. 使用“約定優於配置原則”。
  14. 實現多租戶,按照不同的租戶分庫服務端。
  15. 實現了基於表模型生成對應的全流程程式碼,包括:model、DTO、Service、前端展示介面(常規CRUD和樹形功能)、路由規則、Mapper model和Dto對映等程式碼。
  16. 框架已經實現常規基礎功能,如:身份驗證使用者&角色管理、系統設定、存取管理(系統級、租戶級、使用者級,作用範圍自動管理)、審計日誌(自動記錄每一次介面的呼叫者和引數)、組織機構等,實現框架開箱即用。
  17. 框架採用redis 作為cache和session 儲存,脫離cookie 使用,解決非web的等也可以使用框架進行多樣的場景需求改造。

專案介面展示

image

image

image

image

image

image

image

image

image

image

相關文章