中台框架后端我的项目 Admin.Core 的介绍与配置阐明

中台admin是前后端拆散权限管理系统,Admin.Core为后端我的项目,基于.NET 7.0开发。
反对多租户、数据权限、动静 Api、任务调度、OSS 文件上传、滑块拼图验证、多数据库,分布式缓存、分布式事务等
  • 接口文档一览
  • 我的项目地址

    • Github https://github.com/zhontai/Admin.Core
  • 技术栈

    • 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 我筹备放本人的模块

默认实现性能

  1. 用户治理:配置用户,查看部门用户列表,反对禁用/启用、重置明码、设置主管、用户可配置多角色、多部门和下级主管。
  2. 角色治理:配置角色,反对角色分组、设置角色菜单和数据权限、批量增加和移除角色员工。
  3. 部门治理:配置部门,反对树形列表展现。
  4. 权限治理:配置分组、菜单、操作、权限点、权限标识,反对树形列表展现。
  5. 租户套餐:配置租户套餐,反对新增/移除套餐企业。
  6. 租户治理:配置租户,新增租户时初始化部门、角色和管理员数据,反对租户配置套餐、禁用/启用性能。
  7. 字典治理:配置字典,查看字典类型和字典数据列表,反对字典类型和字典数据保护。
  8. 任务调度:查看工作和工作日志列表,反对工作启动、执行、暂停等性能。
  9. 缓存治理:缓存列表查问,反对依据缓存键革除缓存
  10. 接口治理:配置接口,反对接口同步性能,用于新增权限点抉择接口,反对树形列表展现。
  11. 视图治理:配置视图,反对视图保护性能,用于新增菜单抉择视图,反对树形列表展现。
  12. 文件治理:反对文件列表查问、文件上传/下载、查看大图、复制文件地址、删除文件性能。
  13. 登录日志:登录日志列表查问,记录用户登录胜利和失败日志。
  14. 操作日志:操作日志列表查问,记录用户操作失常和异样日志。

框架的应用

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+)
  • 官网文档:https://zhontai.net/backend/new-project.html

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
        • 连贯字符串:connectionString

          • 默认:admindb.db
        • 同步构造

          • syncStructure:true

            • 默认启用
            • 分布式部署须要留神敞开
          • 监听同步构造脚本 syncStructureSql:false

            将会输入codeFirst执行的脚本
            将 assemblyNames 配置的所有实体执行构造移 db.CodeFirst.SyncStructure 
            1.创立长期表
            2.插入历史数据,批改字段名称状况留神
            3.删除旧表,重命名长期表为新表
            生产上该本人执行脚本的还是本人执行
        • 同步数据

          • 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 
          • 加了视图菜单就能够应用这个性能来创立生成默认数据
  • 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

        • http://localhost:8000/admin/swagger
      • apiUI 接口文档地址

        • http://localhost:8000/admin/index.html
      • MiniProfiler 性能分析器

        • false
      • identityServer 对立认证受权服务器

        • false
      • aop 面向切面编程s

        • 开启事务
      • log 数据库日志

        • 操作日志
      • rateLimit 限流开关

        • false
      • varifyCode 登录验证码

        • true
      • defaultPassword 默认明码

        • 111111
      • dynamicApi 动静api

        • 后果格式化
      • passwordHasher 规范标识明码哈希

        • 启用后雷同明码加密后各不相同
      • maxRequestBodySize 最大申请大小

        • 104857600
      • healthChecks 健康检查

        • enable:true 启用
        • path:/admin/health
  • 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
  • InitData\模块*.{tenant}.json

    • 默认初始化数据

4. 代码生成

  • 官网默认模板生成:

    • dotnet new install ZhonTai.Template
    • dotnet new MyApp -n MyCompanyName.MyProjectName
  • 第三方代码生成器:

    • 后端:https://github.com/share36/Admin.Core.Dev
    • 前端:https://github.com/share36/admin.ui.plus.dev

前端及代码生成见下篇

写在最初

文章的起因是想找个不错的框架用来搞个本人用的零碎,找了几个dotnet+vue的框架,zhontai的这个是看到上手最容易,前后台的代码也没有封装得太深,二开也很不便,看着用着都挺舒服的。
惟一的有余就是文档了,一点材料都找不到,就只能一点点看代码,而后边看边记录,以备后用,又想着既然都写了,那就再整顿一下了,顺便分享进去咯,心愿可能对前面应用框架的有所帮忙。