# RuYiAdmin **Repository Path**: wangxin5355/RuYiAdmin ## Basic Information - **Project Name**: RuYiAdmin - **Description**: 基于.NET5的RBAC后台管理系统,前端使用vue element admin,后端使用.Net Core WebApi - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 352 - **Created**: 2021-07-01 - **Last Updated**: 2021-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuYiAdmin #### 介绍 RuYiAdmin是一个前后端可分离的、基于.Net5的低代码RBAC Web后台管理系统模板。前端采用最受欢迎的开源框架vue element admin,后端采用.Net5 WebApi。 #### 软件架构 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0610/100611_63e828ac_8819418.png "屏幕截图.png") #### 技术栈 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0608/110749_7c504cc1_8819418.png "屏幕截图.png") #### 项目结构说明 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0608/150947_11894b95_8819418.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0608/151145_f8c69702_8819418.png "屏幕截图.png") #### 软件优势 1. RuYiAdmin前端使用vue框架与elementui搭建,框架使用vue element admin。 1. RuYiAdmin对于前端通用API做了统一性的封装。 1. RuYiAdmin对于前端Base Page界面与通用方法做了较为全面的封装。 1. RuYiAdmin后端采用.Net5 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、控制层、服务层与仓储层通用逻辑,后端业务层代码量极少,开启极简代码风格。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0425/102922_ca92a88f_8819418.png "屏幕截图.png") 1. RuYiAdmin使用地表最强ORM SqlSugar,支持多种数据库。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0422/104500_7374a8f4_8819418.png "屏幕截图.png") 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是一个完整的RBAC系统管理模板。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0625/092955_c1c4c360_8819418.png "屏幕截图.png") 1. RuYiAdmin构建了可视化的ER关系模型。 1. RuYiAdmin提供一键执行的数据库初始化脚本。 #### 安装教程 1. 安装Redis。 1. 安装ActiveMQ。 1. 安装Mysql数据库。作者使用的是mysql8,如果搭建基于mycat的读写分离集群,建议使用mysql5.7。 1. 安装NodeJs。 1. 克隆代码。 1. 数据库初始化,结构与数据位于webapi/DataAndModel。如果使用低版本mysql,可能需要修改数据库初始化脚本。 1. 修改Redis、ActiveMQ、Mysql数据库连接串。 1. 前端管理目录位于webapi/wwwroot。推荐使用Visual Studio Code开源软件编辑,作者使用的是idea。前端的使用可以参看vue element admin官网。 1. 后端采用Visual Studio 2019开发工具,请使用最新版本。 #### 系统截图 1. 系统登录(默认密码:123456) ![输入图片说明](https://images.gitee.com/uploads/images/2021/0427/103740_7c2c0d60_8819418.png "屏幕截图.png") 1. 系统首页 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0421/164053_89c2c598_8819418.png "屏幕截图.png") 1. 机构管理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0421/164136_a29471da_8819418.png "屏幕截图.png") 1. 用户管理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0421/164223_34a3bfe6_8819418.png "屏幕截图.png") 1. 菜单管理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0421/164311_35a298ba_8819418.png "屏幕截图.png") 1. 角色管理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0525/170932_edf0d582_8819418.png "屏幕截图.png") 1. 码表管理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0421/164434_4585bda8_8819418.png "屏幕截图.png") 1. 日志管理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0421/164536_dc6a8c4a_8819418.png "屏幕截图.png") 1. swagger ![输入图片说明](https://images.gitee.com/uploads/images/2021/0429/115209_83f0889f_8819418.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0429/115235_fd32f272_8819418.png "屏幕截图.png") 1. 其他 - 数据导入合法性校验 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0602/170515_26e80400_8819418.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0602/170401_4b597be0_8819418.png "屏幕截图.png") - 极简代码风格示例 ``` /// /// 日志业务层接口 /// public interface ILogService : IBaseService { } ``` #### 部署架构 1. 传统架构 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0602/163857_4931b89b_8819418.png "屏幕截图.png") 1. 云平台部署架构 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0602/163816_82f50d0f_8819418.png "屏幕截图.png") #### 交流群 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0514/091525_4ad93b81_8819418.png "屏幕截图.png") #### 支持捐赠 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0514/091855_bb5d2822_8819418.png "屏幕截图.png") #### 后话 1. 我看过了很多.net的开源框架,无论是前端还是后端或者框架业务完备性,均没有一个令我满意的框架。在使用了Java版本的若依vue之后,我发现她很全面、很强大,但是也存在一些问题,比如前端api和页面都没有做统一的封装,后端的Service层与Mapper层也没有做抽象与封装。架构如果没有层次、没有封装,那就意味着代码量会很大。于是我有了前端、controller、service、repository做泛型抽象与封装的打算,以此来最大限度的减少业务层代码。在查阅了很多优秀的开源项目之后,我初步完成了框架的设计思想,并在工作之余初步完成了如意Admin,同时将她开源。 1. 如意是我宝贝丫头的小名,因此我用如意来为这个框架命名,可谓是寓意深远、爱的深沉。 1. 框架是顶层设计,做架构考虑最多的是如何能最大限度的满足业务。如意Admin现在刚刚完成第一版,还有一些问题需要修正。我会工作之余尽我最大的努力来将她进一步规范、完善,来让她为你提供更好的开发体验。 1. 任务调度管理及国际化将会在后续实现。 1. 工作流建议使用优秀开源项目。 1. 二期会提供AdminLte为框架的前端。 1. 如果觉得项目有用可以点个赞,随手点赞是一种美德。