Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Learn about the new features in .NET 10 and find links to further documentation. This page is updated for Preview 3.
.NET 10, the successor to .NET 9, is supported for three years as a long-term support (LTS) release. You can download .NET 10 here.
Your feedback is important and appreciated. If you have questions or comments, use the discussion on GitHub.
.NET runtime
The .NET 10 runtime introduces new features and performance improvements. Key updates include:
- Array interface method devirtualization: The JIT can now devirtualize and inline array interface methods, improving performance for array enumerations.
- Array enumeration de-abstraction: Enhancements to reduce abstraction overhead for array iteration via enumerators, enabling better inlining and stack allocation.
- Inlining of late devirtualized methods: The JIT can now inline methods that become eligible for devirtualization due to previous inlining.
- Devirtualization based on inlining observations: The JIT uses precise type information from inlining to devirtualize subsequent calls.
- Stack allocation of arrays of value types: Small, fixed-sized arrays of value types without GC pointers can now be stack-allocated.
- AVX10.2 support: Introduced support for Advanced Vector Extensions (AVX) 10.2 for x64-based processors, though currently disabled by default.
- NativeAOT enhancements: Support for casting and negation in NativeAOT's type preinitializer.
For more information, see What's new in the .NET 10 runtime.
.NET libraries
The .NET 10 libraries introduce several new features and improvements, including:
- Find certificates by thumbprints other than SHA-1: A new method allows finding certificates using hash algorithms like SHA-256.
- Find PEM-encoded data in ASCII/UTF-8: PEM encoding APIs now support reading directly from ASCII/UTF-8 data.
- ISOWeek support for DateOnly: New overloads in the ISOWeek class support the DateOnly type.
- String normalization APIs for spans: New APIs allow Unicode string normalization to work with spans of characters, reducing allocations.
- Numeric ordering for string comparison: A new CompareOptions.NumericOrdering option enables numerical string comparisons.
- New TimeSpan.FromMilliseconds overload: A single-parameter overload resolves issues with LINQ expressions.
- ZipArchive performance improvements: Optimizations reduce memory usage and improve performance for ZipArchive in
Update
mode and parallel extraction. - OrderedDictionary enhancements: New
TryAdd
andTryGetValue
overloads return an index for fast access. - JSON serialization updates: Source generators now allow specifying
ReferenceHandler
in JsonSourceGenerationOptionsAttribute. - Left-handed matrix transformations: New APIs for creating left-handed transformation matrices.
- PKCS#12 export enhancements: New methods allow specifying encryption and digest algorithms for PKCS#12/PFX export.
For more information, see What's new in the .NET 10 libraries.
.NET SDK
The .NET 10 SDK introduces the following new features and enhancements, including:
- Pruning of framework-provided package references: Automatically removes unused framework-provided package references, reducing build times and disk usage.
- More consistent command order: New noun-first aliases for
dotnet
CLI commands improve readability and consistency. - CLI commands default to interactive mode in interactive terminals: The
--interactive
flag is now enabled by default for CLI commands in interactive terminals. - Native shell tab-completion scripts: The
dotnet
CLI now supports generating native tab-completion scripts for popular shells using thedotnet completions generate [SHELL]
command. Supported shells includebash
,fish
,nushell
,powershell
, andzsh
. - Console apps can natively create container images: Console apps can now create container images via
dotnet publish /t:PublishContainer
without requiring the<EnableSdkContainerSupport>
property in the project file. - Explicitly control the image format of containers: A new
<ContainerImageFormat>
property allows you to explicitly set the format of container images to eitherDocker
orOCI
. - Support for Microsoft.Testing.Platform in
dotnet test
: A newdotnet test
experience made specifically for Microsoft.Testing.Platform can be opted-in viadotnet.config
. For more information about the existingdotnet test
integration for MTP and the new integration, see Testing withdotnet test
.
For more information, see What's new in the SDK for .NET 10.
.NET Aspire
.NET Aspire releases version 9.1, which focuses on quality-of-life fixes.
For details, see What's new in .NET Aspire 9.1.
ASP.NET Core
The ASP.NET Core 10.0 release introduces several new features and enhancements, including Blazor improvements, OpenAPI enhancements, and minimal API updates.
For details, see What's new in ASP.NET Core for .NET 10.
C# 14
C# 14 introduces several new features and enhancements to improve developer productivity and code quality. Key updates include:
- Field-backed properties: Provides a smoother path from auto-implemented properties to writing custom
get
andset
accessors. The compiler-generated backing field can now be accessed using thefield
contextual keyword. - Unbound generic support for
nameof
: Thenameof
expression now supports unbound generic types, such asList<>
, returning the name of the type without requiring type arguments. - Implicit span conversions: Introduces first-class support for
Span<T>
andReadOnlySpan<T>
with new implicit conversions, enabling more natural programming with these types. - Modifiers on simple lambda parameters: Allows parameter modifiers like
ref
,in
, orout
in lambda expressions without specifying parameter types. - Partial events and constructors: Adds support for partial instance constructors and partial events, complementing partial methods and properties introduced in C# 13.
- Extension members: Extension methods now support static methods, instance properties, and static properties through
extension
blocks, enabling more flexible and powerful extensions. - Null-conditional assignment: Simplifies conditional assignments by allowing properties or fields to be updated only if the containing instance exists, using the
?.
operator. - Experimental feature - String literals in data section: Enables emitting string literals as UTF-8 data into a separate section of the PE file, improving efficiency for certain scenarios.
For more information, see What's new in C# 14.
F#
The F# updates in .NET 10 include several new features and improvements across the language, standard library, and compiler service. Key updates include:
F# Language:
- New language features require enabling the
<LangVersion>preview</LangVersion>
project property in.fsproj
files. These features become the default with the .NET 10 release.
- New language features require enabling the
FSharp.Core Standard Library:
- Changes to the
FSharp.Core
standard library are applied automatically to projects compiled with the new SDK unless a lowerFSharp.Core
version is explicitly pinned.
- Changes to the
FSharp.Compiler.Service:
- General improvements and bug fixes in the compiler implementation.
For more information, see the F# release notes.
Visual Basic
The Visual Basic updates in .NET 10 include the following features and enhancements:
unmanaged
constraint support: The Visual Basic compiler now interprets and enforces theunmanaged
generic constraint, enabling better compatibility with runtime APIs.- Honor overload resolution priority: The Visual Basic compiler respects the OverloadResolutionPriorityAttribute, ensuring faster Span-based overloads are preferred and resolving ambiguities among method overloads.
These updates ensure that Visual Basic can consume updated features in C# and the runtime, improving compatibility and performance.
For more information, see What's new in Visual Basic.
.NET MAUI
The .NET MAUI updates in .NET 10 include several new features and quality improvements for .NET MAUI, .NET for Android, and .NET for iOS, Mac Catalyst, macOS, and tvOS.
For details, see What's new in .NET MAUI in .NET 10.
EF Core
The EF Core 10 release introduces several new features and improvements, including LINQ enhancements, performance optimizations, and improved support for Azure Cosmos DB.
For details, see What's new in EF Core for .NET 10.
Windows Forms
Changes in Windows Forms for .NET 10 include clipboard-related updates, ported UITypeEditors
from .NET Framework, and quality enhancements.
For details, see What's new in Windows Forms for .NET 10.
WPF
The WPF updates in .NET 10 include several performance improvements, Fluent style changes, bug fixes, and more.
For details, see What's new in WPF in .NET 10.