Furion v4.9.9.52 已经发布,让 .NET 开发更简单,更通用,更流行
此版本更新内容包括:
更新日志:https://furion.net/docs/category/upgrade/
-
新特性
- [新增]
HTTP 远程请求 Action<HttpRequestBuilder> 操作符,支持将 HttpRequestBuilder 隐式转换为 Action<HttpRequestBuilder> 4.9.9.52 ⏱️2026.08.01 2c3d42d
- [新增]
HTTP 远程请求 HttpRequestBuilder.Setup 和 HttpBuilder.Setup 静态属性 4.9.9.52 ⏱️2026.08.01 2c3d42d
- [新增]
HTTP 远程请求 ETag 缓存功能 4.9.9.48 ⏱️2026.07.31 53c6eb8
- [新增]
HTTP 远程请求配额策略功能 4.9.9.46 ⏱️2026.07.29 22c8edb
- [新增]
HTTP 远程请求支持 zstd 解压(.NET11) 4.9.9.46 ⏱️2026.07.29 22c8edb
- [新增]
HTTP 远程请求 ContentEquals、ContentMatches、ContentNotEmpty 和 HeaderNotExists 断言方法 4.9.9.46 ⏱️2026.07.29 95f0380
- [新增] 流变对象
ClayOptions.Lenient 静态属性 4.9.9.46 ⏱️2026.07.29 48944dd
- [新增] 流变对象支持
+ 运算符扩展自身 4.9.9.46 ⏱️2026.07.29 48944dd
- [新增]
HTTP 远程请求 SSE 和长轮询支持返回 IAsyncEnumerable<T> 4.9.9.43 ⏱️2026.07.26 5fd05a1
- [新增]
HTTP 远程请求 Furion 框架自动刷新 Token 功能 4.9.9.39 ⏱️2026.07.21 6611c06
- [新增]
HTTP 远程请求 JWT 解析工具类 JwtTokenUtility 4.9.9.39 ⏱️2026.07.21 6611c06
- [新增]
HTTP 远程请求支持为特定 HttpClient 配置 IHttpRequestEventHandler 4.9.9.39 ⏱️2026.07.21 6611c06
- [新增]
HTTP 远程请求支持配置查询参数、请求标头及 Cookie 的格式化字符串 4.9.9.38 ⏱️2026.07.21 b783f3e
- [新增]
HTTP 远程请求重试策略默认记录日志 4.9.9.38 ⏱️2026.07.21 b783f3e
- [新增]
HTTP 远程请求在启用异常抑制时,若发生异常则自动输出警告日志 4.9.9.38 ⏱️2026.07.21 b783f3e
- [新增]
HTTP 远程请求无依赖声明式代理支持 4.9.9.37 ⏱️2026.07.20 f732128
- [新增]
HTTP 远程声明式请求支持 ValueTask 返回值类型 4.9.9.36 ⏱️2026.07.19 a221418
- [新增]
HTTP 远程请求 URL 地址支持 {key?} 和 {**key} 路径参数 4.9.9.36 ⏱️2026.07.19 a221418
- [新增]
DispatchProxyAsync 代理类 ValueTask 返回值类型相关方法 4.9.9.36 ⏱️2026.07.19 a221418
- [新增]
HTTP 远程请求 HttpRemoteResult<T> 内容转换器 4.9.9.34 ⏱️2026.07.18 3ae3f64
- [新增]
HTTP 远程请求支持 RFC 3986 标准的请求地址拼接 4.9.9.34 ⏱️2026.07.18 3ae3f64
- [新增] 定时任务支持手动执行时传递自定义数据 4.9.9.31 ⏱️2026.07.16 09f0ace
- [新增]
JWT 授权支持配置获取 Token 的请求头键的可选值 4.9.9.30 ⏱️2026.07.16 3cac646
- [新增]
HTTP 远程请求 Access Token 自动管理功能 4.9.9.25 d618a54
- [新增]
HTTP 远程请求重试功能 4.9.9.25 d618a54
- [新增]
HTTP 远程请求支持自定义发送请求的管道处理器 4.9.9.25 d618a54
- [新增]
HTTP 远程请求 [Body] 特性支持配置 DisposeResourcesOnRequestCompletion 4.9.9.17 22d2c46
- [新增]
HTTP 远程请求支持多实例服务注册 4.9.9.16 1284ea8
- [新增]
HTTP 远程请求内容处理器支持返回多个 HttpContent 组合 4.9.9.16 1284ea8
- [新增]
HTTP 远程请求构建器 RemoveContent 方法 4.9.9.16 1284ea8
- [新增]
HTTP 远程请求支持批量添加请求结束时需要释放的对象方法:AddDisposables 4.9.9.16 1284ea8
- [新增]
HTTP 远程请求获取本地 IP 地址和 MAC 地址方法:HttpRemoteUtility.GetLocalIPv4(),HttpRemoteUtility.GetLocalMacAddress() 4.9.9.16 1284ea8
- [新增]
Cron 表达式 H 字符支持:H 与 R 功能完全等价,所有 R 的语法均适用于 H 4.9.9.14 45fe276
- [新增]
Cron 表达式支持 Jenkins 的 R#N / H#N 语法:用于 DayOfWeek 字段,表示每月第 N 个随机星期几,解析时随机选定星期几 4.9.9.14 45fe276
- [新增]
Cron 表达式 Macro 宏:@weekends 4.9.9.14 45fe276
- [新增] 定时任务周末触发器特性和方法:
Weekends 4.9.9.14 45fe276
- [新增]
HTTP 远程请求可通过 .SetBaseAddress(url) 或 [BaseAddress(url] 充当公共前缀功能 4.9.9.13 ⏱️2026.07.05 0224fa0
- [新增]
HTTP 远程请求支持添加泛型响应内容转换器 4.9.9.10 ⏱️2026.07.03 9a37cfa
- [新增]
HTTP 远程请求 JSON 响应反序列化包装器 ResultHandler 功能 4.9.9.10 ⏱️2026.07.03 9a37cfa
- [新增]
HTTP 远程请求支持发送 IBrowserFile 文件 4.9.9.9 ⏱️2026.07.02 fa73c28
- [新增]
HTTP 声明式请求支持通过 [Header("键: 值")] 方式设置标头 4.9.9.9 ⏱️2026.07.02 fa73c28
- [新增]
HTTP 远程请求 SetContent 方法支持配置 disposeResourcesOnRequestCompletion 参数 4.9.9.9 ⏱️2026.07.02 fa73c28
- [新增]
HTTP 远程请求 IFormFile 内容处理器支持 4.9.9.9 ⏱️2026.07.02 8a8e44b
- [新增] 视图引擎
CompileFromCached 方法 4.9.9.5 ⏱️2026.06.29 c1b3c35
- [新增]
HTTP 远程请求 IAsyncEnumerable<T> 响应内容类型支持 4.9.9.3 ⏱️2026.06.25 4b80b9b
- [新增]
Cron 表达式支持 Rvalue1,value2,value3 离散值随机语法 4.9.9.2 ⏱️2026.06.24 99b6e94
- [新增]
Cron 表达式支持获取指定数量的下/上所有发生时间 4.9.9.1 ⏱️2026.06.24 99b6e94
-
突破性变化
- [调整]
HTTP 远程请求 WithRequest 方法名为 With 4.9.9.52 ⏱️2026.08.01 2c3d42d
- [调整]
HTTP 远程请求 URL 参数格式化程序 IUrlParameterFormatter 接口方法 4.9.9.40 ⏱️2026.07.23 c380d55
- [调整]
HTTP 远程请求 URL 参数排序委托签名 4.9.9.40 ⏱️2026.07.23 c380d55
- [调整]
HTTP 远程请求内容转换器方法参数设计 4.9.9.34 ⏱️2026.07.18 3ae3f64
- [调整]
Cron 表达式 R 随机语法:区间改为 R(min-max),带步长改为 R(min-max)/step,离散值改为 R(value1,value2,...),R/step 保持不变 4.9.9.14 45fe276
- [调整]
Cron 表达式 Macro 宏:@workday -> @weekdays 4.9.9.14 45fe276
- [调整] 定时任务工作日触发器的特性和方法名:
Workday -> Weekdays 4.9.9.14 45fe276 84f468a
- [调整] 重命名代理拦截器
AspectDispatchProxy -> DispatchProxyAsync 4.9.9.12 ⏱️2026.07.05 f09a934
- [移除]
Furion.Pure 和 Furion.Pure.Xunit 扩展包 4.9.9.11 ⏱️2026.07.04 e026b02
Furion 公告:v4.9.9 起移除 Furion.Pure,统一为单一包,全面拥抱 EFCore
Furion 从一开始就默认集成了 .NET 官方的 Entity Framework Core(简称 EFCore)。但由于早期 EFCore 概念繁杂、上手门槛较高,不少开发者更倾向使用第三方 ORM,因此我们将 Furion 拆分为 Furion 和 Furion.Pure 两个包:前者包含 EFCore,后者不包含。
2021 年拆包后,Furion 包的流量和 NuGet 下载量急剧下降,而 Furion.Pure 的下载量却迅速攀升。原本统一的下载量被迫分散到两个包,导致新用户在搜索 “Furion” 时,看到的 Furion 包下载量少得可怜——大部分下载实际上被 Furion.Pure 带走。从长远发展来看,这非常不利:第一,Furion 包每个版本的下载量严重缩水;第二,同时维护两个包及其依赖需要投入巨大的时间和精力。
因此,从 Furion v4.9.9 开始,我们将移除 Furion.Pure 包及相关扩展,并在后续开发中逐步把 EFCore 模块功能抽离为独立模块。以后只保留 Furion 一个包,不再提供 Furion.Pure。
✅ 升级指引
从 Furion.Pure 升级到 v4.9.9 只需完成以下两处调整:
- 替换 NuGet 包
将项目中的 Furion.Pure 包替换为 Furion。
- (如果使用了定时任务持久化)修改数据库记录
将作业触发器表中 AssemblyName 字段的值由 Furion.Pure 更新为 Furion,完成后重启应用程序。
除此之外无需任何其他变更。唯一可感知的影响是发布目录下会多出一个 EFCore 相关的 dll 文件。
另外,在 AI 时代,.NET 生态中大部分第三方 ORM 的发布频率和代码提交频率明显降低,维护活跃度大不如前,而 EFCore 的下载量和用户数正呈指数级增长。AI 也大大降低了 EFCore 的使用门槛,所以 我们推荐新项目优先选择 EFCore,而非第三方 ORM。
接下来,我们还会 重构 EFCore 扩展模块,并移除所有非 EFCore 的第三方 ORM 扩展及相关的脚手架和文档。
-
- [新增]
HTTP 远程请求 QUERY 请求支持 4.9.9.8 ⏱️2026.07.01 1195ffa
-
- [调整]
HTTP 远程请求 [Query] 重命名为 [QueryParam] 4.9.9.8 ⏱️2026.07.01 b9df71b
昨天,IETF(互联网工程任务组)正式发布了 RFC 10008,为 HTTP 协议族增添了一个新成员——QUERY 方法。这是一种与 GET 同样安全、幂等,但支持携带请求内容的 HTTP 动词。
https://www.rfc-editor.org/info/rfc10008
框架已第一时间提供适配支持。
值得注意的是,原有的 [Query] 特性已重命名为 [QueryParam],现在的 [Query] 则用作 HTTP 方法(请求谓词)。
-
- [升级] 重构视图引擎底层代码,改进性能、内存占用及未来扩展性 4.9.9.7 ⏱️2026.06.30 b1d69b2
-
- [移除] 视图引擎字符串扩展方法 4.9.9.5 ⏱️2026.06.29 8f37d03
-
- [调整] 事件总线上下文以及
CancellationToken 参数设计 4.9.9 ⏱️2026.06.23 c0d2c4d
-
问题修复
- [修复]
HTTP 远程请求转发表单时内容类型的 Boundary 解析错误问题 4.9.9.50 ⏱️2026.07.31 8a93868
- [修复]
HTTP 远程请求 Digest 摘要认证错误处理格式和算法问题 4.9.9.47 ⏱️2026.07.30 312767f
- [修复]
HTTP 远程请求分析日志打印未知大小且超过 5MB 的响应内容时出现流已释放的异常 4.9.9.46 ⏱️2026.07.29 22c8edb
- [修复]
HTTP 远程请求 WebSocket 客户端接收大消息时数据出现截断问题 4.9.9.46 ⏱️2026.07.29 fc1634d
- [修复]
HTTP 远程请求分析日志打印 SSE 或流式响应内容出现死锁问题 4.9.9.43 ⏱️2026.07.26 5fd05a1 09cb4f1
- [修复]
HTTP 远程请求 SSE 和长轮询错误处理数据问题 4.9.9.43 ⏱️2026.07.26 5fd05a1
- [修复]
HTTP 远程请求 WebSocket 客户端销毁后没有释放事件资源 4.9.9.34 3ae3f64
- [修复] 定时任务看板登录页面密码输入框是明文问题 4.9.9.33 bf36808
- [修复]
HTTP 远程请求转发存在 SSRF 攻击安全问题 4.9.9.30 020aee7 b30721d
- [修复]
Serve.Run() 在 File-Based Apps 单文件应用中出现异常 4.9.9.21 4b67d6b
- [修复]
HTTP 远程文件上传/下载时,控制台进度打印可能抛出异常的问题 4.9.9.20 acfd9dd
- [修复] 规范化文档自定义标签
Tag 之后注释丢失问题 4.9.9.19 e9c8ada
- [修复]
HTTP 远程请求在极端情况下出现连接池耗尽问题 4.9.9.18 9b7b430
- [修复]
Cron 表达式 RandomParser.ToString() 对 R/step 的简洁输出,避免全范围步长被错误展开 4.9.9.14 45fe276
- [修复]
HTTP 远程请求在 Blazor WebAssembly 应用中使用出现解压异常问题 4.9.9.13 ⏱️2026.07.05 0224fa0
- [修复]
HTTP 远程请求分析日志在一些特殊场景下出现空行打印问题 4.9.9.13 ⏱️2026.07.05 0224fa0
- [修复]
HTTP 远程请求声明式接口不支持封闭泛型接口定义问题 4.9.9.12 ⏱️2026.07.05 aa47822
- [修复] 规范化文档页面注销登录后没有清除
token 问题 4.9.9.11 ⏱️2026.07.04 a64a769
- [修复]
HTTP 远程请求存在未释放 HttpResponseMessage 问题 4.9.9.10 ⏱️2026.07.03 9a37cfa
- [修复] 视图引擎存在内存一直无法释放问题 4.9.9.5 ⏱️2026.06.29 48f778f
- [修复] 数据验证
AbstractValueValidator<> 遗漏 abstract 关键字导致程序集扫描异常 4.9.9.4 ⏱️2026.06.26 77f2533
- [修复]
Cron 表达式 R 字符解析出现矛盾问题 4.9.9.1 ⏱️2026.06.24 99b6e94
- [修复]
Cron 表达式解析 R 字符并获取下一次执行时间错误问题 4.9.9 ⏱️2026.06.23 8ba4d3c
-
其他更改
- [改进]
HTTP 远程请求 JSON 序列化功能 4.9.9.51 ⏱️2026.08.01 85f6dea #IK5MUW
- [改进]
App.User 静态属性,支持在跨线程/异步上下文中使用 4.9.9.48 ⏱️2026.07.31 7461a94 #IK5CRK
- [改进]
HTTP 远程请求发送原始字符串内容 4.9.9.46 ⏱️2026.07.29 22c8edb
- [改进]
HTTP 远程请求异常捕获设计 4.9.9.42 ⏱️2026.07.25 d83cc7f
- [改进]
HTTP 远程请求路径参数模板语法 4.9.9.41 ⏱️2026.07.24 40b7d08
- [改进]
HTTP 远程请求声明式数据验证功能 4.9.9.35 ⏱️2026.07.19 3e91e0c
- [改进]
HTTP 远程请求底层发送请求核心逻辑 4.9.9.34 ⏱️2026.07.18 3ae3f64
- [改进]
HTTP 远程请求默认 Content-Type 推断逻辑 4.9.9.15 ⏱️2026.07.06 5495a09
- [改进] 视图引擎编译模板出错时可以直观显示错误的模板上下文代码 4.9.9.8 ⏱️2026.07.01 f5e6771
- [调整] 友好异常处理,将内部异常和外部异常一起呈现 4.9.9.7 ⏱️2026.06.30 cf42cf4
- [改进] 视图引擎编译性能,减少约
40MB 大小内存,支持 GC 回收 4.9.9.6 ⏱️2026.06.30 a17a14a
- [改进]
App.CompileCSharpClassCodeToStream 编译 C# 代码,支持 GC 回收 4.9.9.6 ⏱️2026.06.30 cae4287
- [改进]
[FlexibleArray<T>] 查询参数模型绑定 4.9.9.3 ⏱️2026.06.25 a7aae88 @YaChengMu !937
- [改进] 两个流变对象之间比较性能 4.9.9 ⏱️2026.06.23 b08b9d5
-
文档
- [新增]
Linux 部署文档
- [更新]
HTTP 远程请求文档、流变对象文档、事件总线文档、Cron 表达式文档、视图引擎文档、任务队列文档、规范化文档、数据验证文档
详情查看:https://gitee.com/dotnetchina/Furion/releases/v4.9.9.52