diff --git a/docfx.json b/docfx.json
index eee0a2598e679..98faf97e13af3 100644
--- a/docfx.json
+++ b/docfx.json
@@ -54,15 +54,7 @@
"csharp-11.0/*.md",
"csharp-12.0/*.md",
"csharp-13.0/*.md",
- "field-keyword.md",
- "unbound-generic-types-in-nameof.md",
- "first-class-span-types.md",
- "simple-lambda-parameters-with-modifiers.md",
- "partial-events-and-constructors.md",
- "null-conditional-assignment.md",
- "extensions.md",
- "user-defined-compound-assignment.md",
- "ignored-directives.md"
+ "csharp-14.0/*.md"
],
"src": "_csharplang/proposals",
"dest": "csharp/language-reference/proposals",
@@ -716,6 +708,8 @@
"_csharplang/proposals/csharp-14.0/extensions.md": "Extension members",
"_csharplang/proposals/csharp-14.0/user-defined-compound-assignment.md": "User-defined compound assignment",
"_csharplang/proposals/csharp-14.0/ignored-directives.md": "Ignored preprocessor directives",
+ "_csharplang/proposals/csharp-14.0/extension-operators.md": "Extension operators",
+ "_csharplang/proposals/csharp-14.0/optional-and-named-parameters-in-expression-trees.md": "Optional and named parameters in expression trees",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 7.md": "C# compiler breaking changes since C# 10",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 8.md": "C# compiler breaking changes since C# 11",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 9.md": "C# compiler breaking changes since C# 12",
@@ -842,6 +836,8 @@
"_csharplang/proposals/csharp-14.0/extensions.md": "This proposal enables new kinds of extension members. These new extension members support extension properties, extension static members, including extension operators.",
"_csharplang/proposals/csharp-14.0/user-defined-compound-assignment.md": "This proposal introduces user-defined compound assignment operators. Developers can override compound assignment, increment, and decrement operators.",
"_csharplang/proposals/csharp-14.0/ignored-directives.md": "This proposal allows a source file to include ignored directives. In most cases, ignored directives are used for file based programs, for example `#!`",
+ "_csharplang/proposals/csharp-14.0/extension-operators.md": "This proposal extends the proposal for extensions to include *extension operators*, where an operator can be an extension member.",
+ "_csharplang/proposals/csharp-14.0/named-and-optional-parameters-in-expression-trees.md": "This proposal allows an expression tree to include named and optional parameters. This enables expression trees to be more flexible in how they are constructed.",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 7.md": "Learn about any breaking changes since the initial release of C# 10 and included in C# 11",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 8.md": "Learn about any breaking changes since the initial release of C# 11 and included in C# 12",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 9.md": "Learn about any breaking changes since the initial release of C# 12 and included in C# 13",
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 904f9639f7cad..04ab8a77aa06c 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -179,7 +179,7 @@
| Resource Management - API Management | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.ApiManagement/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ApiManagement-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ApiManagement_1.3.0/sdk/apimanagement/Azure.ResourceManager.ApiManagement/) |
| Resource Management - App Compliance Automation | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.AppComplianceAutomation/1.0.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppComplianceAutomation-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppComplianceAutomation_1.0.1/sdk/appcomplianceautomation/Azure.ResourceManager.AppComplianceAutomation/) |
| Resource Management - App Configuration | NuGet [1.4.1](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.4.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.4.1/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) |
-| Resource Management - App Service | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.4.0/sdk/websites/Azure.ResourceManager.AppService/) |
+| Resource Management - App Service | NuGet [1.4.1](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.4.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.4.1/sdk/websites/Azure.ResourceManager.AppService/) |
| Resource Management - Application Insights | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ApplicationInsights/1.0.1)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ApplicationInsights/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ApplicationInsights-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ApplicationInsights_1.0.1/sdk/applicationinsights/Azure.ResourceManager.ApplicationInsights/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ApplicationInsights_1.1.0-beta.1/sdk/applicationinsights/Azure.ResourceManager.ApplicationInsights/) |
| Resource Management - Arizeaiobservabilityeval | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.ArizeAIObservabilityEval/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ArizeAIObservabilityEval-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ArizeAIObservabilityEval_1.0.0/sdk/arizeaiobservabilityeval/Azure.ResourceManager.ArizeAIObservabilityEval/) |
| Resource Management - Astro | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.Astro/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Astro-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Astro_1.0.0-beta.2/sdk/astronomer/Azure.ResourceManager.Astro/) |
@@ -209,7 +209,7 @@
| Resource Management - Connected VMware vSphere | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedVMwarevSphere/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedVMwarevSphere-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedVMwarevSphere_1.1.1/sdk/connectedvmwarevsphere/Azure.ResourceManager.ConnectedVMwarevSphere/) |
| Resource Management - Connectedcache | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedCache/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedCache-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedCache_1.0.0-beta.1/sdk/connectedcache/Azure.ResourceManager.ConnectedCache/) |
| Resource Management - Consumption | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.Consumption/1.0.1)
NuGet [1.1.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.Consumption/1.1.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.Consumption-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Consumption_1.0.1/sdk/consumption/Azure.ResourceManager.Consumption/)
GitHub [1.1.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Consumption_1.1.0-beta.3/sdk/consumption/Azure.ResourceManager.Consumption/) |
-| Resource Management - Container Apps | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.AppContainers/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AppContainers-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppContainers_1.4.0/sdk/containerapps/Azure.ResourceManager.AppContainers/) |
+| Resource Management - Container Apps | NuGet [1.4.1](https://www.nuget.org/packages/Azure.ResourceManager.AppContainers/1.4.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppContainers-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppContainers_1.4.1/sdk/containerapps/Azure.ResourceManager.AppContainers/) |
| Resource Management - Container Instances | NuGet [1.2.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerInstance/1.2.1)
NuGet [1.3.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ContainerInstance/1.3.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerInstance-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerInstance_1.2.1/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/)
GitHub [1.3.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerInstance_1.3.0-beta.2/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/) |
| Resource Management - Container Orchestrator Runtime | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerOrchestratorRuntime/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerOrchestratorRuntime-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerOrchestratorRuntime_1.0.0-beta.1/sdk/containerorchestratorruntime/Azure.ResourceManager.ContainerOrchestratorRuntime/) |
| Resource Management - Container Registry | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerRegistry-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerRegistry_1.3.0/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry/) |
@@ -308,7 +308,7 @@
| Resource Management - MySQL | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.MySql/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.MySql-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MySql_1.1.1/sdk/mysql/Azure.ResourceManager.MySql/) |
| Resource Management - Neon Postgres | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.NeonPostgres/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NeonPostgres-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NeonPostgres_1.0.0/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/) |
| Resource Management - NetApp Files | NuGet [1.11.0](https://www.nuget.org/packages/Azure.ResourceManager.NetApp/1.11.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NetApp-readme) | GitHub [1.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetApp_1.11.0/sdk/netapp/Azure.ResourceManager.NetApp/) |
-| Resource Management - Network | NuGet [1.11.1](https://www.nuget.org/packages/Azure.ResourceManager.Network/1.11.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Network-readme) | GitHub [1.11.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Network_1.11.1/sdk/network/Azure.ResourceManager.Network/) |
+| Resource Management - Network | NuGet [1.11.2](https://www.nuget.org/packages/Azure.ResourceManager.Network/1.11.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Network-readme) | GitHub [1.11.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Network_1.11.2/sdk/network/Azure.ResourceManager.Network/) |
| Resource Management - Network Cloud | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.NetworkCloud/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NetworkCloud-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetworkCloud_1.2.0/sdk/networkcloud/Azure.ResourceManager.NetworkCloud/) |
| Resource Management - Network Function | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.NetworkFunction/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.NetworkFunction-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetworkFunction_1.0.0-beta.5/sdk/networkfunction/Azure.ResourceManager.NetworkFunction/) |
| Resource Management - New Relic Observability | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.NewRelicObservability/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.NewRelicObservability-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NewRelicObservability_1.1.1/sdk/newrelicobservability/Azure.ResourceManager.NewRelicObservability/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index f1190a3c23e52..56c29a7a6c573 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -186,7 +186,7 @@
| Resource Management - App Compliance Automation | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.AppComplianceAutomation/1.0.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppComplianceAutomation-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppComplianceAutomation_1.0.1/sdk/appcomplianceautomation/Azure.ResourceManager.AppComplianceAutomation/) |
| Resource Management - App Configuration | NuGet [1.4.1](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.4.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.4.1/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) |
| Resource Management - App Platform | NuGet [1.1.2](https://www.nuget.org/packages/Azure.ResourceManager.AppPlatform/1.1.2) | [docs](/dotnet/api/overview/azure/ResourceManager.AppPlatform-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppPlatform_1.1.2/sdk/appplatform/Azure.ResourceManager.AppPlatform/) |
-| Resource Management - App Service | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.4.0/sdk/websites/Azure.ResourceManager.AppService/) |
+| Resource Management - App Service | NuGet [1.4.1](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.4.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.4.1/sdk/websites/Azure.ResourceManager.AppService/) |
| Resource Management - Application Insights | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ApplicationInsights/1.0.1)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ApplicationInsights/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ApplicationInsights-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ApplicationInsights_1.0.1/sdk/applicationinsights/Azure.ResourceManager.ApplicationInsights/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ApplicationInsights_1.1.0-beta.1/sdk/applicationinsights/Azure.ResourceManager.ApplicationInsights/) |
| Resource Management - Arc ScVmm | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ArcScVmm/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ArcScVmm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ArcScVmm_1.0.0-beta.4/sdk/arc-scvmm/Azure.ResourceManager.ArcScVmm/) |
| Resource Management - Arizeaiobservabilityeval | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.ArizeAIObservabilityEval/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ArizeAIObservabilityEval-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ArizeAIObservabilityEval_1.0.0/sdk/arizeaiobservabilityeval/Azure.ResourceManager.ArizeAIObservabilityEval/) |
@@ -217,7 +217,7 @@
| Resource Management - Connected VMware vSphere | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedVMwarevSphere/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedVMwarevSphere-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedVMwarevSphere_1.1.1/sdk/connectedvmwarevsphere/Azure.ResourceManager.ConnectedVMwarevSphere/) |
| Resource Management - Connectedcache | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedCache/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedCache-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedCache_1.0.0-beta.1/sdk/connectedcache/Azure.ResourceManager.ConnectedCache/) |
| Resource Management - Consumption | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.Consumption/1.0.1)
NuGet [1.1.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.Consumption/1.1.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.Consumption-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Consumption_1.0.1/sdk/consumption/Azure.ResourceManager.Consumption/)
GitHub [1.1.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Consumption_1.1.0-beta.3/sdk/consumption/Azure.ResourceManager.Consumption/) |
-| Resource Management - Container Apps | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.AppContainers/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AppContainers-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppContainers_1.4.0/sdk/containerapps/Azure.ResourceManager.AppContainers/) |
+| Resource Management - Container Apps | NuGet [1.4.1](https://www.nuget.org/packages/Azure.ResourceManager.AppContainers/1.4.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppContainers-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppContainers_1.4.1/sdk/containerapps/Azure.ResourceManager.AppContainers/) |
| Resource Management - Container Instances | NuGet [1.2.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerInstance/1.2.1)
NuGet [1.3.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ContainerInstance/1.3.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerInstance-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerInstance_1.2.1/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/)
GitHub [1.3.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerInstance_1.3.0-beta.2/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/) |
| Resource Management - Container Orchestrator Runtime | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerOrchestratorRuntime/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerOrchestratorRuntime-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerOrchestratorRuntime_1.0.0-beta.1/sdk/containerorchestratorruntime/Azure.ResourceManager.ContainerOrchestratorRuntime/) |
| Resource Management - Container Registry | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerRegistry-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerRegistry_1.3.0/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry/) |
@@ -318,7 +318,7 @@
| Resource Management - MySQL | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.MySql/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.MySql-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MySql_1.1.1/sdk/mysql/Azure.ResourceManager.MySql/) |
| Resource Management - Neon Postgres | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.NeonPostgres/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NeonPostgres-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NeonPostgres_1.0.0/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/) |
| Resource Management - NetApp Files | NuGet [1.11.0](https://www.nuget.org/packages/Azure.ResourceManager.NetApp/1.11.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NetApp-readme) | GitHub [1.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetApp_1.11.0/sdk/netapp/Azure.ResourceManager.NetApp/) |
-| Resource Management - Network | NuGet [1.11.1](https://www.nuget.org/packages/Azure.ResourceManager.Network/1.11.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Network-readme) | GitHub [1.11.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Network_1.11.1/sdk/network/Azure.ResourceManager.Network/) |
+| Resource Management - Network | NuGet [1.11.2](https://www.nuget.org/packages/Azure.ResourceManager.Network/1.11.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Network-readme) | GitHub [1.11.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Network_1.11.2/sdk/network/Azure.ResourceManager.Network/) |
| Resource Management - Network Analytics | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.NetworkAnalytics/1.0.1) | [docs](/dotnet/api/overview/azure/ResourceManager.NetworkAnalytics-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetworkAnalytics_1.0.1/sdk/networkanalytics/Azure.ResourceManager.NetworkAnalytics/) |
| Resource Management - Network Cloud | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.NetworkCloud/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NetworkCloud-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetworkCloud_1.2.0/sdk/networkcloud/Azure.ResourceManager.NetworkCloud/) |
| Resource Management - Network Function | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.NetworkFunction/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.NetworkFunction-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetworkFunction_1.0.0-beta.5/sdk/networkfunction/Azure.ResourceManager.NetworkFunction/) |
diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md
index 545e946cadccf..57a188f9be1ad 100644
--- a/docs/core/compatibility/10.0.md
+++ b/docs/core/compatibility/10.0.md
@@ -2,7 +2,7 @@
title: Breaking changes in .NET 10
titleSuffix: ""
description: Navigate to the breaking changes in .NET 10.
-ms.date: 06/05/2025
+ms.date: 08/08/2025
ai-usage: ai-assisted
no-loc: [Blazor, Razor, Kestrel]
---
@@ -19,10 +19,13 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af
| Title | Type of change | Introduced version |
|-------|-------------------|--------------------|
+| [Cookie login redirects disabled for known API endpoints](aspnet-core/10/cookie-authentication-api-endpoints.md) | Behavioral change | Preview 7 |
| [Deprecation of WithOpenApi extension method](aspnet-core/10/withopenapi-deprecated.md) | Source incompatible | Preview 7 |
+| [Exception diagnostics suppressed when TryHandleAsync returns true](aspnet-core/10/exception-handler-diagnostics-suppressed.md) | Behavioral change | Preview 7 |
| [IActionContextAccessor and ActionContextAccessor are obsolete](aspnet-core/10/iactioncontextaccessor-obsolete.md) | Source incompatible/behavioral change | Preview 7 |
| [IncludeOpenAPIAnalyzers property and MVC API analyzers are deprecated](aspnet-core/10/openapi-analyzers-deprecated.md) | Source incompatible | Preview 7 |
| [Microsoft.Extensions.ApiDescription.Client package deprecated](aspnet-core/10/apidescription-client-deprecated.md) | Source incompatible | Preview 7 |
+| [Razor run-time compilation is obsolete](aspnet-core/10/razor-runtime-compilation-obsolete.md) | Source incompatible | Preview 7 |
## Containers
@@ -85,6 +88,7 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af
| [HTTP/3 support disabled by default with PublishTrimmed](networking/10.0/http3-disabled-with-publishtrimmed.md) | Source incompatible | Preview 6 |
| [HttpClient/SslStream default certificate revocation check mode changed to Online](networking/10.0/ssl-certificate-revocation-check-default.md) | Behavioral change | Preview 6 |
| [Streaming HTTP responses enabled by default in browser HTTP clients](networking/10.0/default-http-streaming.md) | Behavioral change | Preview 3 |
+| [`Uri` length limits removed](networking/10.0/uri-length-limits-removed.md) | Behavioral change | Preview 7 |
## SDK and MSBuild
diff --git a/docs/core/compatibility/aspnet-core/10/cookie-authentication-api-endpoints.md b/docs/core/compatibility/aspnet-core/10/cookie-authentication-api-endpoints.md
new file mode 100644
index 0000000000000..bdc3b2ce1935e
--- /dev/null
+++ b/docs/core/compatibility/aspnet-core/10/cookie-authentication-api-endpoints.md
@@ -0,0 +1,110 @@
+---
+title: "Cookie login redirects are disabled for known API endpoints"
+description: "Learn about the breaking change in ASP.NET Core 10 where cookie authentication no longer redirects to login or access denied URIs for known API endpoints."
+ms.date: 08/08/2025
+ai-usage: ai-assisted
+ms.custom: https://github.com/aspnet/Announcements/issues/525
+---
+
+# Cookie login redirects are disabled for known API endpoints
+
+By default, unauthenticated and unauthorized requests made to known API endpoints protected by cookie authentication now result in 401 and 403 responses rather than redirecting to a login or access-denied URI.
+
+Known API [endpoints](/aspnet/core/fundamentals/routing) are identified using the new `IApiEndpointMetadata` interface, and metadata implementing the new interface has been added automatically to the following:
+
+- [`[ApiController]`](xref:Microsoft.AspNetCore.Mvc.ApiControllerAttribute) endpoints.
+- Minimal API endpoints that read JSON request bodies or write JSON responses.
+- Endpoints using return types.
+- SignalR endpoints.
+
+## Version introduced
+
+.NET 10 Preview 7
+
+## Previous behavior
+
+Previously, the cookie authentication handler redirected unauthenticated and unauthorized requests to a login or access-denied URI by default for all requests other than [XMLHttpRequests (XHRs)](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest).
+
+## New behavior
+
+Starting in .NET 10, unauthenticated and unauthorized requests made to known API endpoints result in 401 and 403 responses rather than redirecting to a login or access-denied URI. XHRs continue to result in 401 and 403 responses regardless of the target endpoint.
+
+## Type of breaking change
+
+This change is a [behavioral change](../../categories.md#behavioral-change).
+
+## Reason for change
+
+This change was highly requested. Redirecting unauthenticated requests to a login page doesn't usually make sense for API endpoints, which typically rely on 401 and 403 status codes rather than HTML redirects to communicate auth failures.
+
+## Recommended action
+
+If you want to always redirect to the login and access-denied URIs for unauthenticated or unauthorized requests regardless of the target endpoint or whether the source of the request is an XHR, you can override and as follows:
+
+```csharp
+builder.Services.AddAuthentication()
+ .AddCookie(options =>
+ {
+ options.Events.OnRedirectToLogin = context =>
+ {
+ context.Response.Redirect(context.RedirectUri);
+ return Task.CompletedTask;
+ };
+
+ options.Events.OnRedirectToAccessDenied = context =>
+ {
+ context.Response.Redirect(context.RedirectUri);
+ return Task.CompletedTask;
+ };
+ });
+```
+
+If you want to revert to the exact previous behavior that avoids redirecting for only XHRs, you can override the events with this slightly more complicated logic:
+
+```csharp
+builder.Services.AddAuthentication()
+ .AddCookie(options =>
+ {
+ bool IsXhr(HttpRequest request)
+ {
+ return string.Equals(request.Query[HeaderNames.XRequestedWith], "XMLHttpRequest", StringComparison.Ordinal) ||
+ string.Equals(request.Headers.XRequestedWith, "XMLHttpRequest", StringComparison.Ordinal);
+ }
+
+ options.Events.OnRedirectToLogin = context =>
+ {
+ if (IsXhr(context.Request))
+ {
+ context.Response.Headers.Location = context.RedirectUri;
+ context.Response.StatusCode = 401;
+ }
+ else
+ {
+ context.Response.Redirect(context.RedirectUri);
+ }
+
+ return Task.CompletedTask;
+ };
+
+ options.Events.OnRedirectToAccessDenied = context =>
+ {
+ if (IsXhr(context.Request))
+ {
+ context.Response.Headers.Location = context.RedirectUri;
+ context.Response.StatusCode = 403;
+ }
+ else
+ {
+ context.Response.Redirect(context.RedirectUri);
+ }
+
+ return Task.CompletedTask;
+ };
+ });
+```
+
+## Affected APIs
+
+- `Microsoft.AspNetCore.Http.Metadata.IApiEndpointMetadata`
+-
+-
diff --git a/docs/core/compatibility/aspnet-core/10/exception-handler-diagnostics-suppressed.md b/docs/core/compatibility/aspnet-core/10/exception-handler-diagnostics-suppressed.md
new file mode 100644
index 0000000000000..6b7e5b3ed2d66
--- /dev/null
+++ b/docs/core/compatibility/aspnet-core/10/exception-handler-diagnostics-suppressed.md
@@ -0,0 +1,55 @@
+---
+title: "Breaking change: Exception diagnostics are suppressed when IExceptionHandler.TryHandleAsync returns true"
+description: Learn about the breaking change in ASP.NET Core 10 where exception diagnostics are no longer recorded when IExceptionHandler.TryHandleAsync returns true.
+ms.date: 08/08/2025
+---
+
+# Exception diagnostics are suppressed when IExceptionHandler.TryHandleAsync returns true
+
+The ASP.NET Core exception handler middleware no longer records diagnostics for exceptions handled by by default.
+
+## Version introduced
+
+.NET 10 Preview 7
+
+## Previous behavior
+
+Previously, the exception handler middleware recorded diagnostics about exceptions handled by .
+
+The exception diagnostics are:
+
+- Logging `UnhandledException` to .
+- Writing the `Microsoft.AspNetCore.Diagnostics.HandledException` event to .
+- Adding the `error.type` tag to the `http.server.request.duration` metric.
+
+## New behavior
+
+Starting in .NET 10, if returns `true`, then exception diagnostics are no longer recorded by default.
+
+## Type of breaking change
+
+This change is a [behavioral change](../../categories.md#behavioral-change).
+
+## Reason for change
+
+ASP.NET Core users have given feedback that the previous behavior was undesirable. Their implementation reported that the exception was handled, but the error handling middleware still recorded the error in the app's telemetry.
+
+ASP.NET Core now follows the behavior expected by users by suppressing diagnostics when handles the exception. Configuration options are also available to customize exception diagnostics behavior if needed.
+
+## Recommended action
+
+If you want handled exceptions to continue to record telemetry, you can use the new `ExceptionHandlerOptions.SuppressDiagnosticsCallback` option:
+
+```csharp
+app.UseExceptionHandler(new ExceptionHandlerOptions
+{
+ SuppressDiagnosticsCallback = context => false;
+});
+```
+
+The `context` passed to the callback includes information about the exception, the request, and whether the exception was handled. The callback returns `false` to indicate that diagnostics shouldn't be suppressed, thus restoring the previous behavior.
+
+## Affected APIs
+
+-
+-
diff --git a/docs/core/compatibility/aspnet-core/10/razor-runtime-compilation-obsolete.md b/docs/core/compatibility/aspnet-core/10/razor-runtime-compilation-obsolete.md
new file mode 100644
index 0000000000000..33a18a06935cf
--- /dev/null
+++ b/docs/core/compatibility/aspnet-core/10/razor-runtime-compilation-obsolete.md
@@ -0,0 +1,43 @@
+---
+title: "Breaking change: Razor run-time compilation is obsolete"
+description: Learn about the breaking change in ASP.NET Core 10.0 where Razor run-time compilation APIs have been marked obsolete.
+ms.date: 08/08/2025
+---
+
+# Razor run-time compilation is obsolete
+
+Razor run-time compilation is obsolete and is not recommended for production scenarios. For production scenarios, use the default build-time compilation. For development scenarios, use Hot Reload instead.
+
+## Version introduced
+
+.NET 10 Preview 7
+
+## Previous behavior
+
+Previously, you could use [Razor run-time compilation](/aspnet/core/mvc/views/view-compilation) to recompile `.cshtml` files while the application was running. This meant you didn't need to restart the application for changes to take effect.
+
+## New behavior
+
+Starting in .NET 10, use of the [affected APIs](#affected-apis) produces a compiler warning with diagnostic ID `ASPDEPR003`:
+
+> warning ASPDEPR003: Razor run-time compilation is obsolete and is not recommended for production scenarios. For production scenarios, use the default build time compilation. For development scenarios, use Hot Reload instead. For more information, visit .
+
+## Type of breaking change
+
+This change can affect [source compatibility](../../categories.md#source-compatibility).
+
+## Reason for change
+
+Razor run-time compilation has been replaced by Hot Reload, which has been the recommended approach for a few years now. This change makes it clearer that Razor run-time compilation doesn't get support for new features and should no longer be used.
+
+## Recommended action
+
+Remove calls to and use Hot Reload instead.
+
+## Affected APIs
+
+-
+-
+-
+-
+-
diff --git a/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md b/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md
new file mode 100644
index 0000000000000..99bf1830872d5
--- /dev/null
+++ b/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md
@@ -0,0 +1,61 @@
+---
+title: "Breaking change: URI length limits removed"
+description: "Learn about the .NET 10 breaking change in networking where URI length limits of around 65K characters have been removed."
+ms.date: 08/11/2025
+ai-usage: ai-assisted
+---
+
+# `Uri` length limits removed
+
+Methods that create instances (constructors and factory methods) have historically limited the length of the URI string to around 65,000 characters (exact limits varied slightly depending on the input format). These limits have been lifted such that there is practically no upper bound on how long `Uri` instances can be.
+
+## Version introduced
+
+.NET 10 Preview 7
+
+## Previous behavior
+
+Previously, it wasn't possible to create a instance whose length exceeded around 65,000 characters. Code like the following example threw a with the message "Invalid URI: The Uri string is too long."
+
+```csharp
+new Uri($"https://host/{new string('a', 100_000)}")
+```
+
+## New behavior
+
+Starting in .NET 10, instances containing large amounts of data can now be created. For example:
+
+```csharp
+string largeQuery = ...;
+return new Uri($"https://someService/?query={Uri.EscapeDataString(largeQuery)}");
+```
+
+The removed restrictions mainly apply to paths, queries, and fragments as the most practical components to carry large amounts of data. Components such as the scheme and host might still enforce some length limits. Practical limitations as you approach the length limits of `string` also apply, so you can't (nor should you) use to represent a 10 GB file.
+
+## Type of breaking change
+
+This change is a [behavioral change](../../categories.md#behavioral-change).
+
+## Reason for change
+
+Most HTTP servers enforce strict length restrictions on URLs they are willing to accept in requests. The limits are generally much lower than 's previous limits. However, since is the de facto exchange type in .NET for URI-like information, the previous limits limited its use in some scenarios without good workarounds aside from removing the use of throughout API contracts.
+
+The main scenarios for large are:
+
+- `data:` uris, which contain arbitrary binary blobs encoded in Base64. These might be transmitted outside of the HTTP request line. For example, they might be part of the request body, and can therefore be arbitrarily large. can now be used to represent data URIs containing larger files.
+- Large query strings. is often used as an exchange type between systems even if it will never be sent as part of an HTTP request. User request information is often encoded as part of the query string, so the new behavior enables such scenarios even as the amount of data grows.
+
+## Recommended action
+
+For most users, there is no action required.
+
+If you rely on to impose length restrictions as part of your input validation, you must now perform length checking yourself, preferably as a step before you construct the instance. As most HTTP servers enforce much stricter length limits in practice, very long inputs were already likely to result in failures when sent as part of an HTTP request. You might find that your scenario would benefit from performing even stricter length validation than had done previously.
+
+## Affected APIs
+
+-
+-
+- All members that return information about the instance, such as:
+ -
+ -
+ -
diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml
index 5d759fa5537af..4f2b979b842de 100644
--- a/docs/core/compatibility/toc.yml
+++ b/docs/core/compatibility/toc.yml
@@ -10,14 +10,20 @@ items:
href: 10.0.md
- name: ASP.NET Core
items:
+ - name: Cookie login redirects disabled for known API endpoints
+ href: aspnet-core/10/cookie-authentication-api-endpoints.md
- name: Deprecation of WithOpenApi extension method
href: aspnet-core/10/withopenapi-deprecated.md
+ - name: Exception diagnostics suppressed when TryHandleAsync returns true
+ href: aspnet-core/10/exception-handler-diagnostics-suppressed.md
- name: IActionContextAccessor and ActionContextAccessor are obsolete
href: aspnet-core/10/iactioncontextaccessor-obsolete.md
- name: IncludeOpenAPIAnalyzers property and MVC API analyzers are deprecated
href: aspnet-core/10/openapi-analyzers-deprecated.md
- name: Microsoft.Extensions.ApiDescription.Client package deprecated
href: aspnet-core/10/apidescription-client-deprecated.md
+ - name: Razor run-time compilation is obsolete
+ href: aspnet-core/10/razor-runtime-compilation-obsolete.md
- name: Containers
items:
- name: Default .NET images use Ubuntu
@@ -88,6 +94,8 @@ items:
href: networking/10.0/ssl-certificate-revocation-check-default.md
- name: Streaming HTTP responses enabled by default in browser HTTP clients
href: networking/10.0/default-http-streaming.md
+ - name: "'Uri' length limits removed"
+ href: networking/10.0/uri-length-limits-removed.md
- name: SDK and MSBuild
items:
- name: .NET CLI `--interactive` defaults to `true` in user scenarios
diff --git a/docs/csharp/language-reference/compiler-options/advanced.md b/docs/csharp/language-reference/compiler-options/advanced.md
index fb37e22e45914..91311790d5ad2 100644
--- a/docs/csharp/language-reference/compiler-options/advanced.md
+++ b/docs/csharp/language-reference/compiler-options/advanced.md
@@ -56,13 +56,13 @@ You add any of these options in a `` element in your `*.csproj` f
## StartupObject
-This option specifies the class that contains the entry point to the program, if more than one class contains a `Main` method.
+This option specifies the class that contains the entry point to the program when your project includes more than one type with a `Main` method. When there's exactly one acceptable `Main` method in the project, this option is ignored.
```xml
MyNamespace.Program
```
-Where `Program` is the type that contains the `Main` method. The class name can be either fully qualified (including the namespace) or just the class name if it's unambiguous. For example, when the `Main` method is located inside the `Program` class in the `MyApplication.Core` namespace, you can specify either `-main:MyApplication.Core.Program` or just `-main:Program` if there's no ambiguity. If your compilation includes more than one type with a [`Main`](../../fundamentals/program-structure/main-command-line.md) method, you can specify which type contains the `Main` method.
+Where `Program` is the type that contains the `Main` method. When this option is required (multiple `Main` methods exist), the provided class name must be fully qualified; it must include the full namespace containing the class, followed by the class name. For example, when the `Main` method is located inside the `Program` class in the `MyApplication.Core` namespace, the compiler option has to be `-main:MyApplication.Core.Program`. If the class is in the global namespace, the fully qualified name is the same as the simple class name (for example, `Program` instead of `MyNamespace.Program`).
> [!NOTE]
> This option can't be used for a project that includes [top-level statements](../../fundamentals/program-structure/top-level-statements.md), even if that project contains one or more `Main` methods.
diff --git a/docs/csharp/language-reference/operators/collection-expressions.md b/docs/csharp/language-reference/operators/collection-expressions.md
index 353497c1d85b3..5ab44eea7f159 100644
--- a/docs/csharp/language-reference/operators/collection-expressions.md
+++ b/docs/csharp/language-reference/operators/collection-expressions.md
@@ -34,7 +34,7 @@ The spread element `..vowels`, when evaluated, produces five elements: `"a"`, `"
A *collection expression* can be converted to different collection types, including:
- and .
-- [Arrays](../builtin-types/arrays.md).
+- [Arrays](../builtin-types/arrays.md), such as `int[]` or `string[]`.
- Any type with a *create* method whose parameter type is `ReadOnlySpan` where there's an implicit conversion from the collection expression type to `T`.
- Any type that supports a [collection initializer](../../programming-guide/classes-and-structs/object-and-collection-initializers.md#collection-initializers), such as . Usually, this requirement means the type supports and there's an accessible `Add` method to add items to the collection. There must be an implicit conversion from the collection expression elements' type to the collection's element type. For spread elements, there must be an implicit conversion from the spread element's type to the collection's element type.
- Any of the following interfaces:
@@ -44,6 +44,9 @@ A *collection expression* can be converted to different collection types, includ
- .
- .
+> [!NOTE]
+> Collection expressions can't be used to initialize [inline arrays](../builtin-types/struct.md#inline-arrays). Inline arrays require different initialization syntax.
+
> [!IMPORTANT]
> A collection expression always creates a collection that includes all elements in the collection expression, regardless of the target type of the conversion. For example, when the target of the conversion is , the generated code evaluates the collection expression and stores the results in an in-memory collection.
>
diff --git a/docs/csharp/programming-guide/classes-and-structs/finalizers.md b/docs/csharp/programming-guide/classes-and-structs/finalizers.md
index 8c6e4ceefa6c7..e40870052beb9 100644
--- a/docs/csharp/programming-guide/classes-and-structs/finalizers.md
+++ b/docs/csharp/programming-guide/classes-and-structs/finalizers.md
@@ -59,6 +59,9 @@ The programmer has no control over when the finalizer is called; the garbage col
In general, C# does not require as much memory management on the part of the developer as languages that don't target a runtime with garbage collection. This is because the .NET garbage collector implicitly manages the allocation and release of memory for your objects. However, when your application encapsulates unmanaged resources, such as windows, files, and network connections, you should use finalizers to free those resources. When the object is eligible for finalization, the garbage collector runs the `Finalize` method of the object.
+> [!WARNING]
+> Don't access managed object members from a finalizer. During finalization, managed objects might already be disposed, making them unavailable or in an invalid state. Only access unmanaged resources directly from finalizers.
+
## Explicit release of resources
If your application is using an expensive external resource, we also recommend that you provide a way to explicitly release the resource before the garbage collector frees the object. To release the resource, implement a `Dispose` method from the interface that performs the necessary cleanup for the object. This can considerably improve the performance of the application. Even with this explicit control over resources, the finalizer becomes a safeguard to clean up resources if the call to the `Dispose` method fails.
diff --git a/docs/csharp/specification/toc.yml b/docs/csharp/specification/toc.yml
index 12e21d99dc17b..8fe28a6c16ea9 100644
--- a/docs/csharp/specification/toc.yml
+++ b/docs/csharp/specification/toc.yml
@@ -111,6 +111,8 @@ items:
href: ../../../_csharplang/proposals/csharp-9.0/native-integers.md
- name: Numeric IntPtr
href: ../../../_csharplang/proposals/csharp-11.0/numeric-intptr.md
+ - name: Named and optional parameters in expression trees
+ href: ../../../_csharplang/proposals/csharp-14.0/optional-and-named-parameters-in-expression-trees.md
- name: Variables
items:
- name: Improved definite assignment analysis
@@ -221,6 +223,8 @@ items:
href: ../../../_csharplang/proposals/csharp-13.0/params-collections.md
- name: Extension members
href: ../../../_csharplang/proposals/csharp-14.0/extensions.md
+ - name: Extension operators
+ href: ../../../_csharplang/proposals/csharp-14.0/extension-operators.md
- name: Structs
items:
- name: Parameterless struct constructors