news 2026/5/14 7:55:06

.NET 11 Preview 4 正式发布:Runtime-Async 全面启用、Process API 大幅扩展

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
.NET 11 Preview 4 正式发布:Runtime-Async 全面启用、Process API 大幅扩展

微软于 2026 年 5 月 12 日发布了 .NET 11 的第四个预览版(Preview 4)。这个版本延续了 .NET 11 系列的高频迭代节奏,在运行时异步模型进程管理 APIASP.NET Core 的 AI 集成以及EF Core 的向量搜索等多个方向上都带来了实质性进展。

本文按领域梳理了本次预览版的核心变更,帮助开发者快速定位自己关心的改进点。


一、概览:Preview 4 覆盖领域

领域

核心亮点

Libraries(类库)

Process 类大规模 API 扩展;Span-based 压缩 API;浮点数十六进制格式化

Runtime(运行时)

运行时库全面启用 Runtime-Async;JIT 常量折叠优化;支持 1024+ CPU

SDKdotnet watch

设备选择;Fish Shell 补全;OpenTelemetry 遥测

C# 语言

Shebang 诊断改进;VBCSCompiler 可选编译缓存

ASP.NET Core

OpenAPI 支持 HTTP QUERY;Blazor 电路暂停;MCP Server 模板

.NET MAUIdotnet watch

支持 Android/iOS 热重载

Entity Framework Core

SQL Server 2025 近似向量搜索;JSON 映射集成到关系模型


二、Libraries:类库重大更新

2.1 Process 类大规模 API 扩展

本次更新中,System.Diagnostics.Process获得了一组开箱即用的高级 API,覆盖了进程启动、输出捕获、生命周期控制等常见场景,大幅减少了手写进程调用代码的工作量。

新增 API 一览:

API

说明

Process.Run

/Process.RunAsync

一键启动进程并获取结果

Process.RunAndCaptureText

/Process.RunAndCaptureTextAsync

直接捕获 stdout 和 stderr 为文本

Process.ReadAllText

/Process.ReadAllBytes

单调用读取子进程全部输出

Process.ReadAllLinesAsync

返回ProcessOutputLine结构,区分 stdout 和 stderr

以前用ProcessStartInfo+RedirectStandardOutput+ 手动事件订阅的冗长写法,现在可以简化为:

// 启动进程并直接获取输出文本 var result =await Process.RunAndCaptureTextAsync("git","log --oneline -5"); Console.WriteLine(result.StandardOutput); // 逐行读取,自动区分 stdout / stderr awaitforeach(var line in Process.ReadAllLinesAsync("dotnet","build")) { var prefix = line.IsError ?"[ERR]":"[OUT]"; Console.WriteLine($"{prefix}{line.Content}"); }

2.2 Span-based 压缩/解压 API

新增基于Span<T>DeflateZLibGZip编码器/解码器 API,压缩解压操作无需分配中间字节数组,对高吞吐和内存敏感场景(如网络中间件、流处理管道)有明显收益。

2.3 浮点数十六进制格式化和解析

新增对浮点数十六进制格式的支持,例如0x1.921fb54442d18p+1(即 π 的 IEEE 754 十六进制表示)。这在科学计算、二进制数据交换和精度敏感的场景中很实用。

2.4 System.Text.Json 持续增强

JSON 序列化/反序列化继续获得小幅改进,保持与之前预览版的演进方向一致。

2.5 其他重要更新

  • UTF 验证与无效子序列搜索

    :更细粒度的 UTF 文本处理原语

  • 限流修复

    RetryAfter语义修复、小数 permit 支持、ChainedRateLimiter改进

  • 正则表达式

    :源生成器和引擎层面的 bug 修复

  • 配置绑定与文件提供程序

    :稳定性和性能改进

  • MemoryCache 内置 OpenTelemetry 指标

    :缓存命中率、驱逐次数等可观测

  • 可区分联合脚手架

    System.Runtime.CompilerServices命名空间下新增联合类型生成支持

  • TarReader 支持 GNU sparse format 1.0

    :处理稀疏 tar 归档文件

  • TLS 握手加固

    :Linux 平台证书验证警报增强

  • HTTP/2 自动降级

    :支持 Windows 认证场景下的协议降级


三、Runtime:运行时核心改进

3.1 Runtime-Async 全面启用(最重要变更)

.NET 11 Preview 4 的标志性变更:所有运行时库现在使用runtime-async=on编译。这意味着:

  • 编译器不再为异步方法生成传统的异步状态机(async state machine)

  • 异步调用链依赖运行时异步原语直接调度

  • 预期带来吞吐量提升库体积缩减的双重收益

