You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/core/whats-new/dotnet-11/libraries.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ This article describes new features in the .NET libraries for .NET 11. It was la
13
13
14
14
## Process API expansion
15
15
16
-
<xref:System.Diagnostics.Process>gains a substantial set of new APIs in Preview 4, covering common scenarios where you previously had to wire up `OutputDataReceived`/`ErrorDataReceived` events manually or use P/Invoke.
16
+
<xref:System.Diagnostics.Process>has a substantial set of new APIs that cover common scenarios where you previously had to wire up `OutputDataReceived`/`ErrorDataReceived` events manually or use P/Invoke.
17
17
18
18
### Run-and-capture helpers
19
19
@@ -133,7 +133,7 @@ BFloat16 (Brain Floating Point) is a 16-bit floating-point format that's commonl
133
133
134
134
## UTF validation and invalid-subsequence search
135
135
136
-
Preview 4 adds two complementary features to <xref:System.Text.Unicode?displayProperty=fullName>. `Utf16.IsValid` answers whether a sequence is well-formed UTF-16 without scanning twice, and `Utf8.IndexOfInvalidSubsequence` / `Utf16.IndexOfInvalidSubsequence` return the position of the first ill-formed code-unit sequence (or `-1` for valid input). Together these let parsers, validators, and serializers report precise errors instead of generic encoding-error messages.
136
+
<xref:System.Text.Unicode?displayProperty=fullName> has two new complementary features. `Utf16.IsValid` answers whether a sequence is well-formed UTF-16 without scanning twice, and `Utf8.IndexOfInvalidSubsequence` / `Utf16.IndexOfInvalidSubsequence` return the position of the first ill-formed code-unit sequence (or `-1` for valid input). Together, these methods let parsers, validators, and serializers report precise errors instead of generic encoding-error messages.
@@ -198,7 +198,7 @@ let json = System.Text.Json.JsonSerializer.Serialize(Circle 1.5)
198
198
199
199
### Utf8JsonWriter.Reset with options
200
200
201
-
<xref:System.Text.Json.Utf8JsonWriter.Reset*> now accepts a <xref:System.Text.Json.JsonWriterOptions> parameter, so writer instances can be re-pooled with different options without allocating a new writer:
201
+
<xref:System.Text.Json.Utf8JsonWriter.Reset*> now accepts a <xref:System.Text.Json.JsonWriterOptions> parameter, so writer instances can be repooled with different options without allocating a new writer:
@@ -253,15 +253,15 @@ A new <xref:System.Text.RegularExpressions.RegexOptions> flag, `AnyNewLine`, mak
253
253
254
254
### Regex engine and source generator fixes
255
255
256
-
Preview 4 also includes several regex correctness and code-quality fixes:
256
+
.NET 11 includes several regex correctness and code-quality fixes:
257
257
258
258
- The non-backtracking engine no longer takes super-linear time on certain nested-loop patterns and produces correct results for cases that previously diverged.
259
259
- The regex compiler and source generator handle `resumeAt` correctly when a conditional appears inside a loop body.
260
-
- The SYSLIB1045 code fixer no longer creates duplicate class names when applied across multiple partial declarations of the same class.
260
+
- The [SYSLIB1045](../../../fundamentals/syslib-diagnostics/syslib1040-1049.md) code fixer no longer creates duplicate class names when applied across multiple partial declarations of the same class.
261
261
262
262
## Rate-limiting improvements
263
263
264
-
A cluster of <xref:System.Threading.RateLimiting?displayProperty=fullName>fixes lands in Preview 4:
264
+
The <xref:System.Threading.RateLimiting?displayProperty=fullName>class has a handful of fixes in .NET 11:
265
265
266
266
-<xref:System.Threading.RateLimiting.FixedWindowRateLimiter> now reports a `RetryAfter` metadata value that points to the next window boundary, so callers and middleware can honor it without guessing.
267
267
-`TokenBucketRateLimiter.AttemptAcquire(0)` no longer mishandles partial token refills.
@@ -312,7 +312,7 @@ Pass an `IMeterFactory` to the new `MemoryCache(options, loggerFactory, meterFac
312
312
> [!NOTE]
313
313
> This is a preview feature in .NET 11.
314
314
315
-
Preview 4 introduces `UnionAttribute` and `IUnion` in `System.Runtime.CompilerServices`. These types are the runtime side of the C# discriminated-union design. They aren't directly user-facing yet—the C# compiler and source generators are the expected producers—but they ship in the framework so libraries can author against the surface now.
315
+
.NET 11 introduces `UnionAttribute` and `IUnion` in `System.Runtime.CompilerServices`. These types are the runtime side of the C# discriminated-union design. They aren't directly user-facing yet—the C# compiler and source generators are the expected producers—but they ship in the framework so libraries can author against the surface now.
316
316
317
317
For the language-side design, see the [C# unions proposal](https://github.com/dotnet/csharplang/blob/main/proposals/unions.md).
Copy file name to clipboardExpand all lines: docs/core/whats-new/dotnet-11/overview.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,8 +20,8 @@ Your feedback is important and appreciated. If you have questions or comments, u
20
20
The .NET 11 runtime includes:
21
21
22
22
- Updated minimum hardware requirements for x86/x64 and Arm64 architectures, requiring more modern instruction sets to improve performance and reduce maintenance complexity.
23
-
- Runtime-native async (Runtime Async), which produces cleaner stack traces and lower overhead. Starting with Preview 3, Runtime Async no longer requires `<EnablePreviewFeatures>true</EnablePreviewFeatures>` for projects that target `net11.0`. Starting with Preview 4, the runtime libraries themselves are compiled with runtime-async.
24
-
- JIT improvements for bounds check elimination, redundant checked context removal, switch expression folding, constant-folding `SequenceEqual`, and redundant branch elimination. Preview 4 also adds new Arm SVE2 intrinsics and improved hardware-intrinsic cost modeling.
23
+
- Runtime-native async (Runtime Async), which produces cleaner stack traces and lower overhead. Runtime Async no longer requires `<EnablePreviewFeatures>true</EnablePreviewFeatures>` for projects that target `net11.0`. The runtime libraries themselves are compiled with `runtime-async=on`.
24
+
- JIT improvements for bounds check elimination, redundant checked context removal, switch expression folding, constant-folding `SequenceEqual`, and redundant branch elimination. There are also new Arm SVE2 intrinsics and improved hardware-intrinsic cost modeling.
25
25
-`Comparer<T>.Default` and `EqualityComparer<T>.Default` specialized in ReadyToRun images, delivering up to 20× faster collection operations.
26
26
- WebAssembly improvements, including WebCIL V1 as the default for CoreCLR WASM builds, native re-link support, and better debugging symbols.
27
27
- Support for more than 1024 CPUs on Linux.
@@ -53,7 +53,7 @@ For more information, see [What's new in the .NET 11 libraries](libraries.md).
53
53
54
54
The .NET 11 SDK includes:
55
55
56
-
- Smaller SDK installers on Linux and macOS through assembly deduplication, with additional savings in Preview 4 by skipping crossgen for `DotnetTools`-only assemblies.
56
+
- Smaller SDK installers on Linux and macOS through assembly deduplication, with additional savings by skipping crossgen for `DotnetTools`-only assemblies.
57
57
- Improved [CA1873](../../../fundamentals/code-analysis/quality-rules/ca1873.md) code analyzer with reduced noise and clearer diagnostic messages.
58
58
- Analyzer bug fixes for [CA1515](../../../fundamentals/code-analysis/quality-rules/ca1515.md), [CA1034](../../../fundamentals/code-analysis/quality-rules/ca1034.md), and [CA1859](../../../fundamentals/code-analysis/quality-rules/ca1859.md).
59
59
- A new NETSDK1235 warning for custom `.nuspec` files used with PackAsTool.
Copy file name to clipboardExpand all lines: docs/core/whats-new/dotnet-11/runtime.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,11 +69,11 @@ Runtime Async is a preview feature. To opt in, add the following property to you
69
69
</PropertyGroup>
70
70
```
71
71
72
-
Starting with Preview 3, a`net11.0` project no longer requires `<EnablePreviewFeatures>true</EnablePreviewFeatures>` to use Runtime Async.
72
+
A`net11.0` project no longer requires `<EnablePreviewFeatures>true</EnablePreviewFeatures>` to use Runtime Async.
73
73
74
-
Starting with Preview 4, the .NET runtime libraries themselves are compiled with `runtime-async=on`. The runtime libraries no longer contain compiler-generated state machines and rely entirely on runtime-provided async. This makes it possible to migrate an entire app (with only library dependencies) to the new model, and it provides broad functional and performance validation of the feature. The product team welcomes any reports—positive or negative—about throughput and library size changes you observe.
74
+
The .NET runtime libraries themselves are compiled with `runtime-async=on`. The runtime libraries no longer contain compiler-generated state machines and rely entirely on runtime-provided async. This makes it possible to migrate an entire app (with only library dependencies) to the new model, and it provides broad functional and performance validation of the feature. The product team welcomes any reports—positive or negative—about throughput and library size changes you observe.
75
75
76
-
Preview 4 also includes two additional improvements:
76
+
.NET 11 also includes two additional improvements:
77
77
78
78
-**Covariant `Task` → `Task<T>` overrides:** When a derived class returns `Task<T>` for a base method that returns `Task`, the runtime now generates a void-returning thunk that bridges the calling convention difference, so virtual dispatch works for both flavors. The same fix applies to NativeAOT.
79
79
-**Inlining in crossgen2:** Restrictions that prevented runtime-async methods from being inlined during ReadyToRun (R2R) compilation have been removed. All async tests pass with both crossgen2 and composite R2R, and inlining of await-less async calls (the synchronous fast path) is confirmed end-to-end.
@@ -137,7 +137,7 @@ Breakpoints now bind correctly inside runtime-async methods, and the debugger ca
137
137
-**Devirtualization in ReadyToRun images:** ReadyToRun (R2R) images can now devirtualize non-shared generic virtual method calls, improving performance of ahead-of-time compiled code for generic scenarios.
138
138
-**SVE2 intrinsics:** New Arm SVE2 (Scalable Vector Extension 2) intrinsics are available: `ShiftRightLogicalNarrowingSaturate(Even|Odd)`. These expand the set of vectorized operations available on Arm hardware that supports SVE2.
139
139
140
-
For better performance and code quality, Preview 4 adds several more JIT optimizations:
140
+
For better performance and code quality, .NET 11 adds several more JIT optimizations:
141
141
142
142
### Constant-folding SequenceEqual
143
143
@@ -179,7 +179,7 @@ These optimizations are most visible after inlining, where guards from different
179
179
180
180
## Hardware intrinsics and code generation
181
181
182
-
Preview 4 includes several new hardware intrinsics and code generation improvements:
182
+
.NET 11 includes several new hardware intrinsics and code generation improvements:
183
183
184
184
-**F16C acceleration for `Half` ↔ `float` conversions on x64:** When the CPU supports F16C (most AVX2-capable hardware), conversions between <xref:System.Half> and `float`/`double` now use the dedicated `vcvtph2ps`/`vcvtps2ph` instructions instead of helper calls.
185
185
-**Better cost modeling for x86/x64 SIMD:** The JIT's floating-point execution and size costs previously reflected x87-era assumptions. Updated costs that reflect modern SSE/AVX hardware let the JIT make better decisions about hoisting and common subexpression elimination (CSE) around SIMD code.
@@ -207,7 +207,7 @@ Preview 3 expands browser and WebAssembly support with several improvements:
207
207
-**Better debugging symbols:** Symbol and stack trace quality for WebAssembly debugging has improved, making it easier to diagnose issues in browser-hosted .NET apps.
208
208
-**`float[]`, `Span<float>`, and `ArraySegment<float>` marshaling:**`float[]`, `Span<float>`, and `ArraySegment<float>` are now marshaled more directly across JavaScript boundaries, reducing overhead for interop-heavy code.
.NET includes improvements to CoreCLR-on-WebAssembly:
211
211
212
212
-**WebCIL V1 is the default for CoreCLR WASM builds:** The shared WebCIL header gains a `TableBase` field (28 → 32 bytes). Both Mono and CoreCLR readers accept V0 and V1. Crossgen2's `WasmObjectWriter` produces V1 directly, and CoreCLR-flavored WASM SDK builds default `WasmWebcilVersion` to `V1`.
213
213
-**Native re-link works for CoreCLR WASM apps:** A full Emscripten-based pipeline replaces the previous stub targets. Re-linking `dotnet.native.wasm` from the runtime pack and including custom native code via `NativeFileReference` now works.
Preview 4 trims the SDK further by skipping crossgen for assemblies that only exist under `DotnetTools/`. Assemblies that also exist outside `DotnetTools/` are still crossgen'd—they get the startup benefit and the duplicate is then removed—but assemblies unique to `DotnetTools/` are left as IL-only. On a `linux-x64` build, this reduces the SDK tarball by an additional 23.6 MB.
27
+
The SDK is further trimmed because crossgen is skipped for assemblies that only exist under `DotnetTools/`. Assemblies that also exist outside `DotnetTools/` are still crossgen'd—they get the startup benefit and the duplicate is then removed—but assemblies unique to `DotnetTools/` are left as IL-only. On a `linux-x64` build, this reduces the SDK tarball by an additional 23.6 MB.
28
28
29
29
Windows deduplication is planned for a future preview.
30
30
@@ -116,24 +116,24 @@ Environment variables passed this way are available to MSBuild logic as `Runtime
116
116
117
117
## dotnet watch improvements
118
118
119
-
Preview 3 adds several `dotnet watch` improvements for long-running local development loops:
119
+
.NET 11 adds several `dotnet watch` improvements for long-running local development loops:
120
120
121
121
-**Aspire integration:**`dotnet watch` can now integrate with Aspire app hosts, enabling hot-reload workflows across the full Aspire application model.
122
122
-**Crash recovery:** When the app crashes, `dotnet watch` automatically relaunches it on the next relevant file change.
123
123
-**Windows desktop support:** Ctrl+C handling is improved for Windows desktop apps such as Windows Forms and WPF.
124
124
125
-
Preview 4 adds device selection for MAUI and mobile projects. After picking a target framework, `dotnet watch` calls the `ComputeAvailableDevices` MSBuild target, auto-selects when there's a single device, and shows an interactive picker with search when there are several. The chosen device flows through to `dotnet build` and the launched `dotnet run` subprocess, including a re-restore when the device requires a `RuntimeIdentifier` not present in the original restore.
125
+
.NET 11 also adds device selection for MAUI and mobile projects. After picking a target framework, `dotnet watch` calls the `ComputeAvailableDevices` MSBuild target, auto-selects when there's a single device, and shows an interactive picker with search when there are several. The chosen device flows through to `dotnet build` and the launched `dotnet run` subprocess, including a re-restore when the device requires a `RuntimeIdentifier` not present in the original restore.
126
126
127
127
To pre-select a device from the command line, use:
128
128
129
129
```bash
130
130
dotnet watch --device <device-id>
131
131
```
132
132
133
-
Preview 4 also fixes several long-standing `dotnet watch` issues:
133
+
The following long-standing `dotnet watch` issues are fixed:
134
134
135
135
- The framework selection prompt no longer appears stuck due to two readers both calling `Console.ReadKey()`.
136
-
- Ctrl+C and Ctrl+R no longer surface a spurious `WebSocketException` or `ObjectDisposedException` when the WebSocket transport tears down.
136
+
-<kbd>Ctrl+C</kbd> and <kbd>Ctrl+R</kbd> no longer surface a spurious `WebSocketException` or `ObjectDisposedException` when the WebSocket transport tears down.
137
137
- Hot Reload no longer deadlocks on iOS when `UIKitSynchronizationContext` is installed before the startup hook runs.
138
138
139
139
> [!NOTE]
@@ -159,7 +159,7 @@ Previously, these commands failed with `Could not find project or directory ''`
159
159
160
160
The `Using launch settings from ...` informational message now writes to `stderr` instead of `stdout`. Scripts that capture the standard output of `dotnet run` no longer need to strip this line out.
161
161
162
-
## Asset Groups for Static Web Assets
162
+
## Asset groups for static web assets
163
163
164
164
The Static Web Assets SDK adds support for **Asset Groups**, a way to declare groups of related assets that share publish, fingerprinting, and endpoint metadata. The related `DefineStaticWebAssetEndpoints` task gains an `AdditionalEndpointDefinitions` parameter, and the glob matcher exposes the captured `**` stem so additional endpoints (for example default-document routes like `/` for `**/index.html`) can be defined declaratively.
165
165
@@ -171,7 +171,7 @@ The `dotnet` CLI now uses OpenTelemetry (OTel) with Azure Monitor and OTLP expor
171
171
172
172
## NativeAOT entry point for the dotnet CLI
173
173
174
-
To enable near-instant startup for common CLI invocations, Preview 4 lays the groundwork for a NativeAOT-compiled `dotnet` CLI host. The work introduces three layers:
174
+
To enable near-instant startup for common CLI invocations, .NET 11 lays the groundwork for a NativeAOT-compiled `dotnet` CLI host. The work introduces three layers:
175
175
176
176
-`dn.exe` — a NativeAOT host that resolves `DOTNET_ROOT` and `hostfxr` and marshals arguments into a NativeAOT shared library. This is for SDK-repository dogfooding, not production usage.
177
177
-`dotnet-aot.dll` — a NativeAOT shared library that handles simple commands such as `--version` and `--info` directly, and falls back to the full managed CLI for everything else.
@@ -193,7 +193,7 @@ A new MSBuild property lets upstack tooling (for example, `dotnet/macios` and `d
193
193
194
194
## Breaking changes
195
195
196
-
.NET 11 includes the following breaking changes in the SDK:
196
+
.NET 11 includes some breaking changes in the SDK.
197
197
198
198
### Mono launch target no longer set automatically
0 commit comments