Blog.Core/README.md

287 lines
12 KiB
Markdown
Raw Normal View History

2020-12-28 14:25:28 +08:00
<img align="right" height="50px" src="http://apk.neters.club/logocore.png">
2019-10-02 22:58:12 +08:00
2020-12-28 14:25:28 +08:00
# Blog.Core
2019-11-15 13:38:55 +08:00
2021-05-22 12:56:58 +08:00
[English](README-en.md) | 简体中文
2019-10-02 22:58:12 +08:00
2021-11-18 17:21:28 +08:00
[![sdk](https://img.shields.io/badge/sdk-6.0.1-d.svg)](#) [![Build status](https://github.com/anjoy8/blog.core/workflows/.NET%20Core/badge.svg)](https://github.com/anjoy8/Blog.Core/actions) [![Build Status](https://dev.azure.com/laozhangisphi/anjoy8/_apis/build/status/anjoy8.Blog.Core?branchName=master)](https://dev.azure.com/laozhangisphi/anjoy8/_build?definitionId=1) [![codecov](https://codecov.io/gh/anjoy8/Blog.Core/branch/master/graph/badge.svg)](https://codecov.io/gh/anjoy8/Blog.Core) [![License MIT](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](https://github.com/anjoy8/Blog.Core/blob/master/LICENSE) [![star this repo](http://githubbadges.com/star.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges) [![fork this repo](http://githubbadges.com/fork.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges/fork) [![博客园](https://img.shields.io/badge/博客园-老张的哲学-brightgreen.svg)](https://www.cnblogs.com/laozhang-is-phi/)
2020-11-25 12:29:32 +08:00
2024-05-11 15:29:35 +08:00
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=anjoy8/blog.core&type=Date)](https://star-history.com/#anjoy8/blog.core&Date)
2020-11-25 12:29:32 +08:00
2020-12-28 14:25:28 +08:00
&nbsp;
&nbsp;
2020-11-25 12:29:32 +08:00
2020-12-28 14:25:28 +08:00
<div style="text-align: center;">
<a href="https://mvp.microsoft.com/zh-cn/PublicProfile/5003704?fullName=anson%20zhang" >
<img src="http://apk.neters.club/MVP_Logo_Horizontal_Preferred_Cyan300_CMYK_72ppi.png" alt="MVP" >
</a>
2021-07-12 17:18:28 +08:00
2020-12-28 14:25:28 +08:00
</div>
2018-11-14 11:29:03 +08:00
2022-07-30 09:32:43 +08:00
-------------------------------
2021-11-29 09:31:59 +08:00
Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x + RBAC】权限框架。
其他版本看具体分支吧🎉
2021-07-12 17:18:28 +08:00
官网http://apk.neters.club/.doc/
2022-07-30 09:32:43 +08:00
---------------------
**已被近100家公司所使用(🐱‍🚀)[点击查看列表](https://github.com/anjoy8/Blog.Core/issues/75)** 欢迎盖楼,留下公司真实名字的,可得定制化指导服务。
2024-03-19 09:53:57 +08:00
同时如果企业有付费咨询欢迎联系老张QQ3143422472
2021-07-12 17:18:28 +08:00
2022-07-30 09:32:43 +08:00
2024-04-12 11:41:40 +08:00
### 核心项目组成员(排名不分先后)
[hudingwen](https://github.com/hudingwen)、[LemonNoCry](https://github.com/LemonNoCry)、、[Jamnine何拾玖](https://github.com/Jamnine)、
2021-09-17 00:18:08 +08:00
#### ❤ 真实用户反馈 ❤
```
2022-07-30 09:32:43 +08:00
项目单体部署并发在400~500一切正常(不保证自己的各种错误写法)。
如果搭配负载,效果更好。
2021-09-17 00:18:08 +08:00
1、A~CoderDong:
应用场景使用Blog.Core为基础骨架开发搭建Client监控类守护进程项目To C 客户群,
2021-09-17 17:35:12 +08:00
并发情况目前压测并发5k正常8秒处理完并发10k可15秒处理完毕异常不会丢失。
生产配置一台服务器Linux环境 + 至强8核的16G内存 + mysql数据库 + 3台Nginx负载
2021-09-17 00:18:08 +08:00
```
2022-09-03 22:41:03 +08:00
2021-09-10 11:45:01 +08:00
2022-03-14 16:43:06 +08:00
&nbsp;
## 给个星星! ⭐️
如果你喜欢这个项目或者它帮助你, 请给 Star~
如果你的项目中借鉴了本项目,请稍微说明下[https://github.com/anjoy8/Blog.Core/issues/75](https://github.com/anjoy8/Blog.Core/issues/75),开源不易✨。
2021-07-26 10:34:14 +08:00
2019-12-24 15:40:01 +08:00
### 功能与进度
2023-11-28 09:15:24 +08:00
#### 企业使用高级版本
2022-07-30 09:32:43 +08:00
2023-04-08 19:07:00 +08:00
- [x] 包含开源版 `框架模块/组件模块` 中的所有功能;
2022-07-30 09:32:43 +08:00
- [x] 全部表结构主键底层架构改成`string`类型默认雪花支持guid更方便迁移
- [x] 完善部门数据权限,可以基于策略配置查看数据范围;
2022-08-06 17:28:56 +08:00
- [x] 优化权限处理器解决多实例分布式下权限不同步问题必须配置Redis
2022-09-03 22:39:44 +08:00
- [x] 增加在线用户查看功能并实现强制用户下线功能必须配置Redis
- [x] 增加用户黑名单功能必须配置Redis
2022-11-23 22:25:17 +08:00
- [x] 增加岗位功能(单独建表),配合部门使用;
2022-09-03 22:39:44 +08:00
- [ ] 后期优化站内通知功能其实目前已经有SignalR来实现消息推送了可以直接用
2022-10-09 19:21:54 +08:00
- [ ] 前端`Blog.Admin.Pro`使用`AntDesignVue`框架(设计中,未完全实现);
2022-07-30 09:32:43 +08:00
- [x] 铁粉奖励:如果参与上述功能和其他付费功能开发,可半价获取商业授权;
#### 框架模块:
2020-06-23 11:42:07 +08:00
- [x] 采用`仓储+服务+接口`的形式封装框架;
2023-03-23 16:39:57 +08:00
- [x] 自定义项目模板 `CreateYourProject.bat` ,可以一键生成自己的项目;🎶
- [x] 异步 async/await 开发;
2023-02-25 16:27:45 +08:00
- [x] 接入国产数据库ORM组件 —— SqlSugar封装数据库操作支持级联操作
2020-11-25 12:29:32 +08:00
- [x] 支持自由切换多种数据库MySql/SqlServer/Sqlite/Oracle/Postgresql/达梦/人大金仓;
2020-06-23 11:42:07 +08:00
- [x] 实现项目启动,自动生成种子数据 ✨;
2022-07-26 14:32:55 +08:00
- [x] 实现数据库主键类型配置化,什么类型都可以自定义 ✨;
2022-11-23 22:25:17 +08:00
- [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等,并自动持久化到数据库表🎶;
2020-06-23 11:42:07 +08:00
- [x] 支持项目事务处理若要分布式用cap即可
- [x] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨;
2023-04-08 19:07:00 +08:00
- [x] 全局统一封装 Serilog 生成多种日志并自动生成到数据库中目前支持MySql/SqlServer/Sqlite/Oracle/Postgresql🎉
2022-11-25 11:40:08 +08:00
- [x] 设计并支持按钮级别的RBAC权限控制同时支持一键同步接口和菜单 🎶;
2020-06-23 11:42:07 +08:00
- [x] 支持 T4 代码模板,自动生成每层代码;
- [x] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库);
- [x] 封装`Blog.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨;
- [x] 搭配多个前端案例供参考和借鉴Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ✨;
- [x] 统一集成 IdentityServer4 认证 ✨;
2023-07-26 18:15:31 +08:00
- [x] 统一实现多租户;
- [x] 实现分表案例支持分表的增删改查哈分页查询具体查看SplitDemoController.cs;
- [x] 支持signalR对指定用户通讯;
2023-02-25 16:27:45 +08:00
2020-06-23 11:42:07 +08:00
组件模块:
- [x] 提供 Redis 做缓存处理;
- [x] 使用 Swagger 做api文档
- [x] 使用 MiniProfiler 做接口性能分析 ✨;
- [x] 使用 Automapper 处理对象映射;
- [x] 使用 AutoFac 做依赖注入容器,并提供批量服务注入 ✨;
- [x] 支持 CORS 跨域;
2019-12-24 15:40:01 +08:00
- [x] 封装 JWT 自定义策略授权;
2023-04-08 19:07:00 +08:00
- [x] 使用 Serilog 日志框架,集成原生 ILogger 接口做日志记录;
2020-09-30 20:43:20 +08:00
- [x] 使用 SignalR 双工通讯 ✨;
2020-06-23 11:42:07 +08:00
- [x] 添加 IpRateLimiting 做 API 限流处理;
2020-12-04 11:05:57 +08:00
- [x] 使用 Quartz.net 做任务调度(目前单机多任务,集群调度暂不支持);
2020-06-23 11:42:07 +08:00
- [x] 支持 数据库`读写分离`和多库操作 ✨;
2020-09-04 12:00:07 +08:00
- [x] 新增 Redis 消息队列 ✨;
2020-11-18 23:34:59 +08:00
- [x] 新增 RabbitMQ 消息队列 ✨;
- [x] 新增 EventBus 事件总线 ✨;
2021-08-04 18:06:04 +08:00
- [x] 新增 - 统一聚合支付;
- [x] 新增 - Nacos注册中心配置;
- [x] 新增 - ES 搜索配置;
2021-08-21 22:54:52 +08:00
- [x] 新增 - Apollo 配置;
2021-08-24 10:48:06 +08:00
- [x] 新增 Kafka 消息队列并配合实现EventBus ✨;
2021-10-16 09:56:16 +08:00
- [x] 新增 微信公众号管理并集成到Blog.Admin后台 ✨;
2022-04-04 21:03:23 +08:00
- [x] 新增 - 数据部门权限;
2023-04-08 19:07:00 +08:00
- [x] 新增 - Serilog 集成日志数据持久化到数据库;
2023-02-25 16:27:45 +08:00
- [x] 新增 - 多租户模式(单表,多表,多库三种模式);
2020-06-23 11:42:07 +08:00
微服务模块:
2020-09-30 20:45:10 +08:00
- [x] 可配合 Docker 实现容器化;
2020-09-30 20:46:16 +08:00
- [x] 可配合 Jenkins 实现CI / CD
2020-06-23 11:42:07 +08:00
- [x] 可配合 Consul 实现服务发现;
2021-08-04 18:06:04 +08:00
- [x] 可配合 Nacos 实现服务发现;
2023-08-05 12:56:46 +08:00
- [x] 可配合 apisix/Ocelot 实现网关处理;
2020-06-23 11:42:07 +08:00
- [x] 可配合 Nginx 实现负载均衡;
- [x] 可配合 Ids4 实现认证中心;
2019-12-24 15:40:01 +08:00
2024-03-19 09:53:57 +08:00
### 核心业务模块
#### 框架采用泛型仓储模式,以下几层为核心层,不可删除
`Blog.Core.Api`、`Blog.Core.Common`、`Blog.Core.IServices`、`Blog.Core.Model`、`Blog.Core.Repository`、`Blog.Core.Services`、`Blog.Core.Tasks`、`Blog.Core.Serilog`
其他代码分层是支撑层,如果自己业务涉及不到,可以删除。
#### API接口层主要是基于RBAC的基于按钮级别的角色授权逻辑以下几个Controller不可删除
`BaseApiController.cs`(接口基类)、`DepartmentController`(部门)、`ImgController`(图片)、`LoginController`(登录)、`ModuleController`(接口)、`PermissionController`(菜单)、`RoleController`(角色)、`TasksQzController`(任务调度)、`UserController`(用户)、`UserRoleController`(用户角色关系)
其他代码部分是扩展业务,如果自己业务涉及不到,可以删除。
2019-09-03 18:59:24 +08:00
2022-11-23 22:25:17 +08:00
### 自定义全部日志记录图
![系统架构图](https://img.neters.club/github/log5.png)
2022-03-14 16:05:54 +08:00
### 自定义(中间件/服务)启动图
![系统架构图](https://img.neters.club/github/load-tool.png)
2020-01-08 12:10:20 +08:00
&nbsp;
2021-06-08 11:08:44 +08:00
## 贡献者们
2020-01-08 12:10:20 +08:00
2022-03-10 14:52:17 +08:00
Thanks goes to these wonderful people ([✨](https://github.com/anjoy8/Blog.Core/graphs/contributors)):(排名暂时按提交顺序)
<a href="https://github.com/anjoy8/blog.core/graphs/contributors">
<img src="https://contrib.rocks/image?repo=anjoy8/blog.core" />
</a>
2021-06-08 11:08:44 +08:00
<!-- prettier-ignore-end -->
This project follows the [all-contributors](https://github.com/anjoy8/Blog.Core/graphs/contributors) specification.
Contributions of any kind are welcome!
2020-01-08 12:10:20 +08:00
&nbsp;
## 官方文档 📕
还在陆续整理中,不过基本操作都在,包括如何新手入门配置数据连接DB等等
2020-09-10 11:19:25 +08:00
[官方文档](http://apk.neters.club/.doc/)
[公众号重要文章+视频地址](https://mvp.neters.club/)
2020-01-08 12:10:20 +08:00
2019-09-03 18:59:24 +08:00
&nbsp;
2019-12-24 15:40:01 +08:00
2019-09-03 18:59:24 +08:00
### 系统架构图
2020-12-28 14:31:58 +08:00
![系统架构图](https://img.neters.club/github/20201228135550.png)
2019-09-03 18:59:24 +08:00
&nbsp;
2019-09-27 14:42:52 +08:00
&nbsp;
### 系统压测结果报告
2020-05-25 21:49:27 +08:00
<div align=center><img width="500" src="http://apk.neters.club/JMeterTest.png" /></div>
2019-03-28 14:55:01 +08:00
2020-12-28 14:25:28 +08:00
本项目是 .netCore 后端部分前端部分请看我的另三个Vue工程项目
2019-01-23 12:29:44 +08:00
2019-01-23 12:32:28 +08:00
&nbsp;
&nbsp;
&nbsp;
2019-01-23 12:35:20 +08:00
&nbsp;
2019-01-17 10:35:19 +08:00
2020-01-08 12:10:20 +08:00
|个人博客Vue版本|tBug项目Nuxt版本|VueAdmin权限管理后台|
2019-02-15 10:10:37 +08:00
|-|-|-|
|[https://github.com/anjoy8/Blog.Vue](https://github.com/anjoy8/Blog.Vue)|[https://github.com/anjoy8/Nuxt.tBug](https://github.com/anjoy8/Nuxt.tBug)|[https://github.com/anjoy8/Blog.Admin](https://github.com/anjoy8/Blog.Admin)|
2019-11-25 14:58:03 +08:00
|[http://vueblog.neters.club](http://vueblog.neters.club)|[http://tibug.neters.club](http://tibug.neters.club)|[http://vueadmin.neters.club](http://vueadmin.neters.club)|
2019-01-17 10:35:19 +08:00
2019-01-19 18:39:27 +08:00
2018-10-10 11:17:35 +08:00
2019-01-23 12:35:20 +08:00
&nbsp;
2019-04-30 16:11:29 +08:00
2020-12-28 14:25:28 +08:00
### 初始化项目
2019-07-22 16:44:36 +08:00
2020-12-28 14:25:28 +08:00
下载项目后,编译如果没问题,直接运行即可,会自动生成种子数据,数据库是`Sqlite`,接口文档是`swagger`。
2019-07-22 16:44:36 +08:00
2020-12-28 14:25:28 +08:00
更多操作点击这里http://apk.neters.club/.doc/guide/getting-started.html
2019-04-30 16:11:29 +08:00
2019-01-23 12:35:20 +08:00
&nbsp;
2019-01-09 11:03:10 +08:00
2019-01-02 14:58:42 +08:00
## Nuget Packages
| Package | NuGet Stable | Downloads |
| ------- | -------- | ------- |
| [Blog.Core.Webapi.Template](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) | [![Blog.Core.Webapi.Template](https://img.shields.io/nuget/v/Blog.Core.Webapi.Template.svg)](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) | [![Blog.Core.Webapi.Template](https://img.shields.io/nuget/dt/Blog.Core.Webapi.Template.svg)](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) |
2018-10-29 16:17:00 +08:00
2019-01-23 12:37:18 +08:00
关于如何使用点击这里https://www.cnblogs.com/laozhang-is-phi/p/10205495.html
2019-03-28 23:33:41 +08:00
&nbsp;
&nbsp;
## 其他后端框架
目前一共开源四个框架项目,感兴趣的可以看看
|单层项目|简单仓储框架|仓储+服务+接口|DDD框架|
|-|-|-|-|
|CURD+Seed|CURD+Seed+DI|CURD+Seed+DI+AOP等|DDD+EFCore+DI+EventBus等|
|[NetCore-Sugar-Demo](https://github.com/anjoy8/NetCore-Sugar-Demo)|[Blog.SplRepository.Demo](https://github.com/anjoy8/Blog.SplRepository.Demo)|[Blog.Core](https://github.com/anjoy8/Blog.Core)|[ChristDDD](https://github.com/anjoy8/ChristDDD)|
2019-04-30 10:33:11 +08:00
| -|[Blog-EFCore-Sqlite](https://github.com/anjoy8/Blog-EFCore-Sqlite)|- | -|
2019-03-28 23:33:41 +08:00
2019-01-23 12:35:20 +08:00
&nbsp;
2018-11-22 13:11:45 +08:00
2019-03-14 19:17:35 +08:00
2020-01-08 12:10:20 +08:00
&nbsp;
2019-03-14 19:17:35 +08:00
2020-01-08 12:10:20 +08:00
## 售后服务与支持
2019-11-25 14:58:03 +08:00
2023-03-07 21:21:01 +08:00
鼓励作者,简单打赏~~
2023-11-28 09:15:24 +08:00
如果你喜欢,就给作者加个鸡腿吧
2018-12-27 18:03:52 +08:00
2020-01-08 12:10:20 +08:00
2020-01-09 12:03:39 +08:00
<img src="http://apk.neters.club/laozhangisphigood.jpg" alt="赞赏码" width="300" >
2020-12-16 22:02:40 +08:00
[图片若加载不出来,点这里](http://apk.neters.club/laozhangisphigood.jpg)
2019-03-23 12:43:09 +08:00
2019-11-25 14:58:03 +08:00
2018-12-27 18:03:52 +08:00
2020-01-08 12:10:20 +08:00
*****************************************************
### 文章+视频+直播
2019-03-22 22:55:48 +08:00
2020-01-08 12:10:20 +08:00
博客园https://www.cnblogs.com/laozhang-is-phi/
2019-03-22 22:55:48 +08:00
2020-01-08 12:10:20 +08:00
Bilibilihttps://space.bilibili.com/387802716
直播间https://live.bilibili.com/21507364
2019-11-25 14:58:03 +08:00
2018-12-27 18:20:29 +08:00
```
```
2018-12-27 18:03:52 +08:00
2020-01-08 12:10:20 +08:00
&nbsp;
2018-08-21 16:20:28 +08:00
2020-01-08 12:10:20 +08:00
如果你感觉看着这整个项目比较费劲我单抽出来了几个子Demo方便学习项目地址 [https://github.com/anjoy8/BlogArti](https://github.com/anjoy8/BlogArti)
2018-08-22 16:39:03 +08:00
2019-01-09 11:03:10 +08:00
2018-08-22 16:39:03 +08:00