微软发布了其计划中的.NET 11软件开发平台的Preview 2版本,该版本在本地运行时异步处理、Linux和macOS系统的SDK安装包缩小等方面取得了显著进展。
.NET 11 Preview 2于3月10日发布,可从net.microsoft.com下载。Preview 2是继2月10日发布Preview 1之后的版本,正式版预计将在11月发布。
运行时异步处理的重大进展
根据微软介绍,Preview 2在运行时原生异步处理方面取得了重大进展。与编译器生成状态机类不同,运行时本身现在管理异步挂起和恢复操作。这产生了更清晰的堆栈跟踪、更好的调试体验和更低的开销。但运行时异步仍然是预览功能。编译器必须使用MethodImplOptions.Async标记方法,运行时才会将它们视为运行时异步方法。
在运行时方面,JIT编译器现在可以消除常见模式中的边界检查,即索引加常数与长度比较的情况。被证明冗余的检查算术上下文也会被优化掉。
SDK安装包优化
对于SDK,Linux和macOS上的安装包大小通过使用符号链接去重复程序集得到了缩减。重复的.dll和.exe文件通过内容哈希识别,并替换为指向单一副本的符号链接。这影响了压缩包以及.pkg、.deb和.rpm安装程序。
代码分析器在SDK中得到改进,以避免潜在昂贵的日志记录。属性访问、GetType()、GetHashCode()和GetTimestamp()调用不再被标记。默认情况下,诊断现在仅适用于信息级别及以下,因为警告/错误/关键代码路径很少是热点路径。诊断消息现在包括参数被标记的原因,帮助开发人员优先处理哪些警告。
.NET 11库的新功能
在.NET 11库中,TarFile.CreateFromDirectory的重载接受TarEntryFormat参数,提供对归档格式的直接控制。以前,CreateFromDirectory产生Pax归档。新的重载支持所有四种tar格式——Pax、Ustar、GNU和V7——以兼容特定工具和环境。
其他改进功能
.NET 11 Preview 2还包含以下附加改进:
ASP.NET Core的性能改进使Kestrel的HTTP/1.1请求解析器现在使用非抛出代码路径处理格式错误的请求。解析器不再在每次解析失败时抛出BadHttpRequestException,而是返回指示成功、不完整或错误状态的结果结构。在有许多格式错误请求的场景中——如端口扫描、恶意流量或错误配置的客户端——这消除了昂贵的异常处理开销,同时将吞吐量提高了20%到40%。有效请求处理不受影响。
F#语言简化了DIM(默认接口成员)层次结构。此外,F#的预览功能(--langversion:preview)缓存了具有相同参数类型的重复方法调用的重载解析结果。
对于.NET MAUI(多平台应用程序UI)中的地图控件,Location和MapSpan的新TypeConverter实现支持简洁的XAML语法用于地图坐标,消除了冗长的x:Arguments标记的需要。同样在.NET MAUI中,TypedBinding和SourceGeneratedBinding现在快约29%,每个绑定操作的内存分配减少了50%。
Entity Framework(EF)Core支持转换LINQ的MaxByAsync和MinByAsync方法及其同步版本。这些方法允许开发人员找到给定键选择器的最大值或最小值元素,而不仅仅是最大值或最小值本身。
Q&A
Q1:.NET 11 Preview 2的运行时异步处理有什么改进?
A:.NET 11 Preview 2在运行时原生异步处理方面取得重大进展。与编译器生成状态机类不同,运行时本身现在管理异步挂起和恢复操作,这产生了更清晰的堆栈跟踪、更好的调试体验和更低的开销。
Q2:.NET 11 Preview 2如何缩小Linux和macOS的SDK安装包?
A:通过使用符号链接去重复程序集来缩减安装包大小。重复的.dll和.exe文件通过内容哈希识别,并替换为指向单一副本的符号链接。这影响了压缩包以及.pkg、.deb和.rpm安装程序。
Q3:ASP.NET Core在.NET 11 Preview 2中有哪些性能提升?
A:Kestrel的HTTP/1.1请求解析器现在使用非抛出代码路径处理格式错误的请求,不再抛出异常而是返回结果结构。这消除了异常处理开销,在有许多格式错误请求的场景中将吞吐量提高了20%到40%。
好文章,需要你的鼓励
英国国家医疗服务(NHS)正将无人机纳入常规医疗物流体系。自今年2月起,无人机每天在雷恩斯公园和圣乔治医院之间运送血液等诊断样本,飞行仅需3分钟,比公路运输快约85%,且碳排放减少高达98%。目前已有逾2000名患者受益。NHS计划将该服务扩展至圣赫利尔、克罗伊登等多家医院,最终惠及约180万名患者。该网络由英国医疗初创公司Apian与谷歌旗下Wing合作运营。
AgentLens是Explyt公司联合俄罗斯学术机构开发的AI编程助手评测基准,通过分析完整人机交互轨迹而非仅看最终结果,从五个维度评估代码智能体的真实表现。
边缘AI计算厂商Aetina宣布,将在其DeviceEdge AIE-KT风冷系列和新款AIE-PT无风扇平台上支持英伟达全新Jetson T3000和T2000模块。T3000基于Blackwell GPU,最高提供865 FP4 TFLOPS算力,功耗70W;T2000则提供400 FP4 TFLOPS,面向视觉AI代理和自主移动机器人等场景。两款模块预计2027年第一季度上市,支持Nemotron、Cosmos 3等英伟达AI软件生态。
韩国梨花女子大学提出Splash框架,通过识别AI模型中的"休眠参数"并只在其中训练触觉能力,让小型多模态AI在学会感知材质触感的同时,完整保留原有视觉语言推理能力。