伴随这项变更,运行时还引入了两个配套优化:

协变TaskTask<T>重写:当派生类方法返回Task<T>而基类方法返回Task时,运行时自动生成桥接 thunk,不需要开发者手动适配。

Crossgen2 内联 Runtime-async 方法:预编译阶段即可对 runtime-async 方法进行内联优化,减少调用开销。

3.2 JIT 编译器优化

  • 常量折叠SequenceEqual

    :JIT 能在编译时折叠常量字符串的SequenceEqual调用,将运行时比较直接替换为编译期确定的结果

  • 硬件内联函数改进

    :更好的 SIMD 代码生成

  • ReadyToRun 改进

    :预编译格式持续优化

3.3 其他运行时变更

  • 支持 1024+ CPU

    :打破之前 64 核/CPU 组限制,面向高端服务器和云原生超大实例

  • Browser/WebAssembly CoreCLR 支持

    :继续推进 CoreCLR 在 WebAssembly 上的实验性运行


四、SDK 更新

特性

说明

dotnet watch设备选择

为 MAUI 和移动项目选择目标设备(Android/iOS 模拟器或物理机)

Fish Shell 补全

与 Bash、Zsh、PowerShell 对齐,Fish 用户也能享受命令补全

dotnet reference回退

未显式指定项目文件时,自动回退到当前目录的项目

OpenTelemetry 遥测

CLI 内部遥测从 Application Insights 迁移到 OpenTelemetry,符合生态标准


五、C# 语言更新

  • Shebang 诊断更清晰

    :在脚本文件顶部使用#!/usr/bin/env dotnet等 shebang 时,编译器提供更精确的诊断信息

  • VBCSCompiler 可选编译缓存

    :为编译服务器(VBCSCompiler)启用可选的编译缓存,重复编译场景可节省增量时间


六、ASP.NET Core 更新

6.1 OpenAPI 支持 HTTP QUERY 方法

OpenAPI 文档生成器现在将HTTP QUERY识别为已知操作类型。QUERY 是一种安全的幂等方法,允许在请求体中发送查询条件(替代长 URL 查询字符串),OpenAPI 规范层面的支持让 API 文档能正确描述这类端点。

6.2 Blazor 增强

特性

说明

[SupplyParameterFromTempData]

TempData字典向组件参数提供值,简化跨页面状态传递

服务器端电路暂停/恢复

服务器可主动暂停 Blazor 电路连接,客户端保持状态,恢复时无缝继续

Virtualize 组件改进

上方内容变化时保持视口稳定;新增AnchorMode控制滚动锚定行为

更小的 WASM 发布输出

Blazor WebAssembly 发布体积进一步优化

电路暂停的示例场景:服务器负载过高时,暂时断开非活跃用户的 Blazor 连接,释放资源,用户切回页面时瞬间恢复——对大规模部署很有价值。

6.3 MCP Server 模板

.NET SDK 现在附带MCP(Model Context Protocol)服务器模板。MCP 是连接 AI 模型与外部数据/工具的标准协议,这个模板让用 .NET 构建 AI 代理服务(Agent Service)的启动成本接近于零:

dotnet new mcp-server -o MyAgentService

6.4 其他 ASP.NET Core 变更

  • Kestrel TLS 握手可观测性

    :TLS 握手事件进入 OpenTelemetry 链路追踪

  • 响应压缩始终发出Vary: Accept-Encoding

    :修正缓存行为,避免代理缓存损坏压缩响应

  • 文件结果类型出现在 OpenAPI 文档中

    FileStreamResultFileContentResult等被正确描述

  • 端点过滤器可观察参数绑定失败

    :参数绑定异常可被端点过滤器捕获和处理


七、.NET MAUI 更新

  • dotnet watch热重载

    :Preview 4 正式为 Android 和 iOS 项目带来dotnet watch热重载支持。修改 XAML 或 C# 代码后,变更会自动推送到运行中的模拟器或物理设备,跨平台移动开发的工作流更贴近 Web 开发的即时反馈体验。


八、Entity Framework Core 更新

特性

说明

SQL Server 2025 近似向量搜索

针对 SQL Server 2025 的向量类型,EF Core 提供近似向量搜索(Approximate Vector Search)的 LINQ 映射

JSON 映射集成到关系模型

JSON 列映射不再是"二等公民",完全融入关系模型的查询、跟踪和迁移管道

时态表周期属性映射

时态表(Temporal Table)的PeriodStart/PeriodEnd列可显式映射到 CLR 属性

