# RuYiAdmin
**Repository Path**: yupeiyong/RuYiAdmin
## Basic Information
- **Project Name**: RuYiAdmin
- **Description**: 基于.NET6的RBAC后台管理系统,前端使用vue element admin,后端使用服务与仓储模式。
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 377
- **Created**: 2021-11-26
- **Last Updated**: 2021-11-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# RuYiAdmin
#### 介绍
RuYiAdmin是一个前后端可分离的、代码能够自动生成的、基于.Net6的低代码RBAC Web后台管理系统模板。前端采用最受欢迎的开源框架之一:Vue Element Admin,后端采用服务与仓储模式。
#### 软件架构

#### 技术栈

#### 项目结构说明






#### 项目优势
1. RuYiAdmin前端使用vue框架与elementui搭建,框架使用Vue Element Admin。
1. RuYiAdmin对于前端通用API做了统一性的封装。
1. RuYiAdmin对于前端Base Page界面与通用方法做了较为全面的封装。
1. RuYiAdmin前端支持水印。
1. RuYiAdmin前端支持锁屏。
1. RuYiAdmin后端采用.Net6 WebApi,支持跨平台。
1. RuYiAdmin后端既可用于构建独立服务,也可以用于支撑前端业务。
1. RuYiAdmin集成了Redis,支持哨兵模式。
1. RuYiAdmin集成了Apache ActiveMQ,支持Master Slave和Broker Cluster结合的MQ集群。
1. RuYiAdmin支持实时消息、支持禁用用户实时踢出系统。
1. RuYiAdmin使用Swagger作为WebApi的管理工具,同时为接口与Model做了精细的注释。
1. RuYiAdmin使用JWT验证,防止WebApi滥调。
1. RuYiAdmin使用AutoFac,实现依赖自动注入。
1. RuYiAdmin支持log4net,同时支持控制台输出。
1. RuYiAdmin支持Quartz作业调度。
1. RuYiAdmin支持Api路由白名单。
1. RuYiAdmin支持Request Headers验证配置化。
1. RuYiAdmin封装了统一的基类模型。
1. RuYiAdmin支持个性化导出Excel。
1. RuYiAdmin支持Excel导入常规校验。
1. RuYiAdmin支持相对路径或绝对路径、NAS存储。
1. RuYiAdmin统一封装了UI、控制层、服务层与仓储层通用逻辑,后端业务层代码量极少,开启极简代码风格。

1. RuYiAdmin使用地表最强ORM SqlSugar(支持多种数据库、包括国产数据库),上下文使用单例模式。

1. RuYiAdmin做到了按钮、视图的可见性控制。
1. RuYiAdmin做到了按钮级别的操作鉴权。
1. RuYiAdmin做到了按钮与视图的精细授权。
1. RuYiAdmin做到了用户行为的自动监控。
1. RuYiAdmin支持业务数据与不同机构分离。
1. RuYiAdmin支持权限下放。
1. RuYiAdmin支持菜单多语。
1. RuYiAdmin使用了AutoMapper,实现了POCO与DTO自动转化。
1. RuYiAdmin支持配置信息热加载、热更新。
1. RuYiAdmin封装、使用了灵活高效的SQL访问底层。
1. RuYiAdmin实现了SQL与代码的分离。
1. RuYiAdmin支持SQL热加载、热更新。
1. RuYiAdmin支持一主两从的读写分离。
1. RuYiAdmin封装了统一的数据返回格式。
1. RuYiAdmin封装了强大的查询条件,支持前端的自定义查询。
1. RuYiAdmin支持数据的逻辑与物理删除。
1. RuYiAdmin支持线程池、多任务。
1. RuYiAdmin支持任务配置与调度。
1. RuYiAdmin支持服务熔断与降级。
1. RuYiAdmin支持熔断告警。
1. RuYiAdmin支持Consul服务治理与健康检查。
1. RuYiAdmin支持并发限制。
1. RuYiAdmin是一个完整的RBAC系统管理模板。

1. RuYiAdmin构建了可视化的ER关系模型。
1. RuYiAdmin提供一键执行的数据库初始化脚本。
1. RuYiAdmin已经支持Linux Docker。
1. RuYiAdmin支持自动生成代码。
#### 安装教程
1. 安装Redis。
1. 安装ActiveMQ。
1. 安装Mysql数据库。作者使用的是mysql8,如果搭建基于mycat的读写分离集群,建议使用mysql5.7。
1. 安装NodeJs。
1. 克隆代码。
1. 数据库初始化,结构与数据位于webapi/DataModel、DataStructrue下。如果使用低版本mysql,可能需要修改数据库初始化脚本。
1. 修改Redis、ActiveMQ、Mysql数据库连接串。
1. 前端管理目录位于webapi/wwwroot。推荐使用Visual Studio Code开源软件编辑,作者使用的是idea。前端的使用可以参看Vue Element Admin官网。
1. 后端采用Visual Studio 2022开发工具,请使用最新版本。
#### 系统截图
1. 星空粒子登录页(默认密码:123456)

1. 系统首页

1. 机构管理

1. 用户管理

1. 菜单管理

1. 角色管理

1. 码表管理

1. 日志管理

1. 在线用户管理

1. 在线任务调度

1. 导入配置管理

1. 系统多语管理

1. swagger


1. 其他
- 数据导入合法性校验


- 极简代码风格示例
```
///
/// 日志业务层接口
///
public interface ILogService : IBaseService
{
}
```
#### 部署架构
1. 传统部署架构

1. 云平台冗余部署架构

#### 后话
1. 我看过了很多.net的开源框架,无论是前端还是后端或者框架业务完备性,均没有一个令我满意的框架。在使用了Java版本的若依vue之后,我发现她很全面、很强大,但是也存在一些问题,那就是前端与后端均没有做统一的抽象与封装。
架构如果没有层次、没有封装,那就意味着代码量会很大。于是我有了前端、controller、service、repository做泛型抽象与封装的打算,以此来最大限度的减少业务层代码。
在查阅了很多优秀的开源项目之后,我初步完成了框架的设计思想,并在工作之余初步完成了她,同时将她开源。为了纪念她的诞生,我用我闺女的小名如意来为她命名,称之为如意Admin。
1. 工作流建议使用优秀开源项目。