十年开源感想,Furion v4.1.11 发布

坑坑坑坑

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

猜你喜欢

转载自www.oschina.net/news/205368/furion-4-1-11-released