Skip to content

Commit 69bbf3c

Browse files
authored
More updates for .NET 9 GA (#43410)
1 parent 04a5ecd commit 69bbf3c

20 files changed

+246
-238
lines changed

api/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ description: Explore Microsoft's comprehensive .NET API browser. Your ultimate r
33
layout: ApiBrowserPage
44
hide_bc: true
55
title: .NET API browser
6-
quickFilterColumn1: net-8.0,netframework-4.8,netstandard-2.1
7-
quickFilterColumn2: aspnetcore-8.0,efcore-8.0,net-maui-8.0
6+
quickFilterColumn1: net-9.0,netframework-4.8,netstandard-2.1
7+
quickFilterColumn2: aspnetcore-9.0,efcore-8.0,net-maui-8.0
88
quickFilterColumn3: azure-dotnet,ml-dotnet,spark-dotnet
99
ms.topic: landing-page
1010
ms.custom: "updateeachrelease"
11-
ms.date: 11/14/2023
11+
ms.date: 11/10/2024
1212
---
1313
# .NET API browser
1414

docs/csharp/index.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ tools:
195195
imageSrc: /visualstudio/media/vs-ide-2022.svg
196196
url: /visualstudio/windows
197197
# Card
198-
- title: Visual Studio Code
198+
- title: Visual Studio Code
199199
imageSrc: /visualstudio/media/vs-code-logo.svg
200200
url: https://code.visualstudio.com/docs/csharp/get-started
201201

@@ -305,7 +305,7 @@ additionalContent:
305305
# Card
306306
- title: ".NET API reference"
307307
summary: API reference documentation for .NET
308-
url: ../../api/index.md?view=net-8.0
308+
url: ../../api/index.md?view=net-9.0
309309
# Card
310310
- title: ".NET Framework API reference"
311311
summary: API reference documentation for .NET Framework
@@ -319,9 +319,9 @@ additionalContent:
319319
summary: API reference documentation for ML.NET
320320
url: ../../api/index.md?view=ml-dotnet&preserve-view=true
321321
# Card
322-
- title: ".NET Platform Extensions API reference"
323-
summary: API reference documentation for .NET Platform Extensions
324-
url: ../../api/index.md?view=dotnet-plat-ext-8.0&preserve-view=true
322+
- title: ".NET Package-provided API reference"
323+
summary: Reference documentation for package-provided .NET APIs
324+
url: ../../api/index.md?view=dotnet-9.0-pp&preserve-view=true
325325

326326
# footer (Optional; Remove if not applicable.)
327327
footer: "Are you interested in contributing to the .NET docs? For more information, see our [contributor guide](/contribute/dotnet/dotnet-contribute)."

docs/csharp/language-reference/index.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ landingContent:
3131
linkLists:
3232
- linkListType: whats-new
3333
links:
34+
- text: "What's new in C# 13"
35+
url: ../whats-new/csharp-13.md
3436
- text: "What's new in C# 12"
3537
url: ../whats-new/csharp-12.md
3638
- text: "What's new in C# 11"
@@ -43,7 +45,7 @@ landingContent:
4345
url: ../whats-new/breaking-changes.md
4446
- text: Version compatibility
4547
url: ../whats-new/version-update-considerations.md
46-
48+
4749

4850
- title: "Stay in touch"
4951
linkLists:

docs/fsharp/index.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ landingContent:
5454
- text: "F# library reference"
5555
url: https://fsharp.github.io/fsharp-core-docs
5656
- text: ".NET library reference"
57-
url: ../../api/index.md?view=net-8.0
57+
url: ../../api/index.md?view=net-9.0
5858

5959
- title: "F# fundamentals"
6060
linkLists:
@@ -121,6 +121,8 @@ landingContent:
121121
linkLists:
122122
- linkListType: whats-new
123123
links:
124+
- text: "What's new in F# 9"
125+
url: whats-new/fsharp-9.md
124126
- text: "What's new in F# 8"
125127
url: whats-new/fsharp-8.md
126128
- text: "What's new in F# 7"

docs/index.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ conceptualContent:
6767
- url: core/tutorials/index.md
6868
itemType: tutorial
6969
text: .NET tutorials
70-
- url: core/whats-new/dotnet-8/overview.md
70+
- url: core/whats-new/dotnet-9/overview.md
7171
itemType: whats-new
72-
text: What's new in .NET 8
72+
text: What's new in .NET 9
7373
- url: https://dotnetfoundation.org
7474
itemType: overview
7575
text: .NET Foundation
@@ -368,23 +368,23 @@ additionalContent:
368368
# Card
369369
- title: ".NET API reference"
370370
summary: API reference documentation for .NET
371-
url: ../api/index.md?view=net-8.0
371+
url: ../api/index.md?view=net-9.0
372372
# Card
373373
- title: ".NET Framework API reference"
374374
summary: API reference documentation for .NET Framework
375375
url: ../api/index.md?view=netframework-4.8&preserve-view=true
376376
# Card
377377
- title: "ASP.NET Core API reference"
378378
summary: API reference documentation for ASP.NET Core
379-
url: ../api/index.md?view=view=aspnetcore-8.0&preserve-view=true
379+
url: ../api/index.md?view=view=aspnetcore-9.0&preserve-view=true
380380
# Card
381381
- title: "ML.NET API reference"
382382
summary: API reference documentation for ML.NET
383383
url: ../api/index.md?view=ml-dotnet&preserve-view=true
384384
# Card
385-
- title: ".NET Platform Extensions API reference"
386-
summary: API reference documentation for .NET Platform Extensions
387-
url: ../api/index.md?view=dotnet-plat-ext-8.0&preserve-view=true
385+
- title: ".NET Package-provided API reference"
386+
summary: Reference documentation for package-provided .NET APIs
387+
url: ../api/index.md?view=dotnet-9.0-pp&preserve-view=true
388388
# Card
389389
- title: "C# language reference"
390390
summary: C# language reference and specification
@@ -399,4 +399,4 @@ additionalContent:
399399
url: visual-basic/language-reference/index.md
400400

401401
# footer (optional)
402-
footer: "Are you interested in contributing to the .NET docs? For more information, see our [contributor guide](/contribute/dotnet/dotnet-contribute)."
402+
footer: "Are you interested in contributing to the .NET docs? For more information, see our [contributor guide](/contribute/dotnet/dotnet-contribute)."

docs/standard/frameworks.md

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Target frameworks in SDK-style projects - .NET
33
description: Learn about target frameworks for .NET apps and libraries.
4-
ms.date: 12/12/2023
4+
ms.date: 11/11/2024
55
ms.service: dotnet
66
ms.custom: updateeachrelease
77
ms.subservice: standard-library
@@ -26,10 +26,8 @@ The following table defines the most common target frameworks, how they're refer
2626

2727
| Target framework | Latest <br/> stable version | Target framework moniker (TFM) | Implemented <br/> .NET Standard version |
2828
|:----------------:|:---------------------------:|:------------------------------:|:---------------------------------------:|
29+
| .NET 9 | 9 | net9.0 | 2.1 |
2930
| .NET 8 | 8 | net8.0 | 2.1 |
30-
| .NET 7 | 7 | net7.0 | 2.1 |
31-
| .NET 6 | 6 | net6.0 | 2.1 |
32-
| .NET 5 | 5 | net5.0 | 2.1 |
3331
| .NET Standard | 2.1 | netstandard2.1 | N/A |
3432
| .NET Core | 3.1 | netcoreapp3.1 | 2.1 |
3533
| .NET Framework | 4.8.1 | net481 | 2.0 |
@@ -53,52 +51,59 @@ A target framework is typically referenced by a TFM. The following table shows t
5351

5452
### .NET 5+ OS-specific TFMs
5553

56-
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.
54+
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.
5755

5856
.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`.
5957

6058
The following table shows the compatibility of the .NET 5+ TFMs.
6159

62-
| TFM | Compatible with |
63-
|--------------------|-------------------------------------------------------------------------------------------------------------------------|
60+
| TFM | Compatible with |
61+
|----------------------|------------------------------------------------------------------|
6462
| `net5.0` | net1..4 (with NU1701 warning)<br />netcoreapp1..3.1 (warning when WinForms or WPF is referenced)<br />netstandard1..2.1 |
65-
| `net5.0-windows` | netcoreapp1..3.1 (plus everything else inherited from `net5.0`) |
66-
| `net6.0` | (Subsequent version of `net5.0`) |
67-
| `net6.0-android` | `xamarin.android` (plus everything else inherited from `net6.0`) |
68-
| `net6.0-ios` | Everything inherited from `net6.0` |
69-
| `net6.0-maccatalyst` | Everything inherited from `net6.0` |
70-
| `net6.0-macos` | Everything inherited from `net6.0` |
71-
| `net6.0-tvos` | Everything inherited from `net6.0` |
72-
| `net6.0-windows` | (Subsequent version of `net5.0-windows`) |
73-
| `net7.0` | (Subsequent version of `net6.0`) |
74-
| `net7.0-android` | (Subsequent version of `net6.0-android`) |
75-
| `net7.0-ios` | (Subsequent version of `net6.0-ios`) |
76-
| `net7.0-maccatalyst` | (Subsequent version of `net6.0-maccatalyst`) |
77-
| `net7.0-macos` | (Subsequent version of `net6.0-macos`) |
78-
| `net7.0-tizen` | `tizen40` (plus everything else inherited from `net7.0`) |
79-
| `net7.0-tvos` | (Subsequent version of `net6.0-tvos`) |
80-
| `net7.0-windows` | (Subsequent version of `net6.0-windows`) |
81-
| `net8.0` | (Subsequent version of `net7.0`) |
82-
| `net8.0-android` | (Subsequent version of `net7.0-android`) |
83-
| `net8.0-browser` | Everything inherited from `net8.0` |
84-
| `net8.0-ios` | (Subsequent version of `net7.0-ios`) |
85-
| `net8.0-maccatalyst` | (Subsequent version of `net7.0-maccatalyst`) |
86-
| `net8.0-macos` | (Subsequent version of `net7.0-macos`) |
87-
| `net8.0-tizen` | (Subsequent version of `net7.0-tizen`) |
88-
| `net8.0-tvos` | (Subsequent version of `net7.0-tvos`) |
89-
| `net8.0-windows` | (Subsequent version of `net7.0-windows`) |
63+
| `net5.0-windows` | netcoreapp1..3.1 (plus everything else inherited from `net5.0`) |
64+
| `net6.0` | (Subsequent version of `net5.0`) |
65+
| `net6.0-android` | `xamarin.android` (plus everything else inherited from `net6.0`) |
66+
| `net6.0-ios` | Everything inherited from `net6.0` |
67+
| `net6.0-maccatalyst` | Everything inherited from `net6.0` |
68+
| `net6.0-macos` | Everything inherited from `net6.0` |
69+
| `net6.0-tvos` | Everything inherited from `net6.0` |
70+
| `net6.0-windows` | (Subsequent version of `net5.0-windows`) |
71+
| `net7.0` | (Subsequent version of `net6.0`) |
72+
| `net7.0-android` | (Subsequent version of `net6.0-android`) |
73+
| `net7.0-ios` | (Subsequent version of `net6.0-ios`) |
74+
| `net7.0-maccatalyst` | (Subsequent version of `net6.0-maccatalyst`) |
75+
| `net7.0-macos` | (Subsequent version of `net6.0-macos`) |
76+
| `net7.0-tizen` | `tizen40` (plus everything else inherited from `net7.0`) |
77+
| `net7.0-tvos` | (Subsequent version of `net6.0-tvos`) |
78+
| `net7.0-windows` | (Subsequent version of `net6.0-windows`) |
79+
| `net8.0` | (Subsequent version of `net7.0`) |
80+
| `net8.0-android` | (Subsequent version of `net7.0-android`) |
81+
| `net8.0-browser` | Everything inherited from `net8.0` |
82+
| `net8.0-ios` | (Subsequent version of `net7.0-ios`) |
83+
| `net8.0-maccatalyst` | (Subsequent version of `net7.0-maccatalyst`) |
84+
| `net8.0-macos` | (Subsequent version of `net7.0-macos`) |
85+
| `net8.0-tizen` | (Subsequent version of `net7.0-tizen`) |
86+
| `net8.0-tvos` | (Subsequent version of `net7.0-tvos`) |
87+
| `net8.0-windows` | (Subsequent version of `net7.0-windows`) |
88+
| `net9.0` | (Subsequent version of `net8.0`) |
89+
| `net9.0-android` | (Subsequent version of `net8.0-android`) |
90+
| `net9.0-browser` | (Subsequent version of `net8.0-browser`) |
91+
| `net9.0-ios` | (Subsequent version of `net8.0-ios`) |
92+
| `net9.0-maccatalyst` | (Subsequent version of `net8.0-maccatalyst`) |
93+
| `net9.0-macos` | (Subsequent version of `net8.0-macos`) |
94+
| `net9.0-tizen` | (Subsequent version of `net8.0-tizen`) |
95+
| `net9.0-tvos` | (Subsequent version of `net8.0-tvos`) |
96+
| `net9.0-windows` | (Subsequent version of `net8.0-windows`) |
9097

9198
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).
9299

93100
#### Suggested targets
94101

95102
Use these guidelines to determine which TFM to use in your app:
96103

97-
- 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.
98-
99-
- Platform-specific libraries should target platform-specific flavors. For example, WinForms and WPF projects should target `net8.0-windows`.
100-
101-
- 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.
104+
- 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.
105+
- Platform-specific libraries should target platform-specific flavors. For example, WinForms and WPF projects should target `net9.0-windows`.
106+
- 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.
102107

103108
#### OS version in TFMs
104109

@@ -110,9 +115,8 @@ The following table shows the default target platform values (TPV) for each .NET
110115

111116
| .NET version | Android | iOS | Mac Catalyst | macOS | tvOS | Tizen | Windows |
112117
|--------------|--------:|-----:|-------------:|------:|-----:|------:|--------:|
113-
| .NET 6 | 31.0 | 15.0 | 15.0 | 12.0 | 15.1 | - | 7.0 |
114-
| .NET 7 | 33.0 | 16.1 | 16.1 | 13.0 | 16.1 | 7.0 | 7.0 |
115-
| .NET 8 | 34.0 | 17.2 | 17.2 | 14.2 | 17.1 | 8.0 | 7.0 |
118+
| .NET 8 | 34.0 | 17.2 | 17.2 | 14.2 | 17.1 | 7.0 | 10.0 |
119+
| .NET 9 | 35.0 | 18.0 | 18.0 | 15.0 | | 7.0 | 10.0 |
116120

117121
> [!NOTE]
118122
> 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
155159

156160
## How to specify a target framework
157161

158-
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:
162+
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:
159163

160164
```xml
161165
<Project Sdk="Microsoft.NET.Sdk">
162166

163167
<PropertyGroup>
164168
<OutputType>Exe</OutputType>
165-
<TargetFramework>net8.0</TargetFramework>
169+
<TargetFramework>net9.0</TargetFramework>
166170
</PropertyGroup>
167171

168172
</Project>

docs/standard/library-guidance/cross-platform-targeting.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Cross-platform targeting for .NET libraries
33
description: Best practice recommendations for creating cross-platform .NET libraries.
4-
ms.date: 11/14/2023
4+
ms.date: 11/11/2024
55
---
66

77
# Cross-platform targeting
@@ -33,7 +33,7 @@ If your project targets .NET or .NET Standard and compiles successfully, it does
3333
3434
✔️ DO include a `net6.0` target or later if you require new APIs introduced in a modern .NET.
3535

36-
> .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.
36+
> .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.
3737
3838
❌ AVOID including a `netstandard1.x` target.
3939

0 commit comments

Comments
 (0)