NewGaoKaoApi/README.md

391 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Dev Build::
[![Front](https://img.shields.io/badge/Front-VUE-d.svg)](#) [![sdk](https://img.shields.io/badge/sdk-3.1-d.svg)](#) [![Build status](https://github.com/anjoy8/new_college/workflows/.NET%20Core/badge.svg)](https://github.com/anjoy8/New_College/actions) [![codecov](https://codecov.io/gh/anjoy8/New_College/branch/master/graph/badge.svg)](https://codecov.io/gh/anjoy8/New_College) [![License MIT](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](https://github.com/anjoy8/New_College/blob/master/LICENSE) [![Language](https://img.shields.io/badge/language-csharp-d.svg)](#)
[![star this repo](http://githubbadges.com/star.svg?user=anjoy8&repo=new_college&style=flat)](https://github.com/boennemann/badges)
[![fork this repo](http://githubbadges.com/fork.svg?user=anjoy8&repo=new_college&style=flat)](https://github.com/boennemann/badges/fork)
[![博客园](https://img.shields.io/badge/博客园-老张的哲学-brightgreen.svg)](https://www.cnblogs.com/laozhang-is-phi/)
 
 
![Logo](http://apk.neters.club/logocore.png)
![MVP](http://apk.neters.club/MVP_Logo_Horizontal_Preferred_Cyan300_CMYK_72ppi.png)
BCVPNew_College&Vue Project开箱即用的企业级前后端分离【 .NET Core3.1 Api + Vue 2.x + RBAC】权限框架。
 
### 功能与进度
框架模块:
- [x] 采用`仓储+服务+接口`的形式封装框架;
- [x] 异步 async/await 开发;
- [x] 接入 SqlSugar 提供ORM封装数据库操作
- [x] 支持自由切换多种数据库Sqlite/SqlServer/MySql/PostgreSQL/Oracle
- [x] 实现项目启动,自动生成种子数据 ✨;
- [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等
- [x] 支持项目事务处理若要分布式用cap即可
- [x] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨;
- [x] 支持 T4 代码模板,自动生成每层代码;
- [x] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库);
- [x] 封装`New_College.Webapi.Template`项目模板,一键重建自己的项目 ✨;
- [x] 搭配多个前端案例供参考和借鉴Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ✨;
- [x] 统一集成 IdentityServer4 认证 ✨;
组件模块:
- [x] 提供 Redis 做缓存处理;
- [x] 使用 Swagger 做api文档
- [x] 使用 MiniProfiler 做接口性能分析 ✨;
- [x] 使用 Automapper 处理对象映射;
- [x] 使用 AutoFac 做依赖注入容器,并提供批量服务注入 ✨;
- [x] 支持 CORS 跨域;
- [x] 封装 JWT 自定义策略授权;
- [x] 使用 Log4Net 日志框架,集成原生 ILogger 接口做日志记录;
- [x] 使用 SingleR 双工通讯 ✨;
- [x] 添加 IpRateLimiting 做 API 限流处理;
- [x] 使用 Quartz.net 做任务调度;
- [x] 支持 数据库`读写分离`和多库操作 ✨;
- [ ] 计划 - 设计支付宝/微信支付;
- [ ] 计划 - Redis/RBMQ 消息队列;
- [ ] 计划 - 数据部门权限;
- [ ] 计划 - ES 搜索;
微服务模块:
- [x] 可配合 Consul 实现服务发现;
- [x] 可配合 Ocelot 实现网关处理;
- [x] 可配合 Nginx 实现负载均衡;
- [x] 可配合 Ids4 实现认证中心;
 
## 给个星星! ⭐️
如果你喜欢这个项目或者它帮助你, 请给 Star~(辛苦星咯)
 
## 官方文档 📕
还在陆续整理中,不过基本操作都在,包括如何新手入门配置数据连接DB等等
[官方文档](http://apk.neters.club/.doc/)
 
### 系统架构图
![系统架构图](http://apk.neters.club/New_College.System.Architecture.png)
 
 
### 系统压测结果报告
 
其他接口压测内存占用在220~350 m 之间,具体的,自行压测即可。
 
<div align=center><img width="500" src="http://apk.neters.club/JMeterTest.png" /></div>
这只是 .netCore 后端部分前端部分请看我的另三个Vue工程项目
&nbsp;
&nbsp;
&nbsp;
&nbsp;
|个人博客Vue版本|tBug项目Nuxt版本|VueAdmin权限管理后台|
|-|-|-|
|[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)|
|[http://vueblog.neters.club](http://vueblog.neters.club)|[http://tibug.neters.club](http://tibug.neters.club)|[http://vueadmin.neters.club](http://vueadmin.neters.club)|
&nbsp;
### 初始项目
#### 不要再使用 .sql 文件了,用下边动图的方法,直接 seed data.
数据查看:[New_College.Data.json](https://github.com/anjoy8/Blog.Data.Share/tree/master/BlogCore.Data.json)
文章讲解:[支持多种数据库 & 快速数据库生成](https://www.cnblogs.com/laozhang-is-phi/p/10718755.html)
&nbsp;
![操作流程](http://apk.neters.club/operateFlow.gif)
&nbsp;
## Nuget Packages
| Package | NuGet Stable | Downloads |
| ------- | -------- | ------- |
| [New_College.Webapi.Template](https://www.nuget.org/packages/New_College.Webapi.Template/) | [![New_College.Webapi.Template](https://img.shields.io/nuget/v/New_College.Webapi.Template.svg)](https://www.nuget.org/packages/New_College.Webapi.Template/) | [![New_College.Webapi.Template](https://img.shields.io/nuget/dt/New_College.Webapi.Template.svg)](https://www.nuget.org/packages/New_College.Webapi.Template/) |
关于如何使用点击这里https://www.cnblogs.com/laozhang-is-phi/p/10205495.html
&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)|[New_College](https://github.com/anjoy8/New_College)|[ChristDDD](https://github.com/anjoy8/ChristDDD)|
| -|[Blog-EFCore-Sqlite](https://github.com/anjoy8/Blog-EFCore-Sqlite)|- | -|
&nbsp;
&nbsp;
## 售后服务与支持
打赏支持入微信群随时随地解答我框架中NetCore、Vue、DDD、IdentityServer4等的疑难杂症。
打赏的时候备注自己的微信号我拉你进群两天内没回应QQ私聊我3143422472
[赞赏列表](http://apk.neters.club/.doc/Contribution/)
<img src="http://apk.neters.club/laozhangisphigood.jpg" alt="赞赏码" width="300" >
*****************************************************
### 文章+视频+直播
博客园https://www.cnblogs.com/laozhang-is-phi/
Bilibilihttps://space.bilibili.com/387802716
直播间https://live.bilibili.com/21507364
```
```
&nbsp;
如果你感觉看着这整个项目比较费劲我单抽出来了几个子Demo方便学习项目地址 [https://github.com/anjoy8/BlogArti](https://github.com/anjoy8/BlogArti)
<div class="allindex">
<h2 id="abp框架学习目录如下">.NetCore与Vue 框架学习目录如下</h2>
<ul>
<li>
<h3 id="autoid-2-1-0">后端 .net core 概览</h3>
<ul>
<li><a id="post_title_link_9495620" href="https://www.cnblogs.com/laozhang-is-phi/p/9495620.html">框架之二 || 后端项目搭建<br></a></li>
<li><a id="post_title_link_9495624" href="https://www.cnblogs.com/laozhang-is-phi/p/9495624.html">Swagger的使用 3.1</a></li>
<li><a id="post_title_link_9507387" href="https://www.cnblogs.com/laozhang-is-phi/p/9507387.html">Swagger的使用 3.2</a></li>
<li><a id="post_title_link_9511869" href="https://www.cnblogs.com/laozhang-is-phi/p/9511869.html">Swagger的使用 3.3 JWT权限验证【修改】</a></li>
<li><a id="post_title_link_9896431" href="https://www.cnblogs.com/laozhang-is-phi/p/9896431.html">36 ║解决JWT权限验证过期问题</a></li>
<li><a id="post_title_link_9516890" href="https://www.cnblogs.com/laozhang-is-phi/p/9516890.html">API项目整体搭建 6.1 仓储模式</a></li>
<li><a id="post_title_link_9523148" href="https://www.cnblogs.com/laozhang-is-phi/p/9523148.html">API项目整体搭建 6.2 轻量级ORM</a></li>
<li><a id="post_title_link_9529480" href="https://www.cnblogs.com/laozhang-is-phi/p/9529480.html">API项目整体搭建 6.3 异步泛型仓储+依赖注入初探</a></li>
<li><a id="post_title_link_9541414" href="https://www.cnblogs.com/laozhang-is-phi/p/9541414.html">依赖注入IoC学习 + AOP切面编程初探</a></li>
<li><a id="post_title_link_9547574" href="https://www.cnblogs.com/laozhang-is-phi/p/9547574.html">AOP面向切面编程浅解析简单日志记录 + 服务切面缓存</a></li>
<li><a id="post_title_link_9554210" href="https://www.cnblogs.com/laozhang-is-phi/p/9554210.html">AOP自定义筛选Redis入门 11.1</a></li>
<li><a id="post_title_link_9560949" href="https://www.cnblogs.com/laozhang-is-phi/p/9560949.html">三种跨域方式比较DTOs(数据传输对象)初探</a></li>
<li><a id="post_title_link_9565227" href="https://www.cnblogs.com/laozhang-is-phi/p/9565227.html">DTOs 对象映射使用项目部署Windows+Linux完整版</a></li>
<li><a id="post_title_link_9757999" href="https://www.cnblogs.com/laozhang-is-phi/p/9757999.html">三十二║ 四种方法快速实现项目的半自动化搭建</a></li>
<li><a id="post_title_link_9767400" href="https://www.cnblogs.com/laozhang-is-phi/p/9767400.html">三十三║ ⅖ 种方法实现完美跨域</a></li>
<li><a id="post_title_link_9795689" href="https://www.cnblogs.com/laozhang-is-phi/p/9795689.html">三十四║ Swagger 处理多版本控制,所带来的思考</a></li>
<li><a id="post_title_link_9855836" href="https://www.cnblogs.com/laozhang-is-phi/p/9855836.html">三十五║ 完美实现全局异常日志记录</a></li>
<li><a id="post_title_link_10139204" href="https://www.cnblogs.com/laozhang-is-phi/p/10139204.html">37 ║JWT完美实现权限与接口的动态分配</a></li>
<li><a id="link_post_title" class="link-post-title" href="https://www.cnblogs.com/laozhang-is-phi/p/10173536.html">38 ║自动初始化数据库</a></li>
<li><a id="post_title_link_10205495" href="https://www.cnblogs.com/laozhang-is-phi/p/10205495.html">39 || 想创建自己的dotnet模板么看这里</a></li>
<li><a id="post_title_link_10287023" href="https://www.cnblogs.com/laozhang-is-phi/p/10287023.html">40 || 完美基于AOP的接口性能分析</a></li>
<li><a id="post_title_link_10322040" href="https://www.cnblogs.com/laozhang-is-phi/p/10322040.html">41 || Nginx+Github+PM2 快速部署项目(一)</a></li>
<li><a href="https://www.cnblogs.com/laozhang-is-phi/p/10462316.html">42&nbsp;</a><a id="post_title_link_9767400" href="https://www.cnblogs.com/laozhang-is-phi/p/9767400.html"></a><a id="post_title_link_10462316" href="https://www.cnblogs.com/laozhang-is-phi/p/10462316.html"> 完美实现 JWT 滑动授权刷新</a></li>
<li><a id="post_title_link_10718755" href="https://www.cnblogs.com/laozhang-is-phi/p/10718755.html">43 ║ 支持多种数据库 &amp; 快速数据库生成</a></li>
<li><a id="post_title_link_10836887" href="https://www.cnblogs.com/laozhang-is-phi/p/beautifulPublish-mostBugs.html">43 ║最全的部署方案 &amp; 最丰富的错误分析【再会】</a></li>
<li><a id="post_title_link_11605436" href="https://www.cnblogs.com/laozhang-is-phi/p/11605436.html">45 ║ 终于解决了事务问题</a></li>
<li><a class="entry" href="https://www.cnblogs.com/laozhang-is-phi/p/11833800.html" target="_blank">46 ║ 授权认证:自定义返回格式</a> </li>
</ul>
</li>
<li>
<h3 id="autoid-2-2-0">前端 Vue 概览</h3>
<ul>
<li><a id="post_title_link_9577805" href="https://www.cnblogs.com/laozhang-is-phi/p/9577805.html">十四 ║ VUE 计划书 &amp; 我的前后端开发简史</a></li>
<li><a id="post_title_link_9580807" href="https://www.cnblogs.com/laozhang-is-phi/p/9580807.html">十五 ║Vue基础JS面向对象&amp;字面量&amp; this字</a></li>
<li><a id="post_title_link_9585766" href="https://www.cnblogs.com/laozhang-is-phi/p/9585766.html">十六 ║Vue基础ES6初体验 &amp; 模块化编程</a></li>
<li><a id="post_title_link_9593740" href="https://www.cnblogs.com/laozhang-is-phi/p/9593740.html">十七 ║Vue基础使用Vue.js 来画博客首页+指令(一)</a></li>
<li><a id="post_title_link_9602077" href="https://www.cnblogs.com/laozhang-is-phi/p/9602077.html">十八║Vue基础: 指令(下)+计算属性+watch</a></li>
<li><a id="post_title_link_9611632" href="https://www.cnblogs.com/laozhang-is-phi/p/9611632.html">十九║Vue基础: 样式动态绑定+生命周期</a></li>
<li><a id="post_title_link_9622031" href="https://www.cnblogs.com/laozhang-is-phi/p/9622031.html">二十║Vue基础终篇组件详解+项目说明<br><br></a></li>
<li>👆 上边的这些基础,可以不用看,如果你只想快速入门 Vue 的话<br><br></li>
<li><a id="post_title_link_9629026" href="https://www.cnblogs.com/laozhang-is-phi/p/9629026.html">二十一║Vue实战开发环境搭建【详细版】</a></li>
<li><a id="post_title_link_9640974" href="https://www.cnblogs.com/laozhang-is-phi/p/9640974.html">二十二║Vue实战个人博客第一版(axios+router)</a></li>
<li><a id="post_title_link_9647008" href="https://www.cnblogs.com/laozhang-is-phi/p/9647008.html">二十三║Vue实战Vuex 其实很简单</a></li>
<li><a id="post_title_link_9658019" href="https://www.cnblogs.com/laozhang-is-phi/p/9658019.html">二十四║ Vuex + JWT 实现授权验证登陆</a></li>
<li><a id="post_title_link_9670342" href="https://www.cnblogs.com/laozhang-is-phi/p/9670342.html">二十五║初探SSR服务端渲染个人博客二</a></li>
<li><a id="post_title_link_9675822" href="https://www.cnblogs.com/laozhang-is-phi/p/9675822.html">二十六║Client渲染、Server渲染知多少{补充}</a></li>
<li><a id="post_title_link_9682289" href="https://www.cnblogs.com/laozhang-is-phi/p/9682289.html">二七║ Nuxt 基础:框架初探</a></li>
<li><a id="post_title_link_9687504" href="https://www.cnblogs.com/laozhang-is-phi/p/9687504.html">二八║ Nuxt 基础面向源码研究Nuxt.js</a></li>
<li><a id="post_title_link_9697450" href="https://www.cnblogs.com/laozhang-is-phi/p/9697450.html">二九║ Nuxt实战异步实现数据双端渲染</a></li>
<li><a id="post_title_link_9702677" href="https://www.cnblogs.com/laozhang-is-phi/p/9702677.html">三十║ Nuxt实战动态路由+同构</a></li>
<li><a id="post_title_link_9713219" href="https://www.cnblogs.com/laozhang-is-phi/p/9713219.html">三十一║ Nuxt终篇基于Vuex的权限验证探究</a></li>
<li></li>
</ul>
</li>
</ul>
</div>
**************************************************************
系统环境
windows 10、SQL Server 08+、Visual Studio 2019、Windows Server 2008 R2
后端技术:
* .Net Core 3.1 API因为想单纯搭建前后端分离因此就选用的API如果想了解.Net Core MVC也可以交流
* Swagger 前后端文档说明基于RESTful风格编写接口
* Repository + Service 仓储模式编程
* Async和Await 异步编程
* Cors 简单的跨域解决方案
* AOP基于切面编程技术
* Autofac 轻量级IoC和DI依赖注入
* Vue 本地代理跨域方案Nginx跨域代理
* JWT权限验证
数据库技术
* SqlSugar 轻量级ORM框架CodeFirst
* T4 模板生成
* AutoMapper 自动对象映射
分布式缓存技术
* Redis 轻量级分布式缓存
前端技术
* Vue 2.0 框架全家桶 Vue2 + VueRouter2 + Webpack + Axios + vue-cli + vuex
* ElementUI 基于Vue 2.0的组件库
* Nuxt.js服务端渲染SSR