坑坑坑坑
Furion 在 2022年07月25日发布 v4.0.0 版本,支持所有历史版本升级到该版本,在此之前已花费了 22 天的时间去测试,去改进。
万万没想到的是,大量的旧项目在这期间都选择了升级,短短一周时间 Nuget 安装量暴增了 30万,但问题也随之而来,由于使用者项目用法千奇百怪,导致一些项目升级之后无法正常运行或出现了比较严重的 Bug。
所以,自那天开始,终日疲于处理各种升级兼容问题,修复了近 20 个 Bug,做了诸多改进,总算实现了真正的无缝升级。
开源感想
自 2012年注册了 Github 之后,每一年都推出一款开源项目,持续了 10 年,在此期间见证了中国开源乃至国际开源的发展历程,感触良多。
1. 开源是一把双刃刀,处理得当名利双收,处理不妥道德谴责,佛系开源不痛不痒。
2. 做开源最难的不是零到一的过程,而是持续维护的勇气。
3. 开源如同人的脸,好坏一面便知,缺点可能会受到嘲讽批评,优点也会收获赞扬尊重。别担心,他们正在塑造更好的你。
4. 在国内做开源是一件很考验人的耐力活,你会在短时间内因为使用者的各种问题导致情绪复杂多变,仿佛在甲亢甲减这种现代病的边缘徘徊。
5. 当你停止提交代码的次数越多,那么离放弃这个项目不远了。
还有很多很多感想,今天就略写几条~
本期更新
-
新特性
- [新增]
Furion.Xunit
拓展包,正式实现Xunit
单元测试完整支持Furion
063a034e - [新增]
services.AddMonitorLogging()
日志监视器服务,支持非常灵活的日志操作 81df742 - [新增]
Serve.Run(silence: true)
等一系列强大的静默启动功能 #I5JBSQ #I5J98T 7cced4 - [新增]
SpecificationDocumentBuilder.GetOpenApiGroups()
方法获取底层的规范化接口分组信息 4ff03c5 - [新增]
logger.ScopeContext()
配置日志上下文功能 #I5JC0D - [新增] 跨域配置
CorsAccessorSettings.SignalRSupport
配置选项,支持配置SignalR
跨域 #I5JREM - [新增] 事件总线
UseUtcTimestamp
选项配置,可选择使用DateTime.UtcNow
还是DateTime.Now
,默认是DateTime.Now
#I5JSEU - [新增] 规范化文档
[OperationId]
配置,解决自定义Swagger UI
不能正确显示路由问题 #I5K1IB - [新增] 远程请求
IHttpDispatchProxy
方式全局拦截支持多态(继承) #I5K8FS
- [新增]
-
突破性变化
- [新增]
Furion.Xunit
拓展包,正式实现Xunit
单元测试完整支持Furion
063a034e - [移除]
Furion.Extras.DatabaseAccessor.SqlSugar
拓展插件中的[SqlSugarUnitOfWork]
工作单元特性,将使用通用工作单元替换,查看最新实现文档 - [移除]
Inject.Create()
方法,再也不需要了,框架提供了无敌强大的Serve.Run()
静默启动方式 200848e - [调整]
Serve.Run
的ConfigureConfiguration
方法参数,由configuration => {}
改为(environment, configuration) => {}
83c97bb
- [新增]
-
问题修复
- [修复]
[LoggingMonitor]
异常消息日志级别为Information
错误问题 ab46cdf - [修复] 新版本日志组件频繁提示文件占用问题,将文件独占锁改为共享锁 #I5J3S6
- [修复] 配置数据库日志读写器为
EFCore
时控制台出现无限打印问题 #I5J474 - [修复]
[LoggingMonitor]
针对byte[]
类型参数输出过大问题 5380f35 - [修复] 友好异常和规范化结果丢失了原始
ErrorCode
问题 #I5IX2R - [修复] 新版本日志组件自定义数据库读写器注入
IRepository
仓储导致死循环问题 #I5IX2R - [修复]
Mvc
默认手动验证和Furion
全局验证冲突问题 2a06c39 - [修复]
Serve.Run()
模式不支持SuperSocket
第三方包问题,原生是支持的。186ca0a - [修复]
SignalR
跨域错误问题 #I5JREM - [修复]
[LoggingMonitor]
将Oops.Oh
和Oops.Bah
记录到了错误日志中,默认应该是Information
且提供可配置 #I5JZ1H - [修复] 自定义
Swagger UI
之后个别UI
要求必须配置operationId
,否则出现guid
序号 #I5K1IB - [修复] 主动抛出
NotFoundResult
和NotFoundObjectResult
无效问题 #I5KALZ - [修复]
[LoggingMonitor]
解析方法参数但前端未传入时出现错误问题 #I5KC5P - [修复]
[LoggingMonitor]
无法序列化IQueryable
返回值问题 #I5KJD1 - [修复]
[LoggingMonitor]
不能记录全局验证错误问题 b44087d - [修复]
[LoggingMonitor]
存在注册顺序差异问题 b44087d
- [修复]
还没有评论,来说两句吧...