.NET 超流行框架 Furion v4.8.7.9 发布


项目信息

  • Gitee:https://gitee.com/dotnetchina/Furion
  • Github:https://github.com/MonkSoul/Furion
  • 文档:https://dotnetchina.gitee.io/furion

本期亮点

1. Sql 高级代理支持 IEnumerable<T> T[]  Tuple<(IEnumerable<T>, T[], T, List<T>) 混合返回值

public interface ISql : ISqlDispatchProxy
{
[SqlExecute("select * from person where id = @id")]
Person GetPerson(int id);

[SqlExecute("select * from person where id = @id")]
Task<Person> GetPersonAsync(int id);// 异步

// ----------------------------------------

[SqlExecute("select * from person")]
List<Person> GetPersons();

[SqlExecute("select * from person")]
Task<List<Person>> GetPersonsAsync();// 异步

// ----------------------------------------

[SqlExecute("select * from person")]
Person[] GetPersons();

[SqlExecute("select * from person")]
Task<Person[]> GetPersonsAsync();// 异步

// ----------------------------------------

[SqlExecute("select * from person")]
IEnumerable<Person> GetPersons2();

[SqlExecute("select * from person")]
Task<IEnumerable<Person>> GetPersons2Async();// 异步

// ----------------------------------------

// 更复杂的组合
[SqlExecute(@"
select * from person where id = 1;
select * from person;
select * from person where id > 0;
select * from person where id > 0;
")]
(Person, List<Person>, Person[], IEnumerable<Person>) GetPersons();

// 更复杂的组合
[SqlExecute(@"
select * from person where id = 1;
select * from person;
select * from person where id > 0;
select * from person where id > 0;
")]
Task<(Person, List<Person>, Person[], IEnumerable<Person>)> GetPersonsAsync();// 异步
}

2. 定时任务支持 Http 作业

HTTP 请求作业通常用于定时请求/访问互联网地址。

services.AddSchedule(options =>
{
options.AddHttpJob(request =>
{
request.RequestUri = "https://www.chinadot.net";
request.HttpMedhod = HttpMethod.Get;
// request.Body = "{}"; // 设置请求报文体
}, Triggers.PeriodSeconds(5));
});

作业执行日志如下:

info: 2023-03-11 11:05:36.3616747 +08:00 星期六 L System.Logging.ScheduleService[0] #1
Schedule hosted service is running.
info: 2023-03-11 11:05:36.3652411 +08:00 星期六 L System.Logging.ScheduleService[0] #1
Schedule hosted service is preloading...
info: 2023-03-11 11:05:36.5172940 +08:00 星期六 L System.Logging.ScheduleService[0] #1
The <job1_trigger1> trigger for scheduler of <job1> successfully appended to the schedule.
info: 2023-03-11 11:05:36.5189296 +08:00 星期六 L System.Logging.ScheduleService[0] #1
The scheduler of <job1> successfully appended to the schedule.
warn: 2023-03-11 11:05:36.5347816 +08:00 星期六 L System.Logging.ScheduleService[0] #1
Schedule hosted service preload completed, and a total of <1> schedulers are appended.
warn: 2023-03-11 11:05:41.5228138 +08:00 星期六 L System.Logging.ScheduleService[0] #15
Schedule hosted service will sleep <4970> milliseconds and be waked up at <2023-03-11 11:05:46.486>.
info: 2023-03-11 11:05:41.5542865 +08:00 星期六 L System.Net.Http.HttpClient.HttpJob.LogicalHandler[100] #9
Start processing HTTP request GET https://www.chinadot.net/
info: 2023-03-11 11:05:41.5589056 +08:00 星期六 L System.Net.Http.HttpClient.HttpJob.ClientHandler[100] #9
Sending HTTP request GET https://www.chinadot.net/
info: 2023-03-11 11:05:44.1305461 +08:00 星期六 L System.Net.Http.HttpClient.HttpJob.ClientHandler[101] #8
Received HTTP response headers after 2566.7836ms - 200
info: 2023-03-11 11:05:44.1343977 +08:00 星期六 L System.Net.Http.HttpClient.HttpJob.LogicalHandler[101] #8
End processing HTTP request after 2584.2327ms - 200
info: 2023-03-11 11:05:48.6475959 +08:00 星期六 L System.Logging.ScheduleService[0] #4
Received HTTP response body with a length of <63639> output as follows - 200
<!DOCTYPE html><html><head>
<title>dotNET China | 让 .NET 开发更简单,更通用,更流行</title>
......
</body></html>

本期更新

  • 新特性

    • [新增] 定时任务 HTTP 作业,支持定时请求互联网 URL 地址 4.8.7.7 ⏱️2023.03.11 01d4466
    • [新增] 定时任务作业触发器 Trigger 执行结果 Result 和执行耗时 ElapsedTime 属性 4.8.7.7 ⏱️2023.03.11 01d4466
    • [新增] 定时任务作业看板支持查看作业触发器执行结果 Result 和执行耗时 ElapsedTime 属性 4.8.7.7 ⏱️2023.03.11 01d4466
    • [新增] 定时任务休眠时长和唤醒时机日志输出 4.8.7.6 ⏱️2023.03.08 #I6LANE
    • [新增] Sql 高级拦截支持返回 IEnumerable<T>  T[] 类型值 4.8.7.5 ⏱️2023.03.07 f2ca2d3
    • [新增] .m3u8  .ts 文件类型 MIME 支持 4.8.7.5 ⏱️2023.03.07 #I6KKEM
    • [新增] 审计日志 LoggingMonitor 支持对参数贴 [SuppressMonitor] 特性跳过记录 4.8.7.3 ⏱️2023.03.01 #I6IVGW
    • [新增] 审计日志 LoggingMonitor 监听 TraceIdThreadIdAccept-Language 4.8.7.1 ⏱️2023.02.27 df35201
    • [新增] 规范化结果 UnifyContext.GetSerializerSettings(string) 静态方法 4.8.7.1 ⏱️2023.02.27 #I6HM7T
  • 突破性变化

    • [升级] 适配 .NET8 Preview.1 4.8.7 ⏱️2023.02.22
    • [升级] 脚手架支持创建 .NET8 Preview.1 项目 4.8.7 ⏱️2023.02.22
  • 问题修复

    • [修复] 定时任务服务在停止进程时会卡住 30秒 问题 4.8.7.8 ⏱️2023.03.13 #I6MI9I #I6MHOU
    • [修复] 定时任务看板删除不存在的作业触发器出现空异常 4.8.7.7 ⏱️2023.03.11 01d4466
    • [修复] 日志消息没有处理 \n 换行符对齐问题 4.8.7.6 ⏱️2023.03.10 759bcc5
    • [修复] 审计日志 LoggingMonitor 对特定参数贴有 [FromServices] 特性依旧记录问题 4.8.7.3 ⏱️2023.03.01 17b134e
    • [修复] Swagger 接口排序同时指定 Tag  Order 之后无效 4.8.7.2 ⏱️2023.03.01 #I6IQDI #I6IP66
  • 其他更改

    • [调整] 定时任务查看作业触发器运行记录由保存 10条 改为 5条 4.8.7.7 ⏱️2023.03.07 01d4466
    • [调整] 脚手架模板,默认启用主流文件类型 MIME 支持 4.8.7.5 ⏱️2023.03.07 e35cdab
    • [调整] 审计日志 LoggingMonitor 返回值泛型字符串显示格式 4.8.7.1 ⏱️2023.02.27 df35201
  • 文档

    • [新增] ASP.NET 8 集成 文档
    • [新增] .NET7 升级 .NET8 文档
    • [更新] 定时任务文档、中间件文档、规范化结果文档、动态 WebAPI 文档、日志记录文档、事件总线文档、虚拟文件系统文档、Sql 高级代理文档、数据库实体文档、任务队列文档
  • 贡献者

    • kingling (@kinglinglive) !732 !729
    • ksmy (@ksmy) !731
    • handsome_by (@handsomeboyyl) !727

相關推薦

2023-04-20

大事记 2023 年 04 月 18 日,Furion 在 Gitee 平台获得 9000 Stars, 在 NuGet 平台破 810万 下载量。 Furion 2020 年 09 月 01 日开源至今,可谓是爆炸式发展,无论哪方面数据均呈指数增长,时常被网友调侃:有 VueJS 当年的风范~ 经过三年

2023-05-10

在这 10 天中,Furion 在功能上又做了不小改进,提供了动态编译、插件化等运行时操作能力,为 v4 过渡 v5 做点小准备。 项目信息 Gitee:https://gitee.com/dotnetchina/Furion Github:https://github.com/MonkSoul/Furion 文档:https://furion.baiqi

2023-03-04

开源协议,商用无猫腻,超高质量的源码,可做企业内部框架。 底层核心无第三方依赖,应用层仅依赖了两个第三方包,功能自主可控。 框架 持续创新迭代,精益求精,为软件系统开发维护保驾护航。 超 230位 

2023-02-02

收到 3-10个 Issue,但更多都是改进和问答,Bug 越来越少,框架经过这么多年的持续迭代改进,已经非常成熟稳定,生产级别的项目数以万计,框架文档平均每天访问量 14PV/4万UV:https://furion.baiqian.ltd/ 下载统计 截至 2023年02月

2022-11-14

依赖,应用层仅依赖了两个第三方包,技术自主可控。 框架持续高速迭代,精益求精,为软件系统开发保驾护航。 超过220个开发者贡献代码和文档,国内.NET开源项目仅此一份。 选择 Furion 还需要理由吗? 跟贴:h

2023-04-29

项目信息 Gitee:https://gitee.com/dotnetchina/Furion Github:https://github.com/MonkSoul/Furion 文档:https://furion.baiqian.ltd/ 本期更新 新特性 [新增] 粘土对象支持结构 struct 对象类型 4.8.8.7 ⏱️2023.04.26 a0fa3aa [新

2022-11-25

人的群主。开源十年,我都做了啥? 😊 创造了国内超流行的 .NET 框架 Furion:https://gitee.com/dotnetchina/Furion 😊 创造了前端弹窗组件 LayX:https://gitee.com/monksoul/LayX 😊 创办了Gitee 平台超有知名度的 dotNET China 组织:https://gitee

2023-04-11

业的赞助,总赞助金额超数十万人民币,主要用于 Furion 框架开发团队日常维护支出和技术培训指导。 三年不停更迭代,Furion 已经相当有影响力,几乎 .NET 开发人员无人不知,NuGet 总下载超 760万,贡献者近 240人。 项目信息

2023-10-18

【源创会预告】1024 程序员节(的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 乐此不疲 距离上一次更新过了将近一个月,在此期间 Furion 在 NuGet 平台获得了超 70万次下载量,总下载量约 1100万。伴随着 Furion 影响力越来

2022-07-15

先知 / Furion (探索版) 一个应用程序框架,您可以将它集成到任何 .NET/C# 应用程序中。 An application framework that you can integrate into any .NET/C# application. 安装 / Installation Package Manager Install-Package Furion .NET CLI dotnet a

2022-11-09

ingMonitor 输出 系统信息,.NET 架构 和 基础框架 4.7.1 aeda902 [新增] 远程请求 .SetQueries(obj, ignoreNullValue) 重载方法 4.7.3 #I5Z8KC [新增] 远程请求 .GetCookies() 和 .GetSetCookies() 拓展方

2023-11-16

sp;【源码地址】 dfc63e7 突破性变化 [升级] 框架底层适配 .NET8.0 正式版 4.9.1 ⏱️2023.11.15 [升级] 框架脚手架适配 .NET8.0 正式版 4.9.1 ⏱️2023.11.15

2023-11-10

Furion 官网在 20 多天前遭遇了三次 DDoS 攻击,导致云服务器费用激增。于是我花了几天的时间构思了 Furion 商业化服务的布局。 幸运的是,这一次商业化探索得到了非常多的企业和个人的支持,短短 5 天的时间,已有 297 名用户

2022-09-29

贡献一份微薄之力。 序言 经过两年多的迭代,Furion 框架已经相当成熟稳定,贡献者突破 220 人,但我们的团队并没有停止脚步,精益求精逐步将过去所有模块重新优化乃至重构。本次版本主要对日志功能,特别是控制台日志