Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/91270/Meiam.System
.NET 8 / .NET 5 WebAPI + Vue 2.0 + RBAC 企业级前后端分离权限框架
https://github.com/91270/Meiam.System
aop autofac cors csredis dbfirst filter mapster middleware net7 netcore nlog quartz rabbitmq redis service sqlsugar swagger token vue webapi
Last synced: 11 days ago
JSON representation
.NET 8 / .NET 5 WebAPI + Vue 2.0 + RBAC 企业级前后端分离权限框架
- Host: GitHub
- URL: https://github.com/91270/Meiam.System
- Owner: 91270
- License: apache-2.0
- Created: 2020-06-24T15:53:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-06-25T05:04:21.000Z (5 months ago)
- Last Synced: 2024-07-31T09:08:40.520Z (3 months ago)
- Topics: aop, autofac, cors, csredis, dbfirst, filter, mapster, middleware, net7, netcore, nlog, quartz, rabbitmq, redis, service, sqlsugar, swagger, token, vue, webapi
- Language: C#
- Homepage: http://www.592.la
- Size: 1.87 MB
- Stars: 757
- Watchers: 24
- Forks: 177
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - 91270/Meiam.System - .NET 8 / .NET 5 WebAPI + Vue 2.0 + RBAC 企业级前后端分离权限框架 (C\#)
README
### Meiam.System - .NET 8 / .NET 5 WebAPI + Vue 2.0 + RBAC 企业级前后端分离权限框架
[![.NET 7](https://img.shields.io/badge/.NET-8.0-d.svg)](#)
[![VUE](https://img.shields.io/badge/VUE-2.6.10-d.svg)](#)
[![SqlSugar](https://img.shields.io/badge/SqlSugar-5.1-d.svg)](#)
[![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20Win%20%7C%20OSX-brightgreen.svg)](#)
[![LICENSE](https://img.shields.io/badge/license-Apache%202-blue)](#)
[![Star](https://img.shields.io/github/stars/91270/Meiam.System?label=Star%20this%20repo)](https://github.com/91270/Meiam.System)
[![Fork](https://img.shields.io/github/forks/91270/Meiam.System?label=Fork%20this%20repo)](https://github.com/91270/Meiam.System/fork)
[![博客](https://img.shields.io/badge/博客-Meiam's%20Home-brightgreen.svg)](https://www.592.la/)
分支说明
master - .NET 8 / net5 - .NET 5
### 演示地址: https://demo.meiam.top
运行环境 : CENTOS7 / .NET 8 / MYSQL
后台用户 9999 密码 123456
## 给个星星! ⭐️
如果你喜欢这个项目或者它帮助你, 请给 Star~(辛苦咯)
如果你能赞助稳定 Google Drive 团队盘用于媒体库插件测试, 请于我联系 91270#QQ.COM
## 广告时间 📣
搬瓦工 $99 年付, 建站神器重出江湖,THE PLAN V1 传家宝套餐,18机房随意切换
循环优惠码:BWHCCNCXVV(6.77%)
[直达通道(传家宝套餐)](https://bwh88.net/aff.php?aff=117&pid=147)
## 框架介绍
- [x] 采用 服务 + 接口 的形式封装框架 (移除了仓库层)
- [x] 采用 REDIS 存储会话(用户信息 / 用户权限)- 更好的支持分布式应用、用户踢出、登录登出等功能
- [x] 采用 Autofac 依赖注入 IoC 容器, 实现批量自动注入所有服务
- [x] 采用 SqlSugar ORM 组件, DBFirst 开发模式, 封装 BaseService 数据库基础操作类
- [x] 采用 CSRedis 封装缓存层, 可结合 SqlSugar WithCache + RemoveDataCache 自动管理缓存
- [x] 采用 Swagger 自动生成 WebAPI 说明文档
- [x] 采用 Mapster 高性能对象映射, 代码书写更简洁
- [x] 采用 NLog 日志组件, 集成 Microsoft.Extensions.Logging (ILogger 注入)操作日志
- [x] 采用 NLog.Web.AspNetCore 日志扩展组件, 增加 layout 更多属性
- [x] 采用 Quartz.Net 封装任务调度中心功能
- [x] 封装全局 会话 管理器 (用户 Token 会话管理)
- [x] 封装全局 权限 拦截器 (用户 Permission 权限管理)
- [x] 封装全局 异常 拦截器 (自动记录系统异常日志)
- [x] 封装全局 请求 拦截器 (自动记录接口请求日志)
- [x] 支持 用户功能权限、 用户数据权限分配
- [x] 支持 CORS 跨域配置
- [x] 支持代码生成器,自动生成 Model 、Service 、 IService 层
- [x] 支持跨方法事务方案,把事务提取到逻辑层进行统一事务提交,让你的代码更加漂亮
- [x] 支持多种数据库 Sqlite/SqlServer/MySql/PostgreSQL/Oracle 自由切换
- [x] 支持数据库 读写分离 和 多库 操作
- [x] 计划 RabbitMQ 消息列队集成
- [ ] 计划 ImCore 及时通讯组件集成
## 后端功能 (.Net Core)
| # | 模块功能 | 项目文件 | 说明
|---|-------------------------------|-------------------------------|-------------------------------
| 1 | 基础库 |Meiam.System.Common | 存放常用类库 、加密解密单元等
| 2 | 核心库 |Meiam.System.Core | 数据库、缓存相关类
| 3 | 扩展库 |Meiam.System.Extensions | 外部接口引用集成
| 4 | 服务层 |Meiam.System.Interfaces | Service 、 IServer, 基础服务类
| 5 | 模型层 |Meiam.System.Model | Entity、Dto、ViewModel
| 6 | 业务层 |Meiam.System.Hostd | WebAPI
| 7 | 工具库 |Meiam.System.Tools | 代码生成器
| 8 | 定时任务 |Meiam.System.Tasks | 任务调度中心还在陆续整理中
![WebAPI][1]
## 前端功能 (Vue)
还在陆续整理中
![WebUI][2]
## 使用文档 (相关配置)
### 导入数据库文件
根据你选用的数据库, 导入 [Meiam.System-SQLServer.sql] 或 [Meiam.System-MySQL.sql] 数据库文件备份
### 替换日志配置文件
根据你选用的数据库, 复制 [NLog-SQLServer.config] 或 [NLog-MySQL.config] 到 Meiam.System.Hostd 目录,并重命名为 NLog.config
### 修改 `appsettings.json` `Nlog.Config ` 中相关配置数 (数据库 REDIS 密码 等信息)
```c#
// 数据库连接
"DbConnection": {
"ConnectionString": "Server=192.168.0.3;Database=MeiamSystem;UID=meiamsystem;Password=HApVpL8XhFFGz3Oy",
"DbType": 1 //<= 配置你要选用的数据库 MySql = 0, SqlServer = 1, Sqlite = 2, Oracle = 3, PostgreSQL = 4
},
// REDIS 配置 , 默认使用了 3 个 DB
"RedisServer": {
"Cache": "192.168.0.3:6379,password=redis,preheat=5,idleTimeout=600,defaultDatabase=13,prefix=Cache",
"Sequence": "192.168.0.3:6379,password=redis,preheat=5,idleTimeout=600,defaultDatabase=14,prefix=Sequence:",
"Session": "192.168.0.3:6379,password=redis,preheat=5,idleTimeout=600,defaultDatabase=15,prefix=Session:"
},
// 跨域配置
"Startup": {
"ApiName": "Meiam.System",
"ApiUrls": "http://*:19999",
"AllowOrigins": "http://127.0.0.1:18888|http://localhost:18888"
},
// TOKEN 过期时间配置
"AppSettings": {
"Demo": true, //<= 关闭演示模式
"WebSessionExpire": 24,
"MiniProgramSessionExpire": 720
},
// 头像上传目录
"AvatarUpload": {
"AvatarDirectory": "D://wwwroot/avatars",
"AvatarUrl": "/"
}
```
### 启动项目
```bash
dotnet Meiam.System.Hostd.dll
```
## 贡献
贡献的最简单的方法之一就是是参与讨论和讨论问题(issue)。你也可以通过提交的 Pull Request 代码变更作出贡献。
## 致谢
[anjoy8/Blog.Core](https://github.com/anjoy8/Blog.Core) 借鉴了作者定时任务的写法
[sunkaixuan/SqlSugar](https://github.com/sunkaixuan/SqlSugar)
[1]: https://raw.githubusercontent.com/91270/Meiam.System/master/WebAPI.png
[2]: https://raw.githubusercontent.com/91270/Meiam.System/master/WebUI.png