🦉 想只有困难,做才有答案 | .NET 框架 Furion v4.9.2.14
董宇辉说:” 行就是知,知就是行。想,只有困难;做,才有答案。“
其实多数时候,我们想得太多了,实际去做的太少了。就好像写这个内容时想的是个中长篇,可真正话到手上只有寥寥数语。
做事何尝不是如此,光有 idea 是不值钱的!
时间能改变许多人和事,同样也能冲淡许多记忆,但更能证明许多人与事的价值。
追溯 Furion 的诞生之初,借助 Gitee 的看板功能,将每一个任务都细致入微地规划好,并逐一将其化为现实。那时的我,心中并无太多纷扰与顾虑,只是怀揣着对技术的热爱与追求,全身心投入到完善框架功能的征途上。然而,命运的轮盘总是如此神奇,未曾料到,Furion 框架已如雨后春笋般蓬勃发展,其影响力与日俱增,正逐步迈向更广阔的未来。
只是,物非人非,今昔何异,心随境转梦难寻。
2020 年,Furion 第一个版本
2024年,Furion 第四个版本
本期亮点
1. 添加定时任务批量设置作业组名称 GroupSet
默认情况下,若需为单个或多个作业批量设置 GroupName
,以往需采用以下的方式,这在代码层面显得较为冗长。
services.AddSchedule(options => { // 为 group1 添加作业,并手动设置该作业组名称 - options.AddJob(JobBuilder.Create<MyJob>().SetGroupName("group1"), Triggers.Secondly()); - options.AddJob(JobBuilder.Create<MyJob>().SetGroupName("group1"), Triggers.Hourly()); // 为 group2 添加作业,并手动设置该作业组名称 - options.AddJob(JobBuilder.Create<MyJob>().SetGroupName("group2"), Triggers.Secondly()); - options.AddJob(JobBuilder.Create<MyJob>().SetGroupName("group2"), Triggers.Hourly()); // 添加未设置作业组名称的作业 options.AddJob<MyJob>(Triggers.Secondly()); });
在最新版本中,我们提供了更为简洁的方式来实现:
services.AddSchedule(options => { // 为 group1 添加作业,并自动应用该作业组名称 + options.GroupSet("group1", () => + { + options.AddJob<MyJob>(Triggers.Secondly()); + options.AddJob<MyJob>(Triggers.Hourly()); + }); // 为 group2 添加作业,并自动应用该作业组名称 + options.GroupSet("group2", () => + { + options.AddJob<MyJob>(Triggers.Secondly()); + options.AddJob<MyJob>(Triggers.Hourly()); + }); // 添加未设置作业组名称的作业 options.AddJob<MyJob>(Triggers.Secondly()); });
通过options.GroupSet
方法,我们能够为指定作业组添加多个作业,且这些作业会自动应用该组的名称,大大简化了代码书写过程。同时,未在此方法内添加的作业将默认不设置作业组名称。这样的设计既提升了代码的可读性,也方便了作业组的管理与配置。
2. 完善模块化加载插件程序集底层引擎
以往,模块化加载拓展程序集 dll
文件的方式仅限于指定完整的 .dll
路径,缺乏目录扫描的支持,这在需要频繁添加多个 .dll
文件的场景下,无疑增加了操作的复杂性,显得尤为繁琐。
{ "AppSettings": { // 需要把 plugins 一个个 dll 添加上来 - "ExternalAssemblies": ["plugins/Module1.dll", "plugins/Module2.dll", ...] } }
现在,新版本已经引入了目录配置功能,实现了自动扫描指定目录下的 .dll
文件,大大简化了操作过程,提升了效率。
{ "AppSettings": { + "ExternalAssemblies": ["plugins"] // 只需要提供 plugins 目录即可(同样支持上面的方式) } }
3. 重写粘土对象底层引擎,提供更加灵活、智能的类 JavaScript 对象操作方式
最近我们发布了三个关于粘土对象 Clay
的版本,这主要是因为一位 VIP 用户的系统需求中涉及到了动态构建对象的复杂操作。
我们非常感激这位用户,正是他业务的高复杂度,使我们发现了粘土对象在灵活性、智能性以及隐藏 Bug 方面存在的问题。这些反馈促使我们对粘土对象模块进行了深入优化和提升。
我们之所以在短时间内发布了多个版本,正是为了快速响应并满足他反复提出的需求和问题,确保系统的稳定性和性能得到进一步提升。
本期更新
-
新特性
-
问题修复
- [修复] 定时任务生成
PostgreSQL
数据库SQL
语句的字段名缺少"
双引号 4.9.2.13 ⏱️2024.04.10 #I9FD9Y - [修复] 定时任务使用
JobBuilder
构建委托作业永远无法执行问题 4.9.2.10 ⏱️2024.04.10 Sundial#I7KU7K - [修复] 规范化结果在未启用
401/403
等状态码中间件时进行了错误拦截 4.9.2.8 ⏱️2024.04.08 b135e8c - [修复] 客户端设置
JWT Token
时如果Bearer
后面跟多个空格导致验证失败问题 4.9.2.8 ⏱️2024.04.08 @xuejf168 !874 - [修复]
SQL
查询结果转模型不支持DateOnly
和TimeOnly
属性类型 4.9.2.7 ⏱️2024.04.04 31f9d23 - [修复] 粘土对象调整原先类型并设置混合类型异常问题 4.9.2.6 ⏱️2024.04.03 83b216f
- [修复] 粘土对象将
Object
类型设置给Array
类型出现递归死循环问题 4.9.2.5 ⏱️2024.04.03 1126c74 - [修复] 粘土对象不支持嵌套粘土对象问题 4.9.2.4 ⏱️2024.04.02 fcb1223
- [修复] 粘土对象序列化后出现二次序列化成字符串问题 4.9.2.4 ⏱️2024.04.02 fcb1223
- [修复] 在
.NET8
之后修改System.Text.Json
默认序列化选项引发This JsonSerializerOptions instance is read-only or has already been used in serialization or deserialization.
异常问题 4.9.2.2 ⏱️2024.03.29 9f44653 - [修复] 远程请求
IHttpDispatchProxy
模式配置重试策略无效 4.9.2.1 ⏱️2024.03.29 #I9CK7X
- [修复] 定时任务生成
-
其他更改
- [调整] 默认
System.Text.Json
序列化提供器选项为不区分大小写匹配 4.9.2.1 ⏱️2024.03.29 b58e7be
- [调整] 默认
-
文档
- [更新] 事件总线文档、定时任务文档、规范化接口文档、远程请求文档、粘土对象文档、
FS
静态类文档、序列化文档
- [更新] 事件总线文档、定时任务文档、规范化接口文档、远程请求文档、粘土对象文档、
-
贡献者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RAG 修炼手册|一文讲透 RAG 背后的技术
在之前的文章中《RAG 修炼手册|RAG敲响丧钟?大模型长上下文是否意味着向量检索不再重要》,我们已经介绍过 RAG 对于解决大模型幻觉问题的不可或缺性,也回顾了如何借助向量数据库提升 RAG 实战效果。 今天我们继续剖析 RAG,将为大家大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理,以及它们是如何应用的。 01.什么是 Embedding? Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。 在自然语言处理中,Embedding 常常用于将文本数据中的单词、句子或文档映射为固定长度的实数向量,使得文本数据能够在计算机中被更好地处理和理解。通过 Embedding,每个单词或句子都可以用一个实数向量来表示,这个向量中包含了该单词或句子的语义信息。这样,相似的单词或句子就会在嵌入空间中被映射为相近的向量,具有相似语义的词语或句子在向量空间上的距离也会较近。这使得在进行自然语言处理任务时,可以通过计算向量之间的距离或相似度来进行词语或句子的匹配、分类、聚类等操作。 Word2Vec Word2...
- 下一篇
因缺乏维护者,EndeavourOS ARM 分支走向终结
EndeavourOS 的创始人兼项目负责人 Bryan Poerwoatmodjo 宣布,由于缺乏最新的上游变更和维护者,该发行版的 ARM 分支将走向终结。 EndeavourOS 是一个流行的 GNU/Linux 发行版,基于 Arch Linux,并利用 KDE 软件作为其 flagship ISO image。与 Arch Linux 类似,EndeavourOS 也采用滚动发布模型,但它提供了多个社区版本,其中包含各种流行的桌面环境和窗口管理器。 EndeavourOS ARM 分支在约三年半前首次推出,它的第一个安装程序随 EndeavourOS Artemis 版本一起发布,允许用户在各种 ARM 驱动的单板计算机(如 Raspberry Pi 或 ODROID N2/XU4)上轻松安装基于 Arch Linux 的发行版。 EndeavourOS ARM 基于 Arch Linux ARM 项目,由 EndeavourOS 社区的一些成员维护。与上游相比,EndeavourOS ARM 提供了一种图形化安装方法,即使用流行的 Calamares 通用安装程序,用于基于...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作