![]()
Furion 历经两年打磨
网友笔伐过
用户捧杀过
内心反复放弃过
最终化茧成蝶
为祖国信创添砖加瓦
十大理由
- 你们公司招聘的 .NET 架构师绝大概率没有百小僧牛逼(别杠)。
- 百小僧全天候待命,只要确认 Bug,当天修复,当天发版。
- 全球超400万个项目安装了 Furion,你不是一个人在战斗。
- 超270万字的保姆级使用手册,”保温杯里泡枸杞“ 的养生法你不需要。
- 程序员上岗无需培训,直接丢文档了事,实习生来了都可以扛大旗。
- MIT 开源协议,商用无猫腻,超高质量的源码,企业看了眼里少不了金光。
- 底层核心无第三方依赖,应用层仅依赖了两个第三方包,技术自主可控。
- 框架持续高速迭代,精益求精,为软件系统开发保驾护航。
- 超过220个开发者贡献代码和文档,国内.NET开源项目仅此一份。
选择 Furion 还需要理由吗?
跟贴:https://gitee.com/dotnetchina/Furion/issues/I60IQ1
项目信息
![]()
![]()
![]()
本期亮点
https://furion.baiqian.ltd/docs/upgrade
1. 脚手架支持指定 `NET5-.NET7
# 创建 .NET5 版本
dotnet new furionapi -n 项目名称 -f net5
# 创建 .NET6 版本
dotnet new furionapi -n 项目名称 -f net6
# 创建 .NET7 版本
dotnet new furionapi -n 项目名称 -f net7
![]()
2. 监听日志支持输出更多信息
info: 2022-11-10 12:26:15.1743075 +08:00 星期四 L Microsoft.Hosting.Lifetime[0] #1
Application started. Press Ctrl+C to shut down.
info: 2022-11-10 12:26:15.1780741 +08:00 星期四 L Microsoft.Hosting.Lifetime[0] #1
Hosting environment: Development
info: 2022-11-10 12:26:15.1812062 +08:00 星期四 L Microsoft.Hosting.Lifetime[0] #1
Content root path: D:\Workplaces\OpenSources\Furion\samples\Furion.Web.Entry
info: 2022-11-10 12:26:29.0927692 +08:00 Thursday L System.Logging.LoggingMonitor[0] #17
┏━━━━━━━━━━━ Logging Monitor ━━━━━━━━━━━
┣ Furion.Application.TestLoggerServices.测试日志监听1 (Furion.Application)
┣
┣ 控制器名称: TestLoggerServices
┣ 操作名称: 测试日志监听1
┣ 路由信息: [area]: ; [controller]: test-logger; [action]: 测试日志监听1
┣ 请求方式: POST
┣ 请求地址: https://localhost:44316/api/test-logger/测试日志监听1
┣ 来源地址: https://localhost:44316/api/index.html
┣ 请求端源: swagger
┣ 浏览器标识: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.35
┣ 客户端 IP 地址: 0.0.0.1
┣ 服务端 IP 地址: 0.0.0.1
┣ 执行耗时: 34ms
┣ ━━━━━━━━━━━━━━━ Cookies ━━━━━━━━━━━━━━━
┣ 请求端: Hm_lvt_91e98d00c5024e8d87b0bb3c10281d59=1665543612,1665626680,1665640427,1665709510; .AspNetCore.Culture=c=en-US|uic=en-US; name=百小僧; age=30
┣ 响应端:
┣ ━━━━━━━━━━━━━━━ 系统信息 ━━━━━━━━━━━━━━━
┣ 系统名称: Microsoft Windows 10.0.22621
┣ 系统架构: X64
┣ 基础框架: Furion v4.7.6.0
┣ .NET 架构: .NET 7.0.0
┣ ━━━━━━━━━━━━━━━ 启动信息 ━━━━━━━━━━━━━━━
┣ 运行环境: Development
┣ 启动程序集: Furion.Web.Entry
┣ 进程名称: iisexpress
┣ 托管程序: iisexpress
┣ ━━━━━━━━━━━━━━━ 返回信息 ━━━━━━━━━━━━━━━
┣ 原始类型: System.Void
┣ 最终类型: Furion.UnifyResult.RESTfulResult_System.Object
┣ 最终返回值:
┗━━━━━━━━━━━ Logging Monitor ━━━━━━━━━━━
![输入图片说明]()
本期更新
https://furion.baiqian.ltd/docs/upgrade
新特性
- [新增] 日志模块时间格式化默认输出
毫秒 部分,针对并发比较高的场景 4.7.0 c0dc36c
- [新增] 写入数据库日志死循环输出检测机制 4.7.0 30dea0c
- [新增]
LoggingMonitor 输出 系统信息,.NET 架构 和 基础框架 4.7.1 aeda902
- [新增] 远程请求
.SetQueries(obj, ignoreNullValue) 重载方法 4.7.3 #I5Z8KC
- [新增] 远程请求
.GetCookies() 和 .GetSetCookies() 拓展方法 4.7.5 #I5ZY1L
- [新增] 事件总线
.ReplaceStorerOrFallback 自定义事件源存储器方法,可在自定义初始失败时回退到默认值 4.7.6 #I602NU
- [新增]
LoggingMonitor 输出 启动信息,Cookies 和 请求端源 信息 4.7.7 3037b04
- [新增]
JSON 序列化 DateOnly 和 TimeOnly 类型转换器:.AddDateOnlyConverters() 和 .AddTimeOnlyConverters() 4.7.9 !657 47a5fcb
- [新增]
HttpContext.ReadBodyContentAsync() 拓展方法重复读取 Body 内容 4.7.9 #I60IYU
突破性变化
- [新增] 所有脚手架支持
-f 指定 .NET 版本 4.7.6 #I603AZ
- [升级] 适配
.NET 6.0.11 和 .NET 7 4.7.5 7df3195
- [升级] 所有脚手架至
.NET 7 4.7.5 7df3195
- [调整]
LogContext 类型的所有方法至 Furion.Logging 命名空间下,解决空异常问题 4.7.3 #I5YOT3
- [调整] 旧版本定时任务为
弃用 状态(一周内发布新版),如需取消警告在 .csproj 中添加 <NoWarn>0618</NoWarn> 4.7.9 0ff3ac0
问题修复
- [修复] 生成
JWT Token 时间戳和自动刷新逻辑在高并发下检查有效性不够精确问题,原因是时间戳丢掉了毫秒部分 4.7.0 3c0c017
- [修复] 在
IDatabaseLoggingWriter 实现类中输出日志导致死循环问题 4.7.0 30dea0c
- [修复] 规范化结果
OnResponseStatusCodes 方法在 Response 已完成写入时设置出现异常问题 4.7.2 #I5YBHL
- [修复]
L.SetCulture("zh-CN"); 在 Response 已完成写入时设置出现异常问题 4.7.2 #I5YBHL
- [修复] 动态
WebAPI 在类上配置 [Route] 特性且包含 [action] 模板导致生成错误接口路径 4.7.2 #I5YEZQ
- [修复] 启用二级虚拟目录
AppSettings:VirtualPath 导致 swagger 的 miniprofile 加载失败 4.7.3 #I5Z8RM
- [修复]
LoggingMonitor 监听带有 [FromServices] 的方法参数或接口类型参数出错 4.7.7 3037b04
- [修复]
HttpRequest 通过 .ReadBodyContentAsync() 读取不到 Body 问题 4.7.9 #I60IYU
其他更改
- [更新]
JSON Schema 配置,新增日志更多参数提醒 4.7.0 74bee56
- [调整] 日志记录时间格式默认输出带
7位 的毫秒值 4.7.1 aeda902
- [调整] 所有脚手架默认启用
单文件/独立部署 配置 4.7.7 1277f53
文档
- [新增]
IIS 回收问题解决方案文档
- [新增] 远程请求获取
Cookies 文档
- [新增]
LoggingMonitor 写入数据库文档
- [新增] JSON 序列化
DateOnly 和 TimeOnly 类型处理文档
- [新增]
HttpContext 读取 Body 内容文档
- [新增]
PM2 配置文件 json 部署文档
- [更新] 日志记录文档、定时任务文档、远程请求文档、脚手架文档
特别贡献