Pomelo .Net Croe Web API V3
-后台任务服务 已分离
-日志中心服务 已分离
-文件上传服务 已分离
-Websocket服务 已分离
V3.0 :
1).Net Core 3.1 升级到 .Net6
2)ORM 更换为 SqlSugar
V2.4:
前后台 API 项目分离,方便更新前台 API 或者 后台 API 的时候,互不影响
V2.3 :
1)后台任务服务模块分离,如订单自动关闭,积分自动清零等业务(使用控制台服务,延迟通知基于 redis 数据失效事件回调功能)
2)优化客户端 IP 获取
3)新增客户端是否为移动端的判断,用于判断最终跳转页面
4)新增邮件发送功能
V2.2 :
日志服务:
1)日志服务模块分离,可将各个单独部署的服务(Web API,FileServer,Websocket等)统一通过 Redis list (Push)进行收集日志,统一交给 日志服务 Redis list (Pop)获取进行存储
2)日志类型有:Debug,Trace,Error 三种
3)新增 api 请求(Request)和 返回信息(Response)数据的记录(Trace类型)
4)支持在各个项目服务中手动去 Log 自定义日志(Debug类型)
5)全局异常错误日志自动记录(Error类型)
6)日志支持可视化统计和搜索操作 (LogDashboard)
V2.1 :
1.新增接口限流机制(AspNetCoreRateLimit)
2.文件上传服务分离(支持本地上传,阿里云上传,七牛云上传,亚马逊云上传,并含图片压缩,水印等处理功能)
V2.0 :
1. .Net Core 版本升级为 :3.1
2.升级项目的分层结构,业务逻辑分离,可先定义 Interface 接口,再通过 Service 去实现接口,并以依赖注入的方式去调用 Service 的方法
3.ORM:支持数据库读写分离(数据库集群),Update数据可指定数据库表的字段,并且支持执行原生 SQL
4.日志:新增普通日志(普通Error,Debug等的级别)写入到数据库(方便查询),致命错误(连数据库都无法写入时候)写为 txt 文件到项目本地
5.新增后台任务模块:Job – 基于BackgroundService
6.用户身份授权方式:新增Token授权方式
7.WebSocket 服务分离
———————————————————————————————————–
V1.0
1. .Net Core 版本:2.2
2.ORM:Entity Framework Core , Code First 模式(支持SQL Server,MySQL)
3.日志:Nlog(写入本地 txt 文件)
4.用户身份授权方式:Cookie Authorize(后台端)
5.集成功能
1)集成Redis(CSRedis,可直接通过 RedisHelper 使用)
2)跨域配置,错误全局统一处理及返回
3)API接口文档:Swagger ( 访问地址为 {host}/doc ),及规范接口数据结构的返回(含状态码)
4)业务常用模块
a.管理员用户及权限管理(含登陆注销)
b.文件上传(文件流,base64),支持本地上传,阿里云OSS上传,七牛云存储上传(FileController),第三方云存储需要自行配置 appsettings.json
c.微信小程序用户授权,微信支付等相关功能
d.WebSocket 服务(原生实现方式,多用于即时通讯/主动推送消息用)
5)常用帮助类和扩展方法
StringHelper 文本处理帮助类:对象序列化反序列化,雪花算法生成,随机数生成,List随机排序,List转Datatable等
RequestHelper Http请求帮助类:Post,Get的同步和异步请求
EncryptHelper 加密帮助类:MD5加密,MD5+Base64加密,Base64编码解码,AES加密解密,SHA1加密
DateTimeHelper 时间处理帮助类:获取时间戳 及 时间的各种格式化
ExcelHelper Excel导出帮助类:导出Excel用
RegexHelper 正则表达帮助类:一些数据格式的校验及文本处理,如移除Emoji表情,富文本移除 html 处理等
EnumHelper 枚举帮助类:获取枚举类型的描述方法
ImageHelper 图片处理帮助类:图片等比压缩
Extensions:Distinct扩展方法,支持根据对象的某个字段去重,语法为 Lambda
项目启动:
1.创建自己需要用的数据库,如 MySQL,然后在 appsettings.json 里面配置数据库连接字符串
2.初始化数据库,因为使用的是 Code First(数据库表和字段更新通过 Entity 实体类来实现) 的方式,所以现在 程序包管理器控制台 里面,设置迁移版本,执行下 Add-Migration init ,其中 init 的自定义的一个标识,后续若有新表,新字段添加,则 Add-Migration xxx,xxx不能重复
然后,执行 Update-Database ,将修改的字段或者表同步到数据库中
(新增表的时候,也就是新增一个新的 Entity 实体类,更新的时候,需要在 PomeloContext.cs 进行声明)