01.前后端分离中台框架后端 Admin.Core 学习-介绍与配置说明
中台框架后端项目 Admin.Core 的介绍与配置说明
中台admin是前后端分离权限管理系统,Admin.Core为后端项目,基于.NET 7.0开发。
支持多租户、数据权限、动态 Api、任务调度、OSS 文件上传、滑块拼图验证、多数据库,分布式缓存、分布式事务等
接口文档一览

项目地址
技术栈
- dotnet7
- FreeSql
- Autofac
- CAP
- Mapster
特点
- 快速启动,上手简单
- 系统模块化
- Swagger的模块化封装
- 读写分离
- 分库分表
- 分布式事务 TCC/ SAGA
- 动态API
- 系统权限封装基本满足大部分项目
- 多租户实现
开发环境
- Vs2022
- dotnet7
项目结构
- hosts
ZhonTai.Host:默认启动项目,添加对 ZhonTai.Admin.Dev,模块的引用,并将程序集配置到 assemblyNames
- platform
ZhonTai.Admin核心服务ZhonTai.ApiUI接口文档封装,分模块加载zhonTai.Common通用库封装ZhonTai.DynamicApi动态WebApi库ZhonTai.Admin.Dev代码生成器添加
- tests
ZhonTai.Tests测试库
- modules
- XX.XX 我准备放自己的模块
- hosts
默认实现功能
- 用户管理:配置用户,查看部门用户列表,支持禁用/启用、重置密码、设置主管、用户可配置多角色、多部门和上级主管。
- 角色管理:配置角色,支持角色分组、设置角色菜单和数据权限、批量添加和移除角色员工。
- 部门管理:配置部门,支持树形列表展示。
- 权限管理:配置分组、菜单、操作、权限点、权限标识,支持树形列表展示。
- 租户套餐:配置租户套餐,支持新增/移除套餐企业。
- 租户管理:配置租户,新增租户时初始化部门、角色和管理员数据,支持租户配置套餐、禁用/启用功能。
- 字典管理:配置字典,查看字典类型和字典数据列表,支持字典类型和字典数据维护。
- 任务调度:查看任务和任务日志列表,支持任务启动、执行、暂停等功能。
- 缓存管理:缓存列表查询,支持根据缓存键清除缓存
- 接口管理:配置接口,支持接口同步功能,用于新增权限点选择接口,支持树形列表展示。
- 视图管理:配置视图,支持视图维护功能,用于新增菜单选择视图,支持树形列表展示。
- 文件管理:支持文件列表查询、文件上传/下载、查看大图、复制文件地址、删除文件功能。
- 登录日志:登录日志列表查询,记录用户登录成功和失败日志。
- 操作日志:操作日志列表查询,记录用户操作正常和异常日志。
框架的使用
1. 从GitHub 克隆/下载项目
- 后端:
git clone https://github.com/zhontai/Admin.Core.git - 前端:
git clone https://github.com/zhontai/admin.ui.plus.git
2. 后端项目的启动
使用新下的VS2022打开后,默认启动项目 ZhonTai.Host ,直接Ctrl+F5运行即可
系统将会根据实体生成数据库及表,并根据 Configs/dbconfig.json 配置将 initData/*.json 的数据生成到本地Sqlite中
(ps:第一次搞dotnet7的项目,vs2019+自己下SDK折腾半天搞不了一点,需要vs2022 17.4+)
3. 配置文件说明
launchSettings.json
- 默认本地启动配置
- 配置项
- 运行环境
- ASPNETCORE_ENVIRONMENT:Development
- 启动端口
- 默认:8000
- 优先级低于appconfig.urls的配置
- 运行环境
- 配置项
- 默认本地启动配置
appsettings.{Env}.json
- 默认的应用配置文件
- 配置项
- 日志等级
- 默认:Information
- 跨域
- 默认:*
- CAP配置
- 默认:未启用
- 滑动验证码
- 默认:300s有效期
- 是否开启在appconfig.json配置varifyCode.enable
- 日志等级
Configs*.{Env}.json
- 自定义的应用配置文件
- dbconfig.json
- 数据库配置
- 绑定模型
- 单例:
DbConfig
- 单例:
- 配置项
- 支持类型:type
- 默认:Sqlite
MySql = 0, SqlServer = 1, PostgreSQL = 2,Oracle = 3, Sqlite = 4, OdbcOracle = 5,OdbcSqlServer = 6, OdbcMySql = 7,OdbcPostgreSQL = 8, Odbc = 9, OdbcDameng =10, MsAccess = 11, Dameng = 12,OdbcKingbaseES = 13, ShenTong = 14,KingbaseES = 15, Firebird = 16
- 默认:Sqlite
- 连接字符串:connectionString
- 默认:admindb.db
- 同步结构
- syncStructure:true
- 默认启用
- 分布式部署需要注意关闭
- 监听同步结构脚本 syncStructureSql:false
将会输出codeFirst执行的脚本
将 assemblyNames 配置的所有实体执行结构移db.CodeFirst.SyncStructure
1.创建临时表
2.插入历史数据,修改字段名称情况注意
3.删除旧表,重命名临时表为新表
生产上该自己执行脚本的还是自己执行 - syncStructure:true
- 同步数据
- syncData:true
- sysUpdateData:false
- 同步更新数据
- 确定要修改表数据是最新数据再开启,除localdb测试就不要使用
- syncDataIncludeTables:[]
- 同步数据包含表,指定表同步,不填同步所有表
- syncDataExcludeTables:[]
- 同步数据排除表,指定表不同步
- syncDataUser
- 同步数据操作用户
- syncDataPath
- 不配置默认为 项目目录/InitData/Admin
- 默认会将文件夹下的所有 表名.json 添加到数库中,默认新增所有数据
- 如果是租户数据,格式为 表.tenant.json
- syncDataCurd:false
- 监听同步数据Curd操作
设置是否将syncDataPath文件夹下的 表名.json 加/修改到数据库中
- 生成数据
- generateData:true
默认开启但无效,需要将禁用创建数据库及禁用步:createDb:false && syncData:false - 加了视图菜单就可以使用这个功能来创建生成默认数据
- generateData:true
- 支持类型:type
cacheconfig.json
- 缓存配置,未绑定模型,redis缓存,限流参数配置
- 配置项
- 支持类型
- 默认:Memory
- Memory = 0,Redis = 1
- 限流缓存类型
- 默认:Memory
- Memory = 0,Redis = 1
- Redis配置
- 127.0.0.1:6379
- 支持类型
appconfig.json
- 应用配置
- 绑定模型
- 单例:
AppConfig
- 单例:
- 配置项
- appType 应用程序类型
- 默认:Controllers
- Controllers ControllersWithViews MVC
- urls 启动地址
- http://*:8000
- corUrls 跨域
- []
- assemblyNames 程序集名称
- ZhonTai.Admin
- Mapster自动注册程序集
- tenantc租户
- true
- distributeKey 分布式事务唯一标识
- 为空则不生成分布式事务表
- validate 验证开关
- 登录,接口权限,数据权限验证
- swagger Swagger文档s
- apiUI 接口文档地址
- MiniProfiler 性能分析器
- false
- identityServer 统一认证授权服务器
- false
- aop 面向切面编程s
- 开启事务
- log 数据库日志
- 操作日志
- rateLimit 限流开关
- false
- varifyCode 登录验证码
- true
- defaultPassword 默认密码
- 111111
- dynamicApi 动态api
- 结果格式化
- passwordHasher 标准标识密码哈希
- 启用后相同密码加密后各不相同
- maxRequestBodySize 最大请求大小
- 104857600
- healthChecks 健康检查
- enable:true 启用
- path:/admin/health
- appType 应用程序类型
jwtconfig.json
- JWT配置
- 绑定模型
- 单例:
JwtConfig
- 单例:
- 配置项
- issuer 发行者
- audience 订阅者
- securityKey 密钥
- expires 有效期(分钟) 120
- refreshExpires 刷新有效期(分钟) 1440
ossconfig.json
- 本地上传配置
- 绑定模型
IOptions<OSSConfig>
- OSS配置
- Minio
- 阿里云
- 腾讯云
- 七牛
- 华为云
uploadconfig.json
- 上传配置
- 绑定模型
IOptions<UploadConfig>
ratelimitconfig.json
- 限流配置
- 绑定模型
IOptions
- 支持类型
- IP限流
- 默认未启用
- 需要在appconfig.json中配置rateLimit:true生效
- 使用Redis实现限流
- 需要在cacheconfig.json中配置typeRateLimit
- IP限流
InitData\模块*.{tenant}.json
- 默认初始化数据
4. 代码生成
- 官方默认模板生成:
dotnet new install ZhonTai.Templatedotnet new MyApp -n MyCompanyName.MyProjectName
- 第三方代码生成器:
前端及代码生成见下篇
写在最后
文章的起因是想找个不错的框架用来搞个自己用的系统,找了几个dotnet+vue的框架,zhontai的这个是看到上手最容易,前后台的代码也没有封装得太深,二开也很方便,看着用着都挺舒服的。
唯一的不足就是文档了,一点资料都找不到,就只能一点点看代码,然后边看边记录,以备后用,又想着既然都写了,那就再整理一下了,顺便分享出来咯,希望能够对后面使用框架的有所帮助。
01.前后端分离中台框架后端 Admin.Core 学习-介绍与配置说明的更多相关文章
- 【开源】【前后端分离】【优雅编码】分享我工作中的一款MVC+EF+IoC+Layui前后端分离的框架——【NO.1】框架概述
写博客之前总想说点什么,但写的时候又忘了想说点什么,算了,不说了,还是来送福利吧. 今天是来分享我在平时工作中搭建的一套前后端分离的框架. 平时工作大多时候都是在做管理类型的软件开发,无非就是增.删. ...
- JEECG前后端分离UI框架实战版本抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)
JEECG前后端分离UI框架实战版本 - 抢先体验 (ng2-admin+Angular4+AdminLTE) 关键词: ng2-admin.Angular4.AdminLTE.Nodejs.Jeec ...
- JEECG前后端分离UI框架实战抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)
JEECG前后端分离UI框架 (ng2-admin+Angular4+AdminLTE) 关键词: ng2-admin.Angular4.AdminLTE.Nodejs.Jeecg JEECG紧跟技术 ...
- 一套.NET Core +WebAPI+Vue前后端分离权限框架
今天给大家推荐一个基于.Net Core开发的企业级的前后端分离权限框架. 项目简介 这是基于.NetCore开发的.构建的简单.跨平台.前后端分离的框架.此项目代码清晰.层级分明.有着完善的权限功能 ...
- springboot + mybatis 前后端分离项目的搭建 适合在学习中的大学生
人生如戏,戏子多半掉泪! 我是一名大四学生,刚进入一家软件件公司实习,虽说在大学中做过好多个实训项目,都是自己完成,没有组员的配合.但是在这一个月的实习中,我从以前别人教走到了现在的自学,成长很多. ...
- nginx反向代理前后端分离项目(后端多台)
目前软件架构都比较流行前后端分离,前后端的分离也实现了前后端架构的分离,带来的好处 —— 整个项目的开发权重往前移,实现真正的前后端解耦,动态资源和静态资源分离,提高了性能和扩展性. 通常Spring ...
- 关于flask(前后端分离)的后端开发的小白笔记整理(含postman,jwt,json,SQLAlchemy等)
首先是提醒自己的一些唠嗑: 学会劳逸结合,文档看累了可以看视频,动手操作很关键,遇到问题先动脑子冷静地想,不要跟着步骤都不带脑子,想不出来了再查一查!有时候打出来的代码很虚,但是实践不花钱,实践出真知 ...
- 前后端分离项目获取后端跨控制器获取不到session
最近做前后端分离项目(.net core web api +vue)时,后台跨控制器不能获取到session.由于配置的是共享的session.本来以为是共享session出了问题,就在共享sess ...
- 从零开始搭建前后端分离的NetCore(EF Core CodeFirst+Au)+Vue的项目框架之二autofac解耦
在 上一篇 中将项目的基本骨架搭起来能正常跑通,这一篇将讲到,如何通过autofac将DbContext和model进行解耦,只用添加model,而不用在DbContext中添加DbSet. 在这里就 ...
- Springboot前后端分离中,后端拦截器拦截后,前端没有对应的返回码可以判断
项目登录流程如下 用户进入前端登录界面,输入账号密码等,输入完成之后前端发送请求到后端(拦截器不会拦截登录请求),后端验证账号密码等成功之后生成Token并存储到数据库,数据库中包含该Token过期时 ...
随机推荐
- 10 款 VS Code 插件神器,第 7 款超级实用!
VS Code 是这两年非常热门的一款 IDE,它不仅有提升开发体验的界面.轻量化的编辑器,还有丰富而强大的插件,这些优秀的插件使得 VS Code 生态体系更加吸引人,让开发效率大大提升.本文来介绍 ...
- DOS系统中EXE程序加载过程
1.在内存区中寻找一段容量足够的空闲内存区. 2.这段内存区的前256字节中,创建一个称为程序段前缀(PSP)的数据区. 3.这段内存区256字节之后,将程序装入,程序的地址被设为SA+10H : 0 ...
- WFP必须掌握的技能之自定义控件——实战:自制上传文件显示进度按钮
自定义控件在WPF开发中是很常见的,有时候某些控件需要契合业务或者美化统一样式,这时候就需要对控件做出一些改造. 目录 按钮设置圆角 按钮上传文件相关定义 测试代码 话不多说直接看效果 默认效果: 上 ...
- 使用hashicorp Raft开发分布式服务
使用hashicorp Raft开发高可用服务 开发raft时用到的比较主流的两个库是Etcd Raft 和hashicorp Raft,网上也有一些关于这两个库的讨论.之前分析过etcd Raft, ...
- JavaWeb之Servlet详解(以及浏览器调用 Servlet 流程分析图)
Servlet 1.什么是Servlet Servlet(java 服务器小程序) 他是由服务器端调用和执行的(一句话:是Tomcat解析和执行) 他是用java语言编写的, 本质就是Java类 他是 ...
- DataX入门教学
B站学习网址: https://www.bilibili.com/video/BV1H44y1x76X/?p=5&spm_id_from=pageDriver&vd_source=5f ...
- 从头学Java17-Lambda表达式
Lambda表达式 这一系列教程,旨在介绍 lambda 的概念,同时逐步教授如何在实践中使用它们. 回顾表达式.语句 表达式 表达式由变量.运算符和方法调用组成,其计算结果为单个值.您已经看到了表达 ...
- 【活动回顾】WebRTC服务端工程实践和优化探索
11月7日,即构和上海GDG技术社区联合举办了实时音视频技术云上技术分享专场,来自即构科技和Bilibili的资深技术专家进行了深度分享.大会吸引了众多开发人员交流.观看,并在活动过程中与分享嘉宾进行 ...
- Ubuntu DC + Samba4 AD 实现双域控主机模
文章将讲解如何使用 Ubuntu 16.04 服务器版系统来创建第二台 Samba4 域控制器,并将其加入到已创建好的 Samba AD DC 林环境中,以便为一些关键的 AD DC 服务提供负载均衡 ...
- Java开发大型互联网-架构师必须掌握的分布式技术
Java开发大型互联网-架构师必须掌握的分布式技术 摘要:在当今互联网行业,随着用户量和业务的不断增长,大型互联网系统的设计和开发已经成为了一项头等重要的任务.作为架构师,要能够应对这样的挑战,就必须 ...