docs/en/Community-Articles/2025-09-10-NET10-What-You-Need-To-Know/Post.md
The next version of .NET is .NET 10 and it is coming with Long-Term Support (LTS), scheduled for November 2025.
On September 9, 2025, Microsoft released .NET 10 Release Candidate 1 (RC1), which supports go-live usage and is compatible with Visual Studio 2026 Insider and Visual Studio Code Insider via the C# Dev Kit extension.
nameof for unbound generics like List<>.Span<T> and ReadOnlySpan<T>.ref, in, out).extension blocks for static extension members.?.=) and custom compound/increment operators.<LangVersion>preview</LangVersion>, updated FSharp.Core, and compiler fixes.unmanaged generics and respects OverloadResolutionPriorityAttribute for performance and overload clarity.JsonSourceGenerationOptions and reference-handling tweaks.OrderedDictionary, ISOWeek date APIs, PEM data and certificate handling, CompareOptions.NumericOrderingPipeReader for JSON, WebSocketStream, ML-DSA crypto, AES KeyWrap), TLS 1.3 for macOSEnhanced OIDC and Microsoft Entra ID integration, including encrypted token caching and Key Vault use.
QuickGrid gains RowClass for conditional styling.Full support for OpenAPI 3.1 (JSON Schema draft 2020-12), and metrics for authentication/authorization events (e.g., sign-ins, logins) .
Updates include multiple file selection, image compression, WebView request interception, and support for Android API 35/36.
LINQ enhancements, performance boosts, better Azure Cosmos DB support, and more flexible named query filters.
.NET 10 Preview 7 brings several deprecations + behavior changes, while RC1 removes the old WebHost model.
401/403. (Behavioral change)TryHandleAsync returns true, exception details aren’t logged. (Behavioral change)WebApplicationBuilder. (Source incompatible, RC1)You can find the complete list at Microsoft EF Core 10 Breaking Changes page. Here's the brief summary:
json type instead of nvarchar(max). A migration may alter existing columns. Mitigate by setting compat level <170 or explicitly forcing nvarchar(max).ExecuteUpdateAsync signature change. Column setters now take a regular Func<…> (not an expression). Dynamic expression-tree code won’t compile; replace with imperative setters inside the lambda.GetDateTimeOffset (no offset) assumes UTC. Previously assumed local time. You can temporarily revert via AppContext.SetSwitch("Microsoft.Data.Sqlite.Pre10TimeZoneHandling", true).DateTimeOffset to REAL stores UTC. Conversion now happens before writing; revertable with the same switch.GetDateTime (with offset) returns UTC DateTime (DateTimeKind.Utc). Was Local before. Same temporary switch if needed.ExecuteUpdateAsync callers to use the new delegate form.Default .NET images now use Ubuntu.
ActivitySource behavior tweaks; generic math shift behavior aligned; W3C trace context is default; DriveInfo reports Linux FS types; InlineArray size rules tightened; System.Linq.AsyncEnumerable included in core libs...
Stricter X500 name validation; OpenSSL primitives unsupported on macOS; some key members nullable/renamed; env var rename to DOTNET_OPENSSL_VERSION_OVERRIDE.
Config preserves nulls; logging/package/trim annotations changes; some trim-unsafe code annotations removed.
ICU env var renamed; single-file apps stop probing executable dir for native libs; DllImport search path tightened.
Networking:
HTTP/3 disabled by default when trimming; default cert revocation check now Online; browser clients stream responses by default; URI length limits removed.
dotnet --interactive defaults to true; tool packages are RID-specific; workload sets default; dotnet new sln uses SLNX; restore audits transitives; local tool install creates manifest by default; project.json not supported; stricter NuGet validation/errors.
WinForms/WPF:
Multiple API obsoletions/parameter renames; rendering/behavior tweaks; stricter XAML rules (e.g., disallow empty row/column definitions or incorrect usage of DynamicResource will crash).
As you can see from the picture below, .NET 10 has long term support therefore it will be maintained for 3 years until November 2028.
Click 👉 https://dotnet.microsoft.com/en-us/download/dotnet/10.0 to download the latest release candidate (currently RC.1).
Also to use the latest features, download/update your Visual Studio to the latest 👉 https://visualstudio.microsoft.com/downloads/