天天看點

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

作者:Hu廠長

架構介紹

SimpleAdmin一個小而美的通用業務型背景管理系統。前端基于小諾2.0版本二次開發,采用Vue3+Vite+Vuex+JS,并在此基礎上增加更人性化功能,後端采用.NET6/7+Furion,ORM采用Sqlsugar+單例模式,基于Redis的分布式緩存,采用RBAC+多機構的權限管理模式,實作全網最靈活的接口級别資料權限控制,內建國密加解密,導入導出、導入導出、批量修改等常用插件。後端代碼注釋覆寫率>90%,并配備手摸手教學文檔,非常适合二次開發。将日常開發中的業務場景和架構緊密結合,并堅持以人為本,以業務為中心,做到開箱即用,代碼簡潔、易擴充,注釋詳細,文檔齊全,讓你的開發少走彎路。

選擇SimpleAdmin的N個理由

前端采用Vue3+JavaScript

本系統是基于前端基于小諾2.0版本二次開發,采用Vue3+Vite+Vuex+JS,并在此基礎上增加更人性化功能。市面上主流的Vue3架構大部分都是采用`TypeScript`開發,雖然是官方推薦,但是也增加了一些學習成本,如果您之前使用的事vue2+js的開發方式,那麼再使用本系統就非常的好上手,也不用擔心vue2打包之後第一次加載巨慢的問題。

背景基于Furion腳手架

後端基于Furion腳手架搭建。Furion是目前.NET最好用的後端架構之一,有着全網最詳細的使用文檔和說明,作為新手或二次開發也能很快的上手,你想要的功能基本都能在Furion中找到。而且隻要提issues作者基本上都能快速解答,沒有後顧之憂。

Furion架構特點

- 全新面貌:基于 `.NET5/6/7+` 平台,沒有曆史包袱

- 極少依賴:架構隻依賴兩個第三方包

- 極易入門:隻需要一個 `Inject()` 即可完成配置

- 極速開發:内置豐富的企業應用開發功能

- 極其靈活:輕松面對多變複雜的需求

- 極易維護:采用獨特的架構思想,隻為長久維護設計

- 完整文檔:提供完善的開發文檔

- **跨全平台:支援所有主流作業系統及 .NET 全部項目類型**

ORM基于Sqlsugar

SqlSugar是一款老牌.NET開源ORM架構,由果糖大資料科技團隊維護和更新 ,開箱即用

最易上手的ORM架構,本系統也是基于Sqlsugar單例模式+CodeFirst+倉儲的結構,無需擔心作用域問題,直接爽撸!

基于Redis的分布式緩存

本系統使用了大量的緩存操作,一些基礎配置和使用者權限資訊都放在了緩存中,使用者首次登入後,下次再登入接口耗時實測`10-30ms`。

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統
SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

Redis用戶端使用的是我基于NewLife.Redis二次封裝的SimpleRedis。簡化了注入操作,更友善使用。

NewLife.Redis特性

* 在ZTO大資料實時計算廣泛應用,200多個Redis執行個體穩定工作一年多,每天處理近1億包裹資料,日均調用量80億次

* 低延遲,Get/Set操作平均耗時200~600us(含往返網絡通信)

* 大吞吐,自帶連接配接池,最大支援1000并發

* 高性能,支援二進制序列化

RBAC+多機構的權限管理模式+權限及時重新整理

作為一個背景管理系統,一個權限管理架構,權限設計作為一個管理系統的靈魂,是一個系統好不好用的關鍵。本系統是采用RBAC+多機構的權限管理模式,一個機構下有多個角色,每個角色有不同的菜單和權限,可以将不同角色配置設定給不同的使用者,這樣每個使用者都會擁有他所屬角色的權限。當然,一個使用者也可以擁有多個角色的權限,除此之外還支援給使用者單獨授權,讓使用者脫離所有角色之外,實作靈活再靈活的權限控制。并且當角色或使用者的權限被修改之後,後端會立即重新整理,前端隻需重新整理頁面就能更新被重新賦予的權限,無需重新登入。

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

接口級别的資料範圍權限

目前在我接觸的大部分管理系統中,資料權限這塊都不太盡如人意,要麼隻有接口權限沒有資料權限,要麼有資料權限但是用起來不是特别順手而且還有BUG,針對以上痛點和難點結合業務場景,本系統實作全網最靈活的接口級别資料範圍權限控制,可以指定某個角色的某個接口的資料權限範圍,非常的靈活。

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

在系統中,擷取資料權限非常簡單,隻需一個方法搞定。

