Skip to content

Conversation

@gewarren
Copy link
Contributor

@gewarren gewarren commented Nov 7, 2025

@gewarren gewarren marked this pull request as ready for review November 7, 2025 01:34
@gewarren gewarren requested review from a team and JamesNK as code owners November 7, 2025 01:34
Copilot AI review requested due to automatic review settings November 7, 2025 01:34
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for .NET 10 across the documentation, updating version references, TFMs, target platform versions, zone pivots, and related configuration files to include .NET 10 alongside existing versions.

Key changes

  • Added .NET 10 TFM (net10.0) and preprocessor symbols (NET10_0, NET10_0_OR_GREATER) to framework documentation.
  • Updated .NET Standard compatibility tables to include version 10.0 support.
  • Added .NET 10 zone pivots for versioned documentation sections.

Reviewed Changes

Copilot reviewed 29 out of 32 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
includes/preprocessor-symbols.md Added .NET 10 preprocessor symbols and TFM definitions
includes/net-standard-*.md Updated version support tables to include .NET 10.0
docs/zone-pivot-groups.yml Added .NET 10 and .NET 11 Preview pivot options
docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md Updated zone pivot to include dotnet-10-0
docs/standard/net-standard.md Updated references to .NET versions and TFMs to include .NET 10
docs/standard/library-guidance/cross-platform-targeting.md Updated date metadata
docs/standard/frameworks.md Added .NET 10 TFMs, OS-specific TFMs, and target platform versions; fixed heading reference typo
docs/standard/analyzers/platform-compat-analyzer.md Updated platform compatibility description
docs/index.yml Updated API reference URLs to .NET 10
docs/fsharp/index.yml Removed version-specific API reference
docs/framework/install/versions-and-dependencies.md Added Windows 11 September 2025 Release version support
docs/framework/install/on-windows-and-server.md Added Windows 11 25H2 to compatibility table
docs/core/whats-new/dotnet-6.md Fixed TFM documentation link reference
docs/core/project-sdk/msbuild-props.md Added .NET 10 analyzer version options; removed .NET 7-specific notes; updated example versions
docs/core/project-sdk/msbuild-props-desktop.md Fixed TFM documentation link reference
docs/core/porting/versioning-sdk-msbuild-vs.md Removed ms.author metadata; updated date
docs/core/install/windows.md Added .NET 10 to compatibility table and Visual Studio version requirements; improved heading capitalization
docs/core/docker/build-container.md Added .NET 10 zone pivot sections; consolidated code snippets
docs/core/docker/snippets/App/* Added new .NET 9-based Docker example files
docs/core/docker/snippets/9.0/App/Program.cs Removed (consolidated to parent directory)
docs/core/docker/snippets/8.0/App/* Removed .NET 8 example files
Comments suppressed due to low confidence (1)

docs/core/install/windows.md:267

  • According to the Markdown writing style guidelines, list items should use the Oxford comma. The list should read "always, never, or nextSession" which is correct, but guidelines also require list items to end with periods if they are more than three words. These list items are complete sentences and should end with periods.
- `never` retains previous installations and requires manual intervention to remove previous .NET installations.
- `always` removes previous installations after the new version is installed. This is the default behavior in .NET.
- `nextSession` defers the removal until the next logon session from members in the Administrators group.
- Values are case-insensitive and invalid values default to `always`.

- title: "ASP.NET Core API reference"
summary: API reference documentation for ASP.NET Core
url: ../api/index.md?view=view=aspnetcore-9.0&preserve-view=true
url: ../api/index.md?view=view=aspnetcore-10.0&preserve-view=true
Copy link

Copilot AI Nov 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The URL contains a duplicate "view=" parameter. It should be ../api/index.md?view=aspnetcore-10.0&preserve-view=true not ../api/index.md?view=view=aspnetcore-10.0&preserve-view=true.

Suggested change
url: ../api/index.md?view=view=aspnetcore-10.0&preserve-view=true
url: ../api/index.md?view=aspnetcore-10.0&preserve-view=true

Copilot uses AI. Check for mistakes.
> [!NOTE]
>
> - Starting in the .NET 8 SDK, `PublishRelease` defaults to `true` for projects that target .NET 8 or later. For more information, see ['dotnet publish' uses Release configuration](../compatibility/sdk/8.0/dotnet-publish-config.md).
> - This property does not affect the behavior of `dotnet build /t:Publish`, and it only changes the configuration only when publishing via the .NET CLI.
Copy link

Copilot AI Nov 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence has a redundancy issue. It reads "it only changes the configuration only when publishing" which repeats "only" twice. The corrected version should be "it changes the configuration only when publishing via the .NET CLI."

Suggested change
> - This property does not affect the behavior of `dotnet build /t:Publish`, and it only changes the configuration only when publishing via the .NET CLI.
> - This property does not affect the behavior of `dotnet build /t:Publish`, and it changes the configuration only when publishing via the .NET CLI.

Copilot uses AI. Check for mistakes.
The .NET SDK is designed to be able to support newly released APIs for an individual platform without a new version of the base TFM. This enables you to access platform-specific functionality without waiting for a major release of .NET. You can gain access to these newly released APIs by incrementing the platform version in the TFM. For example, if the Android platform added API level 32 APIs in a .NET 6.0.x SDK update, you could access them by using the TFM `net6.0-android32.0`.
The .NET SDK is designed to be able to support newly released APIs for an individual platform without a new version of the base TFM. This enables you to access platform-specific functionality without waiting for a major release of .NET. You can gain access to these newly released APIs by incrementing the platform version in the TFM. For example, if the Android platform added API level 34 APIs in a .NET 8.0.x SDK update, you could access them by using the TFM `net8.0-android34.0`.

When an OS-specific TFM doesn't specify the platform version explicitly, it has an implied value that can be inferred from the base TFM and platform name. For example, the default platform version for Android in .NET 9 is `35.0`, which means that `net9.0-android` is shorthand for the canonical `netp.0-android35.0` TFM. The shorthand form is intended for use in project files only, and is expanded to the canonical form by the .NET SDK's MSBuild targets before being passed to other tools, such as NuGet.
Copy link

Copilot AI Nov 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a typo in the TFM. It should be net9.0-android35.0 not netp.0-android35.0. The "9" is missing after "net".

Suggested change
When an OS-specific TFM doesn't specify the platform version explicitly, it has an implied value that can be inferred from the base TFM and platform name. For example, the default platform version for Android in .NET 9 is `35.0`, which means that `net9.0-android` is shorthand for the canonical `netp.0-android35.0` TFM. The shorthand form is intended for use in project files only, and is expanded to the canonical form by the .NET SDK's MSBuild targets before being passed to other tools, such as NuGet.
When an OS-specific TFM doesn't specify the platform version explicitly, it has an implied value that can be inferred from the base TFM and platform name. For example, the default platform version for Android in .NET 9 is `35.0`, which means that `net9.0-android` is shorthand for the canonical `net9.0-android35.0` TFM. The shorthand form is intended for use in project files only, and is expanded to the canonical form by the .NET SDK's MSBuild targets before being passed to other tools, such as NuGet.

Copilot uses AI. Check for mistakes.
| Universal Windows Platform | uap [uap10.0]<br>uap10.0 [win10] [netcore50] |

\* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [.NET 5+ OS-specific TFMs](#net-5-os-specific-tfms).
\* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [.OS-specific TFMs](#os-specific-tfms).
Copy link

Copilot AI Nov 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The period is misplaced in this heading reference. It should be "OS-specific TFMs" without the leading period.

Suggested change
\* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [.OS-specific TFMs](#os-specific-tfms).
\* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [OS-specific TFMs](#os-specific-tfms).

Copilot uses AI. Check for mistakes.
Copy link
Member

@BillWagner BillWagner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This LGTM @gewarren

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants