.NET 要在国内真正发展起来,必须得有一些追逐梦想的人在做着不计付出的事情,而我希望自己能贡献一份微薄之力。
![]()
项目信息
发展事记
2022年 12 月 07 日,Furion 框架在 Nuget 平台总下载突破 500万,比上一次破 400万仅仅用了一个月08天。https://www.nuget.org/profiles/monk.soul
- 2020 年
- 2020 年 09 月 01 日,
Fur 正式写下第一行代码。
- 2021 年
- 2021 年 08 月 21 日,
Furion 在 Nuget 平台突破 100万 下载量。
- 2022 年
- 2022 年 05 月 28 日,
Furion 在 Nuget 平台突破 200万 下载量。
- 2022 年 08 月 18 日,
Furion 在 Nuget 平台突破 300万 下载量。
- 2022 年 10 月 29 日,
Furion 在 Nuget 平台突破 400万 下载量。
- 2022 年 12 月 07 日,
Furion 在 Nuget 平台突破 500万 下载量。
了解 Furion 完整的发展大事记:https://furion.baiqian.ltd/docs/course
框架定位
很多人问过,我不知道该怎么回答,因为我自己几乎没有考虑过这个问题,还包括盈利的问题。
我没考虑的是 Furion 一定要是某种形式的框架,譬如企业级、微服务、单体等形式。Furion 一贯的思路是,用户迫切需要什么,那么我们就推什么,尽管最终可能让它变成四不像,可说不定用户要的就是 “四不像”。
当然也要有所为有所不为,用户需要的,但感觉自己做不好的,还是别去碰了,精心完善现有功能才是正道。
好吧,其实多数时候,我们想得太多了,实际去做的太少了。就好像写这个内容时想的是个中长篇,可真正话到手上只有寥寥数语。
做事何尝不是如此,光有 idea 是不值钱的!
-- powerby javayou
本期更新
![]()
在过去两年,实现 Furion 从无到有,编写文档已逾三百万字,过程心酸开源人自知。
这一路日夜兼程,嘲讽批评常伴眼耳,即便辛苦无奈、想过放弃,但为了那微不足道的成就感依然努力着。
当然,也收获了不少... 越来越多拥趸者,越发精湛技术能力,更高层次思维模式,还有许多跨界跨行朋友。
在 《开源指北》中,我曾说道:“开源如同人的脸,好坏一面便知,缺点可能会受到嘲讽批评,优点也会收获赞扬尊重。别担心,他们正在塑造更好的你。”
所以,这一次重新起航,重塑 Furion 重塑自己。也许未来在某个 IT 圈但凡有人谈起 .NET 还能瞟到 Furion 的身影。
https://furion.baiqian.ltd/docs/upgrade
新特性
- [新增] 🎉 全新的定时任务模块 4.8.0 【查看源码】
- [新增] 🎉 全新的
Cron 表达式模块 4.8.0 【查看源码】
- [新增] 🎉 全新的任务队列模块 4.8.3 【查看源码】
- [新增] 定时任务间隔分钟作业触发器
Triggers.PeriodMinutes(5) 和 [PeriodMinutes(5)] 特性 4.8.2.8 ⏱️2022.12.01 8e1f06f
- [新增] 定时任务工作日作业触发器
Triggers.Workday() 和 [Workday] 特性 4.8.2.6 ⏱️2022.11.30 28b2d20
- [新增] 定时任务作业校对功能,可对误差进行校正 4.8.2.6 ⏱️2022.11.30 f725a25
- [新增]
Crontab.ParseAt(..) 静态方法 4.8.2.6 ⏱️2022.11.30 035cc23
- [新增]
Crontab 所有 Macro At 静态方法 4.8.2.6 ⏱️2022.11.30 a15b69d
- [新增]
Crontab.Workday 表示周一至周五的 Macro 静态属性 4.8.2.6 ⏱️2022.11.30 a15b69d
- [新增] 定时任务
Triggers 所有带 At 的 Cron 表达式触发器构建器及特性 4.8.2.5 ⏱️2022.11.29 #I63PLR
- [新增]
App.GetThreadId() 和 App.GetTraceId() 获取线程 Id 和请求 TraceId 4.8.2.4 ⏱️2022.11.29 910fc1f
- [新增]
App.GetExecutionTime(() => { /*Your Code*/ }) 获取代码执行耗时 4.8.2.4 ⏱️2022.11.29 5ab4b19
- [新增] 定时任务批量添加
SchedulerBuilder 作业功能 4.8.2.4 ⏱️2022.11.29 5faa67b
- [新增] 定时任务
BuildSqlType 配置,可设置生成不同数据库类型的 SQL 语句 4.8.2.3 ⏱️2022.11.29 293f9bc !675
- [新增]
JobDetail 和 Trigger 自定义 ConvertToSQL 输出 SQL 配置 4.8.2 ⏱️2022.11.27 0bb9d8f
- [新增] 动态作业处理程序委托支持 4.8.1.8 ⏱️2022.11.27 e02266c
- [新增] 作业触发器
ResetOnlyOnce 属性,支持只运行一次的作业重新启动服务重复执行 4.8.1.5 ⏱️2022.11.25 a8be728
- [新增] 事件总线支持简单的
Order 编排规则 4.8.0 833c0d4
- [新增] 远程请求代理模式对于基元类型参数支持自动获取参数名 4.8.0 #I60OT6
- [新增] 动态
WebAPI 自动识别方法的接口参数是否是服务,如果是自动添加 [FromServices] 特性 4.8.0 fae60a9
- [新增] 远程请求
[QueryString] 特性添加时间格式化 Format 属性 4.8.1.2 !670
- [新增]
Serve.Run 模式的 .ConfigureServices 方法 4.8.0 023391b
- [新增]
Serve.RunGeneric 通用泛型主机方法 4.8.0 6865f3d
- [新增]
Serve.Run() 的 additional 参数 4.8.0 023391b
- [新增]
Serve.Run 主机返回值 IHost 4.8.0 #I61XHV
- [新增] 日志
JSON 自动美化格式化器 LoggerFormatter.JsonIndented 4.8.0 7b9268c
- [新增]
LoggingMonitor 的 JsonIndented 配置,可配置是否美化 JSON 4.8.0 7b9268c
- [新增] 日志模块是否输出
TraceId,同一个请求的日志 TraceId 一致 4.8.1.3 #I62VGG
突破性变化
- [调整] 旧版本定时任务为
弃用 状态(2022 年 12 月 31 日彻底删除),如需取消警告在 .csproj 中添加 <NoWarn>0618</NoWarn> 4.8.0 旧版本文档
- [移除]
JSON 静态类所有方法的 serviceProvider 参数(无破坏) 4.8.0 962fb16
- [移除]
Http 静态类所有方法的 serviceProvider 参数(无破坏) 4.8.0 962fb16
- [调整] 定时任务底层所有代码,日志,注释,文档 4.8.1.10 ⏱️2022.12.05
问题修复
- [修复] 作业拥有多个触发器时暂停作业后依然存在个别未暂停的清空(并发问题) 4.8.2.12 ⏱️2022.12.07 #I655W9
- [修复] 通过
Ctrl + C 终止应用程序后获取 TraceId 出现对象已释放异常 4.8.1.12 ⏱️2022.12.07 55c3e49
- [修复]
cli.ps1 脚本不支持 EFCore 7.0 问题 4.8.1.12 ⏱️2022.12.07 !676
- [修复]
EFCore 实体监听器 IEntityChangedListener 问题 4.8.1.7 ⏱️2022.11.26 #I61CTI
- [修复] 定时任务生成的
SQL 语句不支持 MySQL 问题 4.8.1.7 ⏱️2022.11.26 #I638ZC
- [修复] 运行时启动/暂停作业无效问题 4.8.1.6 ⏱️2022.11.25 #I6368M
- [修复] 作业触发器不符合下一次执行规律但
NextRunTime 不为 null 情况 4.8.1.5 ⏱️2022.11.25 a8be728
- [修复] 从
.NET6/7 降级回 .NET5 找不到 .AddDateOnlyConverters() 和 .AddTimeOnlyConverters() 拓展方法问题 4.8.0 cdddf8d
- [修复]
Retry.InvokeAsync 方法如果不传入 fallbackPolicy 参数报空异常问题 4.8.0 21af847
- [修复] 动态
WebAPI 不支持在 .NET7 不声明 [FromServices] 自动注入问题 4.8.0 #I62HP1
- [修复] 远程请求
GetAsStreamAsync() 报 System.InvalidOperationException: Response Content-Length mismatch 异常问题 4.8.1 #I62QY4
- [修复]
LoggingMonitor 配置 WriteFilter 不起作用问题 4.8.1.2 #I62P52 90bcfda
- [修复]
EFCore 个别关系型数据库 PostgreSQL/SqlServer/MySql 出现短暂不能连接问题 4.8.1.3 2c530ef
- [修复] 日志模块因
v4.8.0+ 版本导致写入数据库日志空异常问题 4.8.2.1 ⏱️2022.11.28 8d9d72b
其他更改
- [调整] 定时任务调度器时间精度,控制持续执行一年误差在
100ms 以内 4.8.2.9 ⏱️2022.12.01 334d089
- [调整] 定时任务作业计划工厂
GetNextRunJobs() 方法逻辑 4.8.2.7 ⏱️2022.11.30 #I63VS2
- [调整]
LoggingMonitor 解析授权逻辑,如果接口未授权则不打印授权信息 4.8.2.1 ⏱️2022.11.28 #I63D2E
文档
- [新增] 新版本定时任务文档
- [新增] Cron 表达式解析文档
- [新增] 任务队列文档
- [新增] Schedular 全局静态类文档
- [新增] TaskQueued 全局静态类文档
- [新增] 作业触发器
ResetOnlyOnce 文档 4.8.1.5 ⏱️2022.11.25 a8be728
- [新增] 通过
Roslyn 动态编译代码创建 IJob 类型文档 4.8.1.5 ⏱️2022.11.25 2c5e5be
- [新增] 自定义
JobDetail 和 Trigger 输出 SQL 文档 4.8.2 ⏱️2022.11.27 0bb9d8f
- [新增] 远程请求
[QueryString] 配置时间类型 Format 格式化文档 4.8.1.2 ⏱️2022.11.25 !673
- [更新]
Serve.Run() 入门文档文档、安全授权文档、前端接口代理文档、事件总线文档、日志文档、Worker Service 文档、数据库实体触发器文档、App 静态类文档、包管理工具文档
孤芳自赏
纵你阅人何其多,再无一人恰似我。