大家好,我是宝弟!
今天给大家推荐一款基于.Net7开发的支持多租户权限管理及快速开发框架YuebonCore。
YuebonCore分为SAAS版和单应用版:
SAAS版:支持共享数据库使用 tenantId 字段分离租户,也支持一个租户一个独立数据库。相比单版本将接口和实现进行分离项目实现解耦,新增了事件订阅等一系列功能。
单应用版:单体应用开发,架构较为简单,没有实现接口和实现的解耦。.
YuebonCore整合应用最新技术包括 Asp.NetCore、SqlSugar ORM、WebAPI、Swagger、Vue3 等,核心模块包括:组织机构、角色用户、权限授权、多系统、多应用管理、定时任务、业务单据编码规则、代码生成器等。它的架构易于扩展,规范了一套业务实现的代码结构与操作流程,使 YuebonCore 框架更易于应用到实际项目开发中。
使用 MIT 协议,完整开源。采用主流框架,容易上手,简单易学,学习成本低。可完全实现二次开发、基本满足 80%项目需求。
代码生成器可以帮助解决.NET 项目 70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。
操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、功能按钮。
数据权限(精细化数据权限控制,可以设置角色可以访问的数据范围,部门、工作组、公司数据)
常用类封装,日志、缓存、验证、字典、文件、邮件、,Excel。等等,目前兼容浏览器(IE11+、Chrome、Firefox、360 浏览器等)
适用范围:可以开发 OA、ERP、BPM、CRM、WMS、TMS、MIS、BI、电商平台后台、物流管理系统、快递管理系统、教务管理系统等各类管理软件。
前端技术
Vue 版前端技术栈 :基于 vue3、Vite、vuex、vue-router 、vue-cli 、axios 和 element-plus。
后端技术
核心框架:.Net7 + Web API +SqlSugar + AutoMapper + swagger
定时任务:Quartz.Net
系统安全:过滤器、Sql 注入、请求伪造
服务端验证:实体模型验证、自定义Validator
系统缓存:MemoryCache、Redis
日志管理:Log4net、登录日志、操作日志
工具类:NPOI、验证码
性能分析:MiniProfiler
1、系统设置、2、用户管理、3、组织机构、4、角色管理、5、字典管理、6、功能模块、7、定时任务、8、代码生成、9、日志管理、10、多应用管理、11、多系统管理、12、业务单据编码规则、13、短信和邮件、14、支持租户模式、15、自定义主题风格、16、一主多从数据库读写分离
运行后台
1、初始化数据库:数据库脚本在DataBase
文件夹内,根据需要执行mssql vue版本
或mysql vue版本
文件夹里面的table表结构.sql
和初始化数据.sql
脚本进行初始化数据库。
2、使用 Visual Studio 2022 打开项目,打开appsettings.json 修改连接字符串:
"DbConnections": [
{
"ConnId": "DefaultDb",
"Enabled": true,
"MasterDB": { //必须配置,远程服务器数据库
"ConnectionString": "server=127.0.0.1;database=ybnf1;user=root;CharSet=utf8;password=123456;port=3306;CharSet=utf8mb4;Allow User Variables=True;SslMode=none;AllowLoadLocalInfile=true;",
"DatabaseType": 0, //数据库类型
"Enabled": true //是否可用
},
"ReadDB": []
},
{
"ConnId": "LocalDB",
"Enabled": true,
"MasterDB": { //本地数据库
"ConnectionString": "server=localhost;Database=bonwcslocal1;Uid=root;Pwd=123456;Port=3306;CharSet=utf8mb4;Allow User Variables=True;SslMode=none;AllowLoadLocalInfile=true;",
"DatabaseType": 0, //数据库类型
"Enabled": true //是否可用
},
"ReadDB": [
{
"ConnectionString": "", //数据库连接字符
"HitRate": "", //从库执行访问权重,越大越先执行
"Enabled": true //是否可用
},
{
"ConnectionString": "", //数据库连接字符
"HitRate": "", //从库执行访问权重,越大越先执行
"Enabled": true //是否可用
}
]
}
],
"AppSetting": {
"SoftName": "YueBonCore Framework",
"CertificatedCompany": "Yuebon",
"ConStringEncrypt": "false",//连接字符串是否加密
"DefaultDataBase": "DefaultDb",//默认数据库连接
"IsDBReadWriteSeparate": false, //开启数据库读写分离
"QueryDBStrategy": "Random", //定义多个从数据库的访问策略
},
3、编译运行
运行前端
1、修改接口访问地址
在目录中 VueUI\src 修改 setting.js 文件中接口访问地址,将地址改为 webapi 项目启动访问地址。 注意你的接口采用 https 还是 http 方式。
apiHostUrl: 'http://localhost:54678/api/', // 基础接口
apiSecurityUrl: 'http://localhost:54678/api/Security/', // 权限管理系统接口
fileUrl: 'http://localhost:54678/', // 文件访问路径
fileUploadUrl: 'http://localhost:54678/api/Files/Upload'// 文件上传路径
2、编译运行
#进入目录
cd VueUI
# 安装依赖
npm install
# 强烈建议不要用直接使用 cnpm 安装
npm install --registry=https://registry.npm.taobao.org
# 本地开发 启动项目
npm run dev
打开浏览器,输入:http://localhost:8085 (默认账户 admin/admin888) 若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功。
2、系统模块和功能管理
3、用户管理多角色
4、角色管理
5、应用管理 支持多个应用分别设置 appId 和密钥,适用于多个应用访问接口,每个应用采用 jwt 标准化 token 验证访问接口。
6、数据字典
7、多系统
8、日志管理
9、定时任务
本地任务
10、代码生成器 支持一键生成服务端代码和前端代码,复制粘贴简单快速高效实现功能
11、WebApi 集成 Swagger
资源获取方式
https://gitee.com/yuebon/YuebonNetCore