diff --git a/api/index.md b/api/index.md
index 869ff65f2f2c2..ebb5c8077b90d 100644
--- a/api/index.md
+++ b/api/index.md
@@ -3,12 +3,12 @@ description: Explore Microsoft's comprehensive .NET API browser. Your ultimate r
layout: ApiBrowserPage
hide_bc: true
title: .NET API browser
-quickFilterColumn1: net-8.0,netframework-4.8,netstandard-2.1
-quickFilterColumn2: aspnetcore-8.0,efcore-8.0,net-maui-8.0
+quickFilterColumn1: net-9.0,netframework-4.8,netstandard-2.1
+quickFilterColumn2: aspnetcore-9.0,efcore-8.0,net-maui-8.0
quickFilterColumn3: azure-dotnet,ml-dotnet,spark-dotnet
ms.topic: landing-page
ms.custom: "updateeachrelease"
-ms.date: 11/14/2023
+ms.date: 11/10/2024
---
# .NET API browser
diff --git a/docs/csharp/index.yml b/docs/csharp/index.yml
index 3c6d2f16d6d51..35a03bc5ae2f8 100644
--- a/docs/csharp/index.yml
+++ b/docs/csharp/index.yml
@@ -195,7 +195,7 @@ tools:
imageSrc: /visualstudio/media/vs-ide-2022.svg
url: /visualstudio/windows
# Card
- - title: Visual Studio Code
+ - title: Visual Studio Code
imageSrc: /visualstudio/media/vs-code-logo.svg
url: https://code.visualstudio.com/docs/csharp/get-started
@@ -305,7 +305,7 @@ additionalContent:
# Card
- title: ".NET API reference"
summary: API reference documentation for .NET
- url: ../../api/index.md?view=net-8.0
+ url: ../../api/index.md?view=net-9.0
# Card
- title: ".NET Framework API reference"
summary: API reference documentation for .NET Framework
@@ -319,9 +319,9 @@ additionalContent:
summary: API reference documentation for ML.NET
url: ../../api/index.md?view=ml-dotnet&preserve-view=true
# Card
- - title: ".NET Platform Extensions API reference"
- summary: API reference documentation for .NET Platform Extensions
- url: ../../api/index.md?view=dotnet-plat-ext-8.0&preserve-view=true
+ - title: ".NET Package-provided API reference"
+ summary: Reference documentation for package-provided .NET APIs
+ url: ../../api/index.md?view=dotnet-9.0-pp&preserve-view=true
# footer (Optional; Remove if not applicable.)
footer: "Are you interested in contributing to the .NET docs? For more information, see our [contributor guide](/contribute/dotnet/dotnet-contribute)."
diff --git a/docs/csharp/language-reference/index.yml b/docs/csharp/language-reference/index.yml
index 335fc0003b769..71ea416d4ce7c 100644
--- a/docs/csharp/language-reference/index.yml
+++ b/docs/csharp/language-reference/index.yml
@@ -31,6 +31,8 @@ landingContent:
linkLists:
- linkListType: whats-new
links:
+ - text: "What's new in C# 13"
+ url: ../whats-new/csharp-13.md
- text: "What's new in C# 12"
url: ../whats-new/csharp-12.md
- text: "What's new in C# 11"
@@ -43,7 +45,7 @@ landingContent:
url: ../whats-new/breaking-changes.md
- text: Version compatibility
url: ../whats-new/version-update-considerations.md
-
+
- title: "Stay in touch"
linkLists:
diff --git a/docs/fsharp/index.yml b/docs/fsharp/index.yml
index d3aba920119aa..3e5526491cf31 100644
--- a/docs/fsharp/index.yml
+++ b/docs/fsharp/index.yml
@@ -54,7 +54,7 @@ landingContent:
- text: "F# library reference"
url: https://fsharp.github.io/fsharp-core-docs
- text: ".NET library reference"
- url: ../../api/index.md?view=net-8.0
+ url: ../../api/index.md?view=net-9.0
- title: "F# fundamentals"
linkLists:
@@ -121,6 +121,8 @@ landingContent:
linkLists:
- linkListType: whats-new
links:
+ - text: "What's new in F# 9"
+ url: whats-new/fsharp-9.md
- text: "What's new in F# 8"
url: whats-new/fsharp-8.md
- text: "What's new in F# 7"
diff --git a/docs/index.yml b/docs/index.yml
index 06c62445fbfef..bd76746e1555a 100644
--- a/docs/index.yml
+++ b/docs/index.yml
@@ -67,9 +67,9 @@ conceptualContent:
- url: core/tutorials/index.md
itemType: tutorial
text: .NET tutorials
- - url: core/whats-new/dotnet-8/overview.md
+ - url: core/whats-new/dotnet-9/overview.md
itemType: whats-new
- text: What's new in .NET 8
+ text: What's new in .NET 9
- url: https://dotnetfoundation.org
itemType: overview
text: .NET Foundation
@@ -368,7 +368,7 @@ additionalContent:
# Card
- title: ".NET API reference"
summary: API reference documentation for .NET
- url: ../api/index.md?view=net-8.0
+ url: ../api/index.md?view=net-9.0
# Card
- title: ".NET Framework API reference"
summary: API reference documentation for .NET Framework
@@ -376,15 +376,15 @@ additionalContent:
# Card
- title: "ASP.NET Core API reference"
summary: API reference documentation for ASP.NET Core
- url: ../api/index.md?view=view=aspnetcore-8.0&preserve-view=true
+ url: ../api/index.md?view=view=aspnetcore-9.0&preserve-view=true
# Card
- title: "ML.NET API reference"
summary: API reference documentation for ML.NET
url: ../api/index.md?view=ml-dotnet&preserve-view=true
# Card
- - title: ".NET Platform Extensions API reference"
- summary: API reference documentation for .NET Platform Extensions
- url: ../api/index.md?view=dotnet-plat-ext-8.0&preserve-view=true
+ - title: ".NET Package-provided API reference"
+ summary: Reference documentation for package-provided .NET APIs
+ url: ../api/index.md?view=dotnet-9.0-pp&preserve-view=true
# Card
- title: "C# language reference"
summary: C# language reference and specification
@@ -399,4 +399,4 @@ additionalContent:
url: visual-basic/language-reference/index.md
# footer (optional)
- footer: "Are you interested in contributing to the .NET docs? For more information, see our [contributor guide](/contribute/dotnet/dotnet-contribute)."
\ No newline at end of file
+ footer: "Are you interested in contributing to the .NET docs? For more information, see our [contributor guide](/contribute/dotnet/dotnet-contribute)."
diff --git a/docs/standard/frameworks.md b/docs/standard/frameworks.md
index 6e34b8448fa6a..dd3ad3ef99fa6 100644
--- a/docs/standard/frameworks.md
+++ b/docs/standard/frameworks.md
@@ -1,7 +1,7 @@
---
title: Target frameworks in SDK-style projects - .NET
description: Learn about target frameworks for .NET apps and libraries.
-ms.date: 12/12/2023
+ms.date: 11/11/2024
ms.service: dotnet
ms.custom: updateeachrelease
ms.subservice: standard-library
@@ -26,10 +26,8 @@ The following table defines the most common target frameworks, how they're refer
| Target framework | Latest
stable version | Target framework moniker (TFM) | Implemented
.NET Standard version |
|:----------------:|:---------------------------:|:------------------------------:|:---------------------------------------:|
+| .NET 9 | 9 | net9.0 | 2.1 |
| .NET 8 | 8 | net8.0 | 2.1 |
-| .NET 7 | 7 | net7.0 | 2.1 |
-| .NET 6 | 6 | net6.0 | 2.1 |
-| .NET 5 | 5 | net5.0 | 2.1 |
| .NET Standard | 2.1 | netstandard2.1 | N/A |
| .NET Core | 3.1 | netcoreapp3.1 | 2.1 |
| .NET Framework | 4.8.1 | net481 | 2.0 |
@@ -53,40 +51,49 @@ A target framework is typically referenced by a TFM. The following table shows t
### .NET 5+ OS-specific TFMs
-The `net5.0`, `net6.0`, `net7.0`, and `net8.0` TFMs include technologies that work across different platforms. Specifying an *OS-specific TFM* makes APIs that are specific to an operating system available to your app, for example, Windows Forms or iOS bindings. OS-specific TFMs also inherit every API available to their base TFM, for example, the `net6.0` TFM.
+The `net5.0`, `net6.0`, `net7.0`, `net8.0`, and `net.0` TFMs include technologies that work across different platforms. Specifying an *OS-specific TFM* makes APIs that are specific to an operating system available to your app, for example, Windows Forms or iOS bindings. OS-specific TFMs also inherit every API available to their base TFM, for example, the `net9.0` TFM.
.NET 5 introduced the `net5.0-windows` OS-specific TFM, which includes Windows-specific bindings for WinForms, WPF, and UWP APIs. .NET 6 and later versions have additional OS-specific TFMs, for example, `net6.0-ios`.
The following table shows the compatibility of the .NET 5+ TFMs.
-| TFM | Compatible with |
-|--------------------|-------------------------------------------------------------------------------------------------------------------------|
+| TFM | Compatible with |
+|----------------------|------------------------------------------------------------------|
| `net5.0` | net1..4 (with NU1701 warning)
netcoreapp1..3.1 (warning when WinForms or WPF is referenced)
netstandard1..2.1 |
-| `net5.0-windows` | netcoreapp1..3.1 (plus everything else inherited from `net5.0`) |
-| `net6.0` | (Subsequent version of `net5.0`) |
-| `net6.0-android` | `xamarin.android` (plus everything else inherited from `net6.0`) |
-| `net6.0-ios` | Everything inherited from `net6.0` |
-| `net6.0-maccatalyst` | Everything inherited from `net6.0` |
-| `net6.0-macos` | Everything inherited from `net6.0` |
-| `net6.0-tvos` | Everything inherited from `net6.0` |
-| `net6.0-windows` | (Subsequent version of `net5.0-windows`) |
-| `net7.0` | (Subsequent version of `net6.0`) |
-| `net7.0-android` | (Subsequent version of `net6.0-android`) |
-| `net7.0-ios` | (Subsequent version of `net6.0-ios`) |
-| `net7.0-maccatalyst` | (Subsequent version of `net6.0-maccatalyst`) |
-| `net7.0-macos` | (Subsequent version of `net6.0-macos`) |
-| `net7.0-tizen` | `tizen40` (plus everything else inherited from `net7.0`) |
-| `net7.0-tvos` | (Subsequent version of `net6.0-tvos`) |
-| `net7.0-windows` | (Subsequent version of `net6.0-windows`) |
-| `net8.0` | (Subsequent version of `net7.0`) |
-| `net8.0-android` | (Subsequent version of `net7.0-android`) |
-| `net8.0-browser` | Everything inherited from `net8.0` |
-| `net8.0-ios` | (Subsequent version of `net7.0-ios`) |
-| `net8.0-maccatalyst` | (Subsequent version of `net7.0-maccatalyst`) |
-| `net8.0-macos` | (Subsequent version of `net7.0-macos`) |
-| `net8.0-tizen` | (Subsequent version of `net7.0-tizen`) |
-| `net8.0-tvos` | (Subsequent version of `net7.0-tvos`) |
-| `net8.0-windows` | (Subsequent version of `net7.0-windows`) |
+| `net5.0-windows` | netcoreapp1..3.1 (plus everything else inherited from `net5.0`) |
+| `net6.0` | (Subsequent version of `net5.0`) |
+| `net6.0-android` | `xamarin.android` (plus everything else inherited from `net6.0`) |
+| `net6.0-ios` | Everything inherited from `net6.0` |
+| `net6.0-maccatalyst` | Everything inherited from `net6.0` |
+| `net6.0-macos` | Everything inherited from `net6.0` |
+| `net6.0-tvos` | Everything inherited from `net6.0` |
+| `net6.0-windows` | (Subsequent version of `net5.0-windows`) |
+| `net7.0` | (Subsequent version of `net6.0`) |
+| `net7.0-android` | (Subsequent version of `net6.0-android`) |
+| `net7.0-ios` | (Subsequent version of `net6.0-ios`) |
+| `net7.0-maccatalyst` | (Subsequent version of `net6.0-maccatalyst`) |
+| `net7.0-macos` | (Subsequent version of `net6.0-macos`) |
+| `net7.0-tizen` | `tizen40` (plus everything else inherited from `net7.0`) |
+| `net7.0-tvos` | (Subsequent version of `net6.0-tvos`) |
+| `net7.0-windows` | (Subsequent version of `net6.0-windows`) |
+| `net8.0` | (Subsequent version of `net7.0`) |
+| `net8.0-android` | (Subsequent version of `net7.0-android`) |
+| `net8.0-browser` | Everything inherited from `net8.0` |
+| `net8.0-ios` | (Subsequent version of `net7.0-ios`) |
+| `net8.0-maccatalyst` | (Subsequent version of `net7.0-maccatalyst`) |
+| `net8.0-macos` | (Subsequent version of `net7.0-macos`) |
+| `net8.0-tizen` | (Subsequent version of `net7.0-tizen`) |
+| `net8.0-tvos` | (Subsequent version of `net7.0-tvos`) |
+| `net8.0-windows` | (Subsequent version of `net7.0-windows`) |
+| `net9.0` | (Subsequent version of `net8.0`) |
+| `net9.0-android` | (Subsequent version of `net8.0-android`) |
+| `net9.0-browser` | (Subsequent version of `net8.0-browser`) |
+| `net9.0-ios` | (Subsequent version of `net8.0-ios`) |
+| `net9.0-maccatalyst` | (Subsequent version of `net8.0-maccatalyst`) |
+| `net9.0-macos` | (Subsequent version of `net8.0-macos`) |
+| `net9.0-tizen` | (Subsequent version of `net8.0-tizen`) |
+| `net9.0-tvos` | (Subsequent version of `net8.0-tvos`) |
+| `net9.0-windows` | (Subsequent version of `net8.0-windows`) |
To make your app portable across different platforms but still have access to OS-specific APIs, you can target multiple OS-specific TFMs and add platform guards around OS-specific API calls using `#if` preprocessor directives. For a list of the available symbols, see [Preprocessor symbols](#preprocessor-symbols).
@@ -94,11 +101,9 @@ To make your app portable across different platforms but still have access to OS
Use these guidelines to determine which TFM to use in your app:
-- Apps that are portable to multiple platforms should target a base TFM, for example, `net8.0`. This includes most libraries but also ASP.NET Core and Entity Framework.
-
-- Platform-specific libraries should target platform-specific flavors. For example, WinForms and WPF projects should target `net8.0-windows`.
-
-- Cross-platform application models (Xamarin Forms, ASP.NET Core) and bridge packs (Xamarin Essentials) should at least target the base TFM, for example, `net8.0`, but might also target additional platform-specific flavors to light-up more APIs or features.
+- Apps that are portable to multiple platforms should target a base TFM, for example, `net9.0`. This includes most libraries but also ASP.NET Core and Entity Framework.
+- Platform-specific libraries should target platform-specific flavors. For example, WinForms and WPF projects should target `net9.0-windows`.
+- Cross-platform application models (Xamarin Forms, ASP.NET Core) and bridge packs (Xamarin Essentials) should at least target the base TFM, for example, `net9.0`, but might also target additional platform-specific flavors to light-up more APIs or features.
#### OS version in TFMs
@@ -110,9 +115,8 @@ The following table shows the default target platform values (TPV) for each .NET
| .NET version | Android | iOS | Mac Catalyst | macOS | tvOS | Tizen | Windows |
|--------------|--------:|-----:|-------------:|------:|-----:|------:|--------:|
-| .NET 6 | 31.0 | 15.0 | 15.0 | 12.0 | 15.1 | - | 7.0 |
-| .NET 7 | 33.0 | 16.1 | 16.1 | 13.0 | 16.1 | 7.0 | 7.0 |
-| .NET 8 | 34.0 | 17.2 | 17.2 | 14.2 | 17.1 | 8.0 | 7.0 |
+| .NET 8 | 34.0 | 17.2 | 17.2 | 14.2 | 17.1 | 7.0 | 10.0 |
+| .NET 9 | 35.0 | 18.0 | 18.0 | 15.0 | | 7.0 | 10.0 |
> [!NOTE]
> On Apple platforms (iOS, macOS, tvOS, and Mac Catalyst) in .NET 8 and earlier,
@@ -155,14 +159,14 @@ Here is an example excerpt of a project file that uses the `TargetFramework` and
## How to specify a target framework
-Target frameworks are specified in a project file. When a single target framework is specified, use the [TargetFramework element](../core/project-sdk/msbuild-props.md#targetframework). The following console app project file demonstrates how to target .NET 8:
+Target frameworks are specified in a project file. When a single target framework is specified, use the [TargetFramework element](../core/project-sdk/msbuild-props.md#targetframework). The following console app project file demonstrates how to target .NET 9:
```xml
Exe
- net8.0
+ net9.0
diff --git a/docs/standard/library-guidance/cross-platform-targeting.md b/docs/standard/library-guidance/cross-platform-targeting.md
index 2edfdf3e9cac7..327e0fa5523a8 100644
--- a/docs/standard/library-guidance/cross-platform-targeting.md
+++ b/docs/standard/library-guidance/cross-platform-targeting.md
@@ -1,7 +1,7 @@
---
title: Cross-platform targeting for .NET libraries
description: Best practice recommendations for creating cross-platform .NET libraries.
-ms.date: 11/14/2023
+ms.date: 11/11/2024
---
# Cross-platform targeting
@@ -33,7 +33,7 @@ If your project targets .NET or .NET Standard and compiles successfully, it does
✔️ DO include a `net6.0` target or later if you require new APIs introduced in a modern .NET.
-> .NET 6 and later apps can use a `netstandard2.0` target, so `net6.0` isn't required. You should explicitly target `net6.0`, `net7.0`, or `net8.0` when you want to use newer .NET APIs.
+> .NET 6 and later apps can use a `netstandard2.0` target, so `net6.0` isn't required. You should explicitly target `net6.0`, `net7.0`, `net8.0`, or `net9.0` when you want to use newer .NET APIs.
❌ AVOID including a `netstandard1.x` target.
diff --git a/docs/standard/net-standard.md b/docs/standard/net-standard.md
index c0f2c6237696f..6e9cccbe1fdf9 100644
--- a/docs/standard/net-standard.md
+++ b/docs/standard/net-standard.md
@@ -1,7 +1,7 @@
---
title: .NET Standard
description: Learn about .NET Standard, its versions, and the .NET implementations that support it.
-ms.date: 07/09/2024
+ms.date: 11/11/2024
ms.service: dotnet
ms.subservice: standard-library
ms.custom: "updateeachrelease"
@@ -60,7 +60,7 @@ The primary distribution vehicle for the .NET Standard reference assemblies is N
NuGet packages target one or more [frameworks](frameworks.md). .NET Standard packages target the ".NET Standard" framework. You can target the .NET Standard framework using the `netstandard` [compact target framework moniker (TFM)](frameworks.md), for example, `netstandard1.4`. Libraries that are intended to run on multiple implementations of .NET should target the .NET Standard framework. For the broadest set of APIs, target `netstandard2.0`, because the number of available APIs more than doubled between .NET Standard 1.6 and 2.0.
-The [`NETStandard.Library`](https://www.nuget.org/packages/NETStandard.Library/) metapackage references the complete set of NuGet packages that define .NET Standard. The most common way to target `netstandard` is by referencing this metapackage. It describes and provides access to the ~40 .NET libraries and associated APIs that define .NET Standard. You can reference additional packages that target `netstandard` to get access to additional APIs.
+The [`NETStandard.Library`](https://www.nuget.org/packages/NETStandard.Library/) metapackage references the complete set of NuGet packages that define .NET Standard. The most common way to target `netstandard` is by referencing this metapackage. It describes and provides access to the ~40 .NET libraries and associated APIs that define .NET Standard. You can reference additional packages that target `netstandard` to get access to additional APIs.
### Versioning
@@ -88,34 +88,34 @@ If you only need to consume .NET Standard 2.0 libraries in your projects, you ca
## .NET 5+ and .NET Standard
-.NET 5, .NET 6, .NET 7, .NET 8, and .NET 9 are single products with a uniform set of capabilities and APIs that can be used for Windows desktop apps and cross-platform console apps, cloud services, and websites. The .NET 8 [TFMs](frameworks.md), for example, reflect this broad range of scenarios:
+.NET 5, .NET 6, .NET 7, .NET 8, and .NET 9 are single products with a uniform set of capabilities and APIs that can be used for Windows desktop apps and cross-platform console apps, cloud services, and websites. The .NET 9 [TFMs](frameworks.md), for example, reflect this broad range of scenarios:
-- `net8.0`
+- `net9.0`
- This TFM is for code that runs everywhere. With a few exceptions, it includes only technologies that work cross-platform. For .NET 8 code, `net8.0` replaces both `netcoreapp` and `netstandard` TFMs.
+ This TFM is for code that runs everywhere. With a few exceptions, it includes only technologies that work cross-platform. For .NET 9 code, `net9.0` replaces both `netcoreapp` and `netstandard` TFMs.
-- `net8.0-windows`
+- `net9.0-windows`
- This is an example of an [OS-specific TFM](frameworks.md#net-5-os-specific-tfms) that add OS-specific functionality to everything that `net8.0` refers to.
+ This is an example of an [OS-specific TFM](frameworks.md#net-5-os-specific-tfms) that adds OS-specific functionality to everything that `net9.0` refers to.
-### When to target `net8.0` vs. `netstandard`
+### When to target `netx.0` vs. `netstandard`
-For existing code that targets .NET Standard 2.0 or later, there's no need to change the TFM to `net8.0` or a later TFM. .NET 8 implements .NET Standard 2.1 and earlier. The only reason to retarget from .NET Standard to .NET 8+ would be to gain access to more runtime features, language features, or APIs. For example, to use C# 9, you need to target .NET 5 or a later version. You can multitarget .NET 8 and .NET Standard to get access to newer features and still have your library available to other .NET implementations.
+For existing code that targets .NET Standard 2.0 or later, there's no need to change the TFM to `net8.0` or a later TFM. .NET 8 and .NET 9 implement .NET Standard 2.1 and earlier. The only reason to retarget from .NET Standard to .NET 8+ would be to gain access to more runtime features, language features, or APIs. For example, to use C# 9, you need to target .NET 5 or a later version. You can multitarget .NET and .NET Standard to get access to newer features and still have your library available to other .NET implementations.
> [!NOTE]
-> If your project targets .NET Standard 1.x, we recommend you retarget it to .NET Standard 2.0 or .NET 6+. For more information, see [Warning emitted for .NET Standard 1.x targets](../core/compatibility/sdk/9.0/netstandard-warning.md).
+> If your project targets .NET Standard 1.x, we recommend you retarget it to .NET Standard 2.0 or .NET 8+. For more information, see [Warning emitted for .NET Standard 1.x targets](../core/compatibility/sdk/9.0/netstandard-warning.md).
Here are some guidelines for new code for .NET 5+:
- App components
- If you're using libraries to break down an application into several components, we recommend you target `net8.0`. For simplicity, it's best to keep all projects that make up your application on the same version of .NET. Then you can assume the same BCL features everywhere.
+ If you're using libraries to break down an application into several components, we recommend you target `net9.0`. For simplicity, it's best to keep all projects that make up your application on the same version of .NET. Then you can assume the same BCL features everywhere.
- Reusable libraries
If you're building reusable libraries that you plan to ship on NuGet, consider the trade-off between reach and available feature set. .NET Standard 2.0 is the latest version that's supported by .NET Framework, so it gives good reach with a fairly large feature set. We don't recommend targeting .NET Standard 1.x, as you'd limit the available feature set for a minimal increase in reach.
- If you don't need to support .NET Framework, you could target .NET Standard 2.1 or .NET 8. We recommend you skip .NET Standard 2.1 and go straight to .NET 8. Most widely used libraries multi-target for both .NET Standard 2.0 and .NET 5+. Supporting .NET Standard 2.0 gives you the most reach, while supporting .NET 5+ ensures you can leverage the latest platform features for customers that are already on .NET 5+.
+ If you don't need to support .NET Framework, you could target .NET Standard 2.1 or .NET 9. We recommend you skip .NET Standard 2.1 and go straight to .NET 9. Most widely used libraries multi-target for both .NET Standard 2.0 and .NET 5+. Supporting .NET Standard 2.0 gives you the most reach, while supporting .NET 5+ ensures you can leverage the latest platform features for customers that are already on .NET 5+.
### .NET Standard problems
@@ -131,7 +131,7 @@ Here are some problems with .NET Standard that help explain why .NET 5 and later
The separation of the API specification from its implementations results in complex mapping between API specification versions and implementation versions. This complexity is evident in the table shown earlier in this article and the instructions for how to interpret it.
- **Solution in .NET 5+:** There's no separation between a .NET 5+ API specification and its implementation. The result is a simplified TFM scheme. There's one TFM prefix for all workloads: `net8.0` is used for libraries, console apps, and web apps. The only variation is a [suffix that specifies platform-specific APIs](frameworks.md#net-5-os-specific-tfms) for a particular platform, such as `net8.0-windows`. Thanks to this TFM naming convention, you can easily tell whether a given app can use a given library. No version number equivalents table, like the one for .NET Standard, is needed.
+ **Solution in .NET 5+:** There's no separation between a .NET 5+ API specification and its implementation. The result is a simplified TFM scheme. There's one TFM prefix for all workloads: `net9.0` is used for libraries, console apps, and web apps. The only variation is a [suffix that specifies platform-specific APIs](frameworks.md#net-5-os-specific-tfms) for a particular platform, such as `net9.0-windows`. Thanks to this TFM naming convention, you can easily tell whether a given app can use a given library. No version number equivalents table, like the one for .NET Standard, is needed.
- Platform-unsupported exceptions at run time
diff --git a/docs/welcome.md b/docs/welcome.md
index ea795c6462b2b..3f959d1ad6f1e 100644
--- a/docs/welcome.md
+++ b/docs/welcome.md
@@ -27,9 +27,9 @@ Also follow the latest .NET events:
For information about the latest features added to the .NET implementations and supported languages, see the following articles:
-- [What's new in .NET 8](core/whats-new/dotnet-8/overview.md)
+- [What's new in .NET 9](core/whats-new/dotnet-9/overview.md)
- [What's new in .NET Framework](framework/whats-new/index.md)
-- [What's new in C# 12](./csharp/whats-new/csharp-12.md)
+- [What's new in C# 13](./csharp/whats-new/csharp-13.md)
- [What's new for Visual Basic](visual-basic/whats-new/index.md)
## Documentation
diff --git a/docs/whats-new/index.yml b/docs/whats-new/index.yml
index 5f73dfa553c55..b511434f192b6 100644
--- a/docs/whats-new/index.yml
+++ b/docs/whats-new/index.yml
@@ -5,102 +5,102 @@ summary: Welcome to what's new in .NET and .NET docs. Use this page to navigate
metadata:
title: .NET what's new?
description: Learn about new .NET features and new and updated content in .NET docs.
- ms.date: 11/01/2024
+ ms.date: 11/11/2024
ms.topic: landing-page
landingContent:
-- title: .NET 9 release updates
- linkLists:
- - linkListType: whats-new
- links:
- - text: .NET 9
- url: ../core/whats-new/dotnet-9/overview.md
- - text: ASP.NET Core 9.0
- url: /aspnet/core/release-notes/aspnetcore-9.0
- - text: .NET MAUI 9
- url: /dotnet/maui/whats-new/dotnet-9
- - text: EF Core 9
- url: /ef/core/what-is-new/ef-core-9.0/whatsnew
-- title: .NET 8 release updates
- linkLists:
- - linkListType: whats-new
- links:
- - text: .NET 8
- url: ../core/whats-new/dotnet-8/overview.md
- - text: ASP.NET Core 8.0
- url: /aspnet/core/release-notes/aspnetcore-8.0
- - text: .NET MAUI 8
- url: /dotnet/maui/whats-new/dotnet-8
- - text: EF Core 8
- url: /ef/core/what-is-new/ef-core-8.0/whatsnew
- - text: Windows Forms (.NET 8)
- url: /dotnet/desktop/winforms/whats-new/net80
- - text: WPF (.NET 8)
- url: /dotnet/desktop/wpf/whats-new/net80
-- title: Latest documentation updates
- linkLists:
- - linkListType: whats-new
- links:
- - text: October 2024
- url: dotnet-docs-mod1.md
- - text: September 2024
- url: dotnet-docs-mod0.md
- - text: August 2024
- url: dotnet-docs-mod2.md
-- title: Language updates
- linkLists:
- - linkListType: whats-new
- links:
- - text: What's new in C# 12
- url: ../csharp/whats-new/csharp-12.md
- - text: What's new in F# 8
- url: ../fsharp/whats-new/fsharp-8.md
- - text: What's new for Visual Basic
- url: ../visual-basic/whats-new/index.md
-- title: Contribute to docs
- linkLists:
- - linkListType: overview
- links:
- - text: .NET docs repository
- url: https://github.com/dotnet/docs/blob/main/README.md
- - text: Project structure and labels for issues and pull requests
- url: /contribute/dotnet/labels-projects
- - text: .NET Foundation
- url: https://dotnetfoundation.org/
- - linkListType: concept
- links:
- - text: Microsoft docs contributor guide
- url: /contribute
- - text: .NET docs contributor guide
- url: /contribute/dotnet/dotnet-contribute
-- title: .NET developers
- linkLists:
- - linkListType: download
- links:
- - text: Download the .NET SDK
- url: https://dotnet.microsoft.com/download
- - linkListType: sample
- links:
- - text: .NET samples browser
- url: /samples/browse/?products=dotnet
- - linkListType: get-started
- links:
- - text: .NET on Q&A
- url: /answers/products/dotnet
- - text: .NET tech community forums
- url: https://techcommunity.microsoft.com/t5/net/ct-p/dotnet
- - linkListType: whats-new
- links:
- - text: Community
- url: https://dotnet.microsoft.com/platform/community
-- title: Release notes
- linkLists:
- - linkListType: whats-new
- links:
- - text: .NET
- url: https://github.com/dotnet/core/blob/main/release-notes/README.md
- - text: ASP.NET Core 8.0
- url: /aspnet/core/release-notes/aspnetcore-8.0
- - text: Visual Studio 2022
- url: /visualstudio/releases/2022/release-notes
- - text: Visual Studio Code
- url: https://code.visualstudio.com/updates
+ - title: .NET 9 release updates
+ linkLists:
+ - linkListType: whats-new
+ links:
+ - text: .NET 9
+ url: ../core/whats-new/dotnet-9/overview.md
+ - text: ASP.NET Core 9.0
+ url: /aspnet/core/release-notes/aspnetcore-9.0
+ - text: .NET MAUI 9
+ url: /dotnet/maui/whats-new/dotnet-9
+ - text: EF Core 9
+ url: /ef/core/what-is-new/ef-core-9.0/whatsnew
+ - title: .NET 8 release updates
+ linkLists:
+ - linkListType: whats-new
+ links:
+ - text: .NET 8
+ url: ../core/whats-new/dotnet-8/overview.md
+ - text: ASP.NET Core 8.0
+ url: /aspnet/core/release-notes/aspnetcore-8.0
+ - text: .NET MAUI 8
+ url: /dotnet/maui/whats-new/dotnet-8
+ - text: EF Core 8
+ url: /ef/core/what-is-new/ef-core-8.0/whatsnew
+ - text: Windows Forms (.NET 8)
+ url: /dotnet/desktop/winforms/whats-new/net80
+ - text: WPF (.NET 8)
+ url: /dotnet/desktop/wpf/whats-new/net80
+ - title: Latest documentation updates
+ linkLists:
+ - linkListType: whats-new
+ links:
+ - text: October 2024
+ url: dotnet-docs-mod1.md
+ - text: September 2024
+ url: dotnet-docs-mod0.md
+ - text: August 2024
+ url: dotnet-docs-mod2.md
+ - title: Language updates
+ linkLists:
+ - linkListType: whats-new
+ links:
+ - text: What's new in C# 12
+ url: ../csharp/whats-new/csharp-12.md
+ - text: What's new in F# 9
+ url: ../fsharp/whats-new/fsharp-9.md
+ - text: What's new for Visual Basic
+ url: ../visual-basic/whats-new/index.md
+ - title: Contribute to docs
+ linkLists:
+ - linkListType: overview
+ links:
+ - text: .NET docs repository
+ url: https://github.com/dotnet/docs/blob/main/README.md
+ - text: Project structure and labels for issues and pull requests
+ url: /contribute/dotnet/labels-projects
+ - text: .NET Foundation
+ url: https://dotnetfoundation.org/
+ - linkListType: concept
+ links:
+ - text: Microsoft docs contributor guide
+ url: /contribute
+ - text: .NET docs contributor guide
+ url: /contribute/dotnet/dotnet-contribute
+ - title: .NET developers
+ linkLists:
+ - linkListType: download
+ links:
+ - text: Download the .NET SDK
+ url: https://dotnet.microsoft.com/download
+ - linkListType: sample
+ links:
+ - text: .NET samples browser
+ url: /samples/browse/?products=dotnet
+ - linkListType: get-started
+ links:
+ - text: .NET on Q&A
+ url: /answers/products/dotnet
+ - text: .NET tech community forums
+ url: https://techcommunity.microsoft.com/t5/net/ct-p/dotnet
+ - linkListType: whats-new
+ links:
+ - text: Community
+ url: https://dotnet.microsoft.com/platform/community
+ - title: Release notes
+ linkLists:
+ - linkListType: whats-new
+ links:
+ - text: .NET
+ url: https://github.com/dotnet/core/blob/main/release-notes/README.md
+ - text: ASP.NET Core 9.0
+ url: /aspnet/core/release-notes/aspnetcore-9.0
+ - text: Visual Studio 2022
+ url: /visualstudio/releases/2022/release-notes
+ - text: Visual Studio Code
+ url: https://code.visualstudio.com/updates
diff --git a/includes/net-standard-1.0.md b/includes/net-standard-1.0.md
index c7773d4781721..bc0490c3ce312 100644
--- a/includes/net-standard-1.0.md
+++ b/includes/net-standard-1.0.md
@@ -2,7 +2,7 @@
| .NET implementation | Version support |
| -------------------------- | ------------------------------------------------------------------- |
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
| .NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
| Mono | 4.6, 5.4, 6.4 |
| Xamarin.iOS | 10.0, 10.14, 12.16 |
diff --git a/includes/net-standard-1.1.md b/includes/net-standard-1.1.md
index 51c4c22d971e3..7efc732613a73 100644
--- a/includes/net-standard-1.1.md
+++ b/includes/net-standard-1.1.md
@@ -1,15 +1,15 @@
.NET Standard 1.1 has 10,239 of the 37,118 available APIs.
-| .NET implementation | Version support |
-| -------------------------- | ------------------------------------------------------------------- |
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
+| .NET implementation | Version support |
+|----------------------------|------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
| .NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 8.0, 8.1, 10.0, 10.0.16299, TBD |
-| Unity | 2018.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 8.0, 8.1, 10.0, 10.0.16299, TBD |
+| Unity | 2018.1 |
For more information, see [.NET Standard 1.1][1.1]. For an interactive table, see [.NET Standard versions](https://dotnet.microsoft.com/platform/dotnet-standard#versions).
diff --git a/includes/net-standard-1.2.md b/includes/net-standard-1.2.md
index 51b874757f7f8..760a3fb47013d 100644
--- a/includes/net-standard-1.2.md
+++ b/includes/net-standard-1.2.md
@@ -2,7 +2,7 @@
| .NET implementation | Version support |
| -------------------------- | -------------------------------------------------------------- |
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
| .NET Framework | 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
| Mono | 4.6, 5.4, 6.4 |
| Xamarin.iOS | 10.0, 10.14, 12.16 |
diff --git a/includes/net-standard-1.3.md b/includes/net-standard-1.3.md
index e479b455605ac..787006d0f14c9 100644
--- a/includes/net-standard-1.3.md
+++ b/includes/net-standard-1.3.md
@@ -1,15 +1,15 @@
.NET Standard 1.3 has 13,122 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|----------------------------|-------------------------------------------------------|
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
-| .NET Framework | 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0, 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|----------------------------|------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET Framework | 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0, 10.0.16299, TBD |
+| Unity | 2018.1 |
For more information, see [.NET Standard 1.3][1.3]. For an interactive table, see [.NET Standard versions](https://dotnet.microsoft.com/platform/dotnet-standard#versions).
diff --git a/includes/net-standard-1.4.md b/includes/net-standard-1.4.md
index ee1b76fcf53f0..79da9c6f80a7b 100644
--- a/includes/net-standard-1.4.md
+++ b/includes/net-standard-1.4.md
@@ -1,15 +1,15 @@
.NET Standard 1.4 has 13,140 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|----------------------------|-------------------------------------------------------|
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
-| .NET Framework | 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0, 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|----------------------------|------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET Framework | 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0, 10.0.16299, TBD |
+| Unity | 2018.1 |
For more information, see [.NET Standard 1.4][1.4]. For an interactive table, see [.NET Standard versions](https://dotnet.microsoft.com/platform/dotnet-standard#versions).
diff --git a/includes/net-standard-1.5.md b/includes/net-standard-1.5.md
index 138758c809606..2fae7fa398f62 100644
--- a/includes/net-standard-1.5.md
+++ b/includes/net-standard-1.5.md
@@ -1,15 +1,15 @@
.NET Standard 1.5 has 13,355 of the 37,118 available APIs.
-| .NET implementation | Version support |
-| --------------------------- | -------------------------------------------------------- |
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
-| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|-----------------------------|------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0.16299, TBD |
+| Unity | 2018.1 |
1 The versions listed for .NET Framework apply to .NET Core 2.0 SDK and later versions of the tooling. Older versions used a different mapping for .NET Standard 1.5 and higher. You can [download tooling for .NET Core tools for Visual Studio 2015](https://github.com/dotnet/core/blob/main/release-notes/download-archives) if you cannot upgrade to Visual Studio 2017 or a later version.
diff --git a/includes/net-standard-1.6.md b/includes/net-standard-1.6.md
index dccf1eb66b601..31bc52103602a 100644
--- a/includes/net-standard-1.6.md
+++ b/includes/net-standard-1.6.md
@@ -1,15 +1,15 @@
.NET Standard 1.6 has 13,501 of the 37,118 available APIs.
-| .NET implementation | Version support |
-| --------------------------- | -------------------------------------------------------- |
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
-| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|-----------------------------|------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0.16299, TBD |
+| Unity | 2018.1 |
1 The versions listed for .NET Framework apply to .NET Core 2.0 SDK and later versions of the tooling. Older versions used a different mapping for .NET Standard 1.5 and higher. You can [download tooling for .NET Core tools for Visual Studio 2015](https://github.com/dotnet/core/blob/main/release-notes/download-archives) if you cannot upgrade to Visual Studio 2017 or a later version.
diff --git a/includes/net-standard-2.0.md b/includes/net-standard-2.0.md
index 8083b9446eb10..948c5bfbb6b1b 100644
--- a/includes/net-standard-2.0.md
+++ b/includes/net-standard-2.0.md
@@ -2,7 +2,7 @@
| .NET implementation | Version support |
| --------------------------- | -------------------------------------------------------- |
-| .NET and .NET Core | 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
+| .NET and .NET Core | 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
| Mono | 5.4, 6.4 |
| Xamarin.iOS | 10.14, 12.16 |
diff --git a/includes/net-standard-2.1.md b/includes/net-standard-2.1.md
index f787a6230eab3..8cd9cf4668ee6 100644
--- a/includes/net-standard-2.1.md
+++ b/includes/net-standard-2.1.md
@@ -1,15 +1,15 @@
.NET Standard 2.1 has 37,118 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|-----------------------------|------------------------------|
-| .NET and .NET Core | 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
-| .NET Framework 1 | N/A2 |
-| Mono | 6.4 |
-| Xamarin.iOS | 12.16 |
-| Xamarin.Mac | 5.16 |
-| Xamarin.Android | 10.0 |
-| Universal Windows Platform | N/A3 |
-| Unity | 2021.2 |
+| .NET implementation | Version support |
+|-----------------------------|-----------------------------------|
+| .NET and .NET Core | 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET Framework 1 | N/A2 |
+| Mono | 6.4 |
+| Xamarin.iOS | 12.16 |
+| Xamarin.Mac | 5.16 |
+| Xamarin.Android | 10.0 |
+| Universal Windows Platform | N/A3 |
+| Unity | 2021.2 |
1 The versions listed for .NET Framework apply to .NET Core 2.0 SDK and later versions of the tooling. Older versions used a different mapping for .NET Standard 1.5 and higher. You can [download tooling for .NET Core tools for Visual Studio 2015](https://github.com/dotnet/core/blob/main/release-notes/download-archives) if you cannot upgrade to Visual Studio 2017 or a later version.
diff --git a/includes/preprocessor-symbols.md b/includes/preprocessor-symbols.md
index 202cc5ead5948..4356e1c66b0ff 100644
--- a/includes/preprocessor-symbols.md
+++ b/includes/preprocessor-symbols.md
@@ -3,9 +3,9 @@ ms.custom: "updateeachrelease"
---
| Target Frameworks | Symbols | Additional symbols
(available in .NET 5+ SDKs) | Platform symbols (available only
when you specify an OS-specific TFM) |
| ------------------| ------- | ------------------------------------------------ | -------------------------------------------------------------------- |
-| .NET Framework | `NETFRAMEWORK`, `NET48`, `NET472`, `NET471`, `NET47`, `NET462`, `NET461`, `NET46`, `NET452`, `NET451`, `NET45`, `NET40`, `NET35`, `NET20` | `NET48_OR_GREATER`, `NET472_OR_GREATER`, `NET471_OR_GREATER`, `NET47_OR_GREATER`, `NET462_OR_GREATER`, `NET461_OR_GREATER`, `NET46_OR_GREATER`, `NET452_OR_GREATER`, `NET451_OR_GREATER`, `NET45_OR_GREATER`, `NET40_OR_GREATER`, `NET35_OR_GREATER`, `NET20_OR_GREATER` | |
+| .NET Framework | `NETFRAMEWORK`, `NET481`, `NET48`, `NET472`, `NET471`, `NET47`, `NET462`, `NET461`, `NET46`, `NET452`, `NET451`, `NET45`, `NET40`, `NET35`, `NET20` | `NET48_OR_GREATER`, `NET472_OR_GREATER`, `NET471_OR_GREATER`, `NET47_OR_GREATER`, `NET462_OR_GREATER`, `NET461_OR_GREATER`, `NET46_OR_GREATER`, `NET452_OR_GREATER`, `NET451_OR_GREATER`, `NET45_OR_GREATER`, `NET40_OR_GREATER`, `NET35_OR_GREATER`, `NET20_OR_GREATER` | |
| .NET Standard | `NETSTANDARD`, `NETSTANDARD2_1`, `NETSTANDARD2_0`, `NETSTANDARD1_6`, `NETSTANDARD1_5`, `NETSTANDARD1_4`, `NETSTANDARD1_3`, `NETSTANDARD1_2`, `NETSTANDARD1_1`, `NETSTANDARD1_0` | `NETSTANDARD2_1_OR_GREATER`, `NETSTANDARD2_0_OR_GREATER`, `NETSTANDARD1_6_OR_GREATER`, `NETSTANDARD1_5_OR_GREATER`, `NETSTANDARD1_4_OR_GREATER`, `NETSTANDARD1_3_OR_GREATER`, `NETSTANDARD1_2_OR_GREATER`, `NETSTANDARD1_1_OR_GREATER`, `NETSTANDARD1_0_OR_GREATER` | |
-| .NET 5+ (and .NET Core) | `NET`, `NET8_0`, `NET7_0`, `NET6_0`, `NET5_0`, `NETCOREAPP`, `NETCOREAPP3_1`, `NETCOREAPP3_0`, `NETCOREAPP2_2`, `NETCOREAPP2_1`, `NETCOREAPP2_0`, `NETCOREAPP1_1`, `NETCOREAPP1_0` | `NET8_0_OR_GREATER`, `NET7_0_OR_GREATER`, `NET6_0_OR_GREATER`, `NET5_0_OR_GREATER`, `NETCOREAPP3_1_OR_GREATER`, `NETCOREAPP3_0_OR_GREATER`, `NETCOREAPP2_2_OR_GREATER`, `NETCOREAPP2_1_OR_GREATER`, `NETCOREAPP2_0_OR_GREATER`, `NETCOREAPP1_1_OR_GREATER`, `NETCOREAPP1_0_OR_GREATER` | `ANDROID`, `BROWSER`, `IOS`, `MACCATALYST`, `MACOS`, `TVOS`, `WINDOWS`,
`[OS][version]` (for example `IOS15_1`),
`[OS][version]_OR_GREATER` (for example `IOS15_1_OR_GREATER`) |
+| .NET 5+ (and .NET Core) | `NET`, `NET9_0`, `NET8_0`, `NET7_0`, `NET6_0`, `NET5_0`, `NETCOREAPP`, `NETCOREAPP3_1`, `NETCOREAPP3_0`, `NETCOREAPP2_2`, `NETCOREAPP2_1`, `NETCOREAPP2_0`, `NETCOREAPP1_1`, `NETCOREAPP1_0` | `NET8_0_OR_GREATER`, `NET7_0_OR_GREATER`, `NET6_0_OR_GREATER`, `NET5_0_OR_GREATER`, `NETCOREAPP3_1_OR_GREATER`, `NETCOREAPP3_0_OR_GREATER`, `NETCOREAPP2_2_OR_GREATER`, `NETCOREAPP2_1_OR_GREATER`, `NETCOREAPP2_0_OR_GREATER`, `NETCOREAPP1_1_OR_GREATER`, `NETCOREAPP1_0_OR_GREATER` | `ANDROID`, `BROWSER`, `IOS`, `MACCATALYST`, `MACOS`, `TVOS`, `WINDOWS`,
`[OS][version]` (for example `IOS15_1`),
`[OS][version]_OR_GREATER` (for example `IOS15_1_OR_GREATER`) |
> [!NOTE]
>