dotnet ef默认配置dotnet ef

命令现在从dotnet-ef.json读取默认配置,减少命令行参数重复

向量搜索的示例:

var results =await context.Products .OrderBy(p => p.Embedding.ApproximateDistance(queryVector)) .Take(10) .ToListAsync();

九、如何开始

下载并安装 .NET 11 Preview 4 SDK:

  • SDK 下载

    :https://dotnet.microsoft.com/download/dotnet/11.0

  • Windows 用户

    :安装 Visual Studio 2026 Insiders(Preview 4 工具链需要匹配的 IDE 支持)

  • VS Code 用户

    :安装最新版 C# Dev Kit 扩展即可

在终端中验证安装:

dotnet --version # 输出类似 11.0.100-preview.4.xxxxx

十、总结

.NET 11 Preview 4 是一次覆盖面广、深度够足的更新。几个最值得关注的信号:

  1. Runtime-Async 全面启用

    标志着 .NET 异步编程模型进入新阶段——从编译器生成状态机转向运行时原生调度,吞吐和体积收益将在后续预览版中逐步显现。

  2. Process API 扩展

    是系统编程(system programming)在 .NET 中的一次重要补位,让脚本式进程调用成为可能。

  3. ASP.NET Core

    在 OpenAPI、Blazor 基础设施和 MCP AI 集成三个方向同步推进,继续保持 Web/AI 开发平台的优势。

  4. EF Core 的向量搜索

    MAUI 的热重载则分别在数据层和移动端改善了开发体验。

随着 .NET 11 逐步接近正式版(预计 2026 年 11 月),Preview 4 已经展现出相当成熟的技术方向。建议开发者在自己的场景中有针对性地试用,尤其是 Runtime-Async 和 Process API 这两个变化点,值得提前评估对现有代码的影响。


本文基于 .NET Blog 官方发布说明整理。原文及详细变更日志请参阅:

  • https://devblogs.microsoft.com/dotnet/dotnet-11-preview-4/
  • https://github.com/dotnet/core/blob/main/release-notes/11.0/preview.4/
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 7:54:05

AI搜索场景下,网页内容如何被大模型检索、理解和引用?

AI搜索正在改变用户获取信息的方式。过去&#xff0c;用户主要通过关键词搜索网页&#xff1b;现在&#xff0c;越来越多用户开始用自然语言向AI提出问题&#xff0c;并期待直接获得整理后的答案。对于内容创作者、网站运营者和开发者来说&#xff0c;网页内容不仅要适合人阅读…

作者头像 李华
网站建设 2026/5/14 7:49:54

Claude Markdown增强资源库:提升AI文档生成质量与效率

1. 项目概述&#xff1a;为什么我们需要一个“Claude Markdown 增强”资源库&#xff1f; 如果你和我一样&#xff0c;是 Claude 的深度用户&#xff0c;并且经常用它来辅助编程、撰写文档或整理知识&#xff0c;那你一定遇到过这个痛点&#xff1a;Claude 输出的 Markdown 代…

作者头像 李华
网站建设 2026/5/14 7:44:38

基于Notion构建AI智能体结构化记忆系统:解决冷启动与记忆管理难题

1. 项目概述&#xff1a;为AI智能体构建结构化记忆中枢 如果你正在使用Claude、GPT-4或者OpenClaw这类AI智能体来辅助日常工作&#xff0c;大概率会遇到一个让人头疼的问题&#xff1a;每次开启新对话&#xff0c;它都像得了“健忘症”。你得花上几百甚至上千个token&#xff…

作者头像 李华
网站建设 2026/5/14 7:44:34

Sentry智能调试助手:基于MCP协议实现Ruby错误自动分析与修复

1. 项目概述如果你是一名Ruby或Rails开发者&#xff0c;那么对Sentry这个错误监控平台一定不陌生。它就像你应用的健康仪表盘&#xff0c;能实时告诉你哪里“生病”了。但很多时候&#xff0c;Sentry的报警更像是一个症状描述——“这里疼”&#xff0c;至于为什么疼、病灶在哪…

作者头像 李华
网站建设 2026/5/14 7:42:11

可进化硬件:遗传算法如何让FPGA自我优化并突破传统设计局限

1. 项目概述&#xff1a;一场被遗忘的硬件进化实验上世纪90年代&#xff0c;当我在实验室里第一次读到阿德里安汤普森&#xff08;Adrian Thompson&#xff09;那篇关于“可进化硬件”的论文时&#xff0c;那种感觉至今记忆犹新。那不像是在读一篇普通的学术报告&#xff0c;更…

作者头像 李华