diff --git a/.openpublishing.redirection.fsharp.json b/.openpublishing.redirection.fsharp.json index ab1954fd6cfe6..1bdeeea5346ae 100644 --- a/.openpublishing.redirection.fsharp.json +++ b/.openpublishing.redirection.fsharp.json @@ -151,7 +151,7 @@ }, { "source_path_from_root": "/docs/fsharp/whats-new/index.md", - "redirect_url": "/dotnet/fsharp/whats-new/fsharp-6", + "redirect_url": "/dotnet/fsharp/whats-new/fsharp-9", "ms.custom": "updateeachrelease" }, { diff --git a/api/index.md b/api/index.md index e2b3da75cdc87..535d634e51798 100644 --- a/api/index.md +++ b/api/index.md @@ -3,7 +3,7 @@ description: Explore Microsoft's comprehensive .NET API browser. Your ultimate r layout: ApiBrowserPage hide_bc: true title: .NET API browser -quickFilterColumn1: net-9.0,netframework-4.8,netstandard-2.1 +quickFilterColumn1: net-9.0,netframework-4.8.1,netstandard-2.1 quickFilterColumn2: aspnetcore-9.0,efcore-8.0,net-maui-9.0 quickFilterColumn3: azure-dotnet,ml-dotnet,spark-dotnet ms.topic: landing-page diff --git a/docs/core/compatibility/core-libraries/9.0/obsolete-apis-with-custom-diagnostics.md b/docs/core/compatibility/core-libraries/9.0/obsolete-apis-with-custom-diagnostics.md index 04c9e2d30ffa8..2c3e57cf1946c 100644 --- a/docs/core/compatibility/core-libraries/9.0/obsolete-apis-with-custom-diagnostics.md +++ b/docs/core/compatibility/core-libraries/9.0/obsolete-apis-with-custom-diagnostics.md @@ -15,9 +15,9 @@ In previous .NET versions, these APIs can be used without any build warning. In The following table lists the custom diagnostic IDs and their corresponding warning messages for obsoleted APIs. | Diagnostic ID | Description | Severity | -| - | - | +|---------------|-------------|----------| | [SYSLIB0009](../../../../fundamentals/syslib-diagnostics/syslib0009.md) | is not supported. Methods will no-op or throw . | Warning | -| [SYSLIB0014: WebRequest, HttpWebRequest, ServicePoint, WebClient are obsolete](../../../../fundamentals/syslib-diagnostics/syslib0014.md) | is fully obsolete. Settings on don't affect or (this behavior hasn't changed since .NET 6). | Warning | +| [SYSLIB0014](../../../../fundamentals/syslib-diagnostics/syslib0014.md) | is fully obsolete. Settings on don't affect or (this behavior hasn't changed since .NET 6). | Warning | | [SYSLIB0054](../../../../fundamentals/syslib-diagnostics/syslib0054.md) | and are obsolete. Use or instead. | Warning | | [SYSLIB0055](../../../../fundamentals/syslib-diagnostics/syslib0055.md) | `AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate*` methods with signed parameters are obsolete. Use the unsigned overloads instead. | Warning | | [SYSLIB0056](../../../../fundamentals/syslib-diagnostics/syslib0056.md) | `Assembly.LoadFrom` with a custom `AssemblyHashAlgorithm` is obsolete. Use overloads without an `AssemblyHashAlgorithm`. | Warning | diff --git a/docs/core/compatibility/unsupported-apis.md b/docs/core/compatibility/unsupported-apis.md index fce020617f20d..d230d80991bad 100644 --- a/docs/core/compatibility/unsupported-apis.md +++ b/docs/core/compatibility/unsupported-apis.md @@ -2,7 +2,7 @@ title: Unsupported APIs on .NET Core and .NET 5+ titleSuffix: "" description: Learn which .NET APIs always throw an exception on .NET Core and .NET 5 and later versions. -ms.date: 08/22/2023 +ms.date: 11/22/2024 --- # APIs that always throw exceptions on .NET Core and .NET 5+ @@ -17,9 +17,9 @@ This article organizes the affected APIs by namespace. ## System -| Member | Platforms that throw | -| - | - | -| | All | +| Member | Platforms that throw | +|----------------------------------------------------------------------|----------------------| +| | All | | | All | | | All | | | Linux and macOS | @@ -34,7 +34,7 @@ This article organizes the affected APIs by namespace. ## System.CodeDom.Compiler | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -42,7 +42,7 @@ This article organizes the affected APIs by namespace. ## System.Collections.Specialized | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -50,13 +50,13 @@ This article organizes the affected APIs by namespace. ## System.Configuration | Member | Platforms that throw | -| - | - | +|--------|----------------------| | (all members) | All | ## System.Console | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | Linux and macOS | | (set only) | Linux and macOS | | (set only) | Linux and macOS | @@ -74,13 +74,13 @@ This article organizes the affected APIs by namespace. ## System.Data.Common | Member | Platforms that throw | -| - | - | +|--------|----------------------| | (throws ) | All | ## System.Diagnostics.Process | Member | Platforms that throw | -| - | - | +|--------|----------------------| | (set only) | Linux | | (set only) | Linux | | | macOS | @@ -98,14 +98,14 @@ This article organizes the affected APIs by namespace. ## System.IO | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | ## System.IO.Pipes | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | Linux and macOS | | | Linux and macOS | | | Linux and macOS | @@ -116,13 +116,14 @@ This article organizes the affected APIs by namespace. ## System.Media | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | ## System.Net -| Member | Platforms that throw | -| - | - | +| Member | Platforms that throw | +|-------------------------------------------------------------------|----------------------| +| \* | All | | | All | | | All | | | All | @@ -141,29 +142,31 @@ This article organizes the affected APIs by namespace. | | All | | | All | +\* .NET 9 and later versions. + ## System.Net.NetworkInformation | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | Windows (UWP) | ## System.Net.Sockets | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | ## System.Net.WebSockets | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | ## System.Reflection | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -178,13 +181,13 @@ This article organizes the affected APIs by namespace. ## System.Runtime.CompilerServices | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | ## System.Runtime.InteropServices | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -197,17 +200,19 @@ This article organizes the affected APIs by namespace. ## System.Runtime.Serialization | Member | Platforms that throw | -| - | - | -| * | All | -| * | All | +|--------|----------------------| +| \* | All | +| † | All | +| † | All | | | All | -\* .NET 8 and later versions only for all project types except Windows Forms and WPF. +\* .NET 9 and later versions. +† .NET 8 only for all project types except Windows Forms and WPF. ## System.Security | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -226,7 +231,7 @@ This article organizes the affected APIs by namespace. ## System.Security.Claims | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -236,7 +241,7 @@ This article organizes the affected APIs by namespace. ## System.Security.Cryptography | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | Linux and macOS | | | Linux and macOS | @@ -289,14 +294,14 @@ This article organizes the affected APIs by namespace. ## System.Security.Cryptography.Pkcs | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | ## System.Security.Cryptography.X509Certificates | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -305,31 +310,31 @@ This article organizes the affected APIs by namespace. ## System.Security.Authentication.ExtendedProtection | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | ## System.Security.Policy | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | ## System.ServiceProcess.ServiceController | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | ## System.Text.RegularExpressions | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | ## System.Threading | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | @@ -340,7 +345,7 @@ This article organizes the affected APIs by namespace. ## System.Xml | Member | Platforms that throw | -| - | - | +|--------|----------------------| | | All | | | All | | | All | diff --git a/docs/core/deploying/deploy-with-cli.md b/docs/core/deploying/deploy-with-cli.md index 59b19ad92a45a..c8f27597ff567 100644 --- a/docs/core/deploying/deploy-with-cli.md +++ b/docs/core/deploying/deploy-with-cli.md @@ -3,7 +3,7 @@ title: Publish apps with the .NET CLI description: Learn to publish a .NET application using the .NET CLI commands. author: adegeo ms.author: adegeo -ms.date: 11/15/2023 +ms.date: 11/22/2024 ms.custom: updateeachrelease dev_langs: - "csharp" @@ -31,13 +31,13 @@ Looking for some quick help on using the CLI? The following table shows some exa ## Publishing basics -The `` setting of the project file specifies the default target framework when you publish your app. You can change the target framework to any valid [Target Framework Moniker (TFM)](../../standard/frameworks.md). For example, if your project uses `net8.0`, a binary that targets .NET 8 is created. The TFM specified in this setting is the default target used by the [`dotnet publish`](../tools/dotnet-publish.md) command. +The `` setting of the project file specifies the default target framework when you publish your app. You can change the target framework to any valid [Target Framework Moniker (TFM)](../../standard/frameworks.md). For example, if your project uses `net9.0`, a binary that targets .NET 9 is created. The TFM specified in this setting is the default target used by the [`dotnet publish`](../tools/dotnet-publish.md) command. If you want to target more than one framework, you can set the `` setting to multiple TFM values, separated by a semicolon. When you build your app, a build is produced for each target framework. However, when you publish your app, you must specify the target framework with the `dotnet publish -f ` command. The default **BUILD-CONFIGURATION** mode is **Debug** unless changed with the `-c` parameter. -The default output directory of the [`dotnet publish`](../tools/dotnet-publish.md) command is `./bin///publish/`. For example, `dotnet publish -c Release -f net8.0` publishes to `./bin/Release/net8.0/publish/`. However, you can opt in to a simplified output path and folder structure for all build outputs. For more information, see [Artifacts output layout](../sdk/artifacts-output.md). +The default output directory of the [`dotnet publish`](../tools/dotnet-publish.md) command is `./bin///publish/`. For example, `dotnet publish -c Release -f net9.0` publishes to `./bin/Release/net9.0/publish/`. However, you can opt in to a simplified output path and folder structure for all build outputs. For more information, see [Artifacts output layout](../sdk/artifacts-output.md). ### Native dependencies @@ -100,7 +100,7 @@ When you run the app ([`dotnet run`](../tools/dotnet-run.md)), the following out When you publish your app as an FDD, a `.dll` file is created in the `./bin///publish/` folder. To run your app, navigate to the output folder and use the `dotnet .dll` command. -Your app is configured to target a specific version of .NET. That targeted .NET runtime is required to be on any machine where your app runs. For example, if your app targets .NET Core 8, any machine that your app runs on must have the .NET Core 8 runtime installed. As stated in the [Publishing basics](#publishing-basics) section, you can edit your project file to change the default target framework or to target more than one framework. +Your app is configured to target a specific version of .NET. That targeted .NET runtime is required to be on any machine where your app runs. For example, if your app targets .NET 9, any machine that your app runs on must have the .NET 9 runtime installed. As stated in the [Publishing basics](#publishing-basics) section, you can edit your project file to change the default target framework or to target more than one framework. Publishing an FDD creates an app that automatically rolls-forward to the latest .NET security patch available on the system that runs the app. For more information on version binding at compile time, see [Select the .NET version to use](../versions/selection.md#framework-dependent-apps-roll-forward). @@ -114,7 +114,7 @@ Framework-dependent executable (FDE) is the default mode for the basic `dotnet p In this mode, a platform-specific executable host is created to host your cross-platform app. This mode is similar to FDD, as FDD requires a host in the form of the `dotnet` command. The host executable filename varies per platform and is named something similar to `.exe`. You can run this executable directly instead of calling `dotnet .dll`, which is still an acceptable way to run the app. -Your app is configured to target a specific version of .NET. That targeted .NET runtime is required to be on any machine where your app runs. For example, if your app targets .NET 8, any machine that your app runs on must have the .NET 8 runtime installed. As stated in the [Publishing basics](#publishing-basics) section, you can edit your project file to change the default target framework or to target more than one framework. +Your app is configured to target a specific version of .NET. That targeted .NET runtime is required to be on any machine where your app runs. For example, if your app targets .NET 9, any machine that your app runs on must have the .NET 9 runtime installed. As stated in the [Publishing basics](#publishing-basics) section, you can edit your project file to change the default target framework or to target more than one framework. Publishing an FDE creates an app that automatically rolls-forward to the latest .NET security patch available on the system that runs the app. For more information on version binding at compile time, see [Select the .NET version to use](../versions/selection.md#framework-dependent-apps-roll-forward). @@ -124,7 +124,7 @@ Publishing an FDE creates an app that automatically rolls-forward to the latest Whenever you use the `-r` switch, the output folder path changes to: `./bin////publish/` -If you use the [example app](#sample-app), run `dotnet publish -f net6.0 -r win-x64 --self-contained false`. This command creates the following executable: `./bin/Debug/net6.0/win-x64/publish/apptest1.exe` +If you use the [example app](#sample-app), run `dotnet publish -f net9.0 -r win-x64 --self-contained false`. This command creates the following executable: `./bin/Debug/net9.0/win-x64/publish/apptest1.exe` > [!NOTE] > You can reduce the total size of your deployment by enabling **globalization invariant mode**. This mode is useful for applications that are not globally aware and that can use the formatting conventions, casing conventions, and string comparison and sort order of the [invariant culture](xref:System.Globalization.CultureInfo.InvariantCulture). For more information about **globalization invariant mode** and how to enable it, see [.NET Globalization Invariant Mode](https://github.com/dotnet/runtime/blob/main/docs/design/features/globalization-invariant-mode.md). @@ -146,7 +146,7 @@ For more information, see [`AppHostDotNetSearch`](../project-sdk//msbuild-props. ## Self-contained deployment -When you publish a self-contained deployment (SCD), the .NET SDK creates a platform-specific executable. Publishing an SCD includes all required .NET files to run your app but it doesn't include the native dependencies of .NET (for example, for [.NET 6 on Linux](https://github.com/dotnet/core/blob/main/release-notes/6.0/linux-packages.md) or [.NET 8 on Linux](https://github.com/dotnet/core/blob/main/release-notes/8.0/linux-packages.md)). These dependencies must be present on the system before the app runs. +When you publish a self-contained deployment (SCD), the .NET SDK creates a platform-specific executable. Publishing an SCD includes all required .NET files to run your app but it doesn't include the native dependencies of .NET (for example, for [.NET 8 on Linux](https://github.com/dotnet/core/blob/main/release-notes/8.0/linux-packages.md)). These dependencies must be present on the system before the app runs. Publishing an SCD creates an app that doesn't roll forward to the latest available .NET security patch. For more information on version binding at compile time, see [Select the .NET version to use](../versions/selection.md#self-contained-deployments-include-the-selected-runtime). diff --git a/docs/core/tools/dotnet-new-sdk-templates.md b/docs/core/tools/dotnet-new-sdk-templates.md index 0cd9133e389aa..27f8090a90c2d 100644 --- a/docs/core/tools/dotnet-new-sdk-templates.md +++ b/docs/core/tools/dotnet-new-sdk-templates.md @@ -31,24 +31,23 @@ The templates that ship with the .NET SDK have the following additional options: | SDK version | Default value | |-------------|-----------------| + | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 3.1 | `netcoreapp3.1` | - The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 7 SDK installed, then the only value available for `--framework` is `net7.0`. If you install the .NET 6 SDK the value `net6.0` becomes available for `--framework`. If you install the .NET Core 3.1 SDK, `netcoreapp3.1` becomes available, and so on. So by specifying `--framework netcoreapp3.1` you can target .NET Core 3.1 even while running `dotnet new` in the .NET 6 SDK. + The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 9 SDK installed, then the only value available for `--framework` is `net9.0`. If, for example, you install the .NET 8 SDK, the value `net8.0` becomes available for `--framework`. So by specifying `--framework net8.0` you can target .NET 8 even while running `dotnet new` in the .NET 9 SDK. Alternatively, to create a project that targets a framework earlier than the SDK that you're using, you might be able to do it by installing the NuGet package for the template. [Common](https://www.nuget.org/packages?q=Microsoft.DotNet.Common.ProjectTemplates), [web](https://www.nuget.org/packages?q=Microsoft.DotNet.Web.ProjectTemplates), and [SPA](https://www.nuget.org/packages?q=Microsoft.DotNet.Web.Spa.ProjectTemplates) project types use different packages per target framework moniker (TFM). For example, to create a `console` project that targets `netcoreapp1.0`, run [`dotnet new install`](dotnet-new-install.md) on `Microsoft.DotNet.Common.ProjectTemplates.1.x`. - **`--langVersion `** - Sets the `LangVersion` property in the created project file. For example, use `--langVersion 7.3` to use C# 7.3. Not supported for F#. Available since .NET Core 2.2 SDK. + Sets the `LangVersion` property in the created project file. For example, use `--langVersion 7.3` to use C# 7.3. Not supported for F#. For a list of default C# versions, see [Defaults](../../csharp/language-reference/language-versioning.md#defaults). - **`--no-restore`** - If specified, doesn't execute an implicit restore during project creation. Available since .NET Core 2.2 SDK. + If specified, doesn't execute an implicit restore during project creation. - **`--use-program-main`** @@ -60,13 +59,13 @@ The templates that ship with the .NET SDK have the following additional options: - **`-f|--framework `** - Specifies the [framework](../../standard/frameworks.md) to target. Values: `net8.0`, `net7.0`, or `net6.0` to create a .NET Class Library, or `netstandard2.1` or `netstandard2.0` to create a .NET Standard Class Library. The default value for .NET SDK 8.0.x is `net8.0`. + Specifies the [framework](../../standard/frameworks.md) to target. Values: `net9.0`, `net8.0`, or `net7.0` to create a .NET Class Library, or `netstandard2.1` or `netstandard2.0` to create a .NET Standard Class Library. The default value for .NET SDK 9.0.x is `net9.0`. To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article. - **`--langVersion `** - Sets the `LangVersion` property in the created project file. For example, use `--langVersion 7.3` to use C# 7.3. Not supported for F#. Available since .NET Core 2.2 SDK. + Sets the `LangVersion` property in the created project file. For example, use `--langVersion 7.3` to use C# 7.3. Not supported for F#. For a list of default C# versions, see [Defaults](../../csharp/language-reference/language-versioning.md#defaults). @@ -80,7 +79,7 @@ The templates that ship with the .NET SDK have the following additional options: - **`-f|--framework `** - Specifies the [framework](../../standard/frameworks.md) to target. For the .NET 8 SDK, the default value is `net8.0`. Available since .NET Core 3.1 SDK. + Specifies the [framework](../../standard/frameworks.md) to target. For the .NET 9 SDK, the default value is `net9.0`. - **`--langVersion `** @@ -112,7 +111,7 @@ The templates that ship with the .NET SDK have the following additional options: - **`-f|--framework `** - Specifies the [framework](../../standard/frameworks.md) to target. The default value for .NET 8 SDK is `net8.0`. Available since .NET Core 3.1 SDK. + Specifies the [framework](../../standard/frameworks.md) to target. The default value for .NET 9 SDK is `net9.0`. To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article. @@ -134,7 +133,7 @@ The templates that ship with the .NET SDK have the following additional options: - **`-f|--framework `** - Specifies the [framework](../../standard/frameworks.md) to target. Option available since .NET Core 3.0 SDK. + Specifies the [framework](../../standard/frameworks.md) to target. The following table lists the default values according to the SDK version number you're using: @@ -143,11 +142,8 @@ The templates that ship with the .NET SDK have the following additional options: | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | -The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 6 SDK installed, then the only value available for `--framework` is `net6.0`. If you install the .NET 5 SDK, the value `net5.0` becomes available for `--framework`. If you install the .NET Core 3.1 SDK, `netcoreapp3.1` becomes available, and so on. So by specifying `--framework netcoreapp3.1` you can target .NET Core 3.1 even while running `dotnet new` in the .NET 6 SDK. +The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 9 SDK installed, then the only value available for `--framework` is `net9.0`. If you install, for example, the .NET 8 SDK, the value `net8.0` becomes available for `--framework`. So by specifying `--framework net8.0` you can target .NET 8 even while running `dotnet new` in the .NET 9 SDK. - **`--no-restore`** @@ -221,7 +217,7 @@ The ability to create a project for an earlier TFM depends on having that versio - **`-f|--framework `** - Specifies the [framework](../../standard/frameworks.md) to target. Option available since .NET Core 3.0 SDK. + Specifies the [framework](../../standard/frameworks.md) to target. The following table lists the default values according to the SDK version number you're using: @@ -230,11 +226,8 @@ The ability to create a project for an earlier TFM depends on having that versio | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | -The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 6 SDK installed, then the only value available for `--framework` is `net6.0`. If you install the .NET 5 SDK, the value `net5.0` becomes available for `--framework`. If you install the .NET Core 3.1 SDK, `netcoreapp3.1` becomes available, and so on. So by specifying `--framework netcoreapp3.1` you can target .NET Core 3.1 even while running `dotnet new` in the .NET 6 SDK. +The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 9 SDK installed, then the only value available for `--framework` is `net9.0`. If you install, for example, the .NET 8 SDK, the value `net8.0` becomes available for `--framework`. So by specifying `--framework net8.0` you can target .NET 8 even while running `dotnet new` in the .NET 9 SDK. - **`-p|--enable-pack`** @@ -259,11 +252,8 @@ The ability to create a project for an earlier TFM depends on having that versio | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | -The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 6 SDK installed, then the only value available for `--framework` is `net6.0`. If you install the .NET 5 SDK, the value `net5.0` becomes available for `--framework`. If you install the .NET Core 3.1 SDK, `netcoreapp3.1` becomes available, and so on. So by specifying `--framework netcoreapp3.1` you can target .NET Core 3.1 even while running `dotnet new` in the .NET 6 SDK. +The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 9 SDK installed, then the only value available for `--framework` is `net9.0`. If you install, for example, the .NET 8 SDK, the value `net8.0` becomes available for `--framework`. So by specifying `--framework net8.0` you can target .NET 8 even while running `dotnet new` in the .NET 9 SDK. - **`-p|--enable-pack`** @@ -444,11 +434,9 @@ The ability to create a project for an earlier TFM depends on having that versio | SDK version | Default value | |-------------|-----------------| + | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article. @@ -569,13 +557,9 @@ The ability to create a project for an earlier TFM depends on having that versio | SDK version | Default value | |-------------|-----------------| + | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | - | 3.0 | `netcoreapp3.0` | - | 2.1 | `netcoreapp2.1` | To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article. @@ -674,12 +658,9 @@ The ability to create a project for an earlier TFM depends on having that versio | SDK version | Default value | |-------------|-----------------| + | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | - | 3.0 | `netcoreapp3.0` | To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article. @@ -689,11 +670,11 @@ The ability to create a project for an earlier TFM depends on having that versio - **`--use-browserlink`** - Includes BrowserLink in the project. Option not available in .NET Core 2.2 and 3.1 SDK. + Includes BrowserLink in the project. - **`-rrc|--razor-runtime-compilation`** - Determines if the project is configured to use [Razor runtime compilation](/aspnet/core/mvc/views/view-compilation#runtime-compilation) in Debug builds. Option available since .NET Core 3.1.201 SDK. + Determines if the project is configured to use [Razor runtime compilation](/aspnet/core/mvc/views/view-compilation#runtime-compilation) in Debug builds. - **`--kestrelHttpPort`** @@ -715,7 +696,7 @@ The ability to create a project for an earlier TFM depends on having that versio - **`-au|--auth `** - The type of authentication to use. Available since .NET Core 3.0 SDK. + The type of authentication to use. The possible values are: @@ -740,7 +721,7 @@ The ability to create a project for an earlier TFM depends on having that versio - **`-f|--framework `** - Specifies the [framework](../../standard/frameworks.md) to target. Option not available in .NET Core 2.2 SDK. + Specifies the [framework](../../standard/frameworks.md) to target. The following table lists the default values according to the SDK version number you're using: @@ -750,11 +731,6 @@ The ability to create a project for an earlier TFM depends on having that versio | SDK version | Default value | |-------------|-----------------| | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | - | 3.0 | `netcoreapp3.0` | - | 2.1 | `netcoreapp2.0` | To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article. @@ -780,7 +756,7 @@ The ability to create a project for an earlier TFM depends on having that versio - **`-s|--support-pages-and-views`** - Supports adding traditional Razor pages and Views in addition to components to this library. Available since .NET Core 3.0 SDK. + Supports adding traditional Razor pages and Views in addition to components to this library. *** @@ -800,6 +776,7 @@ Creates a web API project with AOT publish enabled. For more information, see [N | SDK version | Default value | |-------------|-----------------| + | 9.0 | `net9.0` | | 8.0 | `net8.0` | - **`--no-restore`** @@ -883,13 +860,9 @@ Creates a web API project with AOT publish enabled. For more information, see [N | SDK version | Default value | |-------------|-----------------| + | 9.0 | `net9.0` | | 8.0 | `net8.0` | | 7.0 | `net7.0` | - | 6.0 | `net6.0` | - | 5.0 | `net5.0` | - | 3.1 | `netcoreapp3.1` | - | 3.0 | `netcoreapp3.0` | - | 2.1 | `netcoreapp2.1` | To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article. @@ -922,7 +895,7 @@ API Controller with or without read/write actions. - **`--sdk-version `** Specifies the version of the .NET SDK to use in the *global.json* file. - + - **`--roll-forward `** The roll-forward policy to use when selecting an SDK version, either as a fallback when a specific SDK version is missing or as a directive to use a later version. diff --git a/docs/core/versions/index.md b/docs/core/versions/index.md index aeb59feac1d96..09812f6105165 100644 --- a/docs/core/versions/index.md +++ b/docs/core/versions/index.md @@ -60,7 +60,7 @@ The optional `PRERELEASE` and `BUILDNUMBER` parts are never part of supported re - API introduced breaking changes. There's a high bar to accepting breaking changes. - A newer `MAJOR` version of an existing dependency is adopted. - Major releases happen once a year, even-numbered versions are long-term supported (LTS) releases. The first LTS release using this versioning scheme is .NET 6. The latest non-LTS version is .NET 7. + Major releases happen once a year, even-numbered versions are long-term supported (LTS) releases. The first LTS release using this versioning scheme is .NET 6. The latest non-LTS version is .NET 9. - `MINOR` is incremented when: diff --git a/docs/csharp/language-reference/configure-language-version.md b/docs/csharp/language-reference/configure-language-version.md index b93ba493b78c5..6724333aee5c9 100644 --- a/docs/csharp/language-reference/configure-language-version.md +++ b/docs/csharp/language-reference/configure-language-version.md @@ -26,7 +26,7 @@ If you must specify your C# version explicitly, you can do so in several ways: In Visual Studio, the option to change the language version through the UI might be disabled because the default version is aligned with the project's target framework (`TFM`). This default configuration ensures compatibility between language features and runtime support. -For example, changing the target `TFM` (e.g., from [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) to [.NET 9](https://dotnet.microsoft.com/en-us/download/dotnet/9.0)) will update the language version accordingly, from C# 10 to C# 13. This approach prevents issues with runtime compatibility and minimizes unexpected build errors due to unsupported language features. +For example, changing the target `TFM` (for example, from [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) to [.NET 9](https://dotnet.microsoft.com/en-us/download/dotnet/9.0)) will update the language version accordingly, from C# 10 to C# 13. This approach prevents issues with runtime compatibility and minimizes unexpected build errors due to unsupported language features. If you need a specific language version that differs from the one automatically selected, refer to the methods below to override the default settings directly in the project file. diff --git a/docs/framework/index.yml b/docs/framework/index.yml index 780d48bd335bf..b5642da1a0e7a 100644 --- a/docs/framework/index.yml +++ b/docs/framework/index.yml @@ -8,9 +8,9 @@ metadata: description: Find information about .NET Framework, a development platform for building apps for web, Windows, and Microsoft Azure. ms.topic: landing-page ms.custom: updateeachrelease - f1_keywords: + f1_keywords: - "f61f02f2-2f20-483d-8f56-a9c8f3a54986" - helpviewer_keywords: + helpviewer_keywords: - ".NET Framework guide" ms.date: 04/22/2020 @@ -43,7 +43,7 @@ landingContent: - linkListType: reference links: - text: .NET Framework APIs - url: ../../api/index.md?view=netframework-4.8 + url: ../../api/index.md?view=netframework-4.8.1 # Card - title: Install .NET Framework @@ -54,21 +54,21 @@ landingContent: url: https://dotnet.microsoft.com/download - linkListType: overview links: - - text: Installation guide + - text: Installation guide url: install/index.md - linkListType: concept links: - - text: .NET Framework & Windows versions + - text: .NET Framework & Windows versions url: migration-guide/versions-and-dependencies.md - linkListType: how-to-guide links: - - text: Determine which versions are installed + - text: Determine which versions are installed url: migration-guide/how-to-determine-which-versions-are-installed.md - - text: Install .NET Framework on Windows 10 - url: install/on-windows-10.md + - text: Install .NET Framework on Windows 11 + url: install/on-windows-11.md - text: Install .NET Framework 3.5 url: ./install/dotnet-35-windows.md - - text: Install the developer pack or redistributable + - text: Install the developer pack or redistributable url: install/guide-for-developers.md - text: Troubleshoot blocked installations url: install/troubleshoot-blocked-installations-and-uninstallations.md @@ -82,11 +82,11 @@ landingContent: url: windows-services/introduction-to-windows-service-applications.md - linkListType: tutorial links: - - text: Create a Windows service app + - text: Create a Windows service app url: windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer.md - linkListType: how-to-guide links: - - text: Install and uninstall Windows services + - text: Install and uninstall Windows services url: windows-services/how-to-install-and-uninstall-services.md # Card @@ -94,7 +94,7 @@ landingContent: linkLists: - linkListType: overview links: - - text: Desktop guide Introduction + - text: Desktop guide introduction url: /dotnet/desktop/ - text: .NET Framework WPF url: /dotnet/desktop/wpf/?view=netframeworkdesktop-4.8 @@ -134,13 +134,13 @@ landingContent: url: data/adonet/sql-server-connection-pooling.md - linkListType: how-to-guide links: - - text: Retrieve data using a DataReader + - text: Retrieve data using a DataReader url: data/adonet/retrieving-data-using-a-datareader.md - text: Add data to a DataTable url: data/adonet/dataset-datatable-dataview/adding-data-to-a-datatable.md - linkListType: reference links: - - text: Connection string syntax + - text: Connection string syntax url: data/adonet/connection-string-syntax.md - text: Sample SQL Server databases url: data/adonet/sql/linq/downloading-sample-databases.md diff --git a/docs/fundamentals/implementations.md b/docs/fundamentals/implementations.md index b1a3f3b594f5f..fc85a575fae76 100644 --- a/docs/fundamentals/implementations.md +++ b/docs/fundamentals/implementations.md @@ -1,7 +1,7 @@ --- title: .NET implementations description: Describes the various .NET implementations, including .NET 5+, .NET Framework, Mono, and UWP. -ms.date: 11/15/2023 +ms.date: 11/22/2024 ms.custom: updateeachrelease --- # .NET implementations @@ -22,13 +22,13 @@ There are four .NET implementations that Microsoft supports: - Mono - UWP -.NET, previously referred to as .NET Core, is currently the primary implementation. .NET (8) is built on a single code base that supports multiple platforms and many workloads, such as Windows desktop apps and cross-platform console apps, cloud services, and websites. [Some workloads](../core/whats-new/dotnet-6.md#sdk-workloads), such as .NET WebAssembly build tools, are available as optional installations. +.NET, previously referred to as .NET Core, is currently the primary implementation. .NET (9) is built on a single code base that supports multiple platforms and many workloads, such as Windows desktop apps and cross-platform console apps, cloud services, and websites. [Some workloads](../core/whats-new/dotnet-6.md#sdk-workloads), such as .NET WebAssembly build tools, are available as optional installations. ## .NET 5 and later versions .NET, previously referred to as .NET Core, is a cross-platform implementation of .NET that's designed to handle server and cloud workloads at scale. It also supports other workloads, including desktop apps. It runs on Windows, macOS, and Linux. It implements .NET Standard, so code that targets .NET Standard can run on .NET. [ASP.NET Core](https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core), [Windows Forms](/dotnet/desktop/winforms/windows-forms-overview), and [Windows Presentation Foundation (WPF)](/dotnet/desktop/wpf/) all run on .NET. -.NET 8 is the latest version of this .NET implementation. +.NET 9 is the latest version of this .NET implementation. For more information, see the following resources: diff --git a/docs/standard/choosing-core-framework-server.md b/docs/standard/choosing-core-framework-server.md index 2dec1d102b934..e958f9805d486 100644 --- a/docs/standard/choosing-core-framework-server.md +++ b/docs/standard/choosing-core-framework-server.md @@ -1,17 +1,17 @@ --- title: Choose between .NET and .NET Framework for server apps description: A guide to help you decide which implementation of .NET to use when building a server app. -ms.date: 06/04/2024 +ms.date: 11/22/2024 ms.custom: updateeachrelease --- # .NET vs. .NET Framework for server apps -There are two supported [.NET implementations](glossary.md#implementation-of-net) for building server-side apps: .NET and .NET Framework. **The latest .NET version (currently .NET 8) is the preferred version of .NET to use for server development.** The reasons to continue using .NET Framework are specific and limited. +There are two supported [.NET implementations](glossary.md#implementation-of-net) for building server-side apps: .NET and .NET Framework. **The latest .NET version (currently .NET 9) is the preferred version of .NET to use for server development.** The reasons to continue using .NET Framework are specific and limited. -| Implementation | Included versions | -| - | - | -| .NET | .NET Core 1.0 - 3.1
.NET 5 and later versions | -| .NET Framework | .NET Framework 1.0 - 4.8 | +| Implementation | Included versions | +|----------------|-----------------------------------------------------| +| .NET | .NET Core 1.0 - 3.1
.NET 5 and later versions | +| .NET Framework | .NET Framework 1.0 - 4.8 | ## Choose .NET diff --git a/docs/welcome.md b/docs/welcome.md index 3f959d1ad6f1e..988002fb2f26f 100644 --- a/docs/welcome.md +++ b/docs/welcome.md @@ -1,7 +1,7 @@ --- title: Welcome to .NET description: Getting started with the .NET family of technologies. -ms.date: 11/15/2023 +ms.date: 11/22/2024 ms.custom: "updateeachrelease" --- # Welcome to .NET @@ -28,9 +28,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 9](core/whats-new/dotnet-9/overview.md) -- [What's new in .NET Framework](framework/whats-new/index.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) +- [What's new in .NET Framework](framework/whats-new/index.md) ## Documentation