企業管理系統一般包含後臺管理UI、組織機構管理、許可權管理、日誌、資料訪問、表單、工作流等常用必備功能。下面收集的幾款優秀開源的管理系統,值得大家入門學習。
外掛化架構,又稱微核架構,指的是軟體的核心相對較小,主要功能和業務邏輯都通過外掛實現的架構。
外掛化架構一般有兩個核心概念:
- 核心
- 外掛
核心通常只包含系統執行的最小功能,以及定義外掛必須符合的介面;外掛則是互相獨立的模組,一般只包含單一的功能。
外掛化技術並不是一個新興的技術,早期很多基於COM開發的WIN32程式其實都是外掛化的系統。在.NET/.NET Core中,也有許多外掛化的實現方案,例如,開源框架ABP, 開源的內容管理系統DotNetNuke, 電子商務框架NopCommerce。
《.NET Conf 2020 - 基於ASP.NET Core構建可熱插拔的外掛化系統》
作者:Lamond Lu
專案地址:https://github.com/lamondlu/CoolCat
部落格:http://www.cnblogs.com/lwqlun
《從零開始實現 ASP.NET Core MVC 的外掛式開發》系列部落格:https://mp.weixin.qq.com/s/uOtvUHkCoMu8cpnsjX4Gpg
OSharpNS 全稱 OSharp Framework with .NetStandard2.x,是一個基於.NetStandard2.x
開發的一個.NetCore
快速開發框架。這個框架使用最新穩定版的.NetCore SDK
(當前是.NET Core 3.0),對 AspNetCore 的配置、依賴注入、日誌、快取、實體框架、Mvc(WebApi)、身份認證、許可權授權等模組進行更高一級的自動化封裝,並規範了一套業務實現的程式碼結構與操作流程,使 .Net Core 框架更易於應用到實際專案開發中。
相關示例專案:
- Vue版本(vben): https://github.com/i66soft/osharp-vben
- Mvc版本(layui): https://github.com/i66soft/osharp-layui
- Blazor版本(BootstrapBlazor): https://github.com/i66soft/osharp-blazor
框架的工程組織結構如下:
框架特性
- 模組化的元件系統設計
- 自動化的依賴注入序號產生器制UnitOfWork-Repository模式,EFCore上下文動態構建
- DependencyAttribute特性標註方式
- 自動化的序號產生器制
- 基於AspNetCore的Identity的身份認證設計系統
- 設計了一個強大的功能許可權與資料許可權的授權體系整合 Swagger 後端API文件系統
- 功能許可權授權流程
- 功能許可權驗證流程
- 資料許可權授權流程
- 資料許可權驗證流程
- 程式碼生成器
文件中心 https://docs.osharp.org/quick/start/
開源地址 https://github.com/dotnetcore/OSharp
部落格園:https://www.cnblogs.com/laozhang-is-phi/
Bilibili:https://space.bilibili.com/387802716
直播間:https://live.bilibili.com/21507364
Blog.Core 開箱即用的企業級前後端分離【 .NET Core5.0 Api + Vue 2.x + RBAC】許可權框架。由國內微軟MVP“老張的哲學”出品。相比ABP Zero,Blog.Core 更為短小精幹,非常適合管理系統以及網際網路專案的開發。
專案單體部署,併發在400~500,一切正常(不保證自己的各種錯誤寫法)。如果搭配負載,效果更好。已被多家公司所使用:點選檢視列表。
開源地址:https://github.com/anjoy8/Blog.Core
系統架構圖
框架模組:
- 採用
倉儲+服務+介面
的形式封裝框架; - 非同步 async/await 開發;
- 接入國產資料庫ORM元件 —— SqlSugar,封裝資料庫操作;
- 支援自由切換多種資料庫,MySql/SqlServer/Sqlite/Oracle/Postgresql/達夢/人大金倉;
- 實現專案啟動,自動生成種子資料 ;
- 五種日誌記錄,審計/異常/請求響應/服務操作/Sql記錄等;
- 支援專案事務處理(若要分散式,用cap即可);
- 設計4種 AOP 切面程式設計,功能涵蓋:日誌、快取、審計、事務 ;
- 支援 T4 程式碼模板,自動生成每層程式碼;
- 或使用 DbFirst 一鍵建立自己專案的四層檔案(支援多庫);
- 封裝
Blog.Core.Webapi.Template
專案模板,一鍵重建自己的專案 ; - 搭配多個前端案例供參考和借鑑:Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ;
- 統一整合 IdentityServer4 認證 ;
元件模組:
- 提供 Redis 做快取處理;
- 使用 Swagger 做api文件;
- 使用 MiniProfiler 做介面效能分析 ;
- 使用 Automapper 處理物件對映;
- 使用 AutoFac 做依賴注入容器,並提供批量服務注入 ;
- 支援 CORS 跨域;
- 封裝 JWT 自定義策略授權;
- 使用 Log4Net 日誌框架,整合原生 ILogger 介面做日誌記錄;
- 使用 SignalR 雙工通訊 ;
- 新增 IpRateLimiting 做 API 限流處理;
- 使用 Quartz.net 做任務排程(目前單機多工,叢集排程暫不支援);
- 支援 資料庫
讀寫分離
和多庫操作 ; - 新增 Redis 訊息佇列 ;
- 新增 RabbitMQ 訊息佇列 ;
- 新增 EventBus 事件匯流排 ;
- 除錯中 - 統一聚合支付;
- 計劃 - 資料部門許可權;
- 計劃 - ES 搜尋;
微服務模組:
- 可配合 Docker 實現容器化;
- 可配合 Jenkins 實現CI / CD;
- 可配合 Consul 實現服務發現;
- 可配合 Ocelot 實現閘道器處理;
- 可配合 Nginx 實現負載均衡;
- 可配合 Ids4 實現認證中心;
NetModular 是一款為中小型企業而生的基於.Net Core和 Vue.js 的業務模組化以及前後端分離的快速開發框架,最終目的是能夠讓中小團隊快速搭建公司內部開發平臺。
Gitee:https://gitee.com/laoli/NetModular
- 後端技術:.Net Core 3.1、Dapper、Serilog、AutoMapper、FluentValidation、Swagger、RabbitMQ、Redis、EPPlus。
- 前端技術:Node.js 10+、Vue.js 2.6+、Vue CLI、Vuex、VueRouter、Element-UI。
- 前端框架 NetModular.UI:前端採用 Vue.js 全家桶+Element UI 開發,也是基於模組化思想設計。原始碼如下:https://github.com/iamoldli/NetModular.UI
- 前端皮膚:前端支援自定義皮膚功能,框架本身提供了兩套皮膚,其中一套已經內建作為預設皮膚,另外一套需要單獨安裝,原始碼如下:https://github.com/iamoldli/NetModular.Skins.Classics
- 模組列表。本倉庫只包含基礎框架以及許可權管理(Admin)模組程式碼,其它模組請點選以下連結檢視。
OpenAuth.Core 是大神李玉寶的又一著作,該專案目前收錄於 dotNET China ,並且被Gitee評選為GVP專案(Gitee最有價值的開源專案)。
OpenAuth.Core 是.NET許可權管理及快速開發框架、最好用的許可權工作流系統。源於Martin Fowler企業級應用開發思想及最新技術組合(IdentityServer、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、VUE、Element-ui等)。已成功在docker/jenkins中實施。核心模組包括:組織機構、角色使用者、許可權授權、表單設計、工作流等。它的架構精良易於擴充套件,是中小企業的首選。
Gitee:https://gitee.com/dotnetchina/OpenAuth.Net
強大的工作流引擎
專案分為3個版本:
- OpenAuth.Net開源版
採用.NET 4.5/.NET 5 MVC + LayUI 前後端開發模式,更適合傳統 .NET Framework 開發者使用,前端深度使用 LayUI 介面。
- OpenAuth.Core開源版
採用.NET Core MVC + LayUI 前後端開發模式,全新.NET Core 跨平臺體驗。在OpenAuth.NET基礎上進一步優化程式碼結構。
- OpenAuth.Pro企業版
採用WebAPI+Vue的前後端完全分離模式,後端基於OpenAuth.Core WebAPI介面。前端SPA單頁面模式,基於Vue全家桶。
Furion專案的作者【富察巨集磊】是一位90後的優秀IT人才。
Furioin 是一款基於.NET5技術開發的功能強大、效能極致、文件完善、示例豐富、極易入門、快速開發、極易維護的Web框架。
功能模組
框架特點
- 全新面貌:基於
.NET 5
平臺,沒有歷史包袱 - 極易入門:只需要一個
Inject()
即可完成配置 - 極速開發:內建豐富的企業應用開發功能
- 極少依賴:框架只依賴兩個第三方包
- 極其靈活:輕鬆面對多變複雜的需求
- 極易維護:採用獨特的架構思想,只為長久維護設計
- 完整文件:提供完善的開發文件
文件地址
開源地址
- Gitee:https://gitee.com/dotnetchina/Furion
- GitHub:https://github.com/monksoul/Furion
- Docker:https://hub.docker.com/r/monksoul/furion
- Nuget:https://www.nuget.org/packages/Furion
系列教程
- Furion 視訊教程:https://space.bilibili.com/695987967
- Furion 使用例子:https://gitee.com/monksoul/furion-samples 可能大部分示例已經不通用
- Furion 系列教程:《學 .NET 5 從 Furion 開始》 系列
支援平臺
- 執行環境
- Windows
- Linux
- MacOS
- Docker/K8S/K3S/Rancher
- Xamarin/MAUI
- 資料庫
- SqlServer
- Sqlite
- Azure Cosmos
- MySql
- MariaDB
- PostgreSQL
- InMemoryDatabase
- Oracle
- Firebird
- 達夢資料庫
- MongoDB
- 應用部署
- Kestrel
- Nginx
- Jexus
- IIS
- Apache
- PM2
- Supervisor
- 獨立釋出/單檔案
- 容器(Docker/K8S/K3S/Rancher)
作者的其他優秀開源專案
- https://gitee.com/monksoul
- https://github.com/monksoul
本系統可以用於所有的 Web 應用程式,目前版本已經升級到 NET CORE 具備跨平臺能力。資料庫方面同時支援多種資料庫,詳細列表見後面資料庫的詳細列表,切換資料來源僅需更改配置檔案無需重啟應用程式,配置簡單靈活。UI 前端使用流行的 Bootstrap 框架佈局對移動裝置的相容性非常好,自適應目前市場幾乎所有終端裝置。本系統還具備單一後臺支援多前臺的特色,提供 單點登入(SSO) 的能力。
使用 NET Core + Bootstrap + PetaPoco + HTML 5 + jQuery 構建的後臺管理平臺
特別說明
BootstrapAdmin 無需二次開發,要做的僅僅是與前臺系統整合,前臺系統模板工程為 Bootstrap.Client
專案原始出發點是把許可權系統從業務系統中剝離出來,專案開發專注於功能,詳細配置說明請點選 檢視文件
主要功能
- 通過配置與前臺網站整合
- 構建前臺系統分層級選單
- 提供單一後臺支援多前臺應用配置
- 提供單點登入
- 整合系統認證授權模組
- 提供角色,部門,使用者,選單,前臺應用程式授權
- 角色對使用者授權
- 角色對選單授權
- 角色對部門授權
- 角色對應用程式授權(多個前臺應用公用一個後臺許可權管理系統)
- 部門對使用者授權
- 提供字典表用於前臺網站個性化配置
- 完全響應式佈局(支援電腦、平板、手機等所有主流裝置)
- 內建多資料來源支援,配置簡單立即生效無需重啟
- 內建資料記憶體快取機制,頁面快速響應
- 內建資料 操作日誌 與使用者 登入日誌,跟蹤記錄使用者 登入主機地點 瀏覽器 作業系統資訊
優勢
- 前臺系統不用編寫登入、授權、認證模組;只負責編寫業務模組即可
- 後臺系統無需任何二次開發,直接釋出即可使用
- 前臺與後臺系統分離,分別為不同的系統(域名可獨立)
- 可擴充套件為多租戶應用
資料庫
資料庫支援列表如下:
MSSQL/Oracle/SQLite/MySql/MariaDB/Postgresql/Firebird/MongoDB
開源地址:https://gitee.com/dotnetchina/BootstrapAdmin
mvvm框架(WTM)是一個基於.NET Core 的快速開發框架。它支援LayUI、React和VUE。WTM有內建的程式碼生成器,以最大限度地提高開發效率。它是高效web開發的強大工具。
框架特徵:
WTM提供了4種型別的ViewModel,涵蓋了主流web應用程式的所有常見功能。
- CrudVM提供了最常見的資料新增、刪除和修改功能。
- ListVM提供分頁和匯出功能。
- ImportVM、TemplateVM提供了通過excel匯入的功能。
- BatchVM提供批操作功能。
- WTM有自己的程式碼生成器,這使得開發效率高、速度快。
- WTM提供了許多客戶端控制元件,包括表單、網格、皮膚、對話方塊和許多其他常用控制元件。
- WTM提供內建使用者、角色、使用者組、資料許可權、頁面許可權、選單、日誌、郵件、簡訊、檔案等常用後端功能;
- WTM支援單點登入、門戶和分散式資料庫;
- WTM提供了與Redis、DFS等庫的簡化整合。
- WTM提供了用於構建使用者介面的伺服器端和客戶端框架。
開源地址:https://github.com/dotnetcore/WTM
中文文件:http://wtmdoc.walkingtec.cn/
本計劃採用年審制,每年重新稽核專案是否滿足以上條件。
- GVP 計劃參與者並不是 Gitee 平臺的官方人員,其觀點和行為,僅代表個人,不代表 Gitee 平臺的官方立場。
- GVP 計劃參與者不得有違反國家規定、Gitee 網站規則的行為,否則將取消 GVP 計劃參與者身份。
- 參與 GVP 計劃後,不得大量釋出廣告或軟文,否則 Gitee 平臺有權永久取消 GVP 計劃參與者身份。
- 申請參與 GVP 計劃的專案不得惡意刷數,一經發現,Gitee 平臺有權永久取消 GVP 計劃參與者身份,並進行全平臺通報。
- GVP 專案不允許刪除,不允許轉為私有專案。