Add release notes for .NET 10 RC 2 across various components (#10112)
* Add release notes for .NET 10 RC 2 across various components * Clarify scaffold replacement instructions for RC2 PR generation * chore: clean markdownlint issues in preview/RC automation prompt files * [RC2] F# release notes (#10095) * Update fsharp.md for RC 2 scaffold * Update release-notes/10.0/preview/rc2/fsharp.md --------- Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com> * [RC2] WPF release notes (#10101) * Add RC2 scaffold to WPF release notes * Nothing for WPF * Adjust wording with WinForms and WPF to match --------- Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com> * [RC2] ASP.NET Core release notes (#10089) * [RC2] EF Core release notes (#10094) * Update efcore.md for RC 2 scaffold * EF Core release notes for rc.2 --------- Co-authored-by: Shay Rojansky <roji@roji.org> * Update libraries.md for RC 2 scaffold (#10096) * Update runtime.md for RC 2 scaffold (#10097) * [RC2] SDK release notes (#10098) * Add RC2 scaffold to SDK release notes and normalize list markers * Add notes for .NET TaskHost * Fix linting --------- Co-authored-by: Chet Husk <chusk3@gmail.com> * [RC2] .NET MAUI release notes (#10093) * Update dotnetmaui.md for RC 2 scaffold * Update .NET MAUI release notes for RC 2 This update includes new features and improvements for .NET MAUI in the .NET 10 RC 2 release, such as microphone permission handling, SafeAreaEdges support, and XAML source generation enhancements. * Update release-notes/10.0/preview/rc2/dotnetmaui.md Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> * Update dotnetmaui.md with Android API 36.1 details Added details about Android API 36.1 bindings, usage instructions, and installation steps. --------- Co-authored-by: David Ortinau <david.ortinau@microsoft.com> Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com> * Update release-notes/10.0/preview/rc2/README.md --------- Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com> Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com> Co-authored-by: Shay Rojansky <roji@roji.org> Co-authored-by: Chet Husk <chusk3@gmail.com> Co-authored-by: David Ortinau <david.ortinau@microsoft.com> Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com> Co-authored-by: James Montemagno <james.montemagno@gmail.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# .NET 10 RC 2 - Release Notes
|
||||
|
||||
.NET 10 RC 2 released on October 14, 2025. Find more information on new features released in .NET 10 RC 2 by browsing through the release notes below:
|
||||
.NET 10 RC 2 released on October 14th, 2025. Find more information on new features released in .NET 10 RC 2 by browsing through the release notes below:
|
||||
|
||||
- [Libraries](./libraries.md)
|
||||
- [Runtime](./runtime.md)
|
||||
|
||||
18
release-notes/10.0/preview/rc2/aspnetcore.md
Normal file
18
release-notes/10.0/preview/rc2/aspnetcore.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# ASP.NET Core in .NET 10 RC 2 - Release Notes
|
||||
|
||||
This release was focused on bug fixes and other quality improvements.
|
||||
|
||||
ASP.NET Core updates in .NET 10 RC2:
|
||||
|
||||
- [What's new in ASP.NET Core in .NET 10](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) documentation.
|
||||
- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core)
|
||||
- [Roadmap](https://aka.ms/aspnet/roadmap)
|
||||
|
||||
.NET 10 RC2:
|
||||
|
||||
- [Discussion](https://aka.ms/dotnet/10/rc2)
|
||||
- [Release notes](README.md)
|
||||
|
||||
## Community contributors
|
||||
|
||||
Thank you everyone who tested and provided feedback on the .NET 10 Release Candidate!
|
||||
3
release-notes/10.0/preview/rc2/containers.md
Normal file
3
release-notes/10.0/preview/rc2/containers.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Containers in .NET 10 RC 2 - Release Notes
|
||||
|
||||
This RC 2 release does not contain new Container image features.
|
||||
8
release-notes/10.0/preview/rc2/csharp.md
Normal file
8
release-notes/10.0/preview/rc2/csharp.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# C# 14 updates in .NET 10 RC 2 - Release Notes
|
||||
|
||||
This RC 2 release does not contain new C# features.
|
||||
|
||||
C# 14 updates:
|
||||
|
||||
- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) documentation
|
||||
- [Breaking changes in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/breaking-changes/compiler%20breaking%20changes%20-%20dotnet%2010)
|
||||
107
release-notes/10.0/preview/rc2/dotnetmaui.md
Normal file
107
release-notes/10.0/preview/rc2/dotnetmaui.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# .NET MAUI in .NET 10 RC 2 - Release Notes
|
||||
|
||||
Here's a summary of what's new in .NET MAUI in this RC 2 release:
|
||||
|
||||
- .NET MAUI
|
||||
- [Microphone permission](#microphone-permission)
|
||||
- [SafeAreaEdges](#safeareaedges)
|
||||
- [XAML Source Generation](#xaml-source-generation)
|
||||
- [.NET for Android](#net-for-android)
|
||||
- [Android API 36.1](#android-api-36.1)
|
||||
- [.NET for iOS, Mac Catalyst, macOS, tvOS](#net-for-ios-mac-catalyst-macos-tvos)
|
||||
- [Xcode 26](#xcode-26)
|
||||
|
||||
## Feature
|
||||
|
||||
Feature summary
|
||||
|
||||
.NET MAUI updates in .NET 10:
|
||||
|
||||
- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation.
|
||||
|
||||
## .NET MAUI
|
||||
|
||||
This release has been focused on stabilizing the SDK.
|
||||
|
||||
### Microphone permission
|
||||
|
||||
We have added the Windows implementation for `Permissions.RequestAsync<Permissions.Microphone>()` to request and check access permission for the device microphone.
|
||||
|
||||
### SafeAreaEdges
|
||||
|
||||
Support for `SafeAreaEdges` has been added to Android for supporting edge-to-edge and managing content relative to keyboard and unsafe areas of the device display.
|
||||
|
||||
### XAML Source Generation
|
||||
|
||||
This release includes improvements to XAML source generation with notable improvements to debug time view inflation. To enable this in your project add the following to your project file.
|
||||
|
||||
```xml
|
||||
<PropertyGroup>
|
||||
<MauiXamlInflator>SourceGen</MauiXamlInflator>
|
||||
</PropertyGroup>
|
||||
```
|
||||
|
||||
## .NET for Android
|
||||
|
||||
This release includes continued integration with multiple .NET runtimes, and several bug fixes.
|
||||
|
||||
### Android API 36.1
|
||||
|
||||
Android API 36.1 bindings are now available thanks to the contribution and collaboration of the [Uno Platform](https://platform.uno/) team.
|
||||
|
||||
To try out the new APIs, you can opt your project into the new `net10.0-android36.1` target framework:
|
||||
|
||||
```xml
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0-android36.1</TargetFramework>
|
||||
<EnablePreviewFeatures>true</EnablePreviewFeatures>
|
||||
<!-- Remainder of your .csproj -->
|
||||
```
|
||||
|
||||
Note that if omitted, `net10.0-android` will default to API 36.0. `$(EnablePreviewFeatures)` will not be required in future .NET 10 releases.
|
||||
|
||||
To *use* an Android 36.1-only API you can use the `OperatingSystem` class to check the Android version at runtime:
|
||||
|
||||
```csharp
|
||||
if (OperatingSystem.IsAndroidVersionAtLeast(36, 1))
|
||||
{
|
||||
// Call some Android 36.1 API here
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fallback for older OS versions
|
||||
ShowToast("Android 36.1+ is required for this feature");
|
||||
}
|
||||
```
|
||||
|
||||
For a full sample using Android 36.1 APIs, see our [Pdf Annotator sample on GitHub](https://github.com/dotnet/android-samples/tree/main/PdfAnnotator).
|
||||
|
||||
To install the Android 36.1 platform, you can go to **Tools** > **Android** > **Android SDK Manager**. Under the gear icon in the bottom right, change **Repository*** to **Full List**. This allows you to install `Android SDK Platform 36.1`.
|
||||
|
||||
### (Experimental) CoreCLR
|
||||
|
||||
We continue to work on enabling Android apps to run on the CoreCLR runtime (instead of Mono). To use it, add the following to your project file for Android builds:
|
||||
|
||||
```xml
|
||||
<!-- Use CoreCLR on Android -->
|
||||
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">
|
||||
<UseMonoRuntime>false</UseMonoRuntime>
|
||||
</PropertyGroup>
|
||||
```
|
||||
|
||||
Please try this in your applications and report any issues; when filing feedback, state that you are using UseMonoRuntime=false. Expect that application size is currently larger than with Mono and that debugging and some runtime diagnostics are not fully functional yet; these areas are actively being improved. This is an experimental feature and not intended for production use.
|
||||
|
||||
A detailed list of Android changes can be found on the [dotnet/android GitHub releases](https://github.com/dotnet/android/releases/).
|
||||
|
||||
## .NET for iOS, Mac Catalyst, macOS, tvOS
|
||||
|
||||
This release includes continued integration with multiple .NET runtimes, and several bug fixes.
|
||||
|
||||
### Xcode 26
|
||||
|
||||
Xcode 26 bindings have been updated and are available now for both for targeting .NET 9 and .NET 10 RC2. This is compatible with Xcode 26.0 and 26.1.
|
||||
|
||||
## Contributors
|
||||
|
||||
Thank you contributors! ❤️
|
||||
13
release-notes/10.0/preview/rc2/efcore.md
Normal file
13
release-notes/10.0/preview/rc2/efcore.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Entity Framework Core in .NET 10 RC 2 - Release Notes
|
||||
|
||||
Here's a summary of what's new in Entity Framework Core in this RC 2 release:
|
||||
|
||||
- Numerous fixes for [the new EF complex JSON support](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew#json).
|
||||
- [Stop spanning all migrations with a single transaction](https://github.com/dotnet/efcore/issues/35096).
|
||||
- [Use ExecutionStrategy for query execution (for retrying)](https://github.com/dotnet/efcore/issues/35692).
|
||||
- [Analyzer warnings for string concatenation in raw SQL APIs](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew#warn-for-string-concatenation-with-raw-sql-apis).
|
||||
|
||||
For a full list of changes completed in RC 2, [see this](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20state%3Aclosed%20label%3Arc-2%20milestone%3A10.0.0).
|
||||
|
||||
- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation
|
||||
- [Breaking change in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/breaking-changes)
|
||||
3
release-notes/10.0/preview/rc2/fsharp.md
Normal file
3
release-notes/10.0/preview/rc2/fsharp.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# F# in .NET 10 RC 2 - Release Notes
|
||||
|
||||
This RC 2 release does not contain new F# language features. View the [What's new in F#](https://fsharp.github.io/fsharp-compiler-docs/release-notes/Language.html) documentation to learn more.
|
||||
13
release-notes/10.0/preview/rc2/libraries.md
Normal file
13
release-notes/10.0/preview/rc2/libraries.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Libraries in .NET 10 RC 2 - Release Notes
|
||||
|
||||
Here's a summary of what's new in Libraries in this RC 2 release:
|
||||
|
||||
- [Feature](#feature)
|
||||
|
||||
## Feature
|
||||
|
||||
Feature summary
|
||||
|
||||
.NET Libraries updates in .NET 10:
|
||||
|
||||
- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation
|
||||
23
release-notes/10.0/preview/rc2/runtime.md
Normal file
23
release-notes/10.0/preview/rc2/runtime.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Runtime updates in .NET 10 Release Candidate 2
|
||||
|
||||
Here's a summary of what's new in Runtime in this RC 2 release:
|
||||
|
||||
- [Feature](#feature)
|
||||
|
||||
## Feature
|
||||
|
||||
Feature summary
|
||||
|
||||
This release was focused on quality improvements as we near general availability of .NET 10. It is covered by a go-live license, and we encourage developers today to try it out and provide feedback on anything that you find in your development so we can incorporate any additional enhancements into the final release.
|
||||
|
||||
Runtime updates in .NET 10 Release Candidate 2:
|
||||
|
||||
- [What's new in the .NET Runtime in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation
|
||||
- (Changelog link to be updated when tag is available)
|
||||
|
||||
.NET 10 RC 2:
|
||||
|
||||
- [Discussion](https://aka.ms/dotnet/10/rc2)
|
||||
- [Release notes](README.md)
|
||||
- [SDK release notes](sdk.md)
|
||||
- [Libraries release notes](libraries.md)
|
||||
102
release-notes/10.0/preview/rc2/sdk.md
Normal file
102
release-notes/10.0/preview/rc2/sdk.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# SDK in .NET 10 RC 2 - Release Notes
|
||||
|
||||
Here's a summary of what's new in SDK in this RC 2 release:
|
||||
|
||||
- [Use .NET MSBuild Tasks with .NET Framework MSBuild](#use-net-msbuild-tasks-with-net-framework-msbuild
|
||||
- [What's new in the .NET Runtime in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation
|
||||
- (Changelog link to be updated when tag is available)
|
||||
|
||||
.NET 10 RC 2:
|
||||
|
||||
- [Discussion](https://aka.ms/dotnet/10/rc2)
|
||||
- [Release notes](README.md)
|
||||
- [Runtime release notes](runtime.md)
|
||||
- [Libraries release notes](libraries.md)
|
||||
|
||||
## Use .NET MSBuild Tasks with .NET Framework MSBuild
|
||||
|
||||
MSBuild is the underlying build system for .NET, driving both build of projects (as seen in commands like
|
||||
`dotnet build` and `dotnet pack`), as well as acting as a general provider of information about projects
|
||||
(as seen in commands like `dotnet list package`, and implicitly used by commands like `dotnet run` to
|
||||
discover how a project wants to be executed).
|
||||
|
||||
When running `dotnet` CLI commands, the version of MSBuild that is used is the one that is shipped with the .NET SDK.
|
||||
However, when using Visual Studio, or invoking MSBuild directly, the version of MSBuild that is used is the one that
|
||||
is installed with Visual Studio. This has a few important differences, the _most_ important of which is that MSBuild
|
||||
running in Visual Studio (or through `msbuild.exe`) is a .NET Framework application, while MSBuild running in the
|
||||
`dotnet` CLI is a .NET application. This means that any MSBuild tasks that are written to run on .NET cannot be used
|
||||
when building in Visual Studio or when using `msbuild.exe`.
|
||||
|
||||
Until this release! Starting with .NET 10, `msbuild.exe` and Visual Studio 2026 will be able to run MSBuild tasks
|
||||
that are built for .NET. This means that you can now use the same MSBuild tasks when building in Visual Studio or
|
||||
using `msbuild.exe` as you do when building with the `dotnet` CLI. For most .NET users, this won't change anything,
|
||||
but for authors of custom MSBuild tasks, this means that you can now write your tasks to target .NET and have them
|
||||
work everywhere. Our goal with this change is to make it easier to write and share MSBuild tasks, and to allow
|
||||
task authors to take advantage of the latest features in .NET - in addition to reducing the difficulties around
|
||||
multi-targeting tasks to support both .NET Framework and .NET, and dealing with versions of .NET Framework dependencies
|
||||
that are implicitly-available in the MSBuild .NET Framework execution space.
|
||||
|
||||
### Configuring .NET Tasks
|
||||
|
||||
For Task Authors, opting in to this new behavior should be pretty simple - all it should take is changing
|
||||
your `UsingTask` declaration to tell MSBuild about your Task.
|
||||
|
||||
```xml
|
||||
<UsingTask TaskName="MyTask"
|
||||
AssemblyFile="path\to\MyTask.dll"
|
||||
Runtime="NET" # This is new!
|
||||
TaskFactory="TaskHostFactory" # And so is this!
|
||||
/>
|
||||
```
|
||||
|
||||
The `Runtime="NET"` and `TaskFactory="TaskHostFactory"` attributes tell the MSBuild engine how to run the Task:
|
||||
|
||||
- `Runtime="NET"` tells MSBuild that the Task is built for .NET (as opposed to .NET Framework)
|
||||
- `TaskFactory="TaskHostFactory"` tells MSBuild to use the `TaskHostFactory` to run the Task, which is an existing capability of MSBuild that allows tasks to be run out-of-process.
|
||||
|
||||
### Caveats and performance tuning
|
||||
|
||||
The above example is the simplest way to get started using .NET Tasks in MSBuild, but it has some limitations -
|
||||
because the `TaskHostFactory` always runs tasks out-of-process, our new .NET Task will always run in a separate
|
||||
process from MSBuild. This means that there is some minor overhead to running the Task because the MSBuild engine
|
||||
and the Task communicate over inter-process communication (IPC) instead of in-process communication. For most tasks,
|
||||
this overhead will be negligible, but for tasks that are run many times in a build, or that do quite a lot of
|
||||
logging, this overhead may be more significant.
|
||||
|
||||
With just a bit more work, the Task can be configured to still run in-process when running via `dotnet`:
|
||||
|
||||
```xml
|
||||
<UsingTask TaskName="MyTask"
|
||||
AssemblyFile="path\to\MyTask.dll"
|
||||
Runtime="NET"
|
||||
TaskFactory="TaskHostFactory"
|
||||
Condition="$(MSBuildRuntimeType) == 'Full'" # Applies to Visual Studio and msbuild.exe
|
||||
/>
|
||||
<UsingTask TaskName="MyTask"
|
||||
AssemblyFile="path\to\MyTask.dll"
|
||||
Runtime="NET"
|
||||
Condition="$(MSBuildRuntimeType) == 'Core'" # Applies to the `dotnet` CLI
|
||||
/>
|
||||
```
|
||||
|
||||
Thanks to the `Condition` feature of MSBuild, you can load a Task differently depending on whether MSBuild is running in .NET
|
||||
Framework (Visual Studio or `msbuild.exe`) or .NET (the `dotnet` CLI). In this example, the Task will run out-of-process when
|
||||
running in Visual Studio or `msbuild.exe`, but will run in-process when running in the `dotnet` CLI. This gives the best
|
||||
performance when running in the `dotnet` CLI, while still allowing the Task to be used in Visual Studio and `msbuild.exe`.
|
||||
|
||||
There are also small technical limitations to be aware of when using .NET Tasks in MSBuild - the most notable of which is
|
||||
that the `Host Object` feature of MSBuild Tasks is not yet supported for .NET Tasks running out-of-process. This means
|
||||
that if your Task relies on a Host Object, it will not work when running in Visual Studio or `msbuild.exe`. We are actively
|
||||
working on adding support for Host Objects in future releases.
|
||||
|
||||
### Future work
|
||||
|
||||
This is the first step in a longer journey to make MSBuild more flexible and capable.
|
||||
In future releases, we plan to add additional capabilities to MSBuild to make it easier to write and use .NET Tasks, including:
|
||||
|
||||
- Automatically discovering and loading .NET Tasks without needing to specify `Runtime` or `TaskFactory` metadata
|
||||
- Reducing the performance overhead of IPC between the MSBuild Engine and the Tasks when running out-of-process
|
||||
- Supporting the `Host Object` feature for .NET Tasks running out-of-process
|
||||
|
||||
Task Authors, give this a try and reach out to us with feedback at [dotnet/msbuild](https://github.com/dotnet/msbuild/issues/new).
|
||||
We're excited to enable a simpler way of working with MSBuild Tasks for everyone (including ourselves)!
|
||||
6
release-notes/10.0/preview/rc2/visualbasic.md
Normal file
6
release-notes/10.0/preview/rc2/visualbasic.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Visual Basic in .NET 10 RC 2 - Release Notes
|
||||
|
||||
This RC 2 release does not contain new Visual Basic features. Please checkout the latest documentation:
|
||||
|
||||
- [What's new in Visual Basic](https://learn.microsoft.com/dotnet/visual-basic/whats-new/) documentation
|
||||
- [Breaking changes](https://learn.microsoft.com/dotnet/visual-basic/whats-new/breaking-changes)
|
||||
7
release-notes/10.0/preview/rc2/winforms.md
Normal file
7
release-notes/10.0/preview/rc2/winforms.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WinForms .NET 10 RC2 Release Notes
|
||||
|
||||
The RC 2 release does not contain new Windows Forms feature additions.
|
||||
|
||||
Key Windows Forms updates in previous releases of .NET 10:
|
||||
|
||||
- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) documentation
|
||||
7
release-notes/10.0/preview/rc2/wpf.md
Normal file
7
release-notes/10.0/preview/rc2/wpf.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WPF in .NET 10 RC 2 - Release Notes
|
||||
|
||||
The RC 2 release does not contain new WPF feature additions.
|
||||
|
||||
Key WPF updates in previous releases of .NET 10:
|
||||
|
||||
- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) documentation
|
||||
Reference in New Issue
Block a user