Skip to content
/ NetAdmin Public template

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

License

Notifications You must be signed in to change notification settings

nsnail/NetAdmin

Repository files navigation

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
Loading

特别鸣谢

语言 集成领域 开源库
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
TypeScript SPA基础框架 Vue
TypeScript 前端构建工具 Vite
TypeScript UI控件库 Element Plus
TypeScript CSS解析器 Sass
TypeScript 图表和数据可视化 ECharts
JavaScript 后台管理界面 SCUI
JavaScript HTTP请求库 Axios
JavaScript JavaScript解析器 Terser
JavaScript 代码质量检查 ESLint
JavaScript 代码格式化工具 Prettier
JavaScript 标准加密库 crypto-js