//擷取資料範圍

var dataScope = await _sysUserService.GetLoginUserApiDataScope();

支援多種主鍵類型

系統預設采用`long`類型的`雪花ID`作為系統主鍵,但是在交流過程中發現,部分小夥伴使用`string`類型或者`guid`作為系統主鍵,還有的是部分老系統用的是string類型,但是simpleadmin确是`long`類型,是以根據這個業務場景,本架構也支援`String`類型的系統主鍵,隻需要拉取對應的`stringid`分支即可,完全不需要另外去修改代碼,并且也能和master分支進行最新的同步。

支援Mqtt/Signalr的即時通訊

作為前後端分離項目,前後端互動是一個非常重要的功能。目前主流架構都是通過Socket實作,本系統自然也是實作了基于<font color="red">Signalr</font>的前後端互動,并在此基礎上實作了基于<font color="red">MQTT</font>的前後端互動功能,MQTT相比socket業務場景更多更靈活,在物聯網方向有着非常多的應用。.NET應用在工業物聯網方向也是有很多的崗位,學習MQTT還是非常有必要的。

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

代碼生成器

大部分項目裡,其實有很多代碼是重複的,幾乎每個子產品都有 CRUD 增删改查的功能,而這些功能的實作代碼往往是大同小異的。如果這些功能都要自己去手寫,非常無聊枯燥,浪費時間且效率很低,還可能會寫錯。代碼生成功能通過選擇資料庫表,完成單表的增删改查管理功能,可以生成包括前端、後端、和SQL語句,支援預覽的同時還支援ZIP壓縮包和直接生成到項目兩種模式,解放你的雙手,大大減少了重複代碼的編寫,無需複制提升開發效率。

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

常用功能元件化

在系統一些常用的功能直接封裝成vue元件,如批量導入,批量導出,批量删除,批量編輯等,隻需按照規範傳入相應參數就可以很好的實作功能,減少了很多不必要的前端代碼。最典型的就是批量導入元件,隻需傳入api接口,通過後端接口自動生成表頭,并實作字段級别的錯誤資訊提示和預覽,大資料支援分段導入,非常好用。

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

最詳細的注釋和使用文檔

作為一個開源項目,如何讓使用者看懂代碼是非常重要的,很多作者會忽視這一點,導緻我們閱讀其代碼的時候很難了解其為什麼要這麼寫,如果沒有詳細的文檔,想要二次開發需要花精力去研究源碼。而本系統完全不用擔心這個問題,後端源碼注釋覆寫率超過<font color="#dd0000">90%</font><br />,每一個方法,每一步都有詳細的解釋和說明,

并且推出了手摸手教學文檔,目的就是讓使用者能夠輕易上手,就算不是自己的代碼,根據注釋和文檔也能輕易看懂和二次開發,不用每天在群裡問一些非常基礎的問題,節約了大量的開發時間。

SimpleAdmin:一個基于.NET6+Vue3+Fruion+Sqlsugar的背景管理系統

關于系統的問題第一時間解決

如果您在使用過程中遇到問題,或者發現bug,可以直接發issues描述您的問題,隻要是系統bug第一時間修複。或者您對目前系統有什麼建議或意見,也歡迎您提出,隻要是符合大部分業務場景的都會考慮支援。我們也有和諧内部的qq/微信交流群,沒有像其他系統qq群一樣每天都是一堆啟動報錯問題,頁面錯誤問題,有的隻是愉快的吹水及系統功能的讨論和優化方案,因個人精力有限,暫不對外開發,需要擷取前端授權之後方可加入,因為我發現适當的增加門檻對群的氛圍很有幫助,可以減少很多沒有意義的提問。

️示範位址

1. 位址1:「連結」

3. 賬号:superAdmin

4. 密碼:123456

版權聲明

- 後端源碼完全免費開源商用。

- 前端源碼尊重小諾開源協定,不能作為開源競品,但你任然可以用于個人項目等接私活或企業項目腳手架使用,為防止侵權,如需擷取前端源碼授權請[加我](https://qm.qq.com/cgi-bin/qm/qr?k=of373DKaD1xCdNfz8DskOwauCguHfMrS&noverify=0&personal_qrcode_source=4)擷取授權,或者直接鹹魚搜simpleadmin

- 不能以任何形式用于非法為目的的行為。

- 任何基于本軟體而産生的一切法律糾紛和責任,均于作者無關。

項目位址

https://gitee.com/zxzyjs/SimpleAdmin

繼續閱讀