框架篇【持续更新】
一. 框架说明
1. 框架定位
该框架定位于后台系统和Api接口对接,适用于中小型项目的快速开发,针对不同场景说明:
(1). 如果你只想简单的做个后台管理,那么该框架适合你。
(2). 如果你想做CRM、OA、电商后台等,那么该框架适合你。
(3). 如果你想学习一下.NetCore相关,那么该框架适合你。
(4). 如果你是新手,想学习一下简单架构的搭建,那么该系列博客适合你。
(5). 如果你想整微服务,那么你需要自行加工一下,可参考之前微服务系列:https://www.cnblogs.com/yaopengfei/p/12885217.html
(6). 如果你要考虑高并发高可以,可参考之前的高并发系列:https://www.cnblogs.com/yaopengfei/p/13749772.html
(7). 如果你是喷子,请右上角X号,谢谢,不送。
2. 框架功能
该框架集成了以下功能,可供你直接使用。下面是最新版本的功能介绍:【未编写】
(1). 登录机制
(2). 用户管理:用户的增删改查、配置角色信息。
(3). 角色管理:角色的增删改查、配置权限信息。
(4). 各种日志:登录日志、操作日志、错误日志。
旧版本1-基于EasyUI的前端,外加样式的重写 (现在已经不使用,也不再维护了)
旧版本2-基于LayUI的前端 (现在已经不使用,也不再维护了)
新版本1-基于Vue3+Element Plus+Vite+Vuex (正在使用,不断完善)
3. 我的计划
该系列延误了很久,今天终于正式推出,并计划长期维护,不断升级,目前分了以下几个阶段(会随时调整):
第一阶段:基础架构的搭建(计划展示多种搭建方式),各种组件的集成。 【已完成】
第二阶段:业务设计编写+EasyUI 前后端分离搭建 【已完成】
第三阶段:升级前端ES写法+UI大换血【已完成】
第四阶段:框架组件积累 【持续进行中....】
第五阶段:后端框架升级为.Net 6.0版本 【已完成】
第六阶段:全新前端: Vue3+Element Plus+Vite+Vuex+VueRouter 【已完成】
第七阶段:后端框架升级为Core7.x版本 【已完成】
第八阶段:前端技术栈升级 (原有组件升级+pinia改造) 【已完成】
第九阶段:后端框架升级为Core8.x版本 【已完成】
二. 用到的技术栈
1. 技术栈迭代升级
(1). 版本1:【20201209】
运行环境:.Net Core 3.1 (3.1.8) 开发工具:VS2019 + SQLServer2014 (或 MySQL 5.7) web开发框架:Asp.net Core 3.1 (3.1.8) 数据库框架:EF Core 3.1 (3.1.8)、 EFCore.BulkExtensions 3.1.0、Pomelo.EntityFrameworkCore.MySql 3.2.4、 Z.EntityFramework.Plus.EFCore 3.1.2 前端框架: (1). 原生JS的准备了两套前端:LayUI 2.5.6 和 EasyUI 1.5 (2). Vue全家桶:Vue+Vuex+ElementUI IOC框架:AutoFac 6.0.0 和 Autofac.Extensions.DependencyInjection 7.0.2 Excel组件:EPPlus 5.3.0 日志组件:Serilog 2.1.0 Serilog.Sinks.File 4.1.0 Serilog.Sinks.Async 1.4.0 Log4net 2.0.9 授权校验:JWT 7.2.1 Redis组件:CSRedisCore 3.6.5 Caching.CSRedis 3.6.5 (备用 StackExchange.Redis 2.4.4)
(2). 框架整体升级后版本:【20210312】
运行环境:.Net Core 5.x (5.0.4) 开发工具:VS2019 + SQLServer2014(或MySQL 5.7) web开发框架:Asp.net Core 5.x (5.0.4) 数据库框架:EF Core 5.x (3.1.8)、 EFCore.BulkExtensions 3.3.5、 Pomelo.EntityFrameworkCore.MySql 5.0.0-alpha.2、 Z.EntityFramework.Plus.EFCore 5.1.23 Zack.EFCore.Batch.MSSQL 1.2.4 Zack.EFCore.Batch.MySQL.Pomelo 1.2.4 前端框架:LayUI 2.5.6 IOC框架:AutoFac 6.1.0 和 Autofac.Extensions.DependencyInjection 7.1.0 Excel组件:EPPlus 5.5.5 日志组件:Serilog 2.10.0 Serilog.Sinks.File 4.1.0 Serilog.Sinks.Async 1.4.0 (备用:Log4net 2.0.9) 授权校验:JWT 8.1.3 Redis组件:CSRedisCore 3.6.6 Caching.CSRedis 3.6.6 (备用 StackExchange.Redis 2.4.4)
(3). 常规组件升级:【20210605】
运行环境:.Net Core 5.x (5.0.6) 开发工具:VS2019 + SQLServer2014(或MySQL 5.7) web开发框架:Asp.net Core 5.x (5.0.6) 数据库框架:EF Core 5.x (5.0.6)、 EFCore.BulkExtensions 5.2.2、 Pomelo.EntityFrameworkCore.MySql 5.0.0、 Z.EntityFramework.Plus.EFCore 5.1.39 Zack.EFCore.Batch.MSSQL 1.3.0 、 Zack.EFCore.Batch.MySQL.Pomelo 1.3.0 前端框架:LayUI 2.5.6 IOC框架:AutoFac 6.3.0 和 Autofac.Extensions.DependencyInjection 7.1.0 Excel组件:EPPlus 5.6.4 日志组件:Serilog 2.10.0 Serilog.Sinks.File 4.1.0 Serilog.Sinks.Async 1.4.0 (备用:Log4net 2.0.9) 授权校验:JWT 8.2.2 Redis组件:CSRedisCore 3.6.6 Caching.CSRedis 3.6.6 (备用 StackExchange.Redis 2.4.4)
(4). 常规组件升级【20210913】
运行环境:.Net Core 5.x (5.0.9) 开发工具:VS2019 + SQLServer2014(或MySQL 5.7) web开发框架:Asp.net Core 5.x (5.0.9) 数据库框架:EF Core 5.x (5.0.9)、 EFCore.BulkExtensions 5.4.0 Pomelo.EntityFrameworkCore.MySql 5.0.1、 Z.EntityFramework.Plus.EFCore 5.2.10 Zack.EFCore.Batch.MSSQL 1.4.9 、 Zack.EFCore.Batch.MySQL.Pomelo 1.4.9 前端框架:LayUI 2.5.6 IOC框架:AutoFac 6.3.0 和 Autofac.Extensions.DependencyInjection 7.1.0 Excel组件:EPPlus 5.7.4 日志组件:Serilog 2.10.0 Serilog.Sinks.File 5.0.0 Serilog.Sinks.Async 1.5.0 (备用:Log4net 2.0.9) 授权校验:JWT 8.4.0 Redis组件:CSRedisCore 3.6.6 Caching.CSRedis 3.6.6 (备用 StackExchange.Redis 2.5.0)
(5). 大更新版本 【20220909】
运行环境:.Net Core 6.0
开发工具:VS2022 + SQLServer2014及以上 (或 MySQL 5.7及以上)
web开发框架:Asp.net Core 6.x
数据库框架:EF Core 6.0、 EFCore.BulkExtensions 6.5.5、Zack.EFCore.Batch.MSSQL_NET6 6.1.2
前端框架:Vue3+ElementPlus+Vite+VueRouter+Vuex
IOC框架:AutoFac 6.4.0 和 Autofac.Extensions.DependencyInjection 8.0.0
Excel组件:NPOI 2.5.6
日志组件:Serilog 2.11.0 Serilog.Sinks.File 5.0.0 Serilog.Sinks.Async 1.5.0
授权校验:JWT 7.3.1
Redis组件:CSRedisCore 3.8.668 Caching.CSRedis 3.8.668
(6). 大更新版本 【20230615】
运行环境:.Net Core 7.x
开发工具:VS2022 + SQLServer2014及以上 (或 MySQL 5.7及以上)
web开发框架:Asp.net Core 7.x
数据库框架:EF Core 7.x、Zack.EFCore.Batch.MSSQL_NET7 7.1.4
前端框架:Vue3+ElementPlus+Vite+VueRouter+Pinia
IOC框架:AutoFac 7.0.1 和 Autofac.Extensions.DependencyInjection 8.0.0
Excel组件:NPOI 2.6.0
日志组件:Serilog 2.12.0 Serilog.Sinks.File 5.0.0 Serilog.Sinks.Async 1.5.0
授权校验:JWT 7.3.1
Redis组件:CSRedisCore 3.8.670 Caching.CSRedis 3.8.670
(6). 大更新版本 【20230615】
运行环境:.Net Core 8.x
开发工具:VS2022 + SQLServer2014及以上 (或 MySQL 5.7及以上)
web开发框架:Asp.net Core 8.x
数据库框架:EF Core 8.x、Zack.EFCore.Batch.MSSQL_NET8 8.1.8
前端框架:Vue3+ElementPlus+Vite+VueRouter+Pinia
IOC框架:AutoFac 8.0.0 和 Autofac.Extensions.DependencyInjection 9.0.0
Excel组件:NPOI 2.7.0
日志组件:Serilog 3.1.1 Serilog.Sinks.File 5.0.0 Serilog.Sinks.Async 1.5.0
授权校验:JWT 7.3.1
Redis组件:CSRedisCore 3.8.802 Caching.CSRedis 3.8.800
三. 系列目录
阶段一:基础架构的搭建 【完结】
第一节:框架基础架构构建(CoreMvc+EFCore+AutoFac)
第二节:必备中间件集成1(Cookie、Session、HttpClient、静态资源、路由配置、跨域等)
第三节:必备中间件集成2(缓存、认证授权、自定义黑名单、日志等)
第四节:DB支持MySQL及BaseService常规封装、大数据处理封装
第五节:集成全局返回值处理、详解Ypf.Utils帮助类层、核心功能测试
第六节:基于LayUI组件的文件上传 和 基于dropzonejs的文件上传
阶段二:业务设计编写+EasyUI 搭建 【完结】
第二节:前端规范封装设计和基于EasyUI前端基础菜单框架的搭建(Layout、Tab、Tree)
第三节:剖析核心组件datagrid、dialog 和 form表单、ValidateBox格式校验用法
第四节:剖析其它组件ComboBox、DateTimeBox、Messager用法
第五节:常用插件汇总(中英转换、省市区、LayUI的日期控件改造)
第七节:前端写法全面升级和重新构建封装(结合ES6-ES11语法)
第八节:前端UI大换血(动态登录页、三套皮肤、菜单伸缩、弹框页面、基础布局页面等等)
阶段三:前置积累--组件使用、搭建思想
第一节:MediatR简介、快速上手、基于MediatR实现领域事件
第二节:老杨集成事件框架Zack.EventBus的使用和基于源码的剖析、改造、升级
第三节:DDD基础(相关概念、新映射、随机数、实体属性、充血模型写法、值对象及比较、聚合、FluentApi配置)
第四节:DDD用户登录案例(需求分析与设计、项目快速搭建实操)
第八节:认证微服务功能介绍和代码剖析+Identity框架的使用介绍
第九节:手写服务注册框架、EF多上下文注册框架、AnyDBConfigProvider的使用与源码剖析
阶段四:Api框架全新升级
第一节:框架全新升级(快速搭建、必备中间件集成、大数据处理)
第二节:必备中间件集成(缓存策略、Redis服务)、JWT校验整合、 YpfCore.Utils层详解
第三节:常用解决方案剖析(Excel导出、工作单元、领域事件、JWT回收问题等)--未完
第四节:框架版本大升级(CoreMvc7.x + EFCore7.x)
第五节:框架版本打升级(CoreMvc8.x + EFCore8.x)
阶段五:基于Vue全家桶的全新前端框架
第一节:项目结构介绍、图标的使用、axios封装思路、jwt校验、Vuex的应用
第二节:深度剖析菜单权限、按钮权限、keepAlive缓存的设计
第三节:剖析自定义显示列/显示顺序、Excel文件流形式的导出方案
第四节:剖析表格组件的封装思路(表格配置、分页条、页面传值、高度自适应、单选、多选等)
!
- 作 者 : Yaopengfei(姚鹏飞)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
- 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。