Home

Awesome

NetAdmin

通用后台权限管理系统、快速开发框架(基于C#12/.NET9、Vue3/Vite、Element Plus等现代技术构建,具有十分整洁、优雅的编码规范)

.NET MIT FreeSql

在线预览

https://na.tools92.top

一键运行

docker run -p 8080:8080 nsnail/netadmin
# 需魔法上网

构建步骤

# 1. 检查 dotnet sdk 版本 >=9.0.0
dotnet --list-sdks
# 下载 dotnet:https://dotnet.microsoft.com/zh-cn/download/dotnet

# 2. 克隆代码仓库
git clone https://github.com/nsnail/NetAdmin.git && cd ./NetAdmin

# 3. 确认本机 redis 处于运行状态
redis-server # 启动
redis-cli    # 连接测试
# 下载 redis for windows:https://github.com/redis-windows/redis-windows/releases
# 下载 redis for linux/mac:https://redis.io/download

# 4. 运行后端 WebApi
dotnet run --project ./src/backend/YourSolution.AdmServer.Host/YourSolution.AdmServer.Host.csproj --urls http://[::]:5010 -is
# -i 插入种子数据
# -s 同步数据库结构
# 浏览器访问 http://localhost:5010 ,将看到Swagger(Knife4jUI)界面

# 5. 检查 nodejs 版本 >=20
node -v
# 下载 nodejs:https://nodejs.org/en/download

# 6. 安装 npm 依赖包
cd ./src/frontend/admin && npm install

# 7. 运行前端项目
npm run dev
# 浏览器访问 http://localhost:5020 ,将看到管理界面(默认用户名密码:root 1234qwer)

文件目录

+---.github                  # github 工程文件目录
+---.template.config         # dotnet 项目模板配置目录
+---assets                   # 项目资源文件目录
+---build                    # 构建相关的工程文件目录
+---dist                     # 编译生成的二进制文件目录
+---docker                   # docker 镜像构建文件目录
+---docs                     # 项目开发文档目录
+---refs                     # 引用的第三方包的仓库目录
+---scripts                  # 各种工具脚本文件目录
+---src                      # 项目源码文件目录

项目架构

flowchart TD
sys-host["NetAdmin.SysComponent.Host\n系统组件:主机层"]
sys-cache["NetAdmin.SysComponent.Cache\n系统组件:缓存层"]
sys-app["NetAdmin.SysComponent.Application\n系统组件:应用层"]
host["<b>NetAdmin.Host</b>\n框架:主机层\n(.Net自托管主机程序)\n(输入输出格式化)\n(数据校验、鉴权)\n(...所有HTTP管道过滤器中间件)"]
cache["<b>NetAdmin.Cache</b>\n框架:缓存层\n(基于Redis或MemoryCache的缓存策略实现)"]
app["<b>NetAdmin.Application</b>\n框架:业务应用层\n(内部服务增删改查)\n(外部服务增删改查)\n(...所有业务用例的计算与组合逻辑的模块化)"]
domain["<b>NetAdmin.Domain</b>\n框架:数据实体层\n(数据库关系实体映射)\n(DTO数据传输对象)\n(...所有数据模型的抽象与封装)"]
infra["<b>NetAdmin.Infrastructure</b>\n框架:基础设施层\n(第三方组件和Nuget包引用)\n(公共构建和程序运行配置)\n(公共常量枚举异常定义)\n(全球化化和多语言)\n(...所有公共Utility工具)"]
biz-host["YourSolution.XXX.Host\n业务实例:主机层"]
biz-cache["YourSolution.XXX.Cache\n业务实例:缓存层"]
biz-app["YourSolution.XXX.Application\n业务实例:应用层"]
biz-domain["YourSolution.XXX.Domain\n业务实例:数据实体层"]
biz-infra["YourSolution.XXX.Infrastructure\n业务实例:基础设施层"]
biz-host-->biz-cache-->biz-app-->biz-domain-->biz-infra
sys-host-->sys-cache-->sys-app-->domain-->infra
host-->cache-->app-->domain-->infra
biz-host-->sys-host-->host
biz-cache-->sys-cache-->cache
biz-app-->sys-app-->app
biz-domain-->domain
biz-infra-->infra

特别鸣谢

语言集成领域开源库
C#Web基础框架ASP.NET Core
C#数据库关系映射FreeSql
C#代码质量检查Roslynator.Analyzers | SonarAnalyzer.CSharp | StyleCop.Analyzers
C#单元测试框架xunit | coverlet.collector
C#控制台终端界面库Spectre.Console
C#扩展函数库NSExt
C#图形处理库SixLabors.ImageSharp
C#文件对象存储Minio
C#性能监控采集prometheus-net.AspNetCore
C#雪花ID生成器Yitter.IdGenerator
C#自动化版本管理MinVer
TypeScriptSPA基础框架Vue
TypeScript前端构建工具Vite
TypeScriptUI控件库Element Plus
TypeScriptCSS解析器Sass
TypeScript图表和数据可视化ECharts
JavaScript后台管理界面SCUI
JavaScriptHTTP请求库Axios
JavaScriptJavaScript解析器Terser
JavaScript代码质量检查ESLint
JavaScript代码格式化工具Prettier
JavaScript标准加密库crypto-js