From cfe4212167211bd1f130aecb9a4a7780eb086ec7 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Thu, 26 Mar 2026 11:25:21 -0700
Subject: [PATCH 01/11] Update package index with latest published versions
(#52696)
---
docs/azure/includes/dotnet-all.md | 18 +++++++++---------
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 65eb8a5473e12..d7c15f8dc888e 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -155,7 +155,7 @@
| Provisioning - Cdn | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Cdn/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Cdn-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Cdn_1.0.0-beta.1/sdk/provisioning/Azure.Provisioning.Cdn/) |
| Provisioning - Cognitive Services | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.CognitiveServices/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.CognitiveServices-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CognitiveServices_1.2.0/sdk/provisioning/Azure.Provisioning.CognitiveServices/) |
| Provisioning - Communication | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.Provisioning.Communication/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Provisioning.Communication-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Communication_1.0.0-beta.4/sdk/provisioning/Azure.Provisioning.Communication/) |
-| Provisioning - Compute | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.1/sdk/compute/Azure.Provisioning.Compute/) |
+| Provisioning - Compute | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Compute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.1/sdk/compute/Azure.Provisioning.Compute/) |
| Provisioning - Container Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.ContainerRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerRegistry_1.1.0/sdk/provisioning/Azure.Provisioning.ContainerRegistry/) |
| Provisioning - Container Service | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Provisioning.ContainerService/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerService-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerService_1.0.0-beta.5/sdk/provisioning/Azure.Provisioning.ContainerService/) |
| Provisioning - CosmosDB | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.CosmosDB/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.CosmosDB/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.CosmosDB-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CosmosDB_1.0.0/sdk/provisioning/Azure.Provisioning.CosmosDB/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CosmosDB_1.1.0-beta.1/sdk/provisioning/Azure.Provisioning.CosmosDB/) |
@@ -411,13 +411,13 @@
| Resource Management - Workloadssapvirtualinstance | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.WorkloadsSapVirtualInstance/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.WorkloadsSapVirtualInstance-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.WorkloadsSapVirtualInstance_1.0.0-beta.1/sdk/workloadssapvirtualinstance/Azure.ResourceManager.WorkloadsSapVirtualInstance/) |
| App Configuration Extension | NuGet [8.5.0](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.Functions.Worker/8.5.0)
NuGet [8.6.0-preview](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.Functions.Worker/8.6.0-preview) | | |
| App Configuration Provider | NuGet [8.5.0](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.AspNetCore/8.5.0)
NuGet [8.6.0-preview](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.AspNetCore/8.6.0-preview) | | |
-| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp/1.0.0)
NuGet [2.0.0-beta.32](https://www.nuget.org/packages/Azure.Mcp/2.0.0-beta.32) | | |
-| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/1.0.0)
NuGet [2.0.0-beta.32](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/2.0.0-beta.32) | | |
-| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-x64/1.0.0)
NuGet [2.0.0-beta.32](https://www.nuget.org/packages/Azure.Mcp.linux-x64/2.0.0-beta.32) | | |
-| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/1.0.0)
NuGet [2.0.0-beta.32](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/2.0.0-beta.32) | | |
-| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-x64/1.0.0)
NuGet [2.0.0-beta.32](https://www.nuget.org/packages/Azure.Mcp.osx-x64/2.0.0-beta.32) | | |
-| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-arm64/1.0.0)
NuGet [2.0.0-beta.32](https://www.nuget.org/packages/Azure.Mcp.win-arm64/2.0.0-beta.32) | | |
-| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-x64/1.0.0)
NuGet [2.0.0-beta.32](https://www.nuget.org/packages/Azure.Mcp.win-x64/2.0.0-beta.32) | | |
+| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp/1.0.0)
NuGet [2.0.0-beta.33](https://www.nuget.org/packages/Azure.Mcp/2.0.0-beta.33) | | |
+| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/1.0.0)
NuGet [2.0.0-beta.33](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/2.0.0-beta.33) | | |
+| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-x64/1.0.0)
NuGet [2.0.0-beta.33](https://www.nuget.org/packages/Azure.Mcp.linux-x64/2.0.0-beta.33) | | |
+| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/1.0.0)
NuGet [2.0.0-beta.33](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/2.0.0-beta.33) | | |
+| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-x64/1.0.0)
NuGet [2.0.0-beta.33](https://www.nuget.org/packages/Azure.Mcp.osx-x64/2.0.0-beta.33) | | |
+| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-arm64/1.0.0)
NuGet [2.0.0-beta.33](https://www.nuget.org/packages/Azure.Mcp.win-arm64/2.0.0-beta.33) | | |
+| Azure MCP | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-x64/1.0.0)
NuGet [2.0.0-beta.33](https://www.nuget.org/packages/Azure.Mcp.win-x64/2.0.0-beta.33) | | |
| Azure MCP Types Internal | NuGet [0.2.804](https://www.nuget.org/packages/Microsoft.Azure.Mcp.AzTypes.Internal.Compact/0.2.804) | | |
| Azure.Communication.Administration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.Administration/1.0.0-beta.3) | | |
| Caching - PostgreSQL | NuGet [1.2.2](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Postgres/1.2.2) | | |
@@ -469,7 +469,7 @@
| Speech Extension ONNX Runtime | NuGet [1.48.2](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime/1.48.2) | | |
| Speech Extension Telemetry | NuGet [1.48.2](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.Telemetry/1.48.2) | | |
| System Net Client Model | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/System.Net.ClientModel/1.0.0-beta.1) | | |
-| WebJobs Extension Cosmos DB Mongo | NuGet [1.2.0-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AzureCosmosDb.Mongo/1.2.0-preview) | | |
+| WebJobs Extension Cosmos DB Mongo | NuGet [1.2.1-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AzureCosmosDb.Mongo/1.2.1-preview) | | |
| WebJobs Extension MySQL | NuGet [1.0.129](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MySql/1.0.129) | | |
| Anomaly Detector | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.AnomalyDetector/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.AnomalyDetector_1.0.0-preview.1/sdk/cognitiveservices/AnomalyDetector) |
| App Service | NuGet [0.2.2-alpha](https://www.nuget.org/packages/Microsoft.Azure.AppService/0.2.2-alpha) | | |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 202229b8cbe8c..9cc106da0f287 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -168,7 +168,7 @@
| Provisioning - Cdn | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Cdn/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Cdn-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Cdn_1.0.0-beta.1/sdk/provisioning/Azure.Provisioning.Cdn/) |
| Provisioning - Cognitive Services | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.CognitiveServices/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.CognitiveServices-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CognitiveServices_1.2.0/sdk/provisioning/Azure.Provisioning.CognitiveServices/) |
| Provisioning - Communication | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.Provisioning.Communication/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Provisioning.Communication-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Communication_1.0.0-beta.4/sdk/provisioning/Azure.Provisioning.Communication/) |
-| Provisioning - Compute | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.1/sdk/compute/Azure.Provisioning.Compute/) |
+| Provisioning - Compute | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Compute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.1/sdk/compute/Azure.Provisioning.Compute/) |
| Provisioning - Container Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.ContainerRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerRegistry_1.1.0/sdk/provisioning/Azure.Provisioning.ContainerRegistry/) |
| Provisioning - Container Service | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Provisioning.ContainerService/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerService-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerService_1.0.0-beta.5/sdk/provisioning/Azure.Provisioning.ContainerService/) |
| Provisioning - CosmosDB | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.CosmosDB/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.CosmosDB/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.CosmosDB-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CosmosDB_1.0.0/sdk/provisioning/Azure.Provisioning.CosmosDB/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CosmosDB_1.1.0-beta.1/sdk/provisioning/Azure.Provisioning.CosmosDB/) |
From 073c9b26b279f556a816e97287ca5aee57f13985 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 27 Mar 2026 10:07:41 -0400
Subject: [PATCH 02/11] Fix outdated SIMD platform support documentation
(#52694)
* Initial plan
* Fix outdated SIMD platform support docs: replace 64-bit/RyuJIT claim with IsHardwareAccelerated guidance
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/dotnet/docs/sessions/43c922c8-e396-4b06-aca8-6de16c099b10
* Apply suggestion from @BillWagner
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Co-authored-by: Bill Wagner
---
docs/standard/simd.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/standard/simd.md b/docs/standard/simd.md
index ce3fcab6ae251..cbe484c6cbd73 100644
--- a/docs/standard/simd.md
+++ b/docs/standard/simd.md
@@ -3,7 +3,7 @@ title: SIMD-accelerated types in .NET
description: This article describes SIMD-enabled types in .NET and demonstrates how to use hardware SIMD operations in C# and .NET.
author: FIVIL
ms.author: tagoo
-ms.date: 03/17/2026
+ms.date: 03/26/2026
ai-usage: ai-assisted
---
@@ -28,7 +28,7 @@ The .NET SIMD-accelerated types include the following types:
> [!NOTE]
> The type is not included in the .NET Framework. You must install the [System.Numerics.Vectors](https://www.nuget.org/packages/System.Numerics.Vectors) NuGet package to get access to this type.
-The SIMD-accelerated types are implemented in such a way that they can be used with non-SIMD-accelerated hardware or JIT compilers. To take advantage of SIMD instructions, your 64-bit apps must be run by the runtime that uses the **RyuJIT** compiler. A **RyuJIT** compiler is included in .NET Core and in .NET Framework 4.6 and later. SIMD support is only provided when targeting 64-bit processors.
+The SIMD-accelerated types are implemented in such a way that they can be used with non-SIMD-accelerated hardware or JIT compilers. To determine whether SIMD acceleration is available at runtime, use . If that property returns `true`, at least some APIs use hardware-accelerated SIMD operations. If it returns `false`, no APIs are hardware accelerated.
## How to use SIMD?
From 56c52f647f1c8f4d2cd50c0f2390217c8f6ab634 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 27 Mar 2026 11:20:44 -0400
Subject: [PATCH 03/11] Add IntPtr and UIntPtr to blittable types list in
native interop best practices (#52695)
* Initial plan
* Add IntPtr and UIntPtr to blittable types list in native interop best practices
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/dotnet/docs/sessions/1c687208-58c3-4de4-9014-61ade3b54d29
* Update docs/standard/native-interop/best-practices.md
* Update docs/standard/native-interop/best-practices.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update docs/standard/native-interop/best-practices.md
Co-authored-by: Aaron R Robinson
* Update docs/standard/native-interop/best-practices.md
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Co-authored-by: Bill Wagner
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jan Kotas
Co-authored-by: Aaron R Robinson
---
docs/standard/native-interop/best-practices.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/docs/standard/native-interop/best-practices.md b/docs/standard/native-interop/best-practices.md
index 44828e01e708d..325a0b0a3a0ea 100644
--- a/docs/standard/native-interop/best-practices.md
+++ b/docs/standard/native-interop/best-practices.md
@@ -1,7 +1,8 @@
---
title: Native interoperability best practices - .NET
description: Learn the best practices for interfacing with native components in .NET.
-ms.date: 07/09/2025
+ms.date: 03/26/2026
+ai-usage: ai-assisted
---
# Native interoperability best practices
@@ -106,7 +107,8 @@ Blittable types are types that have the same bit-level representation in managed
**Blittable types:**
-- `byte`, `sbyte`, `short`, `ushort`, `int`, `uint`, `long`, `ulong`, `single`, `double`
+- `byte`, `sbyte`, `short`, `ushort`, `int`, `uint`, `long`, `ulong`, `single`, `double`, `nint`, `nuint`
+- unmanaged pointers (for example, `int*`)
- structs with fixed layout that only have blittable value types for instance fields
- fixed layout requires `[StructLayout(LayoutKind.Sequential)]` or `[StructLayout(LayoutKind.Explicit)]`
- structs are `LayoutKind.Sequential` by default
From 9608629295626c42d16bc9e6a5aff787d2a6e06b Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Fri, 27 Mar 2026 12:18:51 -0700
Subject: [PATCH 04/11] Update package index with latest published versions
(#52705)
---
docs/azure/includes/dotnet-all.md | 7 ++++---
docs/azure/includes/dotnet-new.md | 7 ++++---
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index d7c15f8dc888e..3e332a9878cb5 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -152,6 +152,7 @@
| Provisioning - App Containers | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.AppContainers/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.AppContainers-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppContainers_1.2.0/sdk/provisioning/Azure.Provisioning.AppContainers/) |
| Provisioning - App Service | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.3.1)
NuGet [1.4.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.4.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.AppService-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.3.1/sdk/provisioning/Azure.Provisioning.AppService/)
GitHub [1.4.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.4.0-beta.2/sdk/provisioning/Azure.Provisioning.AppService/) |
| Provisioning - Application Insights | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.ApplicationInsights/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.ApplicationInsights/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.ApplicationInsights-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ApplicationInsights_1.1.0/sdk/provisioning/Azure.Provisioning.ApplicationInsights/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ApplicationInsights_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.ApplicationInsights/) |
+| Provisioning - Batch | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Batch/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Batch-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Batch_1.0.0-beta.1/sdk/batch/Azure.Provisioning.Batch/) |
| Provisioning - Cdn | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Cdn/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Cdn-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Cdn_1.0.0-beta.1/sdk/provisioning/Azure.Provisioning.Cdn/) |
| Provisioning - Cognitive Services | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.CognitiveServices/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.CognitiveServices-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CognitiveServices_1.2.0/sdk/provisioning/Azure.Provisioning.CognitiveServices/) |
| Provisioning - Communication | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.Provisioning.Communication/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Provisioning.Communication-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Communication_1.0.0-beta.4/sdk/provisioning/Azure.Provisioning.Communication/) |
@@ -168,7 +169,7 @@
| Provisioning - Kubernetes | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Provisioning.Kubernetes/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Provisioning.Kubernetes-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Kubernetes_1.0.0-beta.3/sdk/provisioning/Azure.Provisioning.Kubernetes/) |
| Provisioning - Kubernetes Configuration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Provisioning.KubernetesConfiguration/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Provisioning.KubernetesConfiguration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.KubernetesConfiguration_1.0.0-beta.3/sdk/provisioning/Azure.Provisioning.KubernetesConfiguration/) |
| Provisioning - Kusto | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Kusto/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Kusto-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Kusto_1.0.0-beta.2/sdk/provisioning/Azure.Provisioning.Kusto/) |
-| Provisioning - Network | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.Network/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Network/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Network-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.0.0/sdk/provisioning/Azure.Provisioning.Network/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.1.0-beta.1/sdk/provisioning/Azure.Provisioning.Network/) |
+| Provisioning - Network | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.Network/1.0.0)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Network/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Network-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.0.0/sdk/provisioning/Azure.Provisioning.Network/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.1.0-beta.2/sdk/provisioning/Azure.Provisioning.Network/) |
| Provisioning - Operational Insights | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.OperationalInsights/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.OperationalInsights/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.OperationalInsights-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.OperationalInsights_1.1.0/sdk/provisioning/Azure.Provisioning.OperationalInsights/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.OperationalInsights_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.OperationalInsights/) |
| Provisioning - PostgreSQL | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Provisioning.PostgreSql/1.1.1)
NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.PostgreSql/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.PostgreSql-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.PostgreSql_1.1.1/sdk/provisioning/Azure.Provisioning.PostgreSql/)
GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.PostgreSql_1.2.0-beta.2/sdk/provisioning/Azure.Provisioning.PostgreSql/) |
| Provisioning - Private DNS | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.PrivateDns/1.0.0) | [docs](/dotnet/api/overview/azure/Provisioning.PrivateDns-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.PrivateDns_1.0.0/sdk/provisioning/Azure.Provisioning.PrivateDns/) |
@@ -198,7 +199,7 @@
| Resource Management - Authorization | NuGet [1.1.6](https://www.nuget.org/packages/Azure.ResourceManager.Authorization/1.1.6) | [docs](/dotnet/api/overview/azure/ResourceManager.Authorization-readme) | GitHub [1.1.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Authorization_1.1.6/sdk/authorization/Azure.ResourceManager.Authorization/) |
| Resource Management - Automanage | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Automanage/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Automanage-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automanage_1.1.1/sdk/automanage/Azure.ResourceManager.Automanage/) |
| Resource Management - Automation | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Automation/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Automation-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automation_1.1.1/sdk/automation/Azure.ResourceManager.Automation/) |
-| Resource Management - Azure AI Search | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.3.0/sdk/search/Azure.ResourceManager.Search/) |
+| Resource Management - Azure AI Search | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.3.0/sdk/search/Azure.ResourceManager.Search/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.4.0-beta.1/sdk/search/Azure.ResourceManager.Search/) |
| Resource Management - Azure Stack HCI | NuGet [1.2.1](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.2.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Hci-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.2.1/sdk/azurestackhci/Azure.ResourceManager.Hci/) |
| Resource Management - Azure VMware Solution | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Avs/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Avs-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Avs_1.6.0/sdk/avs/Azure.ResourceManager.Avs/) |
| Resource Management - Batch | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Batch/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Batch-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Batch_1.6.0/sdk/batch/Azure.ResourceManager.Batch/) |
@@ -227,7 +228,7 @@
| Resource Management - Container Instances | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerInstance/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerInstance-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerInstance_1.3.0/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.4.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry/1.4.0)
NuGet [1.5.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry/1.5.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerRegistry-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerRegistry_1.4.0/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry/)
GitHub [1.5.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerRegistry_1.5.0-beta.2/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry/) |
-| Resource Management - Container Service | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerService/1.3.1)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerService/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerService-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerService_1.3.1/sdk/containerservice/Azure.ResourceManager.ContainerService/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerService_1.4.0-beta.1/sdk/containerservice/Azure.ResourceManager.ContainerService/) |
+| Resource Management - Container Service | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerService/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerService-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerService_1.4.0/sdk/containerservice/Azure.ResourceManager.ContainerService/) |
| Resource Management - Container Service Fleet | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerServiceFleet/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerServiceFleet/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerServiceFleet-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerServiceFleet_1.1.0/sdk/fleet/Azure.ResourceManager.ContainerServiceFleet/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerServiceFleet_1.2.0-beta.1/sdk/fleet/Azure.ResourceManager.ContainerServiceFleet/) |
| Resource Management - Containerregistry.Tasks | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry.Tasks/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerRegistry.Tasks-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.ContainerRegistry.Tasks_1.0.0-beta.1/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry.Tasks/) |
| Resource Management - Content Delivery Network | NuGet [1.5.1](https://www.nuget.org/packages/Azure.ResourceManager.Cdn/1.5.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Cdn-readme) | GitHub [1.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Cdn_1.5.1/sdk/cdn/Azure.ResourceManager.Cdn/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 9cc106da0f287..f9e07bcbc1e24 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -165,6 +165,7 @@
| Provisioning - App Containers | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.AppContainers/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.AppContainers-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppContainers_1.2.0/sdk/provisioning/Azure.Provisioning.AppContainers/) |
| Provisioning - App Service | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.3.1)
NuGet [1.4.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.4.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.AppService-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.3.1/sdk/provisioning/Azure.Provisioning.AppService/)
GitHub [1.4.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.4.0-beta.2/sdk/provisioning/Azure.Provisioning.AppService/) |
| Provisioning - Application Insights | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.ApplicationInsights/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.ApplicationInsights/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.ApplicationInsights-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ApplicationInsights_1.1.0/sdk/provisioning/Azure.Provisioning.ApplicationInsights/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ApplicationInsights_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.ApplicationInsights/) |
+| Provisioning - Batch | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Batch/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Batch-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Batch_1.0.0-beta.1/sdk/batch/Azure.Provisioning.Batch/) |
| Provisioning - Cdn | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Cdn/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Cdn-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Cdn_1.0.0-beta.1/sdk/provisioning/Azure.Provisioning.Cdn/) |
| Provisioning - Cognitive Services | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.CognitiveServices/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.CognitiveServices-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CognitiveServices_1.2.0/sdk/provisioning/Azure.Provisioning.CognitiveServices/) |
| Provisioning - Communication | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.Provisioning.Communication/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Provisioning.Communication-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Communication_1.0.0-beta.4/sdk/provisioning/Azure.Provisioning.Communication/) |
@@ -181,7 +182,7 @@
| Provisioning - Kubernetes | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Provisioning.Kubernetes/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Provisioning.Kubernetes-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Kubernetes_1.0.0-beta.3/sdk/provisioning/Azure.Provisioning.Kubernetes/) |
| Provisioning - Kubernetes Configuration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Provisioning.KubernetesConfiguration/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Provisioning.KubernetesConfiguration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.KubernetesConfiguration_1.0.0-beta.3/sdk/provisioning/Azure.Provisioning.KubernetesConfiguration/) |
| Provisioning - Kusto | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Kusto/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Kusto-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Kusto_1.0.0-beta.2/sdk/provisioning/Azure.Provisioning.Kusto/) |
-| Provisioning - Network | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.Network/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Network/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Network-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.0.0/sdk/provisioning/Azure.Provisioning.Network/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.1.0-beta.1/sdk/provisioning/Azure.Provisioning.Network/) |
+| Provisioning - Network | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.Network/1.0.0)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Network/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Network-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.0.0/sdk/provisioning/Azure.Provisioning.Network/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Network_1.1.0-beta.2/sdk/provisioning/Azure.Provisioning.Network/) |
| Provisioning - Operational Insights | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.OperationalInsights/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.OperationalInsights/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.OperationalInsights-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.OperationalInsights_1.1.0/sdk/provisioning/Azure.Provisioning.OperationalInsights/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.OperationalInsights_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.OperationalInsights/) |
| Provisioning - PostgreSQL | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Provisioning.PostgreSql/1.1.1)
NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.PostgreSql/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.PostgreSql-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.PostgreSql_1.1.1/sdk/provisioning/Azure.Provisioning.PostgreSql/)
GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.PostgreSql_1.2.0-beta.2/sdk/provisioning/Azure.Provisioning.PostgreSql/) |
| Provisioning - Private DNS | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Provisioning.PrivateDns/1.0.0) | [docs](/dotnet/api/overview/azure/Provisioning.PrivateDns-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.PrivateDns_1.0.0/sdk/provisioning/Azure.Provisioning.PrivateDns/) |
@@ -213,7 +214,7 @@
| Resource Management - Authorization | NuGet [1.1.6](https://www.nuget.org/packages/Azure.ResourceManager.Authorization/1.1.6) | [docs](/dotnet/api/overview/azure/ResourceManager.Authorization-readme) | GitHub [1.1.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Authorization_1.1.6/sdk/authorization/Azure.ResourceManager.Authorization/) |
| Resource Management - Automanage | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Automanage/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Automanage-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automanage_1.1.1/sdk/automanage/Azure.ResourceManager.Automanage/) |
| Resource Management - Automation | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Automation/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Automation-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automation_1.1.1/sdk/automation/Azure.ResourceManager.Automation/) |
-| Resource Management - Azure AI Search | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.3.0/sdk/search/Azure.ResourceManager.Search/) |
+| Resource Management - Azure AI Search | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.3.0/sdk/search/Azure.ResourceManager.Search/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.4.0-beta.1/sdk/search/Azure.ResourceManager.Search/) |
| Resource Management - Azure Stack HCI | NuGet [1.2.1](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.2.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Hci-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.2.1/sdk/azurestackhci/Azure.ResourceManager.Hci/) |
| Resource Management - Azure VMware Solution | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Avs/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Avs-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Avs_1.6.0/sdk/avs/Azure.ResourceManager.Avs/) |
| Resource Management - Batch | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Batch/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Batch-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Batch_1.6.0/sdk/batch/Azure.ResourceManager.Batch/) |
@@ -242,7 +243,7 @@
| Resource Management - Container Instances | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerInstance/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerInstance-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerInstance_1.3.0/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.4.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry/1.4.0)
NuGet [1.5.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry/1.5.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerRegistry-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerRegistry_1.4.0/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry/)
GitHub [1.5.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerRegistry_1.5.0-beta.2/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry/) |
-| Resource Management - Container Service | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerService/1.3.1)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerService/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerService-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerService_1.3.1/sdk/containerservice/Azure.ResourceManager.ContainerService/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerService_1.4.0-beta.1/sdk/containerservice/Azure.ResourceManager.ContainerService/) |
+| Resource Management - Container Service | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerService/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerService-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerService_1.4.0/sdk/containerservice/Azure.ResourceManager.ContainerService/) |
| Resource Management - Container Service Fleet | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ContainerServiceFleet/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerServiceFleet/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerServiceFleet-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerServiceFleet_1.1.0/sdk/fleet/Azure.ResourceManager.ContainerServiceFleet/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ContainerServiceFleet_1.2.0-beta.1/sdk/fleet/Azure.ResourceManager.ContainerServiceFleet/) |
| Resource Management - Containerregistry.Tasks | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ContainerRegistry.Tasks/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ContainerRegistry.Tasks-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.ContainerRegistry.Tasks_1.0.0-beta.1/sdk/containerregistry/Azure.ResourceManager.ContainerRegistry.Tasks/) |
| Resource Management - Content Delivery Network | NuGet [1.5.1](https://www.nuget.org/packages/Azure.ResourceManager.Cdn/1.5.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Cdn-readme) | GitHub [1.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Cdn_1.5.1/sdk/cdn/Azure.ResourceManager.Cdn/) |
From b1bb31c3de0fc8bfce6316c2d45c38b341d8ce0f Mon Sep 17 00:00:00 2001
From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com>
Date: Fri, 27 Mar 2026 16:04:55 -0700
Subject: [PATCH 05/11] [adegeo] Freshness updates March (#52303)
* Migrate snippets 1
* Remove old code
* Refresh uninstall tool
* Add result comments in snippets
* Fix the empty lines and correct the comments
* Remove the the
---
.../uninstall-tool-overview.md | 12 +--
...ation-constructs-in-regular-expressions.md | 20 ++---
.../csharp/Program.cs | 79 ++++++++++++++++
.../csharp/csharp.csproj | 10 +++
.../vb/Program.vb | 90 +++++++++++++++++++
.../vb/vb.vbproj | 9 ++
.../cs/alternation1.cs | 28 ------
.../cs/alternation2.cs | 20 -----
.../cs/alternation3.cs | 20 -----
.../cs/alternation4.cs | 20 -----
.../cs/alternation5.cs | 20 -----
.../vb/alternation1.vb | 33 -------
.../vb/alternation2.vb | 21 -----
.../vb/alternation3.vb | 21 -----
.../vb/alternation4.vb | 17 ----
.../vb/alternation5.vb | 21 -----
16 files changed, 204 insertions(+), 237 deletions(-)
create mode 100644 docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs
create mode 100644 docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/csharp.csproj
create mode 100644 docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/Program.vb
create mode 100644 docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/vb.vbproj
delete mode 100644 samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation1.cs
delete mode 100644 samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation2.cs
delete mode 100644 samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation3.cs
delete mode 100644 samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation4.cs
delete mode 100644 samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation5.cs
delete mode 100644 samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation1.vb
delete mode 100644 samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation2.vb
delete mode 100644 samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation3.vb
delete mode 100644 samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation4.vb
delete mode 100644 samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation5.vb
diff --git a/docs/core/additional-tools/uninstall-tool-overview.md b/docs/core/additional-tools/uninstall-tool-overview.md
index 95a61a804b481..27f28fd8c9533 100644
--- a/docs/core/additional-tools/uninstall-tool-overview.md
+++ b/docs/core/additional-tools/uninstall-tool-overview.md
@@ -3,7 +3,7 @@ title: .NET Uninstall Tool overview
description: An overview of .NET Uninstall Tool. This tool is a guided command-line tool that removes .NET SDKs and runtimes.
author: adegeo
ms.custom: devdivchpfy22
-ms.date: 08/04/2024
+ms.date: 03/20/2026
zone_pivot_groups: operating-systems-set-three
---
@@ -51,19 +51,19 @@ winget install --id Microsoft.DotNet.UninstallTool --source winget
### Install with the MSI installer
-1. Download the _dotnet-core-uninstall-\*.msi_ installer from the [the GitHub releases page](https://aka.ms/dotnet-core-uninstall-tool).
+1. Download the _dotnet-core-uninstall-\*.msi_ installer from the [GitHub releases page](https://aka.ms/dotnet-core-uninstall-tool).
1. Run the installer.
::: zone-end
::: zone pivot="os-macos"
-01. Download the _dotnet-core-uninstall.tar.gz_ tarball from the [the GitHub releases page](https://aka.ms/dotnet-core-uninstall-tool).
-01. Run the following shell script to extract the tarball to a directory named _dotnet-core-uninstall_ in your home directory:
+01. Download the _dotnet-core-uninstall-\*.tar.gz_ tarball from the [GitHub releases page](https://aka.ms/dotnet-core-uninstall-tool).
+01. Run the following shell script to extract the tarball to a directory named _dotnet-core-uninstall_ in your home directory. The following example extracts the Arm64 version of the tool:
```bash
mkdir -p ~/dotnet-core-uninstall
- tar -zxf dotnet-core-uninstall.tar.gz -C ~/dotnet-core-uninstall
+ tar -zxf dotnet-core-uninstall-osx-arm64.tar.gz -C ~/dotnet-core-uninstall
```
::: zone-end
@@ -96,7 +96,7 @@ To manually uninstall the tool, perform the following steps:
::: zone pivot="os-macos"
-If you extracted the _dotnet-core-uninstall.tar.gz_ tarball, delete the extracted files.
+If you extracted the _dotnet-core-uninstall-\*.tar.gz_ tarball, delete the extracted files.
::: zone-end
diff --git a/docs/standard/base-types/alternation-constructs-in-regular-expressions.md b/docs/standard/base-types/alternation-constructs-in-regular-expressions.md
index 3169c628713a1..84ef6a8419819 100644
--- a/docs/standard/base-types/alternation-constructs-in-regular-expressions.md
+++ b/docs/standard/base-types/alternation-constructs-in-regular-expressions.md
@@ -31,8 +31,8 @@ You can use the vertical bar (`|`) character to match any one of a series of pat
Like the positive character class, the `|` character can be used to match any one of a number of single characters. The following example uses both a positive character class and either/or pattern matching with the `|` character to locate occurrences of the words "gray" or "grey" in a string. In this case, the `|` character produces a regular expression that is more verbose.
-[!code-csharp[RegularExpressions.Language.Alternation#1](~/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation1.cs#1)]
-[!code-vb[RegularExpressions.Language.Alternation#1](~/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation1.vb#1)]
+:::code language="csharp" source="./snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs" id="EitherOrCharacterClass":::
+:::code language="vb" source="./snippets/alternation-constructs-in-regular-expressions/vb/Program.vb" id="EitherOrCharacterClass":::
The regular expression that uses the `|` character, `\bgr(a|e)y\b`, is interpreted as shown in the following table:
@@ -45,8 +45,8 @@ The regular expression that uses the `|` character, `\bgr(a|e)y\b`, is interpret
The `|` character can also be used to perform an either/or match with multiple characters or subexpressions, which can include any combination of character literals and regular expression language elements. (The character class does not provide this functionality.) The following example uses the `|` character to extract either a U.S. Social Security Number (SSN), which is a 9-digit number with the format *ddd*-*dd*-*dddd*, or a U.S. Employer Identification Number (EIN), which is a 9-digit number with the format *dd*-*ddddddd*.
-[!code-csharp[RegularExpressions.Language.Alternation#2](~/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation2.cs#2)]
-[!code-vb[RegularExpressions.Language.Alternation#2](~/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation2.vb#2)]
+:::code language="csharp" source="./snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs" id="EitherOrPatterns":::
+:::code language="vb" source="./snippets/alternation-constructs-in-regular-expressions/vb/Program.vb" id="EitherOrPatterns":::
The regular expression `\b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b` is interpreted as shown in the following table:
@@ -79,8 +79,8 @@ where `(?=`*expression*`)` is a zero-width assertion construct. (For more inform
The following example is a variation of the example that appears in the [Either/Or Pattern Matching with |](#Either_Or) section. It uses conditional matching to determine whether the first three characters after a word boundary are two digits followed by a hyphen. If they are, it attempts to match a U.S. Employer Identification Number (EIN). If not, it attempts to match a U.S. Social Security Number (SSN).
-[!code-csharp[RegularExpressions.Language.Alternation#3](~/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation3.cs#3)]
-[!code-vb[RegularExpressions.Language.Alternation#3](~/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation3.vb#3)]
+:::code language="csharp" source="./snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs" id="ConditionalExpression":::
+:::code language="vb" source="./snippets/alternation-constructs-in-regular-expressions/vb/Program.vb" id="ConditionalExpression":::
The regular expression pattern `\b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b` is interpreted as shown in the following table:
@@ -118,8 +118,8 @@ If *name* does not correspond to the name of a capturing group that is used in t
The following example is a variation of the example that appears in the [Either/Or Pattern Matching with |](#Either_Or) section. It uses a capturing group named `n2` that consists of two digits followed by a hyphen. The alternation construct tests whether this capturing group has been matched in the input string. If it has, the alternation construct attempts to match the last seven digits of a nine-digit U.S. Employer Identification Number (EIN). If it has not, it attempts to match a nine-digit U.S. Social Security Number (SSN).
-[!code-csharp[RegularExpressions.Language.Alternation#4](~/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation4.cs#4)]
-[!code-vb[RegularExpressions.Language.Alternation#4](~/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation4.vb#4)]
+:::code language="csharp" source="./snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs" id="ConditionalNamedGroup":::
+:::code language="vb" source="./snippets/alternation-constructs-in-regular-expressions/vb/Program.vb" id="ConditionalNamedGroup":::
The regular expression pattern `\b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b` is interpreted as shown in the following table:
@@ -134,8 +134,8 @@ The regular expression pattern `\b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b
A variation of this example that uses a numbered group instead of a named group is shown in the following example. Its regular expression pattern is `\b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b`.
-[!code-csharp[RegularExpressions.Language.Alternation#5](~/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation5.cs#5)]
-[!code-vb[RegularExpressions.Language.Alternation#5](~/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation5.vb#5)]
+:::code language="csharp" source="./snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs" id="ConditionalNumberedGroup":::
+:::code language="vb" source="./snippets/alternation-constructs-in-regular-expressions/vb/Program.vb" id="ConditionalNumberedGroup":::
## See also
diff --git a/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs
new file mode 100644
index 0000000000000..81f305f573501
--- /dev/null
+++ b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/Program.cs
@@ -0,0 +1,79 @@
+using System.Text.RegularExpressions;
+
+//
+string pattern1 = @"\bgr[ae]y\b";
+string pattern2 = @"\bgr(a|e)y\b";
+
+string input = "The gray wolf blended in among the grey rocks.";
+foreach (Match match in Regex.Matches(input, pattern1))
+ Console.WriteLine($"'{match.Value}' found at position {match.Index}");
+Console.WriteLine();
+foreach (Match match in Regex.Matches(input, pattern2))
+ Console.WriteLine($"'{match.Value}' found at position {match.Index}");
+
+// The example displays the following output:
+// 'gray' found at position 4
+// 'grey' found at position 35
+//
+// 'gray' found at position 4
+// 'grey' found at position 35
+//
+
+Console.WriteLine();
+
+//
+string eitherOrPattern = @"\b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b";
+string eitherOrInput = "01-9999999 020-333333 777-88-9999";
+Console.WriteLine($"Matches for {eitherOrPattern}:");
+foreach (Match match in Regex.Matches(eitherOrInput, eitherOrPattern))
+ Console.WriteLine($" {match.Value} at position {match.Index}");
+
+// The example displays the following output:
+// Matches for \b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
+// 01-9999999 at position 0
+// 777-88-9999 at position 22
+//
+
+Console.WriteLine();
+
+//
+string condExprPattern = @"\b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b";
+string condExprInput = "01-9999999 020-333333 777-88-9999";
+Console.WriteLine($"Matches for {condExprPattern}:");
+foreach (Match match in Regex.Matches(condExprInput, condExprPattern))
+ Console.WriteLine($" {match.Value} at position {match.Index}");
+
+// The example displays the following output:
+// Matches for \b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
+// 01-9999999 at position 0
+// 777-88-9999 at position 22
+//
+
+Console.WriteLine();
+
+//
+string namedGroupPattern = @"\b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b";
+string namedGroupInput = "01-9999999 020-333333 777-88-9999";
+Console.WriteLine($"Matches for {namedGroupPattern}:");
+foreach (Match match in Regex.Matches(namedGroupInput, namedGroupPattern))
+ Console.WriteLine($" {match.Value} at position {match.Index}");
+
+// The example displays the following output:
+// Matches for \b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b:
+// 01-9999999 at position 0
+// 777-88-9999 at position 22
+//
+
+Console.WriteLine();
+
+//
+string numberedGroupPattern = @"\b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b";
+string numberedGroupInput = "01-9999999 020-333333 777-88-9999";
+Console.WriteLine($"Matches for {numberedGroupPattern}:");
+foreach (Match match in Regex.Matches(numberedGroupInput, numberedGroupPattern))
+ Console.WriteLine($" {match.Value} at position {match.Index}");
+// The example displays the following output:
+// Matches for \b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b:
+// 01-9999999 at position 0
+// 777-88-9999 at position 22
+//
diff --git a/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/csharp.csproj b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/csharp.csproj
new file mode 100644
index 0000000000000..ed9781c223ab9
--- /dev/null
+++ b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/csharp/csharp.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
diff --git a/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/Program.vb b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/Program.vb
new file mode 100644
index 0000000000000..71245f0c22924
--- /dev/null
+++ b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/Program.vb
@@ -0,0 +1,90 @@
+Imports System.Text.RegularExpressions
+
+Module Program
+ Sub Main(args As String())
+ '
+ Dim pattern1 As String = "\bgr[ae]y\b"
+ Dim pattern2 As String = "\bgr(a|e)y\b"
+
+ Dim input As String = "The gray wolf blended in among the grey rocks."
+ For Each match As Match In Regex.Matches(input, pattern1)
+ Console.WriteLine($"'{match.Value}' found at position {match.Index}")
+ Next
+ Console.WriteLine()
+ For Each match As Match In Regex.Matches(input, pattern2)
+ Console.WriteLine($"'{match.Value}' found at position {match.Index}")
+ Next
+
+ ' The example displays the following output:
+ ' 'gray' found at position 4
+ ' 'grey' found at position 35
+ '
+ ' 'gray' found at position 4
+ ' 'grey' found at position 35
+ '
+
+ Console.WriteLine()
+
+ '
+ Dim eitherOrPattern As String = "\b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b"
+ Dim eitherOrInput As String = "01-9999999 020-333333 777-88-9999"
+ Console.WriteLine($"Matches for {eitherOrPattern}:")
+ For Each match As Match In Regex.Matches(eitherOrInput, eitherOrPattern)
+ Console.WriteLine($" {match.Value} at position {match.Index}")
+ Next
+
+ ' The example displays the following output:
+ ' Matches for \b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
+ ' 01-9999999 at position 0
+ ' 777-88-9999 at position 22
+ '
+
+ Console.WriteLine()
+
+ '
+ Dim condExprPattern As String = "\b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b"
+ Dim condExprInput As String = "01-9999999 020-333333 777-88-9999"
+ Console.WriteLine($"Matches for {condExprPattern}:")
+ For Each match As Match In Regex.Matches(condExprInput, condExprPattern)
+ Console.WriteLine($" {match.Value} at position {match.Index}")
+ Next
+
+ ' The example displays the following output:
+ ' Matches for \b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
+ ' 01-9999999 at position 0
+ ' 777-88-9999 at position 22
+ '
+
+ Console.WriteLine()
+
+ '
+ Dim namedGroupPattern As String = "\b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b"
+ Dim namedGroupInput As String = "01-9999999 020-333333 777-88-9999"
+ Console.WriteLine($"Matches for {namedGroupPattern}:")
+ For Each match As Match In Regex.Matches(namedGroupInput, namedGroupPattern)
+ Console.WriteLine($" {match.Value} at position {match.Index}")
+ Next
+
+ ' The example displays the following output:
+ ' Matches for \b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b:
+ ' 01-9999999 at position 0
+ ' 777-88-9999 at position 22
+ '
+
+ Console.WriteLine()
+
+ '
+ Dim numberedGroupPattern As String = "\b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b"
+ Dim numberedGroupInput As String = "01-9999999 020-333333 777-88-9999"
+ Console.WriteLine($"Matches for {numberedGroupPattern}:")
+ For Each match As Match In Regex.Matches(numberedGroupInput, numberedGroupPattern)
+ Console.WriteLine($" {match.Value} at position {match.Index}")
+ Next
+
+ ' The example displays the following output:
+ ' Matches for \b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b:
+ ' 01-9999999 at position 0
+ ' 777-88-9999 at position 22
+ '
+ End Sub
+End Module
diff --git a/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/vb.vbproj b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/vb.vbproj
new file mode 100644
index 0000000000000..c54e4d3031486
--- /dev/null
+++ b/docs/standard/base-types/snippets/alternation-constructs-in-regular-expressions/vb/vb.vbproj
@@ -0,0 +1,9 @@
+
+
+
+ Exe
+ vb
+ net10.0
+
+
+
diff --git a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation1.cs b/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation1.cs
deleted file mode 100644
index 235d5bddf91b1..0000000000000
--- a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation1.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-//
-using System;
-using System.Text.RegularExpressions;
-
-public class Example
-{
- public static void Main()
- {
- // Regular expression using character class.
- string pattern1 = @"\bgr[ae]y\b";
- // Regular expression using either/or.
- string pattern2 = @"\bgr(a|e)y\b";
-
- string input = "The gray wolf blended in among the grey rocks.";
- foreach (Match match in Regex.Matches(input, pattern1))
- Console.WriteLine($"'{match.Value}' found at position {match.Index}");
- Console.WriteLine();
- foreach (Match match in Regex.Matches(input, pattern2))
- Console.WriteLine($"'{match.Value}' found at position {match.Index}");
- }
-}
-// The example displays the following output:
-// 'gray' found at position 4
-// 'grey' found at position 35
-//
-// 'gray' found at position 4
-// 'grey' found at position 35
-//
diff --git a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation2.cs b/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation2.cs
deleted file mode 100644
index ac43a7d3ef10b..0000000000000
--- a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation2.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-using System;
-using System.Text.RegularExpressions;
-
-public class Example
-{
- public static void Main()
- {
- string pattern = @"\b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b";
- string input = "01-9999999 020-333333 777-88-9999";
- Console.WriteLine($"Matches for {pattern}:");
- foreach (Match match in Regex.Matches(input, pattern))
- Console.WriteLine($" {match.Value} at position {match.Index}");
- }
-}
-// The example displays the following output:
-// Matches for \b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
-// 01-9999999 at position 0
-// 777-88-9999 at position 22
-//
diff --git a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation3.cs b/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation3.cs
deleted file mode 100644
index 42b2d1fbf5fbc..0000000000000
--- a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation3.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-using System;
-using System.Text.RegularExpressions;
-
-public class Example
-{
- public static void Main()
- {
- string pattern = @"\b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b";
- string input = "01-9999999 020-333333 777-88-9999";
- Console.WriteLine($"Matches for {pattern}:");
- foreach (Match match in Regex.Matches(input, pattern))
- Console.WriteLine($" {match.Value} at position {match.Index}");
- }
-}
-// The example displays the following output:
-// Matches for \b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
-// 01-9999999 at position 0
-// 777-88-9999 at position 22
-//
diff --git a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation4.cs b/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation4.cs
deleted file mode 100644
index 21d94a242146c..0000000000000
--- a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation4.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-using System;
-using System.Text.RegularExpressions;
-
-public class Example
-{
- public static void Main()
- {
- string pattern = @"\b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b";
- string input = "01-9999999 020-333333 777-88-9999";
- Console.WriteLine($"Matches for {pattern}:");
- foreach (Match match in Regex.Matches(input, pattern))
- Console.WriteLine($" {match.Value} at position {match.Index}");
- }
-}
-// The example displays the following output:
-// Matches for \b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b:
-// 01-9999999 at position 0
-// 777-88-9999 at position 22
-//
diff --git a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation5.cs b/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation5.cs
deleted file mode 100644
index 95aa224b776d0..0000000000000
--- a/samples/snippets/csharp/VS_Snippets_CLR/regularexpressions.language.alternation/cs/alternation5.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-using System;
-using System.Text.RegularExpressions;
-
-public class Example
-{
- public static void Main()
- {
- string pattern = @"\b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b";
- string input = "01-9999999 020-333333 777-88-9999";
- Console.WriteLine($"Matches for {pattern}:");
- foreach (Match match in Regex.Matches(input, pattern))
- Console.WriteLine($" {match.Value} at position {match.Index}");
- }
-}
-// The example display the following output:
-// Matches for \b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b:
-// 01-9999999 at position 0
-// 777-88-9999 at position 22
-//
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation1.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation1.vb
deleted file mode 100644
index ef4e6fbe5a1cf..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation1.vb
+++ /dev/null
@@ -1,33 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.Text.RegularExpressions
-
-Module Example
- Public Sub Main()
- ' Regular expression using character class.
- Dim pattern1 As String = "\bgr[ae]y\b"
- ' Regular expression using either/or.
- Dim pattern2 As String = "\bgr(a|e)y\b"
-
- Dim input As String = "The gray wolf blended in among the grey rocks."
- For Each match As Match In Regex.Matches(input, pattern1)
- Console.WriteLine("'{0}' found at position {1}", _
- match.Value, match.Index)
- Next
- Console.WriteLine()
- For Each match As Match In Regex.Matches(input, pattern2)
- Console.WriteLine("'{0}' found at position {1}", _
- match.Value, match.Index)
- Next
- End Sub
-End Module
-' The example displays the following output:
-' 'gray' found at position 4
-' 'grey' found at position 35
-'
-' 'gray' found at position 4
-' 'grey' found at position 35
-'
-
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation2.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation2.vb
deleted file mode 100644
index 43ae84a4b5bd3..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation2.vb
+++ /dev/null
@@ -1,21 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.Text.RegularExpressions
-
-Module Example
- Public Sub Main()
- Dim pattern As String = "\b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b"
- Dim input As String = "01-9999999 020-333333 777-88-9999"
- Console.WriteLine("Matches for {0}:", pattern)
- For Each match As Match In Regex.Matches(input, pattern)
- Console.WriteLine(" {0} at position {1}", match.Value, match.Index)
- Next
- End Sub
-End Module
-' The example displays the following output:
-' Matches for \b(\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
-' 01-9999999 at position 0
-' 777-88-9999 at position 22
-'
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation3.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation3.vb
deleted file mode 100644
index b9f8c8b47cab9..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation3.vb
+++ /dev/null
@@ -1,21 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.Text.RegularExpressions
-
-Module Example
- Public Sub Main()
- Dim pattern As String = "\b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b"
- Dim input As String = "01-9999999 020-333333 777-88-9999"
- Console.WriteLine("Matches for {0}:", pattern)
- For Each match As Match In Regex.Matches(input, pattern)
- Console.WriteLine(" {0} at position {1}", match.Value, match.Index)
- Next
- End Sub
-End Module
-' The example displays the following output:
-' Matches for \b(?(\d{2}-)\d{2}-\d{7}|\d{3}-\d{2}-\d{4})\b:
-' 01-9999999 at position 0
-' 777-88-9999 at position 22
-'
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation4.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation4.vb
deleted file mode 100644
index 8ffb7c5722e58..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation4.vb
+++ /dev/null
@@ -1,17 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.Text.RegularExpressions
-
-Module Example
- Public Sub Main()
- Dim pattern As String = "\b(?\d{2}-)?(?(n2)\d{7}|\d{3}-\d{2}-\d{4})\b"
- Dim input As String = "01-9999999 020-333333 777-88-9999"
- Console.WriteLine("Matches for {0}:", pattern)
- For Each match As Match In Regex.Matches(input, pattern)
- Console.WriteLine(" {0} at position {1}", match.Value, match.Index)
- Next
- End Sub
-End Module
-'
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation5.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation5.vb
deleted file mode 100644
index bd3ad609b7199..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/regularexpressions.language.alternation/vb/alternation5.vb
+++ /dev/null
@@ -1,21 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.Text.RegularExpressions
-
-Module Example
- Public Sub Main()
- Dim pattern As String = "\b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b"
- Dim input As String = "01-9999999 020-333333 777-88-9999"
- Console.WriteLine("Matches for {0}:", pattern)
- For Each match As Match In Regex.Matches(input, pattern)
- Console.WriteLine(" {0} at position {1}", match.Value, match.Index)
- Next
- End Sub
-End Module
-' The example displays the following output:
-' Matches for \b(\d{2}-)?(?(1)\d{7}|\d{3}-\d{2}-\d{4})\b:
-' 01-9999999 at position 0
-' 777-88-9999 at position 22
-'
From 938ac84162f0985489248d4b18e90a4d56135b07 Mon Sep 17 00:00:00 2001
From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com>
Date: Fri, 27 Mar 2026 16:08:35 -0700
Subject: [PATCH 06/11] GHCP Update with latest design (#52595)
* Update with latest design
* remove four stage wording
* Minor edits
* feedback
* Update docs/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot.md
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
---------
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
---
.../how-to-upgrade-with-github-copilot.md | 32 +++++++++----------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/docs/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot.md b/docs/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot.md
index 14c99ba079a22..db0bbcc03f2f8 100644
--- a/docs/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot.md
+++ b/docs/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot.md
@@ -2,7 +2,7 @@
title: How to upgrade a .NET app with GitHub Copilot modernization
description: "Learn how to upgrade your .NET applications to newer versions using GitHub Copilot modernization. This step-by-step guide covers the three-stage workflow: assessment, planning, and execution."
ms.topic: how-to
-ms.date: 03/04/2026
+ms.date: 03/23/2026
ai-usage: ai-assisted
#customer intent: As a developer, I want to upgrade my .NET app using GitHub Copilot modernization so that I can modernize my codebase efficiently with AI assistance through a structured three-stage process.
@@ -25,19 +25,19 @@ To start an upgrade, use the `modernize-dotnet` agent in Copilot:
[!INCLUDE[github-copilot-how-to-initiate](./includes/how-to-initiate.md)]
-When you start the upgrade, Copilot prompts you to create a new branch if you're working in a Git repository. Copilot then runs a three-stage workflow, writing a Markdown file for each stage under `.github/upgrades` in your repository. If `.github/upgrades` already exists from a prior attempt, Copilot asks whether to continue or start fresh.
+When you start the upgrade, Copilot collects pre-initialization information: the target framework version, Git branching strategy, and workflow mode (automatic or guided by you). Copilot then runs a three-stage workflow, writing a Markdown file for each stage under `.github/upgrades/{scenarioId}` in your repository. The `{scenarioId}` is a unique identifier for the upgrade type, such as `dotnet-version-upgrade`. If `.github/upgrades/{scenarioId}` already exists from a prior attempt, Copilot asks whether to continue or start fresh.
The three stages are:
-- **Assessment stage** - Copilot examines your project to identify breaking changes, compatibility problems, and upgrade requirements.
-- **Planning stage** - Copilot creates a detailed specification explaining how to resolve every problem.
-- **Execution stage** - Copilot breaks the plan into sequential tasks and performs the upgrade.
+- **Assessment stage** — Copilot examines your project to identify breaking changes, compatibility problems, and upgrade requirements.
+- **Planning stage** — Copilot creates a detailed specification explaining how to resolve every problem.
+- **Execution stage** — Copilot breaks the plan into sequential tasks and performs the upgrade.
## Start assessment and review results
-The assessment stage examines your project structure, dependencies, and code patterns to identify what needs to change. Copilot automatically starts this stage and generates an `assessment.md` file in `.github/upgrades`.
+The assessment stage examines your project structure, dependencies, and code patterns to identify what needs to change. Copilot automatically starts this stage and generates an `assessment.md` file in `.github/upgrades/{scenarioId}`.
-The assessment lists breaking changes, API compatibility problems, deprecated patterns, and the upgrade scope so you know what needs attention. The following example shows part of an assessment for an ASP.NET Core project upgrading from .NET 6.0 to .NET 10.0:
+The assessment lists breaking changes, API compatibility problems, deprecated patterns, and the upgrade scope. The following example shows part of an assessment for an ASP.NET Core project upgrading from .NET 6.0 to .NET 10.0:
```markdown
# Projects and dependencies analysis
@@ -70,14 +70,14 @@ This document provides a comprehensive overview of the projects and their depend
To review and customize the assessment:
-1. Open the `assessment.md` file in `.github/upgrades`.
+1. Open the `assessment.md` file in `.github/upgrades/{scenarioId}`.
1. Review the identified breaking changes and compatibility problems.
1. Add any project-specific context or concerns to the document.
1. Tell Copilot to move to the planning stage.
## Start planning and review the plan
-The planning stage converts the assessment into a detailed specification that explains how to resolve every issue. When you tell Copilot to proceed to planning, it generates a `plan.md` file in `.github/upgrades`.
+The planning stage converts the assessment into a detailed specification that explains how to resolve every issue. When you tell Copilot to proceed to planning, it generates a `plan.md` file in `.github/upgrades/{scenarioId}`.
The plan documents upgrade strategies, refactoring approaches, dependency upgrade paths, and risk mitigations. The following example shows part of a plan for an ASP.NET Core project:
@@ -116,18 +116,18 @@ Upgrade all projects in the MvcMovieNet6 solution from .NET 6 to .NET 10 (Long T
To review and customize the plan:
-1. Open the `plan.md` file in `.github/upgrades`.
+1. Open the `plan.md` file in `.github/upgrades/{scenarioId}`.
1. Review the upgrade strategies and dependency updates.
1. Edit the plan to adjust upgrade steps or add context if needed.
> [!CAUTION]
- > The plan is based on project interdependencies. The upgrade won't succeed if you modify the plan in such a way that the migration path can't complete. For example, if **Project A** depends on **Project B** and you remove **Project B** from the upgrade plan, upgrading **Project A** might fail.
+ > The plan is based on project interdependencies. The upgrade doesn't succeed if you modify the plan in such a way that the migration path can't complete. For example, if **Project A** depends on **Project B** and you remove **Project B** from the upgrade plan, upgrading **Project A** might fail.
1. Tell Copilot to move to the execution stage.
## Start execution and run the upgrade
-The execution stage breaks the plan into sequential, concrete tasks with validation criteria. When you tell Copilot to proceed to execution, it generates a `tasks.md` file in `.github/upgrades`.
+The execution stage breaks the plan into sequential, concrete tasks with validation criteria. When you tell Copilot to proceed to execution, it generates a `tasks.md` file in `.github/upgrades/{scenarioId}`.
The task list describes each task and how Copilot validates success. The following example shows the task list for a solution containing ASP.NET Core and WPF projects:
@@ -183,15 +183,13 @@ To run the upgrade:
1. Tell Copilot to start the upgrade.
1. Monitor progress by reviewing the `tasks.md` file as Copilot updates task statuses.
1. If Copilot encounters a problem it can't resolve, provide the requested help.
-1. Copilot learns from your changes and continues the upgrade.
+1. Based on your decisions and changes, Copilot adapts its strategy to the remaining tasks and continues the upgrade.
-The tool creates a Git commit for every portion of the process, so you can easily roll back changes or get detailed information about what changed.
+Copilot commits changes according to the Git strategy you configured during pre-initialization: per task, per group of tasks, or at the end.
## Verify the upgrade
-When the upgrade finishes, Copilot shows recommended next steps in the chat response. Review the `tasks.md` file for the status of every step.
-
-The tool creates a Git commit for every portion of the upgrade process, so you can easily roll back changes or get detailed information about what changed.
+When the upgrade finishes, Copilot shows recommended next steps in the chat response. Review the `tasks.md` file in `.github/upgrades/{scenarioId}` for the status of every step.
The following example shows completed tasks for an ASP.NET Core project upgrade:
From 892efa55d7dcbd5d6652134d85b49517dac4184a Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 27 Mar 2026 22:25:50 -0400
Subject: [PATCH 07/11] Rewrite covariance/contravariance definitions to be
user-focused (#52120)
* Initial plan
* Improve covariance/contravariance definitions to be more user-focused
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
* Address review: use 'type argument' terminology and put invariant first
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Co-authored-by: Bill Wagner
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../generics/covariance-and-contravariance.md | 37 ++++++++-----------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/docs/standard/generics/covariance-and-contravariance.md b/docs/standard/generics/covariance-and-contravariance.md
index db5aa04d30fa9..ab9ebbf65e76f 100644
--- a/docs/standard/generics/covariance-and-contravariance.md
+++ b/docs/standard/generics/covariance-and-contravariance.md
@@ -1,7 +1,8 @@
---
title: "Covariance and Contravariance in Generics"
description: Learn about covariance, which allows you to use a more derived type, and contravariance, which allows you to use a less derived type, in .NET generics.
-ms.date: "03/30/2017"
+ms.date: "03/09/2026"
+ai-usage: ai-assisted
dev_langs:
- "csharp"
- "vb"
@@ -14,27 +15,21 @@ ms.assetid: 2678dc63-c7f9-4590-9ddc-0a4df684d42e
---
# Covariance and contravariance in generics
-*Covariance* and *contravariance* are terms that refer to the ability to use a more derived type (more specific) or a less derived type (less specific) than originally specified. Generic type parameters support covariance and contravariance to provide greater flexibility in assigning and using generic types.
+*Covariance* and *contravariance* describe how reference conversions work between constructed generic types when their type arguments are related by inheritance, for example, between `IEnumerable` and `IEnumerable`. Variance is a property of a generic interface or delegate type's type parameter, and it controls which implicit conversions exist between constructed types that use different type arguments. By default, generic type parameters are *invariant*—even if one type argument derives from another, the corresponding constructed generic types, such as `List` and `List`, are unrelated unless the type parameter is explicitly declared as *covariant* or *contravariant*.
-When you're referring to a type system, covariance, contravariance, and invariance have the following definitions. The examples assume a base class named `Base` and a derived class named `Derived`.
-
-- `Covariance`
-
- Enables you to use a more derived type than originally specified.
-
- You can assign an instance of `IEnumerable` to a variable of type `IEnumerable`.
-
-- `Contravariance`
-
- Enables you to use a more generic (less derived) type than originally specified.
-
- You can assign an instance of `Action` to a variable of type `Action`.
-
-- `Invariance`
-
- Means that you can use only the type originally specified. An invariant generic type parameter is neither covariant nor contravariant.
-
- You cannot assign an instance of `List` to a variable of type `List` or vice versa.
+The following definitions and examples assume a base class named `Base` and a derived class named `Derived`.
+
+- *Invariant* type arguments require you to use exactly the type specified. You can't substitute a derived or base type.
+
+ For example, you can't assign an instance of `List` to a variable of type `List`, or vice versa.
+
+- *Covariant* type parameters let you substitute a more derived type for the original type argument.
+
+ For example, you can assign an instance of `IEnumerable` to a variable of type `IEnumerable`.
+
+- *Contravariant* type parameters let you substitute a base type for a derived type argument instead of the original.
+
+ For example, you can assign an instance of `Action` to a variable of type `Action`.
Covariant type parameters enable you to make assignments that look much like ordinary [Polymorphism](../../csharp/fundamentals/object-oriented/polymorphism.md), as shown in the following code.
From c8ce29ed4fe11c692661ae416b1c6d1e5ec34196 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 27 Mar 2026 22:30:04 -0400
Subject: [PATCH 08/11] Doc: Add constructed generic type notation to type name
specification article (#52704)
* Initial plan
* Add documentation for specifying constructed generic types in type name strings
Agent-Logs-Url: https://github.com/dotnet/docs/sessions/e4564aec-04c6-4558-8641-48ee1411b24f
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Address reviewer feedback: broaden GenericArgument grammar rule and update assembly name to System.Private.CoreLib
Agent-Logs-Url: https://github.com/dotnet/docs/sessions/3bde682b-2d60-4842-a2ef-9e110d714f9b
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Co-authored-by: Bill Wagner
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../specifying-fully-qualified-type-names.md | 35 +++++++++++++++++--
1 file changed, 32 insertions(+), 3 deletions(-)
diff --git a/docs/fundamentals/reflection/specifying-fully-qualified-type-names.md b/docs/fundamentals/reflection/specifying-fully-qualified-type-names.md
index 7e589deb9c9f7..ddd64225f1673 100644
--- a/docs/fundamentals/reflection/specifying-fully-qualified-type-names.md
+++ b/docs/fundamentals/reflection/specifying-fully-qualified-type-names.md
@@ -1,7 +1,8 @@
---
title: Specify fully qualified type name
description: For valid input to reflection operations, use fully qualified type names, which have assembly name specifications, namespace specifications, and type names.
-ms.date: 02/21/2019
+ms.date: 03/27/2026
+ai-usage: ai-assisted
helpviewer_keywords:
- "names [.NET], fully qualified type names"
- "reflection, fully qualified type names"
@@ -43,7 +44,19 @@ SimpleTypeSpec
;
GenericTypeSpec
- : SimpleTypeSpec ` NUMBER
+ : SimpleTypeSpec ` NUMBER
+ | SimpleTypeSpec ` NUMBER '[' GenericArguments ']'
+ ;
+
+GenericArguments
+ : GenericArgument
+ | GenericArguments ',' GenericArgument
+ ;
+
+GenericArgument
+ : TypeSpec
+ | '[' TypeSpec ']'
+ ;
PointerTypeSpec
: SimpleTypeSpec '*'
@@ -183,7 +196,23 @@ com.microsoft.crypto, Culture=en, PublicKeyToken=a5d015c7d5a0b012,
## Specify generic types
-SimpleTypeSpec\`NUMBER represents an open generic type with from 1 to *n* generic type parameters. For example, to get reference to the open generic type `List` or the closed generic type `List`, use ``Type.GetType("System.Collections.Generic.List`1")`` To get a reference to the generic type `Dictionary`, use ``Type.GetType("System.Collections.Generic.Dictionary`2")``.
+``SimpleTypeSpec`NUMBER`` represents a generic type definition with 1 to *n* generic type parameters. For example, to get a reference to the open generic type `List`, use ``Type.GetType("System.Collections.Generic.List`1")``. To get a reference to the open generic type `Dictionary`, use ``Type.GetType("System.Collections.Generic.Dictionary`2")``.
+
+To specify a *constructed* generic type—one where the type parameters are replaced with specific types—append the type arguments in square brackets after the arity: ``SimpleTypeSpec`NUMBER[TypeArg1,TypeArg2]``. For example, to get a reference to `List`, use ``Type.GetType("System.Collections.Generic.List`1[System.String]")``. To get a reference to `Dictionary`, use ``Type.GetType("System.Collections.Generic.Dictionary`2[System.String,System.Int32]")``.
+
+When a type argument is assembly-qualified, enclose it in its own square brackets to prevent the commas in the assembly name from being misinterpreted as type argument separators. For example:
+
+```
+"System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib],[System.Int32, System.Private.CoreLib]]"
+```
+
+Unbracketed type arguments can't include an assembly qualifier. To mix assembly-qualified and unqualified type arguments, wrap only the assembly-qualified ones in brackets:
+
+```
+"System.Collections.Generic.Dictionary`2[System.String,[MyNamespace.MyType, MyAssembly]]"
+```
+
+The property returns a type's name in the format that `Type.GetType` accepts. Use it to obtain a correctly formatted string for any constructed generic type. For example, `typeof(Dictionary).AssemblyQualifiedName` returns the fully qualified, correctly escaped name you can pass to `Type.GetType`.
## Specify pointers
From 6e25c3be15d3ec2a0f0441614e95c8da356d8dc2 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Sat, 28 Mar 2026 02:32:47 +0000
Subject: [PATCH 09/11] Add IIS single-file deployment limitation note (#52680)
* Initial plan
* Add note that IIS doesn't support single-file deployments
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/dotnet/docs/sessions/53374ddc-8038-48d0-8b50-fbb35f30c772
* Update docs/core/deploying/single-file/overview.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update docs/core/deploying/single-file/overview.md
Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Co-authored-by: Bill Wagner
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com>
---
docs/core/deploying/single-file/overview.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/docs/core/deploying/single-file/overview.md b/docs/core/deploying/single-file/overview.md
index a8f77464478c5..341b31c1994fc 100644
--- a/docs/core/deploying/single-file/overview.md
+++ b/docs/core/deploying/single-file/overview.md
@@ -2,7 +2,7 @@
title: Create a single file for application deployment
description: Learn what single file application is and why you should consider using this application deployment model.
author: lakshanf
-ms.date: 10/22/2025
+ms.date: 03/25/2026
ms.custom: kr2b-contr-experiment
ai-usage: ai-assisted
---
@@ -147,6 +147,9 @@ For example, add the following property to the project file of an assembly to em
## Other considerations
+> [!IMPORTANT]
+> IIS doesn't support hosting ASP.NET Core apps that use single-file deployment with the in-process hosting model. If you host an ASP.NET Core app in IIS, publish your app using the standard folder deployment model, or use the out-of-process hosting model instead. For more information, see [Host ASP.NET Core on Windows with IIS](/aspnet/core/host-and-deploy/iis).
+
Single file applications have all related PDB files alongside the application, not bundled by default. If you want to include PDBs inside the assembly for projects you build, set the `DebugType` to `embedded`. See [Include PDB files inside the bundle](#include-pdb-files-inside-the-bundle).
Managed C++ components aren't well suited for single file deployment. We recommend that you write applications in C# or another non-managed C++ language to be single file compatible.
From 0856a0724cbb23de9da69213fca761980f72222d Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Sat, 28 Mar 2026 02:42:34 +0000
Subject: [PATCH 10/11] Add string.Create documentation to "Create new strings
in .NET" (#52316)
* Initial plan
* Add string.Create documentation to creating-new.md with C# and VB snippets
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Bill Wagner
* Apply suggestions from code review
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
* Apply suggestion from @BillWagner
* Code-fence all H3 method headings (Format, Concat, Join, Insert, CopyTo) to match String.Create
Agent-Logs-Url: https://github.com/dotnet/docs/sessions/a7a2b1b2-b0fa-4d50-9011-bebb40a65c00
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
Co-authored-by: Bill Wagner
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
---
docs/standard/base-types/creating-new.md | 196 ++++++++++--------
.../snippets/creating-new/csharp/Program.cs | 28 +++
.../creating-new/csharp/creating-new.csproj | 11 +
.../snippets/creating-new/vb/Program.vb | 15 ++
.../creating-new/vb/creating-new.vbproj | 10 +
5 files changed, 175 insertions(+), 85 deletions(-)
create mode 100644 docs/standard/base-types/snippets/creating-new/csharp/Program.cs
create mode 100644 docs/standard/base-types/snippets/creating-new/csharp/creating-new.csproj
create mode 100644 docs/standard/base-types/snippets/creating-new/vb/Program.vb
create mode 100644 docs/standard/base-types/snippets/creating-new/vb/creating-new.vbproj
diff --git a/docs/standard/base-types/creating-new.md b/docs/standard/base-types/creating-new.md
index 6cd9906e023a7..9c494a44a289c 100644
--- a/docs/standard/base-types/creating-new.md
+++ b/docs/standard/base-types/creating-new.md
@@ -1,85 +1,111 @@
----
-title: "Creating New Strings"
-description: Learn to create strings using assignment, class constructors, or System.String methods that combine several strings, arrays of strings, or objects in .NET.
-ms.date: "03/30/2017"
-dev_langs:
- - "csharp"
- - "vb"
-helpviewer_keywords:
- - "CopyTo method"
- - "Join method"
- - "Format method"
- - "Concat method"
- - "strings [.NET], creating"
- - "Insert method"
----
-# Create new strings in .NET
-
-.NET allows strings to be created using simple assignment, and also overloads a class constructor to support string creation using a number of different parameters. .NET also provides several methods in the class that create new string objects by combining several strings, arrays of strings, or objects.
-
-## Create strings using assignment
-
- The easiest way to create a new object is simply to assign a string literal to a object.
-
-## Create strings using a class constructor
-
- You can use overloads of the class constructor to create strings from character arrays. You can also create a new string by duplicating a particular character a specified number of times.
-
-## Methods that return strings
-
- The following table lists several useful methods that return new string objects.
-
-| Method name | Use |
-|-------------------------------------------------------------|--------------------------------------------------------|
-| | Builds a formatted string from a set of input objects. |
-| | Builds strings from two or more strings. |
-| | Builds a new string by combining an array of strings. |
-| | Builds a new string by inserting a string into the specified index of an existing string. |
-| | Copies specified characters in a string into a specified position in an array of characters. |
-
-### Format
-
- You can use the `String.Format` method to create formatted strings and concatenate strings representing multiple objects. This method automatically converts any passed object into a string. For example, if your application must display an `Int32` value and a `DateTime` value to the user, you can easily construct a string to represent these values using the `Format` method. For information about formatting conventions used with this method, see the section on [composite formatting](composite-formatting.md).
-
- The following example uses the `Format` method to create a string that uses an integer variable.
-
- [!code-csharp[Strings.Creating#1](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#1)]
- [!code-vb[Strings.Creating#1](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#1)]
-
- In this example, displays the current date and time in a manner specified by the culture associated with the current thread.
-
-### Concat
-
- The `String.Concat` method can be used to easily create a new string object from two or more existing objects. It provides a language-independent way to concatenate strings. This method accepts any class that derives from `System.Object`. The following example creates a string from two existing string objects and a separating character.
-
- [!code-csharp[Strings.Creating#2](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#2)]
- [!code-vb[Strings.Creating#2](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#2)]
-
-### Join
-
- The `String.Join` method creates a new string from an array of strings and a separator string. This method is useful if you want to concatenate multiple strings together, making a list perhaps separated by a comma.
-
- The following example uses a space to bind a string array.
-
- [!code-csharp[Strings.Creating#3](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#3)]
- [!code-vb[Strings.Creating#3](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#3)]
-
-### Insert
-
- The `String.Insert` method creates a new string by inserting a string into a specified position in another string. This method uses a zero-based index. The following example inserts a string into the fifth index position of `MyString` and creates a new string with this value.
-
- [!code-csharp[Strings.Creating#4](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#4)]
- [!code-vb[Strings.Creating#4](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#4)]
-
-### CopyTo
-
- The `String.CopyTo` method copies portions of a string into an array of characters. You can specify both the beginning index of the string and the number of characters to be copied. This method takes the source index, an array of characters, the destination index, and the number of characters to copy. All indexes are zero-based.
-
- The following example uses the `CopyTo` method to copy the characters of the word "Hello" from a string object to the first index position of an array of characters.
-
- [!code-csharp[Strings.Creating#5](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#5)]
- [!code-vb[Strings.Creating#5](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#5)]
-
-## See also
-
-- [Composite Formatting](composite-formatting.md)
+---
+title: "Creating New Strings"
+description: Learn to create strings using assignment, class constructors, or System.String methods that combine several strings, arrays of strings, or objects in .NET.
+ms.date: "03/16/2026"
+ai-usage: ai-assisted
+dev_langs:
+ - "csharp"
+ - "vb"
+helpviewer_keywords:
+ - "CopyTo method"
+ - "Join method"
+ - "Format method"
+ - "Concat method"
+ - "strings [.NET], creating"
+ - "Insert method"
+ - "Create method"
+---
+# Create new strings in .NET
+
+.NET allows strings to be created using simple assignment, and also overloads a class constructor to support string creation using a number of different parameters. .NET also provides several methods in the class that create new string objects by combining several strings, arrays of strings, or objects.
+
+## Create strings using assignment
+
+The easiest way to create a new object is simply to assign a string literal to a object.
+
+## Create strings using a class constructor
+
+You can use overloads of the class constructor to create strings from character arrays. You can also create a new string by duplicating a particular character a specified number of times. The constructor overload accepts a or a stack-allocated of characters and avoids allocating an intermediate character array on the managed heap when you build small strings of a known size, although the resulting string instance is still allocated on the managed heap.
+
+## Methods that return strings
+
+The following table lists several useful methods that return new string objects.
+
+| Method name | Use |
+|---------------------------------------------------------------|--------------------------------------------------------|
+| | Builds a formatted string from a set of input objects. |
+| | Builds strings from two or more strings. |
+| | Builds a new string by combining an array of strings. |
+| | Builds a new string by inserting a string into the specified index of an existing string. |
+| | Copies specified characters in a string into a specified position in an array of characters. |
+| | Creates a new string of a specified length, populating characters via a callback that receives a writable and a caller-supplied state object. |
+
+### `String.Format`
+
+You can use the `String.Format` method to create formatted strings and concatenate strings representing multiple objects. This method automatically converts any passed object into a string. For example, if your application must display an `Int32` value and a `DateTime` value to the user, you can easily construct a string to represent these values using the `Format` method. For information about formatting conventions used with this method, see the section on [composite formatting](composite-formatting.md).
+
+The following example uses the `Format` method to create a string that uses an integer variable.
+
+[!code-csharp[Strings.Creating#1](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#1)]
+[!code-vb[Strings.Creating#1](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#1)]
+
+In this example, displays the current date and time in a manner specified by the culture associated with the current thread.
+
+### `String.Concat`
+
+The `String.Concat` method can be used to easily create a new string object from two or more existing objects. It provides a language-independent way to concatenate strings. This method accepts any class that derives from `System.Object`. The following example creates a string from two existing string objects and a separating character.
+
+[!code-csharp[Strings.Creating#2](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#2)]
+[!code-vb[Strings.Creating#2](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#2)]
+
+### `String.Join`
+
+The `String.Join` method creates a new string from an array of strings and a separator string. This method is useful if you want to concatenate multiple strings together, making a list perhaps separated by a comma.
+
+The following example uses a space to bind a string array.
+
+[!code-csharp[Strings.Creating#3](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#3)]
+[!code-vb[Strings.Creating#3](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#3)]
+
+### `String.Insert`
+
+The `String.Insert` method creates a new string by inserting a string into a specified position in another string. This method uses a zero-based index. The following example inserts a string into the fifth index position of `MyString` and creates a new string with this value.
+
+[!code-csharp[Strings.Creating#4](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#4)]
+[!code-vb[Strings.Creating#4](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#4)]
+
+### `String.CopyTo`
+
+The `String.CopyTo` method copies portions of a string into an array of characters. You can specify both the beginning index of the string and the number of characters to be copied. This method takes the source index, an array of characters, the destination index, and the number of characters to copy. All indexes are zero-based.
+
+The following example uses the `CopyTo` method to copy the characters of the word "Hello" from a string object to the first index position of an array of characters.
+
+[!code-csharp[Strings.Creating#5](../../../samples/snippets/csharp/VS_Snippets_CLR/Strings.Creating/cs/Example.cs#5)]
+[!code-vb[Strings.Creating#5](../../../samples/snippets/visualbasic/VS_Snippets_CLR/Strings.Creating/vb/Example.vb#5)]
+
+### `String.Create`
+
+The method lets you programmatically fill a new string's characters using a callback. The callback receives a writable of characters and a caller-supplied state object, so you can build the string's content without allocating intermediate character buffers. The callback itself might still allocate, for example if it captures local variables or calls other allocation-heavy APIs.
+
+The following example uses `String.Create` to build a five-character string from consecutive alphabet characters:
+
+:::code language="csharp" source="./snippets/creating-new/csharp/Program.cs" id="UsingStringCreate":::
+:::code language="vb" source="./snippets/creating-new/vb/Program.vb" id="UsingStringCreate":::
+
+`String.Create` is designed for performance-sensitive scenarios where you know the final string length in advance and want to avoid allocating intermediate character buffers. The runtime allocates a new string, passes its backing buffer directly to your callback as a `Span`, and returns the immutable string once the callback returns. No copy of the data occurs after the callback completes.
+
+#### `String.Create` vs. `new String(Span)`
+
+Another option for building strings efficiently is to allocate a character buffer with `stackalloc`, fill it, and pass it to the `String(ReadOnlySpan)` constructor:
+
+:::code language="csharp" source="./snippets/creating-new/csharp/Program.cs" id="UsingSpanConstructor":::
+
+Both approaches allocate the final string exactly once. The key differences are:
+
+- **`stackalloc` + `new string(span)`** places the working buffer on the stack. This is fastest for *small, fixed-size* buffers, but the stack is a finite resource; large or deeply nested allocations can cause a `StackOverflowException`. This example shows the C# `stackalloc` pattern; Visual Basic doesn't support `stackalloc`, but it can still call the `String(ReadOnlySpan)` constructor when you have a `ReadOnlySpan`.
+- **`String.Create`** allocates the working buffer on the heap as part of the string object itself, so there's no stack pressure. It also accepts a typed state parameter that the runtime passes to your callback without boxing, avoiding boxing allocations when the state is a reference type or a non-captured struct.
+In general, prefer `stackalloc` + `new String(span)` for small strings (typically fewer than a few hundred characters) with a known, bounded size. Use `String.Create` when the size might be large, when you want to avoid stack pressure, or when passing state into the callback without boxing.
+
+## See also
+
+- [Composite Formatting](composite-formatting.md)
diff --git a/docs/standard/base-types/snippets/creating-new/csharp/Program.cs b/docs/standard/base-types/snippets/creating-new/csharp/Program.cs
new file mode 100644
index 0000000000000..4ef617dfa64b7
--- /dev/null
+++ b/docs/standard/base-types/snippets/creating-new/csharp/Program.cs
@@ -0,0 +1,28 @@
+using System;
+
+//
+static string CreateStringFromSpan()
+{
+ Span span = stackalloc char[5];
+ for (int i = 0; i < 5; i++)
+ {
+ span[i] = (char)('a' + i);
+ }
+ return new string(span);
+}
+
+Console.WriteLine(CreateStringFromSpan()); // abcde
+//
+
+//
+string result = string.Create(5, 'a', (span, firstChar) =>
+{
+ for (int i = 0; i < span.Length; i++)
+ {
+ span[i] = (char)(firstChar + i);
+ }
+});
+
+Console.WriteLine(result); // abcde
+//
+
diff --git a/docs/standard/base-types/snippets/creating-new/csharp/creating-new.csproj b/docs/standard/base-types/snippets/creating-new/csharp/creating-new.csproj
new file mode 100644
index 0000000000000..f5599093400c6
--- /dev/null
+++ b/docs/standard/base-types/snippets/creating-new/csharp/creating-new.csproj
@@ -0,0 +1,11 @@
+
+
+
+ Exe
+ net10.0
+ creating_new
+ enable
+ enable
+
+
+
diff --git a/docs/standard/base-types/snippets/creating-new/vb/Program.vb b/docs/standard/base-types/snippets/creating-new/vb/Program.vb
new file mode 100644
index 0000000000000..f9526c6763620
--- /dev/null
+++ b/docs/standard/base-types/snippets/creating-new/vb/Program.vb
@@ -0,0 +1,15 @@
+Imports System
+
+'
+Module Program
+ Sub Main()
+ Dim result As String = String.Create(5, "a"c, Sub(span, firstChar)
+ For i As Integer = 0 To span.Length - 1
+ span(i) = ChrW(AscW(firstChar) + i)
+ Next
+ End Sub)
+
+ Console.WriteLine(result) ' abcde
+ End Sub
+End Module
+'
diff --git a/docs/standard/base-types/snippets/creating-new/vb/creating-new.vbproj b/docs/standard/base-types/snippets/creating-new/vb/creating-new.vbproj
new file mode 100644
index 0000000000000..cc8f63307ca35
--- /dev/null
+++ b/docs/standard/base-types/snippets/creating-new/vb/creating-new.vbproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ creating_new
+ net10.0
+ on
+
+
+
From 156931bb4ec1e81b028c76ea983553f2e9778bdd Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Sun, 29 Mar 2026 16:41:50 -0700
Subject: [PATCH 11/11] Replace encodings in xrefs (#52699)
---
.../blazor-for-web-forms-developers/config.md | 2 +-
.../infrastructure-resiliency-azure.md | 2 +-
docs/architecture/maui/validation.md | 4 +-
...ry-to-implement-resilient-http-requests.md | 4 +-
.../domain-model-layer-validations.md | 2 +-
.../background-tasks-with-ihostedservice.md | 2 +-
...tion-net-microservices-web-applications.md | 4 +-
.../index.md | 2 +-
.../develop-asp-net-core-mvc-apps.md | 2 +-
.../work-with-data-in-asp-net-core-apps.md | 2 +-
docs/azure/sdk/aspnetcore-guidance.md | 6 +-
.../sdk/authentication/best-practices.md | 8 +-
...te-token-credentials-from-configuration.md | 4 +-
.../sdk/authentication/credential-chains.md | 2 +-
.../local-development-broker.md | 2 +-
docs/azure/sdk/configure-proxy.md | 4 +-
docs/azure/sdk/dependency-injection.md | 10 +-
docs/azure/sdk/logging.md | 16 +-
docs/azure/sdk/pagination.md | 32 +-
.../azure/sdk/protocol-convenience-methods.md | 4 +-
docs/azure/sdk/unit-testing-mocking.md | 10 +-
...2015-finalizers-for-memorymanager-types.md | 4 +-
...-ctor-arg-should-be-taskcreationoptions.md | 6 +-
.../10.0/sigterm-signal-handler.md | 2 +-
.../sve-nonfaulting-loads-mask-parameter.md | 2 +-
.../11/ziparchive-createasync-eager-load.md | 2 +-
.../5.0/code-access-security-apis-obsolete.md | 4 +-
...ntersetinstance-throws-invalidoperation.md | 8 +-
...nment-osversion-returns-correct-version.md | 2 +-
.../intptr-uintptr-implement-iformattable.md | 4 +-
...dexof-improved-handling-of-empty-values.md | 10 +-
.../obsolete-apis-with-custom-diagnostics.md | 14 +-
...erby-firstordefault-complexity-increase.md | 14 +-
.../5.0/thread-abort-obsolete.md | 16 +-
.../5.0/utf-7-code-paths-obsolete.md | 16 +-
.../5.0/vector-lerp-behavior-change.md | 2 +-
.../vectort-throws-notsupportedexception.md | 12 +-
...itional-linq-queryable-method-overloads.md | 20 +-
.../debug-assert-conditional-evaluation.md | 2 +-
.../6.0/file-replace-exceptions-on-unix.md | 12 +-
.../filestream-doesnt-sync-offset-with-os.md | 2 +-
...s-after-readasync-writeasync-completion.md | 8 +-
.../nullable-ref-type-annotation-changes.md | 12 +-
.../obsolete-apis-with-custom-diagnostics.md | 8 +-
.../6.0/parameter-name-changes.md | 12 +-
.../6.0/partial-byte-reads-in-streams.md | 14 +-
.../stringbuilder-append-evaluation-order.md | 10 +-
.../6.0/task-fromresult-returns-singleton.md | 12 +-
.../6.0/xnodereader-getattribute.md | 2 +-
.../core-libraries/7.0/equals-nan.md | 36 +-
.../7.0/filestream-compat-switch.md | 2 +-
.../max-precision-numeric-format-strings.md | 4 +-
.../7.0/memorycache-tracking.md | 2 +-
.../obsolete-apis-with-custom-diagnostics.md | 4 +-
.../7.0/patterncontext-generic-constraint.md | 8 +-
.../core-libraries/7.0/regex-ranges.md | 14 +-
.../8.0/activity-operation-name.md | 6 +-
.../core-libraries/8.0/bool-backed-enum.md | 12 +-
.../core-libraries/8.0/complex-format.md | 10 +-
.../8.0/console-readkey-legacy.md | 8 +-
.../8.0/decodefromutf8-whitespace.md | 2 +-
.../8.0/drive-current-dir-paths.md | 26 +-
.../core-libraries/8.0/enumerable-sum.md | 4 +-
.../core-libraries/8.0/file-path-backslash.md | 8 +-
.../8.0/filestream-disposed-pipe.md | 4 +-
.../core-libraries/8.0/getfolderpath-unix.md | 2 +-
.../8.0/getgeneration-return-value.md | 6 +-
.../obsolete-apis-with-custom-diagnostics.md | 20 +-
.../8.0/parameterinfo-hasdefaultvalue.md | 2 +-
.../8.0/processstartinfo-windowstyle.md | 2 +-
.../9.0/compressionlevel-bits.md | 2 +-
.../core-libraries/9.0/getsubarray-return.md | 6 +-
.../9.0/inmemorydirinfo-prepends-rootdir.md | 2 +-
.../obsolete-apis-with-custom-diagnostics.md | 6 +-
.../cryptography/7.0/decrypt-envelopedcms.md | 2 +-
.../cryptography/8.0/aesgcm-auth-tag-size.md | 10 +-
.../8.0/rsa-encrypt-decrypt-value-obsolete.md | 2 +-
.../cryptography/9.0/x509-certificates.md | 2 +-
.../backgroundservice-executeasync-task.md | 4 +-
...console-json-logging-duplicate-messages.md | 2 +-
.../6.0/service-provider-disposed.md | 2 +-
.../7.0/contentrootpath-hosted-app.md | 6 +-
...ivatorutilities-createinstance-behavior.md | 8 +-
...rutilities-createinstance-null-provider.md | 8 +-
.../8.0/configurationbinder-exceptions.md | 2 +-
.../5.0/icu-globalization-api.md | 12 +-
.../uax29-compliant-grapheme-enumeration.md | 6 +-
.../unicode-categories-for-latin1-chars.md | 10 +-
.../6.0/culture-creation-invariant-mode.md | 6 +-
.../7.0/icu-globalization-api.md | 12 +-
.../8.0/twodigityearmax-default.md | 26 +-
...ulticastoption-group-doesnt-accept-null.md | 2 +-
...eam-dont-fail-on-successive-begin-calls.md | 8 +-
.../7.0/ping-custom-payload-linux.md | 2 +-
.../7.0/socket-end-closed-sockets.md | 8 +-
.../networking/8.0/sendfile-connectionless.md | 20 +-
.../10/ireflect-damt-annotations.md | 2 +-
...ormatter-deserialize-rewraps-exceptions.md | 8 +-
.../binaryformatter-serialization-obsolete.md | 8 +-
...son-into-char-requires-single-character.md | 2 +-
...lizer-allows-reading-numbers-as-strings.md | 6 +-
...ows-argumentnullexception-for-null-type.md | 4 +-
...nstructors-not-used-for-deserialization.md | 6 +-
...onored-when-serializing-key-value-pairs.md | 22 +-
.../6.0/iasyncenumerable-serialization.md | 18 +-
...onserializer-source-generator-overloads.md | 2 +-
.../6.0/timespan-serialization-format.md | 2 +-
.../binaryformatter-apis-produce-errors.md | 8 +-
.../datacontractserializer-negative-sign.md | 4 +-
.../deserialize-version-with-whitespace.md | 4 +-
.../7.0/polymorphic-serialization.md | 8 +-
.../serialization/7.0/reflection-fallback.md | 14 +-
.../serialization/8.0/metadata-resolving.md | 2 +-
docs/core/compatibility/unsupported-apis.md | 44 +-
.../6.0/duplex-synchronization-context.md | 6 +-
...tring-field-of-textformatflags-obsolete.md | 2 +-
.../6.0/listview-invalidoperationexception.md | 4 +-
.../9.0/componentdesigner-initialize.md | 10 +-
.../wpf/9.0/xml-namespace-maps.md | 4 +-
.../dependency-loading/collect-details.md | 2 +-
.../dependency-loading/default-probing.md | 2 +-
.../dependency-loading/loading-managed.md | 22 +-
.../dependency-loading/loading-resources.md | 4 +-
.../dependency-loading/loading-unmanaged.md | 2 +-
.../understanding-assemblyloadcontext.md | 8 +-
.../trimming/trim-warnings/il2032.md | 2 +-
.../trimming/trim-warnings/il2058.md | 6 +-
.../trimming/trim-warnings/il2061.md | 2 +-
.../deploying/trimming/trimming-options.md | 2 +-
.../ambient-metadata/application-metadata.md | 2 +-
.../built-in-metrics-diagnostics.md | 2 +-
.../diagnostics/built-in-metrics-runtime.md | 12 +-
.../diagnostic-exception-summary.md | 6 +-
.../diagnostics/diagnostic-health-checks.md | 12 +-
.../diagnostic-resource-monitoring.md | 6 +-
.../diagnosticsource-diagnosticlistener.md | 2 +-
.../distributed-tracing-builtin-activities.md | 2 +-
...ributed-tracing-collection-walkthroughs.md | 4 +-
.../distributed-tracing-concepts.md | 10 +-
...ed-tracing-instrumentation-walkthroughs.md | 10 +-
docs/core/diagnostics/event-counter-perf.md | 2 +-
docs/core/diagnostics/event-counters.md | 14 +-
.../eventsource-collect-and-view-traces.md | 8 +-
.../eventsource-instrumentation.md | 10 +-
docs/core/diagnostics/index.md | 2 +-
docs/core/diagnostics/logging-tracing.md | 2 +-
docs/core/diagnostics/metrics-collection.md | 4 +-
.../diagnostics/metrics-instrumentation.md | 46 +-
.../diagnostics/observability-with-otel.md | 2 +-
.../enrichment/application-log-enricher.md | 2 +-
docs/core/extensions/async-state.md | 10 +-
docs/core/extensions/caching.md | 78 +-
docs/core/extensions/channels.md | 40 +-
.../extensions/configuration-generator.md | 8 +-
.../extensions/configuration-providers.md | 10 +-
docs/core/extensions/create-resource-files.md | 6 +-
.../custom-configuration-provider.md | 2 +-
.../dependency-injection/auto-activation.md | 6 +-
.../extensions/dependency-injection/basics.md | 2 +-
.../dependency-injection/guidelines.md | 16 +-
.../dependency-injection/overview.md | 4 +-
.../dependency-injection/service-lifetimes.md | 8 +-
.../service-registration.md | 14 +-
docs/core/extensions/file-globbing.md | 12 +-
docs/core/extensions/generic-host.md | 44 +-
docs/core/extensions/globalization-icu.md | 4 +-
docs/core/extensions/globalization.md | 14 +-
docs/core/extensions/http-ratelimiter.md | 6 +-
.../extensions/httpclient-factory-keyed-di.md | 8 +-
.../httpclient-factory-troubleshooting.md | 6 +-
docs/core/extensions/httpclient-factory.md | 40 +-
docs/core/extensions/httpclient-http3.md | 2 +-
docs/core/extensions/localizability-review.md | 2 +-
docs/core/extensions/localization.md | 12 +-
.../logging/console-log-formatter.md | 18 +-
.../logging/high-performance-logging.md | 14 +-
.../extensions/logging/library-guidance.md | 6 +-
docs/core/extensions/logging/log-buffering.md | 4 +-
docs/core/extensions/logging/log-sampling.md | 4 +-
docs/core/extensions/logging/overview.md | 34 +-
docs/core/extensions/logging/providers.md | 10 +-
.../extensions/logging/source-generation.md | 6 +-
.../extensions/options-library-authors.md | 34 +-
.../options-validation-generator.md | 4 +-
docs/core/extensions/options.md | 18 +-
...orming-culture-insensitive-case-changes.md | 10 +-
...-culture-insensitive-string-comparisons.md | 10 +-
...insensitive-string-operations-in-arrays.md | 6 +-
...sitive-string-operations-in-collections.md | 6 +-
...g-culture-insensitive-string-operations.md | 8 +-
docs/core/extensions/primitives.md | 8 +-
docs/core/extensions/queue-service.md | 4 +-
docs/core/extensions/retrieve-resources.md | 8 +-
docs/core/extensions/scoped-service.md | 2 +-
docs/core/extensions/service-discovery.md | 6 +-
.../extensions/sslstream-best-practices.md | 8 +-
docs/core/extensions/timer-service.md | 6 +-
docs/core/extensions/windows-service.md | 4 +-
.../work-with-resx-files-programmatically.md | 10 +-
docs/core/extensions/workers.md | 6 +-
docs/core/get-started.md | 2 +-
.../porting/net-framework-tech-unavailable.md | 6 +-
docs/core/resilience/http-resilience.md | 6 +-
docs/core/runtime-config/index.md | 2 +-
docs/core/runtime-config/threading.md | 6 +-
.../testing/mstest-analyzers/mstest0038.md | 4 +-
.../testing/mstest-analyzers/mstest0051.md | 2 +-
.../testing/mstest-analyzers/mstest0055.md | 2 +-
...esting-mstest-writing-tests-data-driven.md | 8 +-
docs/core/tools/dotnet-watch.md | 8 +-
docs/core/tutorials/debug-console-app.md | 8 +-
docs/core/tutorials/test-class-library.md | 2 +-
.../cordebugblockingreason-enumeration.md | 2 +-
...frame3-getreturnvalueforiloffset-method.md | 2 +-
...agedcallback3-customnotification-method.md | 2 +-
...rgedassemblyrecord-getsimplename-method.md | 2 +-
...ess3-setenablecustomnotification-method.md | 2 +-
.../icordebug/icordebugprocess6-interface.md | 2 +-
...bugprocess6-markdebuggerattached-method.md | 6 +-
...tadataimport-enummethodsemantics-method.md | 2 +-
docs/core/whats-new/dotnet-10/libraries.md | 2 +-
docs/core/whats-new/dotnet-11/libraries.md | 14 +-
docs/core/whats-new/dotnet-6.md | 46 +-
docs/core/whats-new/dotnet-7.md | 10 +-
docs/core/whats-new/dotnet-8/runtime.md | 40 +-
docs/core/whats-new/dotnet-8/sdk.md | 6 +-
docs/core/whats-new/dotnet-9/libraries.md | 68 +-
docs/core/whats-new/dotnet-9/overview.md | 6 +-
docs/core/whats-new/dotnet-9/runtime.md | 2 +-
docs/core/whats-new/dotnet-9/sdk.md | 2 +-
docs/core/whats-new/dotnet-core-2-1.md | 22 +-
docs/core/whats-new/dotnet-core-3-0.md | 2 +-
.../expression-trees-building.md | 2 +-
.../expression-trees-execution.md | 10 +-
.../expression-trees-translating.md | 2 +-
.../advanced-topics/expression-trees/index.md | 4 +-
.../static-virtual-interface-members.md | 6 +-
.../how-to-access-office-interop-objects.md | 6 +-
...d-properties-in-com-interop-programming.md | 6 +-
...ptional-arguments-in-office-programming.md | 10 +-
...ough-creating-and-using-dynamic-objects.md | 4 +-
.../interop/walkthrough-office-programming.md | 4 +-
.../advanced-topics/performance/index.md | 2 +-
.../interpolated-string-handler.md | 4 +-
.../generics-and-reflection.md | 44 +-
...-assembly-metadata-with-reflection-linq.md | 4 +-
.../reflection-and-attributes/index.md | 4 +-
.../async-return-types.md | 32 +-
.../async-scenarios.md | 14 +-
...cancel-an-async-task-or-a-list-of-tasks.md | 2 +-
...ncel-async-tasks-after-a-period-of-time.md | 2 +-
.../generate-consume-asynchronous-stream.md | 16 +-
docs/csharp/asynchronous-programming/index.md | 10 +-
...tasks-and-process-them-as-they-complete.md | 16 +-
.../task-asynchronous-programming-model.md | 28 +-
.../using-async-for-file-access.md | 10 +-
docs/csharp/delegates-strongly-typed.md | 6 +-
docs/csharp/event-pattern.md | 2 +-
.../coding-style/coding-conventions.md | 4 +-
.../creating-and-throwing-exceptions.md | 8 +-
...w-to-execute-cleanup-code-using-finally.md | 6 +-
...-to-handle-an-exception-using-try-catch.md | 4 +-
.../exceptions/using-exceptions.md | 4 +-
.../fundamentals/functional/deconstruct.md | 2 +-
.../functional/pattern-matching.md | 2 +-
.../fundamentals/object-oriented/index.md | 56 +-
.../object-oriented/inheritance.md | 10 +-
.../fundamentals/object-oriented/objects.md | 8 +-
docs/csharp/fundamentals/tutorials/classes.md | 2 +-
.../fundamentals/tutorials/inheritance.md | 16 +-
.../tutorials/system-command-line.md | 4 +-
.../fundamentals/types/anonymous-types.md | 4 +-
docs/csharp/fundamentals/types/enums.md | 6 +-
docs/csharp/fundamentals/types/generics.md | 2 +-
docs/csharp/fundamentals/types/interfaces.md | 6 +-
docs/csharp/how-to/compare-strings.md | 12 +-
.../how-to/concatenate-multiple-strings.md | 12 +-
.../how-to-catch-a-non-cls-exception.md | 42 +-
docs/csharp/how-to/modify-string-contents.md | 16 +-
.../how-to/parse-strings-using-split.md | 8 +-
docs/csharp/how-to/search-strings.md | 8 +-
docs/csharp/iterators.md | 2 +-
.../attributes/caller-information.md | 2 +-
.../language-reference/attributes/general.md | 6 +-
.../builtin-types/arrays.md | 4 +-
.../builtin-types/collections.md | 20 +-
.../builtin-types/default-values.md | 2 +-
.../language-reference/builtin-types/enum.md | 6 +-
.../builtin-types/nullable-reference-types.md | 2 +-
.../builtin-types/nullable-value-types.md | 28 +-
.../builtin-types/record.md | 10 +-
.../builtin-types/ref-struct.md | 8 +-
.../builtin-types/reference-types.md | 6 +-
.../builtin-types/struct.md | 2 +-
.../builtin-types/value-tuples.md | 2 +-
.../array-declaration-errors.md | 4 +-
.../compiler-messages/async-await-errors.md | 14 +-
.../compiler-messages/cs0465.md | 48 +-
.../expression-tree-restrictions.md | 2 +-
.../compiler-messages/inline-array-errors.md | 4 +-
.../compiler-messages/iterator-yield.md | 2 +-
.../overloaded-operator-errors.md | 8 +-
.../using-statement-declaration-errors.md | 4 +-
.../compiler-options/code-generation.md | 2 +-
.../compiler-options/language.md | 6 +-
.../language-reference/keywords/async.md | 2 +-
.../language-reference/keywords/event.md | 2 +-
.../keywords/from-clause.md | 8 +-
.../keywords/group-clause.md | 24 +-
.../keywords/in-generic-modifier.md | 4 +-
.../language-reference/keywords/interface.md | 2 +-
.../language-reference/keywords/into.md | 6 +-
.../keywords/join-clause.md | 6 +-
.../keywords/method-parameters.md | 16 +-
.../keywords/orderby-clause.md | 6 +-
.../keywords/out-generic-modifier.md | 4 +-
.../keywords/select-clause.md | 6 +-
.../keywords/where-clause.md | 6 +-
.../keywords/where-generic-type-constraint.md | 4 +-
.../operators/arithmetic-operators.md | 8 +-
.../language-reference/operators/await.md | 12 +-
.../operators/collection-expressions.md | 34 +-
.../operators/comparison-operators.md | 6 +-
.../operators/delegate-operator.md | 2 +-
.../operators/equality-operators.md | 14 +-
.../operators/lambda-expressions.md | 14 +-
.../operators/member-access-operators.md | 2 +-
.../operators/null-coalescing-operator.md | 2 +-
.../language-reference/operators/patterns.md | 8 +-
.../language-reference/operators/sizeof.md | 6 +-
.../operators/stackalloc.md | 10 +-
.../operators/type-testing-and-cast.md | 8 +-
.../statements/declarations.md | 6 +-
.../exception-handling-statements.md | 4 +-
.../language-reference/statements/fixed.md | 8 +-
.../statements/iteration-statements.md | 10 +-
.../statements/jump-statements.md | 2 +-
.../language-reference/statements/yield.md | 6 +-
.../language-reference/tokens/interpolated.md | 8 +-
docs/csharp/language-reference/unsafe-code.md | 4 +-
.../get-started/features-that-support-linq.md | 10 +-
.../introduction-to-linq-queries.md | 122 +-
.../get-started/query-expression-basics.md | 4 +-
...-relationships-in-linq-query-operations.md | 8 +-
.../linq/get-started/write-linq-queries.md | 28 +-
.../linq/how-to-build-dynamic-queries.md | 28 +-
docs/csharp/linq/how-to-extend-linq.md | 16 +-
docs/csharp/linq/how-to-query-collections.md | 8 +-
.../how-to-query-files-and-directories.md | 12 +-
docs/csharp/linq/how-to-query-strings.md | 6 +-
docs/csharp/linq/includes/linq-syntax.md | 2 +-
docs/csharp/linq/index.md | 28 +-
.../converting-data-types.md | 22 +-
.../filtering-data.md | 4 +-
.../standard-query-operators/grouping-data.md | 8 +-
.../linq/standard-query-operators/index.md | 28 +-
.../join-operations.md | 30 +-
.../partitioning-data.md | 10 +-
.../projection-operations.md | 12 +-
.../quantifier-operations.md | 8 +-
.../set-operations.md | 22 +-
.../standard-query-operators/sorting-data.md | 12 +-
docs/csharp/methods.md | 4 +-
docs/csharp/misc/cs0119.md | 42 +-
docs/csharp/misc/cs0202.md | 138 +-
docs/csharp/misc/cs0280.md | 90 +-
docs/csharp/misc/cs1720.md | 54 +-
docs/csharp/nullable-references.md | 6 +-
.../classes-and-structs/constructors.md | 4 +-
.../classes-and-structs/extension-methods.md | 6 +-
.../classes-and-structs/finalizers.md | 4 +-
...ictionary-with-a-collection-initializer.md | 18 +-
.../how-to-override-the-tostring-method.md | 56 +-
.../classes-and-structs/methods.md | 6 +-
.../named-and-optional-arguments.md | 2 +-
.../object-and-collection-initializers.md | 8 +-
.../static-constructors.md | 4 +-
.../covariance-contravariance/index.md | 132 +-
...e-in-interfaces-for-generic-collections.md | 196 +--
.../variance-in-delegates.md | 364 +++---
.../variance-in-generic-interfaces.md | 24 +-
.../programming-guide/concepts/iterators.md | 16 +-
.../constraints-on-type-parameters.md | 4 +-
.../generics/generic-classes.md | 104 +-
.../generics/generic-interfaces.md | 8 +-
.../generics/generic-methods.md | 70 +-
.../generics/generics-and-arrays.md | 14 +-
.../generics/generics-in-the-run-time.md | 10 +-
.../equality-comparisons.md | 58 +-
.../expression-bodied-members.md | 4 +-
...how-to-define-value-equality-for-a-type.md | 72 +-
...to-test-for-reference-equality-identity.md | 28 +-
.../csharp/programming-guide/strings/index.md | 10 +-
.../types/casting-and-type-conversions.md | 4 +-
.../how-to-convert-a-string-to-a-number.md | 12 +-
...n-hexadecimal-strings-and-numeric-types.md | 78 +-
.../get-started/semantic-analysis.md | 4 +-
.../roslyn-sdk/get-started/syntax-analysis.md | 4 +-
.../get-started/syntax-transformation.md | 6 +-
.../how-to-write-csharp-analyzer-code-fix.md | 2 +-
docs/csharp/roslyn-sdk/work-with-syntax.md | 14 +-
.../tour-of-csharp/tutorials/hello-world.md | 16 +-
.../tutorials/list-collection.md | 20 +-
docs/csharp/tutorials/console-webapiclient.md | 12 +-
docs/csharp/tutorials/ranges-indexes.md | 8 +-
docs/csharp/tutorials/records.md | 4 +-
docs/csharp/tutorials/string-interpolation.md | 6 +-
docs/csharp/tutorials/top-level-statements.md | 2 +-
docs/csharp/tutorials/working-with-linq.md | 20 +-
docs/csharp/whats-new/csharp-12.md | 12 +-
docs/csharp/whats-new/csharp-13.md | 6 +-
.../whats-new/csharp-version-history.md | 4 +-
docs/framework/64-bit-apps.md | 2 +-
...vicemodel.channels.message.bodytostring.md | 2 +-
...odel.channels.message.writestartheaders.md | 2 +-
...itingcancelled-event-system-windows-xps.md | 2 +-
.../app-domains/application-domains.md | 16 +-
.../how-to-configure-an-application-domain.md | 2 +-
...d-assemblies-into-an-application-domain.md | 14 +-
...ve-first-chance-exception-notifications.md | 6 +-
.../how-to-unload-an-application-domain.md | 2 +-
.../app-domains/shadow-copy-assemblies.md | 26 +-
.../file-schema/compiler/compiler-element.md | 2 +-
.../file-schema/compiler/compilers-element.md | 2 +-
.../file-schema/compiler/index.md | 2 +-
.../compiler/provideroption-element.md | 2 +-
.../compiler/system-codedom-element.md | 6 +-
.../cryptography/cryptoclass-element.md | 2 +-
.../cryptography/cryptoclasses-element.md | 2 +-
.../cryptographysettings-element.md | 2 +-
.../cryptography/cryptonamemapping-element.md | 2 +-
...orlib-element-for-cryptography-settings.md | 4 +-
.../cryptography/nameentry-element.md | 4 +-
...-authenticationmodules-network-settings.md | 2 +-
...r-connectionmanagement-network-settings.md | 2 +-
...element-for-schemesettings-uri-settings.md | 2 +-
...-for-webrequestmodules-network-settings.md | 4 +-
...element-for-schemesettings-uri-settings.md | 2 +-
.../defaultproxy-element-network-settings.md | 2 +-
.../httplistener-element-network-settings.md | 14 +-
...httpwebrequest-element-network-settings.md | 2 +-
.../network/ipv6-element-network-settings.md | 4 +-
.../module-element-network-settings.md | 2 +-
.../network-element-network-settings.md | 6 +-
.../network/proxy-element-network-settings.md | 2 +-
...element-for-schemesettings-uri-settings.md | 2 +-
.../schemesettings-element-uri-settings.md | 2 +-
.../socket-element-network-settings.md | 6 +-
.../alwaysflowimpersonationpolicy-element.md | 6 +-
.../appcontextswitchoverrides-element.md | 20 +-
.../appdomainmanagerassembly-element.md | 8 +-
.../runtime/appdomainmanagertype-element.md | 8 +-
.../appdomainresourcemonitoring-element.md | 4 +-
.../bypasstrustedappstrongnames-element.md | 2 +-
.../runtime/compatsortnlsversion-element.md | 2 +-
...sablefusionupdatesfromadmanager-element.md | 6 +-
.../enableampmparseadjustment-element.md | 12 +-
.../file-schema/runtime/index.md | 2 +-
.../legacyimpersonationpolicy-element.md | 2 +-
.../runtime/loadfromremotesources-element.md | 6 +-
.../memorycache-element-cache-settings.md | 4 +-
.../namedcaches-element-cache-settings.md | 4 +-
...comparergethashcode-longstrings-element.md | 10 +-
.../runtime/qualifyassembly-element.md | 2 +-
.../file-schema/runtime/runtime-element.md | 4 +-
.../throwunobservedtaskexceptions-element.md | 2 +-
.../timespan-legacyformatmode-element.md | 2 +-
...serandomizedstringhashalgorithm-element.md | 10 +-
.../add-element-for-listeners-for-source.md | 8 +-
.../add-element-for-listeners-for-trace.md | 4 +-
.../add-element-for-sharedlisteners.md | 2 +-
.../file-schema/trace-debug/assert-element.md | 2 +-
.../clear-element-for-listeners-for-trace.md | 6 +-
...lement-for-add-for-listeners-for-source.md | 2 +-
...element-for-add-for-listeners-for-trace.md | 2 +-
...ter-element-for-add-for-sharedlisteners.md | 2 +-
.../file-schema/trace-debug/index.md | 58 +-
.../listeners-element-for-source.md | 2 +-
.../performancecounters-element.md | 2 +-
...remove-element-for-listeners-for-source.md | 4 +-
.../remove-element-for-listeners-for-trace.md | 2 +-
.../file-schema/trace-debug/source-element.md | 2 +-
.../trace-debug/system-diagnostics-element.md | 2 +-
.../file-schema/trace-debug/trace-element.md | 2 +-
.../file-schema/wcf/add-of-allowaccounts.md | 4 +-
.../wcf/add-of-allowedaudienceuris.md | 8 +-
.../wcf/add-of-authorizationpolicies.md | 4 +-
.../file-schema/wcf/add-of-baseaddresses.md | 2 +-
.../add-of-claimtyperequirements-element.md | 4 +-
.../wcf/add-of-claimtyperequirements.md | 4 +-
.../file-schema/wcf/add-of-filters.md | 2 +-
.../wcf/add-of-knowncertificates.md | 8 +-
.../wcf/add-of-scopedcertificates-element.md | 4 +-
.../file-schema/wcf/allowaccounts.md | 4 +-
.../file-schema/wcf/allowedaudienceuris.md | 8 +-
...entication-of-clientcertificate-element.md | 4 +-
...ntication-of-servicecertificate-element.md | 2 +-
.../file-schema/wcf/authorizationpolicies.md | 4 +-
.../file-schema/wcf/baseaddresses.md | 2 +-
.../wcf/bytestreammessageencoding.md | 2 +-
.../file-schema/wcf/certificate-element.md | 4 +-
.../wcf/certificate-for-identity.md | 2 +-
...ertificate-of-clientcertificate-element.md | 4 +-
.../file-schema/wcf/certificate-of-peer.md | 4 +-
.../wcf/certificatereference-for-identity.md | 2 +-
.../file-schema/wcf/channelpoolsettings.md | 4 +-
.../wcf/claimtyperequirements-element.md | 4 +-
.../wcf/claimtyperequirements-for-message.md | 4 +-
.../clear-of-claimtyperequirements-element.md | 4 +-
...ertificate-of-clientcredentials-element.md | 4 +-
...clientcertificate-of-servicecredentials.md | 4 +-
.../configure-apps/file-schema/wcf/custom.md | 2 +-
.../file-schema/wcf/custombinding.md | 2 +-
.../file-schema/wcf/declaredtypes.md | 2 +-
.../wcf/defaultcertificate-element.md | 2 +-
.../file-schema/wcf/discoveryendpoint.md | 2 +-
.../configure-apps/file-schema/wcf/dns.md | 2 +-
.../configure-apps/file-schema/wcf/filters.md | 2 +-
.../file-schema/wcf/headers-element.md | 4 +-
.../configure-apps/file-schema/wcf/headers.md | 2 +-
.../file-schema/wcf/httpdigest-element.md | 4 +-
.../file-schema/wcf/identity.md | 2 +-
...kenauthentication-of-servicecredentials.md | 8 +-
.../file-schema/wcf/knowncertificates.md | 8 +-
.../wcf/localclientsettings-element.md | 4 +-
.../file-schema/wcf/localissuer.md | 2 +-
.../wcf/localservicesettings-element.md | 4 +-
.../wcf/message-element-of-nettcpbinding.md | 4 +-
...-element-of-ws2007federationhttpbinding.md | 4 +-
...sage-element-of-wsfederationhttpbinding.md | 4 +-
.../wcf/message-of-basichttpbinding.md | 4 +-
.../wcf/message-of-netmsmqbinding.md | 4 +-
.../wcf/message-of-ws2007httpbinding.md | 6 +-
.../wcf/message-of-wsdualhttpbinding.md | 4 +-
.../wcf/message-of-wshttpbinding.md | 4 +-
.../file-schema/wcf/messagelogging.md | 2 +-
.../messagesenderauthentication-element.md | 4 +-
.../wcf/messagesenderauthentication.md | 4 +-
.../file-schema/wcf/mexhttpbinding.md | 2 +-
.../file-schema/wcf/mexhttpsbinding.md | 2 +-
.../file-schema/wcf/mexnamedpipebinding.md | 2 +-
.../file-schema/wcf/mextcpbinding.md | 2 +-
.../file-schema/wcf/msmqintegrationbinding.md | 10 +-
.../file-schema/wcf/netmsmqbinding.md | 10 +-
.../file-schema/wcf/netnamedpipebinding.md | 2 +-
.../file-schema/wcf/nettcpbinding.md | 2 +-
.../file-schema/wcf/nettcpcontextbinding.md | 2 +-
.../file-schema/wcf/parameter.md | 4 +-
.../wcf/peer-of-clientcredentials-element.md | 4 +-
.../wcf/peer-of-servicecredentials.md | 4 +-
.../wcf/peerauthentication-element.md | 4 +-
.../file-schema/wcf/peerauthentication.md | 4 +-
...remove-of-claimtyperequirements-element.md | 4 +-
.../configure-apps/file-schema/wcf/rsa.md | 2 +-
.../wcf/scopedcertificates-element.md | 4 +-
...tionauthentication-of-servicecredential.md | 4 +-
.../wcf/secureconversationbootstrap.md | 2 +-
...-element-of-ws2007federationhttpbinding.md | 4 +-
.../wcf/security-of-basichttpbinding.md | 4 +-
.../wcf/security-of-msmqintegrationbinding.md | 4 +-
.../wcf/security-of-nethttpbinding.md | 4 +-
.../wcf/security-of-netmsmqbinding.md | 4 +-
.../wcf/security-of-netnamedpipebinding.md | 4 +-
.../wcf/security-of-netpeerbinding.md | 4 +-
.../wcf/security-of-nettcpbinding.md | 4 +-
.../wcf/security-of-webhttpbinding.md | 4 +-
.../wcf/security-of-ws2007httpbinding.md | 4 +-
.../security-of-wsfederationhttpbinding.md | 4 +-
.../wcf/security-of-wshttpbinding.md | 4 +-
...ertificate-of-clientcredentials-element.md | 4 +-
...ervicecertificate-of-servicecredentials.md | 4 +-
.../file-schema/wcf/servicemetadata.md | 6 +-
.../file-schema/wcf/serviceprincipalname.md | 2 +-
.../wcf/transport-of-basichttpbinding.md | 4 +-
.../transport-of-msmqintegrationbinding.md | 4 +-
.../wcf/transport-of-netmsmqbinding.md | 4 +-
.../wcf/transport-of-netnamedpipebinding.md | 4 +-
.../wcf/transport-of-netpeertcpbinding.md | 4 +-
.../wcf/transport-of-nettcpbinding.md | 4 +-
.../wcf/transport-of-peertransport.md | 2 +-
.../wcf/transport-of-webhttpbinding.md | 4 +-
.../wcf/transport-of-ws2007httpbinding.md | 4 +-
.../wcf/transport-of-wshttpbinding.md | 4 +-
.../file-schema/wcf/userprincipalname.md | 2 +-
.../windows-of-clientcredentials-element.md | 4 +-
...owsauthentication-of-servicecredentials.md | 4 +-
.../file-schema/wcf/ws2007httpbinding.md | 2 +-
.../trackingprofile.md | 2 +-
...algorithm-names-to-cryptography-classes.md | 8 +-
.../data/adonet/ado-net-code-examples.md | 2 +-
.../data/adonet/asynchronous-programming.md | 42 +-
.../data/adonet/commands-and-parameters.md | 42 +-
.../comparing-datarows-linq-to-dataset.md | 54 +-
...ing-parameters-and-parameter-data-types.md | 6 +-
.../data/adonet/connection-events.md | 2 +-
.../data/adonet/connection-string-syntax.md | 2 +-
...nection-strings-and-configuration-files.md | 12 +-
...-datatable-from-a-query-linq-to-dataset.md | 112 +-
...ating-a-dataview-object-linq-to-dataset.md | 110 +-
.../cross-table-queries-linq-to-dataset.md | 34 +-
.../data/adonet/dataadapter-parameters.md | 6 +-
.../acceptchanges-and-rejectchanges.md | 2 +-
.../adding-a-datatable-to-a-dataset.md | 6 +-
.../adding-columns-to-a-datatable.md | 2 +-
.../adding-data-to-a-datatable.md | 2 +-
.../adding-datarelations.md | 2 +-
.../annotating-typed-datasets.md | 2 +-
.../childviews-and-relations.md | 2 +-
.../copying-dataset-contents.md | 8 +-
.../creating-a-datareader.md | 38 +-
.../creating-a-dataset.md | 30 +-
.../creating-a-datatable-from-a-dataview.md | 6 +-
.../creating-a-datatable.md | 2 +-
.../creating-a-dataview.md | 2 +-
.../creating-autoincrement-columns.md | 2 +-
.../creating-expression-columns.md | 4 +-
.../datarow-deletion.md | 4 +-
.../datarows-and-datarowviews.md | 4 +-
.../datatable-constraints.md | 2 +-
.../datatable-edits.md | 2 +-
.../datatable-schema-definition.md | 2 +-
.../datatablereaders.md | 2 +-
.../dataset-datatable-dataview/dataviews.md | 2 +-
.../defining-primary-keys.md | 2 +-
.../finding-rows.md | 2 +-
.../generating-strongly-typed-datasets.md | 2 +-
.../handling-dataset-events.md | 90 +-
.../handling-datatable-events.md | 128 +-
...g-dataset-relational-structure-from-xml.md | 78 +-
.../loading-a-dataset-from-xml.md | 6 +-
.../merging-dataset-contents.md | 10 +-
.../modifying-dataviews.md | 4 +-
.../navigating-datatables.md | 2 +-
.../row-error-information.md | 2 +-
.../row-states-and-row-versions.md | 164 +--
.../sorting-and-filtering-data.md | 8 +-
.../the-load-method.md | 2 +-
.../viewing-data-in-a-datatable.md | 4 +-
...cific-operator-examples-linq-to-dataset.md | 58 +-
.../data/adonet/dataview-performance.md | 144 +--
.../dbconnection-dbcommand-and-dbexception.md | 98 +-
.../data/adonet/distributed-transactions.md | 2 +-
...lient-provider-for-the-entity-framework.md | 4 +-
...uery-that-returns-primitivetype-results.md | 2 +-
...te-a-query-that-returns-reftype-results.md | 2 +-
...ery-that-returns-structuraltype-results.md | 2 +-
.../ef/language-reference/cast-entity-sql.md | 2 +-
...lr-method-to-canonical-function-mapping.md | 4 +-
.../compiled-queries-linq-to-entities.md | 6 +-
.../language-reference/entity-sql-language.md | 2 +-
.../language-reference/entity-sql-overview.md | 2 +-
.../how-to-call-canonical-functions.md | 36 +-
.../how-to-call-custom-database-functions.md | 6 +-
.../how-to-call-database-functions.md | 32 +-
...del-defined-functions-as-object-methods.md | 16 +-
...call-model-defined-functions-in-queries.md | 2 +-
...-and-considerations-in-linq-to-entities.md | 108 +-
.../ef/language-reference/linq-to-entities.md | 168 +--
...ery-syntax-examples-aggregate-operators.md | 220 ++--
...-based-query-syntax-examples-conversion.md | 62 +-
...query-syntax-examples-element-operators.md | 30 +-
...d-based-query-syntax-examples-filtering.md | 94 +-
...ed-query-syntax-examples-join-operators.md | 66 +-
...yntax-examples-navigating-relationships.md | 4 +-
...od-based-query-syntax-examples-ordering.md | 46 +-
...ased-query-syntax-examples-partitioning.md | 66 +-
...-based-query-syntax-examples-projection.md | 66 +-
.../ef/language-reference/null-comparisons.md | 68 +-
.../queries-in-linq-to-entities.md | 116 +-
.../ef/language-reference/query-execution.md | 154 +--
...ion-syntax-examples-aggregate-operators.md | 144 +--
...ssion-syntax-examples-element-operators.md | 30 +-
...ry-expression-syntax-examples-filtering.md | 94 +-
...pression-syntax-examples-join-operators.md | 60 +-
...yntax-examples-navigating-relationships.md | 2 +-
...ery-expression-syntax-examples-ordering.md | 88 +-
...expression-syntax-examples-partitioning.md | 46 +-
...y-expression-syntax-examples-projection.md | 86 +-
.../ef/language-reference/query-results.md | 44 +-
...y-operators-in-linq-to-entities-queries.md | 148 +--
...supported-linq-methods-linq-to-entities.md | 244 ++--
.../adonet/ef/migration-considerations.md | 6 +-
.../adonet/ef/performance-considerations.md | 22 +-
.../data/adonet/ef/security-considerations.md | 10 +-
docs/framework/data/adonet/ef/terminology.md | 4 +-
.../working-with-data-definition-language.md | 74 +-
.../data/adonet/executing-a-command.md | 54 +-
...filtering-with-dataview-linq-to-dataset.md | 148 +--
...enerating-commands-with-commandbuilders.md | 2 +-
...ld-and-setfield-methods-linq-to-dataset.md | 10 +-
.../getschema-and-schema-collections.md | 2 +-
...opytodatatable-where-type-not-a-datarow.md | 6 +-
.../data/adonet/linq-to-dataset-examples.md | 86 +-
.../data/adonet/linq-to-dataset-overview.md | 40 +-
.../data/adonet/local-transactions.md | 64 +-
...od-based-query-examples-linq-to-dataset.md | 56 +-
...ery-syntax-examples-aggregate-operators.md | 250 ++--
...ry-syntax-examples-conversion-operators.md | 74 +-
...query-syntax-examples-element-operators.md | 46 +-
...ry-syntax-examples-join-linq-to-dataset.md | 56 +-
...yntax-examples-ordering-linq-to-dataset.md | 74 +-
...query-syntax-examples-partitioning-linq.md | 110 +-
...-based-query-syntax-examples-projection.md | 68 +-
...sed-query-syntax-examples-set-operators.md | 90 +-
.../modifying-data-with-a-dbdataadapter.md | 56 +-
.../adonet/obtaining-a-dbproviderfactory.md | 12 +-
...btaining-a-single-value-from-a-database.md | 2 +-
.../data/adonet/oracle-data-type-mappings.md | 8 +-
.../data/adonet/oracle-ref-cursors.md | 6 +-
...ing-batch-operations-using-dataadapters.md | 6 +-
...populating-a-dataset-from-a-dataadapter.md | 338 ++---
.../programming-guide-linq-to-dataset.md | 88 +-
.../data/adonet/queries-in-linq-to-dataset.md | 88 +-
...ery-expression-examples-linq-to-dataset.md | 50 +-
...ion-syntax-examples-aggregate-operators.md | 156 +--
...ssion-syntax-examples-element-operators.md | 58 +-
...pression-syntax-examples-join-operators.md | 72 +-
...yntax-examples-ordering-linq-to-dataset.md | 98 +-
...expression-syntax-examples-partitioning.md | 58 +-
...tax-examples-projection-linq-to-dataset.md | 88 +-
...ax-examples-restriction-linq-to-dataset.md | 70 +-
...he-datarowview-collection-in-a-dataview.md | 22 +-
.../data/adonet/querying-typed-datasets.md | 2 +-
.../retrieving-data-using-a-datareader.md | 4 +-
.../retrieving-database-schema-information.md | 22 +-
...etrieving-identity-or-autonumber-values.md | 16 +-
.../data/adonet/schema-restrictions.md | 2 +-
.../data/adonet/side-by-side-execution.md | 4 +-
.../single-table-queries-linq-to-dataset.md | 8 +-
.../sorting-with-dataview-linq-to-dataset.md | 130 +-
.../adonet/sql-server-connection-pooling.md | 6 +-
.../adonet/sql-server-data-type-mappings.md | 86 +-
.../sql/aspnet-apps-using-wait-handles.md | 10 +-
.../adonet/sql/asynchronous-operations.md | 38 +-
.../sql/database-mirroring-in-sql-server.md | 2 +-
.../data/adonet/sql/date-and-time-data.md | 42 +-
.../detecting-changes-with-sqldependency.md | 2 +-
.../sql/enabling-query-notifications.md | 2 +-
.../enumerating-instances-of-sql-server.md | 222 ++--
.../data/adonet/sql/handling-null-values.md | 250 ++--
docs/framework/data/adonet/sql/large-udts.md | 24 +-
.../sql/linq/ado-net-and-linq-to-sql.md | 84 +-
.../data/adonet/sql/linq/aggregate-queries.md | 80 +-
.../sql/linq/attribute-based-mapping.md | 276 ++--
.../linq/communicating-with-the-database.md | 24 +-
...the-sum-of-values-in-a-numeric-sequence.md | 50 +-
.../sql/linq/concatenate-two-sequences.md | 32 +-
.../convert-a-sequence-to-a-generic-list.md | 16 +-
.../linq/convert-a-sequence-to-an-array.md | 16 +-
...convert-a-type-to-a-generic-ienumerable.md | 20 +-
...nt-the-number-of-elements-in-a-sequence.md | 34 +-
.../data/adonet/sql/linq/data-binding.md | 34 +-
...d-cud-operations-in-n-tier-applications.md | 18 +-
.../linq/deferred-versus-immediate-loading.md | 38 +-
...ments-in-a-sequence-satisfy-a-condition.md | 6 +-
...nate-duplicate-elements-from-a-sequence.md | 16 +-
...the-maximum-value-in-a-numeric-sequence.md | 2 +-
...the-minimum-value-in-a-numeric-sequence.md | 2 +-
.../sql/linq/group-elements-in-a-sequence.md | 12 +-
.../sql/linq/how-to-connect-to-a-database.md | 46 +-
...trol-how-much-related-data-is-retrieved.md | 20 +-
...entity-classes-by-using-the-code-editor.md | 90 +-
.../how-to-delete-rows-from-the-database.md | 2 +-
.../how-to-directly-execute-sql-commands.md | 16 +-
.../how-to-directly-execute-sql-queries.md | 4 +-
.../sql/linq/how-to-display-a-changeset.md | 20 +-
.../how-to-display-linq-to-sql-commands.md | 70 +-
.../how-to-dynamically-create-a-database.md | 10 +-
.../sql/linq/how-to-filter-related-data.md | 16 +-
...-object-model-in-visual-basic-or-csharp.md | 46 +-
.../how-to-insert-rows-into-the-database.md | 2 +-
.../linq/how-to-map-database-relationships.md | 12 +-
.../how-to-map-inheritance-hierarchies.md | 70 +-
...w-to-represent-columns-as-class-members.md | 28 +-
.../linq/how-to-represent-computed-columns.md | 24 +-
.../how-to-represent-tables-as-classes.md | 28 +-
...ow-to-retrieve-information-as-read-only.md | 24 +-
.../how-to-retrieve-many-objects-at-once.md | 16 +-
...to-retrieve-member-conflict-information.md | 20 +-
...o-specify-concurrency-conflict-checking.md | 16 +-
.../how-to-specify-database-data-types.md | 24 +-
.../sql/linq/how-to-specify-database-names.md | 24 +-
.../how-to-specify-private-storage-fields.md | 20 +-
...-when-concurrency-exceptions-are-thrown.md | 34 +-
.../how-to-submit-changes-to-the-database.md | 42 +-
.../linq/how-to-turn-off-deferred-loading.md | 20 +-
.../how-to-update-rows-in-the-database.md | 2 +-
...dures-mapped-for-multiple-result-shapes.md | 52 +-
...implementing-business-logic-linq-to-sql.md | 344 ++---
.../insert-update-and-delete-operations.md | 4 +-
.../linq-to-sql-n-tier-with-web-services.md | 60 +-
.../data/adonet/sql/linq/null-semantics.md | 18 +-
.../linq/object-states-and-change-tracking.md | 32 +-
.../linq/optimistic-concurrency-overview.md | 150 +--
.../data/adonet/sql/linq/query-examples.md | 132 +-
.../adonet/sql/linq/querying-the-database.md | 70 +-
.../sql/linq/remote-vs-local-execution.md | 68 +-
...eveloper-in-overriding-default-behavior.md | 32 +-
...rieving-objects-from-the-identity-cache.md | 102 +-
.../return-or-skip-elements-in-a-sequence.md | 24 +-
...e-average-value-from-a-numeric-sequence.md | 2 +-
.../return-the-first-element-in-a-sequence.md | 42 +-
...he-set-difference-between-two-sequences.md | 20 +-
...n-the-set-intersection-of-two-sequences.md | 20 +-
.../return-the-set-union-of-two-sequences.md | 22 +-
.../adonet/sql/linq/sequence-operators.md | 72 +-
.../data/adonet/sql/linq/serialization.md | 2 +-
.../sql/linq/sort-elements-in-a-sequence.md | 4 +-
.../sql/linq/sql-clr-custom-type-mappings.md | 2 +-
.../adonet/sql/linq/sql-clr-type-mapping.md | 32 +-
.../standard-query-operator-translation.md | 56 +-
.../adonet/sql/linq/system-convert-methods.md | 14 +-
.../sql/linq/system-datetime-methods.md | 78 +-
.../sql/linq/system-datetimeoffset-methods.md | 34 +-
.../adonet/sql/linq/system-math-methods.md | 32 +-
.../adonet/sql/linq/system-object-methods.md | 10 +-
.../adonet/sql/linq/system-string-methods.md | 92 +-
.../sql/linq/system-timespan-methods.md | 48 +-
.../adonet/sql/linq/transaction-support.md | 32 +-
.../data/adonet/sql/linq/troubleshooting.md | 10 +-
.../sql/linq/unsupported-functionality.md | 32 +-
.../walkthrough-manipulating-data-csharp.md | 320 ++---
...kthrough-manipulating-data-visual-basic.md | 366 +++---
...gh-querying-across-relationships-csharp.md | 168 +--
...rying-across-relationships-visual-basic.md | 174 +--
...gh-simple-object-model-and-query-csharp.md | 2 +-
...ple-object-model-and-query-visual-basic.md | 2 +-
.../linq/what-you-can-do-with-linq-to-sql.md | 70 +-
.../sql/modifying-large-value-max-data.md | 464 +++----
.../sql/provider-statistics-for-sql-server.md | 8 +-
.../adonet/sql/single-bulk-copy-operations.md | 6 +-
.../sql/snapshot-isolation-in-sql-server.md | 2 +-
.../data/adonet/sql/sql-xml-column-values.md | 20 +-
...for-high-availability-disaster-recovery.md | 4 +-
.../adonet/sql/table-valued-parameters.md | 514 ++++----
.../transaction-and-bulk-copy-operations.md | 2 +-
.../windows-applications-using-callbacks.md | 4 +-
.../adonet/sqlclient-streaming-support.md | 30 +-
...ransactions-integration-with-sql-server.md | 8 +-
...updating-data-sources-with-dataadapters.md | 4 +-
docs/framework/data/adonet/whats-new.md | 2 +-
...saction-in-single-phase-and-multi-phase.md | 16 +-
.../data/transactions/diagnostic-traces.md | 2 +-
...ources-as-participants-in-a-transaction.md | 22 +-
.../implementing-a-resource-manager.md | 4 +-
...ransaction-using-committabletransaction.md | 146 +--
...cit-transaction-using-transaction-scope.md | 232 ++--
...nterprise-services-and-com-transactions.md | 136 +-
...g-concurrency-with-dependenttransaction.md | 128 +-
.../optimization-spc-and-promotable-spn.md | 20 +-
.../data/transactions/performing-recovery.md | 50 +-
...ity-trust-levels-in-accessing-resources.md | 8 +-
.../asynchronousthreadabort-mda.md | 6 +-
.../debug-trace-profile/bindingfailure-mda.md | 14 +-
.../debug-trace-profile/code-contracts.md | 38 +-
.../dangerousthreadingapi-mda.md | 10 +-
.../datetimeinvalidlocalformat-mda.md | 8 +-
.../enabling-jit-attach-debugging.md | 6 +-
...ng-with-the-debugger-display-attributes.md | 4 +-
.../fatalexecutionengineerror-mda.md | 2 +-
.../gcmanagedtounmanaged-mda.md | 4 +-
...dd-trace-statements-to-application-code.md | 16 +-
...o-create-and-initialize-trace-listeners.md | 4 +-
...-to-create-and-initialize-trace-sources.md | 2 +-
...initialize-and-configure-trace-switches.md | 2 +-
...source-and-filters-with-trace-listeners.md | 2 +-
.../illegalprepareconstrainedregion-mda.md | 10 +-
.../invalidapartmentstatechange-mda.md | 2 +-
.../debug-trace-profile/invalidcercall-mda.md | 2 +-
.../invalidgchandlecookie-mda.md | 2 +-
.../invalidoverlappedtopinvoke-mda.md | 2 +-
.../debug-trace-profile/loaderlock-mda.md | 2 +-
.../loadfromcontext-mda.md | 10 +-
.../moduloobjecthashcode-mda.md | 10 +-
.../opengenericcercall-mda.md | 2 +-
.../performance-counters.md | 10 +-
.../raceonrcwcleanup-mda.md | 4 +-
.../releasehandlefailed-mda.md | 20 +-
.../reportavoncomrelease-mda.md | 4 +-
.../streamwriterbuffereddatalost-mda.md | 8 +-
.../debug-trace-profile/trace-listeners.md | 2 +-
.../debug-trace-profile/trace-switches.md | 8 +-
.../tracing-and-instrumenting-applications.md | 10 +-
.../debug-trace-profile/virtualcercall-mda.md | 4 +-
.../best-practices-for-assembly-loading.md | 54 +-
.../how-the-runtime-locates-assemblies.md | 12 +-
.../in-process-side-by-side-execution.md | 2 +-
...-determine-which-versions-are-installed.md | 4 +-
.../install/versions-and-dependencies.md | 2 +-
.../interop/default-marshalling-behavior.md | 2 +-
.../default-marshalling-for-objects.md | 6 +-
...how-to-migrate-managed-code-dcom-to-wcf.md | 812 ++++++------
docs/framework/interop/interop-marshalling.md | 2 +-
...rshalling-classes-structures-and-unions.md | 8 +-
...-equivalence-and-embedded-interop-types.md | 10 +-
...filter-prefiltermessage-implementations.md | 10 +-
...alization-of-objects-across-app-domains.md | 2 +-
.../mitigation-path-colon-checks.md | 42 +-
.../mitigation-png-frames-in-icon-objects.md | 40 +-
.../mitigation-product-versioning.md | 6 +-
...gation-serialization-control-characters.md | 4 +-
...services-and-certificate-authentication.md | 2 +-
...09certificateclaimset-findclaims-method.md | 48 +-
...ziparchiveentry-fullname-path-separator.md | 58 +-
.../net-framework-4-migration-issues.md | 52 +-
...-net-peertopeer-collaboration-namespace.md | 60 +-
.../basic-and-digest-authentication.md | 40 +-
.../best-practices-for-system-net-classes.md | 2 +-
...che-management-for-network-applications.md | 52 +-
.../network-programming/cache-policy.md | 2 +-
.../certificate-selection-and-validation.md | 92 +-
.../configuring-internet-applications.md | 2 +-
docs/framework/network-programming/ftp.md | 4 +-
...how-to-list-directory-contents-with-ftp.md | 4 +-
...authentication-with-extended-protection.md | 284 ++---
.../internet-authentication.md | 12 +-
.../network-programming/pnrp-clouds.md | 44 +-
.../time-based-cache-policies.md | 2 +-
.../constrained-execution-regions.md | 216 ++--
...ents-in-task-parallel-library-and-plinq.md | 2 +-
...-perform-lazy-initialization-of-objects.md | 6 +-
.../performance/lazy-initialization.md | 56 +-
.../framework/performance/performance-tips.md | 46 +-
.../performance/reliability-best-practices.md | 32 +-
...gramming-and-host-protection-attributes.md | 116 +-
.../writing-large-responsive-apps.md | 20 +-
...piling-source-code-from-a-codedom-graph.md | 20 +-
.../how-to-create-a-class-using-codedom.md | 16 +-
...an-xml-documentation-file-using-codedom.md | 6 +-
...mblies-into-the-reflection-only-context.md | 12 +-
.../reflection-for-windows-store-apps.md | 4 +-
.../security-considerations-for-reflection.md | 4 +-
.../security-issues-in-reflection-emit.md | 8 +-
...mitting-code-in-partial-trust-scenarios.md | 12 +-
.../framework/tools/al-exe-assembly-linker.md | 2 +-
.../tools/installutil-exe-installer-tool.md | 10 +-
docs/framework/tools/mgmtclassgen-exe.md | 4 +-
.../tools/ngen-exe-native-image-generator.md | 10 +-
.../regasm-exe-assembly-registration-tool.md | 2 +-
...xe-windows-runtime-metadata-export-tool.md | 68 +-
...inres-exe-windows-forms-resource-editor.md | 2 +-
...ntent-to-a-text-box-using-ui-automation.md | 2 +-
.../caching-in-ui-automation-clients.md | 34 +-
...e-ui-automation-provider-implementation.md | 4 +-
...on-in-a-ui-automation-fragment-provider.md | 2 +-
...n-element-based-on-a-property-condition.md | 4 +-
...a-ui-automation-element-for-a-list-item.md | 2 +-
...upported-ui-automation-control-patterns.md | 6 +-
...tate-of-a-check-box-using-ui-automation.md | 2 +-
.../get-ui-automation-element-properties.md | 4 +-
...ation-providers-in-a-client-application.md | 2 +-
...-the-ui-automation-dock-control-pattern.md | 4 +-
...tomation-expandcollapse-control-pattern.md | 14 +-
...-the-ui-automation-grid-control-pattern.md | 14 +-
...-ui-automation-griditem-control-pattern.md | 12 +-
...he-ui-automation-invoke-control-pattern.md | 6 +-
...automation-multipleview-control-pattern.md | 10 +-
...i-automation-rangevalue-control-pattern.md | 4 +-
...he-ui-automation-scroll-control-pattern.md | 28 +-
...i-automation-scrollitem-control-pattern.md | 4 +-
...ui-automation-selection-control-pattern.md | 6 +-
...utomation-selectionitem-control-pattern.md | 10 +-
...the-ui-automation-table-control-pattern.md | 6 +-
...ui-automation-tableitem-control-pattern.md | 4 +-
...he-ui-automation-toggle-control-pattern.md | 2 +-
...ui-automation-transform-control-pattern.md | 12 +-
...the-ui-automation-value-control-pattern.md | 10 +-
...he-ui-automation-window-control-pattern.md | 18 +-
.../invoke-a-control-using-ui-automation.md | 4 +-
...-ui-automation-elements-with-treewalker.md | 4 +-
...t-attribute-details-using-ui-automation.md | 2 +-
.../obtaining-ui-automation-elements.md | 18 +-
...se-events-from-a-ui-automation-provider.md | 2 +-
...e-ui-automation-provider-implementation.md | 28 +-
.../subscribe-to-ui-automation-events.md | 8 +-
...ol-patterns-in-a-ui-automation-provider.md | 4 +-
...xtpattern-and-embedded-objects-overview.md | 52 +-
.../traverse-text-using-ui-automation.md | 2 +-
...tion-and-microsoft-active-accessibility.md | 14 +-
.../ui-automation-and-screen-scaling.md | 14 +-
...automation-control-patterns-for-clients.md | 6 +-
...ui-automation-control-patterns-overview.md | 2 +-
.../ui-automation-control-types-overview.md | 2 +-
.../ui-automation-events-for-clients.md | 20 +-
.../ui-automation-events-overview.md | 6 +-
.../ui-automation/ui-automation-overview.md | 2 +-
.../ui-automation-properties-for-clients.md | 34 +-
.../ui-automation-properties-overview.md | 72 +-
...ation-support-for-the-edit-control-type.md | 12 +-
...n-support-for-the-listitem-control-type.md | 2 +-
...upport-for-the-progressbar-control-type.md | 10 +-
...n-support-for-the-treeitem-control-type.md | 2 +-
.../ui-automation-textpattern-overview.md | 8 +-
.../ui-automation-threading-issues.md | 4 +-
.../ui-automation-tree-overview.md | 2 +-
.../use-caching-in-ui-automation.md | 24 +-
.../use-the-automationid-property.md | 2 +-
...clr-debugging-process-flags-enumeration.md | 2 +-
.../guid-managedname-attribute.md | 102 +-
.../hosting/corbindtoruntime-function.md | 150 +--
.../hosting/corbindtoruntimeex-function.md | 232 ++--
.../einitializenewdomainflags-enumeration.md | 74 +-
.../hosting/iappdomainsetup-interface.md | 78 +-
...ourcemonitor-getcurrentallocated-method.md | 92 +-
...esourcemonitor-getcurrentcputime-method.md | 90 +-
...sourcemonitor-getcurrentsurvived-method.md | 106 +-
.../iclrappdomainresourcemonitor-interface.md | 10 +-
...nmanager-setappdomainmanagertype-method.md | 110 +-
...lrruntimehost-executeinappdomain-method.md | 104 +-
...untimehost-getcurrentappdomainid-method.md | 92 +-
.../iclrruntimehost-unloadappdomain-method.md | 100 +-
.../hosting/iclrtask-reset-method.md | 124 +-
...ostassemblystore-provideassembly-method.md | 128 +-
...curitymanager-setsecuritycontext-method.md | 104 +-
.../hosting/ihosttask-alert-method.md | 82 +-
.../hosting/ihosttask-setpriority-method.md | 132 +-
...ttaskmanager-beginthreadaffinity-method.md | 78 +-
.../ihosttaskmanager-setlocale-method.md | 94 +-
.../ihosttaskmanager-setuilocale-method.md | 94 +-
.../hosting/ihosttaskmanager-sleep-method.md | 100 +-
...dpoolmanager-getavailablethreads-method.md | 96 +-
...tthreadpoolmanager-getmaxthreads-method.md | 100 +-
...tthreadpoolmanager-getminthreads-method.md | 96 +-
...eadpoolmanager-queueuserworkitem-method.md | 110 +-
...tthreadpoolmanager-setmaxthreads-method.md | 96 +-
...tthreadpoolmanager-setminthreads-method.md | 96 +-
.../hosting/loadstringrcex-function.md | 124 +-
.../hosting/startup-flags-enumeration.md | 2 +-
.../clr-profilers-and-windows-store-apps.md | 2 +-
.../cor-prf-gc-reason-enumeration.md | 68 +-
.../cor-prf-module-flags-enumeration.md | 94 +-
...ck7-moduleinmemorysymbolsupdated-method.md | 76 +-
...icorprofilerinfo3-getmoduleinfo2-method.md | 2 +-
.../accessing-services-using-a-wcf-client.md | 2 +-
...best-practices-data-contract-versioning.md | 164 +--
docs/framework/wcf/building-clients.md | 68 +-
.../wcf/configuring-client-behaviors.md | 78 +-
.../wcf/configuring-wcf-services-in-code.md | 4 +-
...e-consumption-and-improving-performance.md | 10 +-
...asic-profile-1-1-interoperable-services.md | 56 +-
.../wcf/defining-and-specifying-faults.md | 124 +-
.../wcf/designing-service-contracts.md | 4 +-
.../dynamically-enabling-analytic-tracing.md | 62 +-
...ecurity-calls-not-authorized-per-second.md | 18 +-
.../endpoint-security-calls-not-authorized.md | 8 +-
.../performance-counters/instances.md | 24 +-
...ecurity-calls-not-authorized-per-second.md | 18 +-
.../security-calls-not-authorized.md | 8 +-
...ecurity-calls-not-authorized-per-second.md | 18 +-
.../service-security-calls-not-authorized.md | 8 +-
.../wcf/diagnostics/tracing/activity.md | 2 +-
...spnetcompatibilityrequirementsattribute.md | 66 +-
.../wcf/diagnostics/wmi/behavior-class.md | 62 +-
.../wcf/endpoint-creation-overview.md | 10 +-
...c-provider-x509-certificate-private-key.md | 14 +-
.../wcf/extending/channel-model-overview.md | 140 +-
.../choosing-a-message-exchange-pattern.md | 170 +--
.../client-channel-factories-and-channels.md | 110 +-
.../client-channel-level-programming.md | 78 +-
.../configuration-and-metadata-support.md | 492 +++----
...nd-extending-the-runtime-with-behaviors.md | 22 +-
.../extending/creating-a-bindingelement.md | 132 +-
.../creating-user-defined-bindings.md | 10 +-
.../wcf/extending/custom-bindings.md | 2 +-
.../wcf/extending/custom-encoders.md | 176 +--
.../extending/custom-message-formatters.md | 48 +-
.../wcf/extending/custom-stream-upgrades.md | 22 +-
.../wcf/extending/data-contract-surrogates.md | 390 +++---
...ing-custom-metadata-for-a-wcf-extension.md | 68 +-
.../wcf/extending/extending-clients.md | 40 +-
.../wcf/extending/extending-dispatchers.md | 38 +-
...ending-hosting-using-servicehostfactory.md | 128 +-
...servicehost-and-the-service-model-layer.md | 44 +-
.../wcf/extending/extensible-objects.md | 28 +-
.../handling-exceptions-and-faults.md | 742 +++++------
.../wcf/extending/how-to-compare-claims.md | 12 +-
...e-a-custom-ws-metadata-exchange-binding.md | 198 +--
...tom-authorization-manager-for-a-service.md | 10 +-
...to-create-a-custom-authorization-policy.md | 122 +-
.../extending/how-to-create-a-custom-claim.md | 112 +-
...reate-a-custom-client-identity-verifier.md | 12 +-
...w-to-create-a-custom-principal-identity.md | 66 +-
...e-a-custom-security-token-authenticator.md | 80 +-
.../extending/how-to-create-a-custom-token.md | 240 ++--
...-employs-a-custom-certificate-validator.md | 224 ++--
...-to-customize-a-system-provided-binding.md | 70 +-
.../how-to-export-custom-policy-assertions.md | 70 +-
.../how-to-import-custom-policy-assertions.md | 96 +-
.../extending/how-to-import-custom-wsdl.md | 58 +-
...pect-and-modify-messages-on-the-service.md | 54 +-
...nspect-or-modify-messages-on-the-client.md | 220 ++--
.../how-to-inspect-or-modify-parameters.md | 54 +-
...o-lock-down-endpoints-in-the-enterprise.md | 2 +-
...certificates-for-signing-and-encryption.md | 12 +-
...ing-custom-metadata-for-a-wcf-extension.md | 80 +-
...trieving-metadata-over-a-custom-binding.md | 40 +-
.../service-channel-level-programming.md | 102 +-
.../service-channel-listeners-and-channels.md | 4 +-
.../extending/understanding-state-changes.md | 322 ++---
...g-custom-client-and-service-credentials.md | 30 +-
.../accessing-services-using-a-client.md | 166 +--
...ervices-with-a-windows-store-client-app.md | 308 ++---
.../anticipating-adopting-wcf-migration.md | 224 ++--
.../architecture-of-syndication.md | 134 +-
.../auditing-security-events.md | 190 +--
.../feature-details/authentication-in-wcf.md | 2 +-
...best-practices-for-queued-communication.md | 158 +--
.../best-practices-for-reliable-sessions.md | 8 +-
.../best-practices-for-security-in-wcf.md | 82 +-
...ching-support-for-wcf-web-http-services.md | 10 +-
...a-rest-style-service-from-a-wcf-service.md | 2 +-
...rt-val-diff-https-ssl-over-tcp-and-soap.md | 64 +-
...ache-sharing-levels-for-send-activities.md | 296 ++---
.../channel-factory-and-caching.md | 18 +-
.../wcf/feature-details/choosing-a-filter.md | 2 +-
.../choosing-a-message-encoder.md | 84 +-
.../claim-creation-and-resource-values.md | 62 +-
.../claims-and-denying-access-to-resources.md | 10 +-
.../wcf/feature-details/claims-and-tokens.md | 22 +-
.../feature-details/client-architecture.md | 18 +-
.../feature-details/client-configuration.md | 156 +--
.../collection-types-in-data-contracts.md | 60 +-
...eb-services-to-wcf-based-on-development.md | 6 +-
...ng-transactions-in-com-and-servicemodel.md | 22 +-
...fig-wcf-service-with-aspnet-web-service.md | 64 +-
...uration-based-activation-in-iis-and-was.md | 2 +-
...uring-discovery-in-a-configuration-file.md | 2 +-
...ing-serialization-in-a-workflow-service.md | 2 +-
.../configuring-system-provided-bindings.md | 128 +-
.../context-exchange-protocol.md | 114 +-
...eate-a-service-arbitrary-data-using-wcf.md | 368 +++---
...eating-wcf-ajax-services-without-aspnet.md | 188 +--
.../creating-wcf-services-for-aspnet-ajax.md | 2 +-
.../data-contract-equivalence.md | 88 +-
.../data-contract-known-types.md | 292 ++---
.../feature-details/data-contract-names.md | 14 +-
.../data-contract-schema-reference.md | 4 +-
.../data-contract-versioning.md | 214 ++--
.../wcf/feature-details/data-member-order.md | 94 +-
.../data-transfer-architectural-overview.md | 6 +-
...debugging-windows-authentication-errors.md | 256 ++--
.../delegation-and-impersonation-with-wcf.md | 376 +++---
.../wcf/feature-details/denial-of-service.md | 154 +--
.../discovery-find-and-findcriteria.md | 8 +-
.../discoveryclient-and-dynamicendpoint.md | 176 +--
.../distributed-application-security.md | 4 +-
.../wcf/feature-details/duplex-services.md | 2 +-
.../durable-duplex-correlation.md | 4 +-
.../feature-details/elevation-of-privilege.md | 150 +--
.../encryption-of-digital-signatures.md | 30 +-
.../wcf/feature-details/endpoint-addresses.md | 262 ++--
...points-addresses-bindings-and-contracts.md | 6 +-
.../enumeration-types-in-data-contracts.md | 166 +--
.../exporting-and-importing-metadata.md | 6 +-
.../exporting-schemas-from-classes.md | 90 +-
.../feature-details/federation-and-trust.md | 56 +-
.../wcf/feature-details/filtering.md | 168 +--
.../finding-claims-in-a-claimset.md | 14 +-
...tions-into-and-out-of-workflow-services.md | 582 ++++-----
.../forward-compatible-data-contracts.md | 52 +-
...osting-in-a-windows-service-application.md | 50 +-
.../hosting-workflow-services.md | 2 +-
...ess-a-wse-3-0-service-with-a-wcf-client.md | 86 +-
...ax-endpoint-without-using-configuration.md | 164 +--
...low-metadata-requests-while-authorizing.md | 44 +-
.../how-to-audit-wcf-security-events.md | 136 +-
...henticate-with-a-user-name-and-password.md | 4 +-
...-asynchronously-using-a-channel-factory.md | 4 +-
...l-wcf-service-operations-asynchronously.md | 4 +-
.../how-to-configure-a-local-issuer.md | 10 +-
...nt-to-interoperate-with-wse3-0-services.md | 86 +-
...igure-a-wcf-service-to-use-port-sharing.md | 86 +-
...ure-credentials-on-a-federation-service.md | 24 +-
...-idle-behavior-with-workflowservicehost.md | 2 +-
...es-to-interoperate-with-wse-3-0-clients.md | 6 +-
.../how-to-control-service-instancing.md | 34 +-
...-to-create-a-basic-wcf-web-http-service.md | 4 +-
...nd-use-it-to-create-and-manage-channels.md | 16 +-
...inding-using-the-securitybindingelement.md | 190 +--
.../how-to-create-a-duplex-contract.md | 100 +-
.../how-to-create-a-federated-client.md | 24 +-
...rity-context-token-for-a-secure-session.md | 184 +--
...ent-for-a-specified-authentication-mode.md | 24 +-
...ow-to-create-a-service-endpoint-in-code.md | 58 +-
...create-a-service-that-requires-sessions.md | 46 +-
.../how-to-create-a-supporting-credential.md | 150 +--
.../how-to-create-a-transactional-service.md | 394 +++---
...how-to-create-a-wsfederationhttpbinding.md | 6 +-
...he-discovery-version-of-a-probe-request.md | 4 +-
...isable-encryption-of-digital-signatures.md | 28 +-
.../feature-details/how-to-dynamic-update.md | 6 +-
.../how-to-enable-message-replay-detection.md | 168 +--
...-export-metadata-from-service-endpoints.md | 76 +-
...pose-a-contract-to-soap-and-web-clients.md | 4 +-
...cf-service-in-a-managed-windows-service.md | 2 +-
.../how-to-implement-a-discovery-proxy.md | 18 +-
...-import-metadata-into-service-endpoints.md | 52 +-
...ajax-enabled-aspnet-web-services-to-wcf.md | 2 +-
...overability-to-a-wcf-service-and-client.md | 4 +-
...blish-metadata-for-a-service-using-code.md | 122 +-
...adata-and-implement-a-compliant-service.md | 86 +-
...etrieve-the-thumbprint-of-a-certificate.md | 56 +-
...ure-a-service-with-an-x-509-certificate.md | 124 +-
.../how-to-secure-metadata-endpoints.md | 10 +-
...-to-serialize-and-deserialize-json-data.md | 4 +-
.../how-to-set-a-max-clock-skew.md | 134 +-
.../how-to-set-up-a-signature-confirmation.md | 6 +-
...guration-to-add-an-aspnet-ajax-endpoint.md | 162 +--
...dataexchangeclient-to-retrieve-metadata.md | 52 +-
...ltiple-security-tokens-of-the-same-type.md | 78 +-
...util-exe-to-download-metadata-documents.md | 4 +-
...the-aspnet-role-provider-with-a-service.md | 2 +-
.../how-to-use-the-channelfactory.md | 26 +-
...nsport-security-and-message-credentials.md | 32 +-
...-view-certificates-with-the-mmc-snap-in.md | 32 +-
...-get-requests-for-aspnet-ajax-endpoints.md | 136 +-
.../importing-schema-to-generate-classes.md | 328 ++---
.../feature-details/information-disclosure.md | 2 +-
...prise-services-transactional-components.md | 150 +--
...ing-with-com-plus-applications-overview.md | 2 +-
.../interoperability-with-pox-applications.md | 14 +-
.../interoperable-object-references.md | 112 +-
.../large-data-and-streaming.md | 4 +-
.../limiting-message-distribution.md | 2 +-
...d-authorization-with-the-identity-model.md | 12 +-
.../wcf/feature-details/message-filters.md | 256 ++--
...s-client-without-credential-negotiation.md | 2 +-
.../feature-details/messaging-activities.md | 6 +-
.../metadata-architecture-overview.md | 16 +-
.../middle-tier-client-applications.md | 6 +-
.../migrating-wse-3-0-web-services-to-wcf.md | 2 +-
.../feature-details/net-tcp-port-sharing.md | 82 +-
.../wcf/feature-details/one-way-services.md | 82 +-
...-of-messages-in-single-concurrency-mode.md | 28 +-
.../out-of-order-message-processing.md | 50 +-
.../partial-trust-best-practices.md | 8 +-
.../partial-trust-feature-compatibility.md | 4 +-
...n-a-wcf-service-is-hosted-in-a-web-farm.md | 10 +-
.../programming-wcf-security.md | 172 +--
.../feature-details/publishing-metadata.md | 4 +-
.../wcf/feature-details/queuing-in-wcf.md | 246 ++--
.../reliable-sessions-overview.md | 4 +-
.../request-reply-correlation.md | 180 +--
.../feature-details/retrieving-metadata.md | 2 +-
.../feature-details/routing-introduction.md | 12 +-
.../wcf/feature-details/routing-service.md | 2 +-
.../feature-details/saml-tokens-and-claims.md | 52 +-
...ecure-conversations-and-secure-sessions.md | 12 +-
...ecuring-messages-using-message-security.md | 108 +-
...uring-messages-using-transport-security.md | 180 +--
.../securing-peer-channel-applications.md | 76 +-
.../security-considerations-for-data.md | 44 +-
...rity-considerations-for-secure-sessions.md | 24 +-
.../security-considerations-with-metadata.md | 4 +-
.../security-negotiation-and-timeouts.md | 4 +-
.../security-protocols-version-1-0.md | 2 +-
.../wcf/feature-details/security-protocols.md | 2 +-
...ritybindingelement-authentication-modes.md | 38 +-
.../selecting-a-credential-type.md | 212 +--
.../wcf/feature-details/serializable-types.md | 60 +-
.../serialization-and-deserialization.md | 492 +++----
.../service-identity-and-authentication.md | 4 +-
...ibutes-and-servicedescription-reference.md | 208 +--
.../servicemodel-transaction-attributes.md | 12 +-
.../servicemodel-transaction-configuration.md | 104 +-
.../sessions-instancing-and-concurrency.md | 190 +--
...-side-versioning-in-workflowservicehost.md | 296 ++---
...e-authority-chain-verify-signatures-wcf.md | 40 +-
...ying-data-transfer-in-service-contracts.md | 1136 ++++++++---------
.../stand-alone-json-serialization.md | 10 +-
.../wcf/feature-details/standard-endpoints.md | 8 +-
...nt-applications-using-the-xmlserializer.md | 4 +-
.../streaming-message-transfer.md | 2 +-
.../syndication-extensibility.md | 72 +-
.../wcf/feature-details/tampering.md | 18 +-
.../transport-security-overview.md | 10 +-
...port-security-with-basic-authentication.md | 188 +--
.../troubleshooting-correlation.md | 8 +-
.../troubleshooting-queued-messaging.md | 14 +-
...pported-by-the-data-contract-serializer.md | 10 +-
.../understanding-generated-client-code.md | 142 +--
.../feature-details/unsupported-scenarios.md | 8 +-
.../uritemplate-and-uritemplatetable.md | 576 ++++-----
...nding-with-the-discovery-client-channel.md | 62 +-
.../using-a-data-contract-resolver.md | 150 +--
.../using-contracts-in-workflow.md | 44 +-
...ues-to-handle-message-transfer-failures.md | 114 +-
.../using-message-contracts.md | 892 ++++++-------
...vior-to-control-wcf-service-performance.md | 10 +-
.../using-the-discovery-client-channel.md | 94 +-
.../using-the-message-class.md | 56 +-
.../using-the-xmlserializer-class.md | 14 +-
.../wcf-and-internationalized-domain-names.md | 60 +-
.../wcf/feature-details/wcf-and-websockets.md | 22 +-
.../wcf-discovery-object-model.md | 14 +-
.../feature-details/wcf-discovery-overview.md | 182 +--
.../wcf-services-and-aspnet.md | 4 +-
.../wcf-web-http-error-handling.md | 64 +-
.../wcf-web-http-formatting.md | 288 ++---
...wcf-web-http-programming-model-overview.md | 2 +-
.../wcf-web-http-service-help-page.md | 458 +++----
.../workflow-service-host-extensibility.md | 6 +-
.../workflow-service-host-internals.md | 76 +-
.../workflow-services-overview.md | 10 +-
.../working-with-certificates.md | 18 +-
...xml-and-ado-net-types-in-data-contracts.md | 398 +++---
...-to-declare-faults-in-service-contracts.md | 4 +-
.../how-to-examine-the-security-context.md | 80 +-
...-a-wcf-service-in-a-managed-application.md | 8 +-
...how-to-host-and-run-a-basic-wcf-service.md | 2 +-
...ow-to-impersonate-a-client-on-a-service.md | 52 +-
...ement-an-asynchronous-service-operation.md | 62 +-
...-the-principalpermissionattribute-class.md | 134 +-
...cure-a-service-with-windows-credentials.md | 12 +-
.../wcf/how-to-set-the-security-mode.md | 2 +-
...how-to-specify-client-credential-values.md | 6 +-
...w-to-specify-the-client-credential-type.md | 84 +-
docs/framework/wcf/load-balancing.md | 162 +--
docs/framework/wcf/privacy-information.md | 8 +-
.../wcf/samples/authorization-policy.md | 4 +-
.../wcf/samples/basic-http-service.md | 6 +-
docs/framework/wcf/samples/channel-factory.md | 2 +-
.../samples/configuration-channel-factory.md | 8 +-
.../wcf/samples/configuration-sample.md | 2 +-
.../wcf/samples/custom-channel-dispatcher.md | 4 +-
.../wcf/samples/custom-find-criteria.md | 4 +-
docs/framework/wcf/samples/custom-lifetime.md | 26 +-
...tom-message-encoder-compression-encoder.md | 6 +-
...tom-message-encoder-custom-text-encoder.md | 4 +-
.../wcf/samples/custom-message-filter.md | 8 +-
.../wcf/samples/datacontractresolver.md | 2 +-
.../samples/datacontractserializer-sample.md | 2 +-
.../wcf/samples/dead-letter-queues.md | 8 +-
.../wcf/samples/default-service-behavior.md | 16 +-
.../samples/discovery-with-scopes-sample.md | 2 +-
.../wcf/samples/dispatch-by-body-element.md | 10 +-
.../samples/durable-issued-token-provider.md | 2 +-
...ntrol-over-error-handling-and-reporting.md | 6 +-
docs/framework/wcf/samples/fault-contract.md | 4 +-
.../wcf/samples/httpcookiesession.md | 4 +-
.../wcf/samples/instancing-initialization.md | 12 +-
.../loosely-typed-extensions-sample.md | 6 +-
.../wcf/samples/message-correlation.md | 2 +-
.../wcf/samples/message-inspectors.md | 18 +-
.../wcf/samples/message-queuing-to-wcf.md | 4 +-
.../wcf/samples/message-security-anonymous.md | 2 +-
.../wcf/samples/message-security-windows.md | 2 +-
.../samples/metadata-publishing-behavior.md | 2 +-
.../samples/net-tcp-port-sharing-sample.md | 2 +-
docs/framework/wcf/samples/one-way.md | 2 +-
...ration-formatter-and-operation-selector.md | 12 +-
.../wcf/samples/operationcontextscope.md | 6 +-
.../poison-message-handling-in-msmq-4-0.md | 2 +-
docs/framework/wcf/samples/pooling.md | 14 +-
.../wcf/samples/saml-token-provider.md | 2 +-
.../wcf/samples/service-description.md | 2 +-
docs/framework/wcf/samples/services.md | 2 +-
.../wcf/samples/sessions-and-queues.md | 8 +-
.../setting-the-use-and-style-properties.md | 4 +-
.../strongly-typed-extensions-sample.md | 8 +-
.../wcf/samples/token-authenticator.md | 2 +-
docs/framework/wcf/samples/token-provider.md | 2 +-
.../wcf/samples/transacted-msmq-binding.md | 6 +-
docs/framework/wcf/samples/transport-udp.md | 8 +-
.../wcf/samples/two-way-communication.md | 4 +-
.../wcf/samples/uritemplate-sample.md | 4 +-
.../uritemplate-table-dispatcher-sample.md | 2 +-
.../wcf/samples/uritemplate-table-sample.md | 2 +-
.../samples/volatile-queued-communication.md | 4 +-
.../weakly-typed-json-serialization-sample.md | 2 +-
.../wcf/samples/ws-transaction-flow.md | 4 +-
.../wcf/samples/wsstreamedhttpbinding.md | 2 +-
.../framework/wcf/samples/xmlreader-sample.md | 2 +-
.../wcf/samples/xmlserializer-faults.md | 4 +-
docs/framework/wcf/securing-clients.md | 230 ++--
docs/framework/wcf/securing-services.md | 2 +-
.../wcf/sending-and-receiving-faults.md | 32 +-
docs/framework/wcf/service-versioning.md | 370 +++---
.../wcf/services-and-transactions.md | 130 +-
.../wcf/specifying-an-endpoint-address.md | 14 +-
...ndling-faults-in-contracts-and-services.md | 14 +-
.../specifying-client-run-time-behavior.md | 8 +-
.../specifying-service-run-time-behavior.md | 10 +-
...synchronous-and-asynchronous-operations.md | 8 +-
docs/framework/wcf/using-sessions.md | 18 +-
docs/framework/wcf/wcf-client-overview.md | 14 +-
docs/framework/wcf/wcf-error-handling.md | 76 +-
.../wcf/wcf-simplification-features.md | 20 +-
.../wcf/wcf-troubleshooting-quickstart.md | 418 +++---
docs/framework/wcf/whats-new.md | 14 +-
docs/framework/whats-new/index.md | 154 +--
docs/framework/whats-new/obsolete-members.md | 752 +++++------
docs/framework/whats-new/obsolete-types.md | 20 +-
.../whats-new/whats-new-in-accessibility.md | 8 +-
...-installers-to-your-service-application.md | 78 +-
...continue-a-windows-service-visual-basic.md | 76 +-
.../how-to-create-windows-services.md | 98 +-
...w-to-debug-windows-service-applications.md | 184 +--
.../how-to-log-information-about-services.md | 22 +-
...to-pause-a-windows-service-visual-basic.md | 74 +-
...ecify-the-security-context-for-services.md | 50 +-
.../windows-services/how-to-start-services.md | 4 +-
.../how-to-write-services-programmatically.md | 6 +-
...duction-to-windows-service-applications.md | 112 +-
...ce-application-programming-architecture.md | 22 +-
...ubleshooting-debugging-windows-services.md | 10 +-
...ooting-service-application-wont-install.md | 14 +-
...e-application-in-the-component-designer.md | 16 +-
.../activity-authoring-options-in-wf.md | 10 +-
...ivity-definition-scoping-and-visibility.md | 128 +-
.../activity-tree-inspection.md | 68 +-
.../architecture.md | 80 +-
...s-and-expressions-using-imperative-code.md | 30 +-
...activity-property-to-a-designer-control.md | 8 +-
.../windows-workflow-foundation/bookmarks.md | 212 +--
.../collection-activities-in-wf.md | 818 ++++++------
.../compensation.md | 16 +-
.../configuring-tracking-for-a-workflow.md | 2 +-
.../consuming-odata-feeds-from-a-workflow.md | 24 +-
...ract-first-workflow-service-development.md | 8 +-
.../control-flow-activities-in-wf.md | 34 +-
...ctivity-at-runtime-with-dynamicactivity.md | 4 +-
.../creating-asynchronous-activities-in-wf.md | 86 +-
...creating-custom-flow-control-activities.md | 44 +-
.../csharp-expressions.md | 4 +-
.../custom-tracking-records.md | 2 +-
.../declarative-constraints.md | 302 ++---
.../dynamic-update.md | 10 +-
.../windows-workflow-foundation/exceptions.md | 6 +-
.../exposing-data-with-cachemetadata.md | 16 +-
.../expressions.md | 4 +-
.../feature-specifics.md | 20 +-
.../flowchart-activities-in-wf.md | 16 +-
.../flowchart-workflows.md | 8 +-
.../getting-started-tutorial.md | 52 +-
...ow-to-create-a-custom-activity-designer.md | 2 +-
...ow-to-create-a-custom-activity-template.md | 2 +-
.../how-to-create-a-custom-instance-store.md | 14 +-
...create-a-custom-persistence-participant.md | 60 +-
.../how-to-create-a-sequential-workflow.md | 2 +-
.../how-to-create-a-state-machine-workflow.md | 320 ++---
.../how-to-create-an-activity.md | 4 +-
...to-deserialize-instance-data-properties.md | 2 +-
...alidation-errors-in-a-rehosted-designer.md | 64 +-
...nce-for-workflows-and-workflow-services.md | 2 +-
...nce-for-workflows-and-workflow-services.md | 8 +-
.../how-to-run-a-workflow.md | 6 +-
.../imperative-code-based-validation.md | 8 +-
.../instance-locked-exception-action.md | 28 +-
.../instance-stores.md | 36 +-
.../invoking-activity-validation.md | 18 +-
...ling-cancellation-behavior-in-workflows.md | 174 +--
.../nativeactivity-base-class.md | 24 +-
...ework-3-0-wf-in-net-framework-4-interop.md | 4 +-
.../windows-workflow-foundation/overview.md | 6 +-
.../pausing-and-resuming-a-workflow.md | 4 +-
.../performance.md | 6 +-
.../persistence-best-practices.md | 160 +--
.../persistence-participants.md | 100 +-
.../pick-activity.md | 4 +-
.../procedural-workflows.md | 52 +-
.../properties-vs-arguments.md | 20 +-
.../required-arguments-and-overload-groups.md | 2 +-
.../samples/accessing-operationcontext.md | 4 +-
.../samples/activity-library.md | 40 +-
.../samples/corporate-purchase-process.md | 14 +-
...reating-and-running-a-workflow-instance.md | 2 +-
.../custom-composite-using-native-activity.md | 10 +-
.../samples/custom-tracking.md | 4 +-
.../samples/database-access-activities.md | 14 +-
.../samples/designer-rehosting.md | 2 +-
...-in-a-flowchart-activity-using-trycatch.md | 2 +-
.../samples/get-workflowinstanceid.md | 2 +-
.../samples/hiring-process.md | 4 +-
.../samples/load-from-xaml.md | 2 +-
.../samples/non-generic-foreach.md | 10 +-
.../samples/non-generic-parallelforeach.md | 14 +-
.../samples/property-grid-extensibility.md | 6 +-
.../samples/sendmail-custom-activity.md | 18 +-
.../samples/throttled-parallel-foreach.md | 2 +-
.../samples/using-editing-scope.md | 8 +-
.../samples/wpf-and-wf-integration-in-xaml.md | 6 +-
...rkflows-and-activities-to-and-from-xaml.md | 12 +-
.../state-machine-workflows.md | 184 +--
.../store-extensibility.md | 2 +-
.../tracking-participants.md | 4 +-
.../tracking-records.md | 102 +-
.../using-a-custom-activity.md | 2 +-
.../using-a-custom-expression-editor.md | 540 ++++----
.../using-activity-delegates.md | 14 +-
.../using-the-modelitem-editing-context.md | 274 ++--
.../using-workflowidentity-and-versioning.md | 8 +-
...workflowinvoker-and-workflowapplication.md | 176 +--
.../variables-and-arguments.md | 18 +-
...tures-in-the-rehosted-workflow-designer.md | 4 +-
.../whats-new-in-wf-in-dotnet.md | 12 +-
.../windows-workflow-foundation/whats-new.md | 6 +-
...-authoring-using-the-codeactivity-class.md | 10 +-
.../workflow-execution-properties.md | 294 ++---
.../workflow-transactions.md | 6 +-
docs/fsharp/language-reference/assertions.md | 2 +-
.../language-reference/async-expressions.md | 4 +-
docs/fsharp/language-reference/byrefs.md | 2 +-
.../computation-expressions.md | 4 +-
.../functions/external-functions.md | 2 +-
.../interpolated-strings.md | 2 +-
.../nullable-value-types.md | 2 +-
.../language-reference/query-expressions.md | 2 +-
docs/fsharp/language-reference/sequences.md | 4 +-
docs/fsharp/language-reference/slices.md | 4 +-
.../arithmetic-operators.md | 14 +-
.../language-reference/task-expressions.md | 12 +-
.../language-reference/type-extensions.md | 6 +-
docs/fsharp/tutorials/async.md | 12 +-
docs/fsharp/whats-new/fsharp-45.md | 2 +-
...fix-binaryformatter-serializationbinder.md | 2 +-
docs/fundamentals/code-analysis/overview.md | 6 +-
.../code-analysis/quality-rules/ca1001.md | 2 +-
.../code-analysis/quality-rules/ca1002.md | 16 +-
.../code-analysis/quality-rules/ca1003.md | 8 +-
.../code-analysis/quality-rules/ca1010.md | 20 +-
.../code-analysis/quality-rules/ca1021.md | 2 +-
.../code-analysis/quality-rules/ca1033.md | 2 +-
.../code-analysis/quality-rules/ca1036.md | 12 +-
.../code-analysis/quality-rules/ca1041.md | 6 +-
.../code-analysis/quality-rules/ca1046.md | 2 +-
.../code-analysis/quality-rules/ca1047.md | 2 +-
.../code-analysis/quality-rules/ca1063.md | 2 +-
.../code-analysis/quality-rules/ca1065.md | 12 +-
.../code-analysis/quality-rules/ca1066.md | 8 +-
.../code-analysis/quality-rules/ca1067.md | 8 +-
.../code-analysis/quality-rules/ca1303.md | 2 +-
.../code-analysis/quality-rules/ca1304.md | 8 +-
.../code-analysis/quality-rules/ca1305.md | 12 +-
.../code-analysis/quality-rules/ca1309.md | 2 +-
.../code-analysis/quality-rules/ca1416.md | 4 +-
.../code-analysis/quality-rules/ca1510.md | 4 +-
.../code-analysis/quality-rules/ca1512.md | 20 +-
.../code-analysis/quality-rules/ca1513.md | 4 +-
.../code-analysis/quality-rules/ca1514.md | 2 +-
.../code-analysis/quality-rules/ca1700.md | 2 +-
.../code-analysis/quality-rules/ca1710.md | 8 +-
.../code-analysis/quality-rules/ca1711.md | 4 +-
.../code-analysis/quality-rules/ca1801.md | 2 +-
.../code-analysis/quality-rules/ca1806.md | 6 +-
.../code-analysis/quality-rules/ca1812.md | 2 +-
.../code-analysis/quality-rules/ca1813.md | 2 +-
.../code-analysis/quality-rules/ca1815.md | 10 +-
.../code-analysis/quality-rules/ca1816.md | 22 +-
.../code-analysis/quality-rules/ca1819.md | 4 +-
.../code-analysis/quality-rules/ca1820.md | 8 +-
.../code-analysis/quality-rules/ca1825.md | 4 +-
.../code-analysis/quality-rules/ca1826.md | 14 +-
.../code-analysis/quality-rules/ca1827.md | 2 +-
.../code-analysis/quality-rules/ca1828.md | 6 +-
.../code-analysis/quality-rules/ca1829.md | 16 +-
.../code-analysis/quality-rules/ca1830.md | 2 +-
.../code-analysis/quality-rules/ca1831.md | 4 +-
.../code-analysis/quality-rules/ca1832.md | 6 +-
.../code-analysis/quality-rules/ca1833.md | 6 +-
.../code-analysis/quality-rules/ca1834.md | 2 +-
.../code-analysis/quality-rules/ca1836.md | 6 +-
.../code-analysis/quality-rules/ca1838.md | 4 +-
.../code-analysis/quality-rules/ca1841.md | 4 +-
.../code-analysis/quality-rules/ca1842.md | 2 +-
.../code-analysis/quality-rules/ca1843.md | 2 +-
.../code-analysis/quality-rules/ca1844.md | 2 +-
.../code-analysis/quality-rules/ca1845.md | 2 +-
.../code-analysis/quality-rules/ca1846.md | 6 +-
.../code-analysis/quality-rules/ca1848.md | 2 +-
.../code-analysis/quality-rules/ca1851.md | 4 +-
.../code-analysis/quality-rules/ca1853.md | 6 +-
.../code-analysis/quality-rules/ca1855.md | 6 +-
.../code-analysis/quality-rules/ca1858.md | 6 +-
.../code-analysis/quality-rules/ca1860.md | 4 +-
.../code-analysis/quality-rules/ca1862.md | 6 +-
.../code-analysis/quality-rules/ca1864.md | 8 +-
.../code-analysis/quality-rules/ca1868.md | 8 +-
.../code-analysis/quality-rules/ca1869.md | 2 +-
.../code-analysis/quality-rules/ca1870.md | 4 +-
.../code-analysis/quality-rules/ca1872.md | 10 +-
.../code-analysis/quality-rules/ca1873.md | 4 +-
.../code-analysis/quality-rules/ca1874.md | 6 +-
.../code-analysis/quality-rules/ca1875.md | 4 +-
.../code-analysis/quality-rules/ca1877.md | 6 +-
.../code-analysis/quality-rules/ca2000.md | 4 +-
.../code-analysis/quality-rules/ca2007.md | 6 +-
.../code-analysis/quality-rules/ca2008.md | 8 +-
.../code-analysis/quality-rules/ca2009.md | 30 +-
.../code-analysis/quality-rules/ca2013.md | 4 +-
.../code-analysis/quality-rules/ca2015.md | 6 +-
.../code-analysis/quality-rules/ca2021.md | 10 +-
.../code-analysis/quality-rules/ca2026.md | 6 +-
.../code-analysis/quality-rules/ca2100.md | 4 +-
.../code-analysis/quality-rules/ca2109.md | 2 +-
.../code-analysis/quality-rules/ca2213.md | 8 +-
.../code-analysis/quality-rules/ca2215.md | 10 +-
.../code-analysis/quality-rules/ca2216.md | 6 +-
.../code-analysis/quality-rules/ca2218.md | 18 +-
.../code-analysis/quality-rules/ca2224.md | 10 +-
.../code-analysis/quality-rules/ca2227.md | 2 +-
.../code-analysis/quality-rules/ca2229.md | 2 +-
.../code-analysis/quality-rules/ca2231.md | 6 +-
.../code-analysis/quality-rules/ca2241.md | 4 +-
.../code-analysis/quality-rules/ca2242.md | 4 +-
.../code-analysis/quality-rules/ca2247.md | 2 +-
.../code-analysis/quality-rules/ca2249.md | 6 +-
.../code-analysis/quality-rules/ca2251.md | 6 +-
.../code-analysis/quality-rules/ca2253.md | 2 +-
.../code-analysis/quality-rules/ca2254.md | 2 +-
.../code-analysis/quality-rules/ca2261.md | 6 +-
.../code-analysis/quality-rules/ca2264.md | 2 +-
.../code-analysis/quality-rules/ca2350.md | 2 +-
.../code-analysis/quality-rules/ca2351.md | 4 +-
.../code-analysis/quality-rules/ca2355.md | 6 +-
.../code-analysis/quality-rules/ca2361.md | 4 +-
.../code-analysis/quality-rules/ca3012.md | 2 +-
.../code-analysis/quality-rules/ca3075.md | 10 +-
.../code-analysis/quality-rules/ca3076.md | 4 +-
.../code-analysis/quality-rules/ca5360.md | 46 +-
.../code-analysis/quality-rules/ca5361.md | 4 +-
.../code-analysis/quality-rules/ca5366.md | 6 +-
.../code-analysis/quality-rules/ca5368.md | 2 +-
.../code-analysis/quality-rules/ca5369.md | 8 +-
.../code-analysis/quality-rules/ca5370.md | 2 +-
.../code-analysis/quality-rules/ca5371.md | 8 +-
.../code-analysis/quality-rules/ca5373.md | 8 +-
.../code-analysis/quality-rules/ca5378.md | 4 +-
.../code-analysis/quality-rules/ca5382.md | 2 +-
.../code-analysis/quality-rules/ca5383.md | 2 +-
.../code-analysis/quality-rules/ca5384.md | 2 +-
.../code-analysis/quality-rules/ca5385.md | 8 +-
.../code-analysis/quality-rules/ca5387.md | 4 +-
.../code-analysis/quality-rules/ca5388.md | 4 +-
.../code-analysis/quality-rules/ca5389.md | 8 +-
.../code-analysis/quality-rules/ca5390.md | 6 +-
.../code-analysis/quality-rules/ca5391.md | 2 +-
.../code-analysis/quality-rules/ca5401.md | 6 +-
.../code-analysis/quality-rules/ca5402.md | 6 +-
.../code-analysis/quality-rules/ca5403.md | 2 +-
.../quality-rules/design-warnings.md | 4 +-
.../code-analysis/quality-rules/index.md | 48 +-
.../quality-rules/performance-warnings.md | 38 +-
.../quality-rules/reliability-warnings.md | 8 +-
.../quality-rules/usage-warnings.md | 6 +-
.../code-analysis/style-rules/ide0070.md | 2 +-
.../code-analysis/style-rules/ide0120.md | 24 +-
.../code-analysis/style-rules/ide0304.md | 2 +-
...tnet-style-prefer-collection-expression.md | 2 +-
.../code-analysis/style-rules/index.md | 2 +-
.../runtime-loader-binder-events.md | 2 +-
.../networking/http/httpclient.md | 56 +-
.../networking/includes/ip-endpoint.md | 4 +-
.../networking/sockets/socket-services.md | 16 +-
.../networking/sockets/sockets-overview.md | 2 +-
.../networking/sockets/tcp-classes.md | 18 +-
.../networking/telemetry/events.md | 2 +-
.../networking/telemetry/metrics.md | 4 +-
.../networking/telemetry/tracing.md | 6 +-
.../reflection/accessing-custom-attributes.md | 10 +-
.../dynamically-loading-and-using-types.md | 16 +-
.../reflection/get-type-member-information.md | 2 +-
...e-a-generic-method-with-reflection-emit.md | 32 +-
...ine-a-generic-type-with-reflection-emit.md | 16 +-
...w-to-define-and-execute-dynamic-methods.md | 4 +-
...stantiate-generic-types-with-reflection.md | 14 +-
...-to-hook-up-a-delegate-using-reflection.md | 18 +-
docs/fundamentals/reflection/overview.md | 4 +-
.../reflection-and-generic-types.md | 26 +-
.../specifying-fully-qualified-type-names.md | 8 +-
.../reflection/viewing-type-information.md | 8 +-
.../system-collections-generic-list{t}.md | 4 +-
.../runtime-libraries/system-console.md | 2 +-
.../runtime-libraries/system-enum.md | 2 +-
.../system-globalization-compareinfo.md | 2 +-
...lobalization-cultureinfo-currentculture.md | 2 +-
...system-globalization-datetimeformatinfo.md | 2 +-
.../system-globalization-numberformatinfo.md | 2 +-
.../system-globalization-sortkey.md | 2 +-
.../system-invalidoperationexception.md | 10 +-
.../system-linq-expressions-expression-add.md | 2 +-
.../system-net-httplistener.md | 2 +-
.../system-object-gethashcode.md | 2 +-
...lection-context-customreflectioncontext.md | 8 +-
.../system-reflection-emit-dynamicilinfo.md | 6 +-
...n-emit-dynamicmethod-issecuritycritical.md | 2 +-
.../runtime-libraries/system-string.md | 2 +-
.../system-text-regularexpressions-regex.md | 2 +-
.../system-threading-tasks-task.md | 2 +-
.../experimental-overview.md | 2 +-
.../obsoletions-overview.md | 10 +-
.../syslib-diagnostics/syslib0001.md | 2 +-
.../syslib-diagnostics/syslib0003.md | 4 +-
.../syslib-diagnostics/syslib0004.md | 2 +-
.../syslib-diagnostics/syslib0006.md | 4 +-
.../syslib-diagnostics/syslib0009.md | 6 +-
.../syslib-diagnostics/syslib0011.md | 6 +-
.../syslib-diagnostics/syslib0014.md | 6 +-
.../syslib-diagnostics/syslib0016.md | 2 +-
.../syslib-diagnostics/syslib0018.md | 2 +-
.../syslib-diagnostics/syslib0021.md | 2 +-
.../syslib-diagnostics/syslib0026.md | 4 +-
.../syslib-diagnostics/syslib0036.md | 4 +-
.../syslib-diagnostics/syslib0045.md | 4 +-
.../syslib-diagnostics/syslib0048.md | 2 +-
.../syslib-diagnostics/syslib0049.md | 4 +-
.../syslib-diagnostics/syslib0052.md | 2 +-
.../syslib-diagnostics/syslib0053.md | 2 +-
.../syslib-diagnostics/syslib0054.md | 6 +-
.../syslib-diagnostics/syslib0056.md | 4 +-
.../syslib-diagnostics/syslib0057.md | 4 +-
.../syslib-diagnostics/syslib1034.md | 2 +-
.../how-to-use-the-automl-api.md | 72 +-
.../inspect-intermediate-data-ml-net.md | 12 +-
...chine-learning-model-predictions-ml-net.md | 12 +-
.../how-to-guides/prepare-data-ml-net.md | 2 +-
.../how-to-guides/retrain-model-ml-net.md | 2 +-
...ave-load-machine-learning-models-ml-net.md | 2 +-
...model-serverless-azure-functions-ml-net.md | 2 +-
.../serve-model-web-api-ml-net.md | 2 +-
...-learning-model-cross-validation-ml-net.md | 4 +-
.../train-machine-learning-model-ml-net.md | 10 +-
docs/machine-learning/resources/glossary.md | 4 +-
docs/machine-learning/resources/tasks.md | 2 +-
docs/machine-learning/resources/transforms.md | 136 +-
.../tutorials/github-issue-classification.md | 12 +-
...ge-classification-api-transfer-learning.md | 16 +-
.../tutorials/image-classification.md | 2 +-
.../tutorials/iris-clustering.md | 6 +-
.../movie-recommendation-model-builder.md | 2 +-
.../tutorials/movie-recommendation.md | 6 +-
.../object-detection-custom-vision-onnx.md | 2 +-
.../tutorials/object-detection-onnx.md | 4 +-
.../phone-calls-anomaly-detection.md | 6 +-
.../tutorials/predict-prices.md | 4 +-
.../tutorials/sales-anomaly-detection.md | 2 +-
.../sentiment-analysis-model-builder.md | 16 +-
.../tutorials/sentiment-analysis.md | 8 +-
.../tutorials/text-classification-tf.md | 4 +-
.../time-series-demand-forecasting.md | 6 +-
docs/orleans/deployment/consul-deployment.md | 4 +-
docs/orleans/deployment/handling-failures.md | 2 +-
docs/orleans/deployment/kubernetes.md | 2 +-
docs/orleans/deployment/service-fabric.md | 14 +-
docs/orleans/grains/cancellation-tokens.md | 14 +-
docs/orleans/grains/code-generation.md | 2 +-
.../event-sourcing-configuration.md | 2 +-
.../immediate-vs-delayed-confirmation.md | 12 +-
docs/orleans/grains/event-sourcing/index.md | 2 +-
.../event-sourcing/journaledgrain-basics.md | 14 +-
.../journaledgrain-diagnostics.md | 2 +-
.../log-consistency-providers.md | 10 +-
.../grains/event-sourcing/notifications.md | 2 +-
.../event-sourcing/replicated-instances.md | 6 +-
.../grains/external-tasks-and-grains.md | 10 +-
docs/orleans/grains/grain-extensions.md | 6 +-
docs/orleans/grains/grain-identity.md | 2 +-
docs/orleans/grains/grain-lifecycle.md | 14 +-
.../grains/grain-persistence/azure-storage.md | 12 +-
.../grain-persistence/dynamodb-storage.md | 2 +-
.../orleans/grains/grain-persistence/index.md | 58 +-
.../grain-persistence/relational-storage.md | 2 +-
docs/orleans/grains/grain-references.md | 2 +-
docs/orleans/grains/grainservices.md | 4 +-
docs/orleans/grains/index.md | 28 +-
docs/orleans/grains/observers.md | 16 +-
docs/orleans/grains/oneway.md | 2 +-
docs/orleans/grains/request-context.md | 4 +-
docs/orleans/grains/timers-and-reminders.md | 12 +-
docs/orleans/grains/transactions.md | 10 +-
docs/orleans/host/client.md | 6 +-
.../activation-collection.md | 2 +-
.../list-of-options-classes.md | 2 +-
.../local-development-configuration.md | 4 +-
.../serialization-configuration.md | 4 +-
.../serialization-customization.md | 14 +-
.../serialization-immutability.md | 10 +-
.../host/configuration-guide/serialization.md | 20 +-
.../server-configuration.md | 4 +-
.../shutting-down-orleans.md | 4 +-
docs/orleans/host/monitoring/index.md | 258 ++--
docs/orleans/host/silo-lifecycle.md | 6 +-
docs/orleans/host/transport-layer-security.md | 20 +-
.../implementation/cluster-management.md | 6 +-
.../implementation/orleans-lifecycle.md | 2 +-
docs/orleans/implementation/scheduler.md | 2 +-
.../streams-implementation/index.md | 2 +-
docs/orleans/migration-guide.md | 4 +-
docs/orleans/overview.md | 2 +-
.../build-your-first-orleans-app.md | 2 +-
docs/orleans/resources/best-practices.md | 8 +-
docs/orleans/streaming/broadcast-channel.md | 6 +-
docs/orleans/streaming/stream-providers.md | 2 +-
.../streaming/streams-programming-apis.md | 32 +-
docs/orleans/streaming/streams-quick-start.md | 12 +-
docs/orleans/streaming/streams-why.md | 2 +-
.../custom-grain-storage.md | 16 +-
docs/orleans/tutorials-and-samples/index.md | 2 +-
.../tutorials-and-samples/tutorial-1.md | 2 +-
.../analyzers/platform-compat-analyzer.md | 8 +-
.../assembly/create-use-strong-named.md | 2 +-
.../disable-strong-name-bypass-feature.md | 2 +-
.../assembly/embed-types-visual-studio.md | 2 +-
.../assembly/find-fully-qualified-name.md | 4 +-
docs/standard/assembly/identify.md | 8 +-
docs/standard/assembly/index.md | 2 +-
...pect-contents-using-metadataloadcontext.md | 2 +-
docs/standard/assembly/load-unload.md | 4 +-
docs/standard/assembly/names.md | 4 +-
.../standard/assembly/reference-assemblies.md | 6 +-
.../assembly/reference-strong-named.md | 4 +-
docs/standard/assembly/resolve-loads.md | 24 +-
docs/standard/assembly/set-attributes.md | 4 +-
docs/standard/assembly/type-forwarding.md | 2 +-
docs/standard/assembly/unloadability.md | 6 +-
.../asynchronous-programming-model-apm.md | 88 +-
...ng-the-event-based-asynchronous-pattern.md | 22 +-
...-execution-by-ending-an-async-operation.md | 32 +-
...tion-execution-using-an-asyncwaithandle.md | 32 +-
...ling-synchronous-methods-asynchronously.md | 8 +-
...ts-the-event-based-asynchronous-pattern.md | 422 +++---
...ing-the-task-based-asynchronous-pattern.md | 62 +-
...ent-based-asynchronous-pattern-overview.md | 212 +--
...ng-the-event-based-asynchronous-pattern.md | 2 +-
...ing-the-task-based-asynchronous-pattern.md | 24 +-
...h-other-asynchronous-patterns-and-types.md | 126 +-
...the-status-of-an-asynchronous-operation.md | 26 +-
.../task-based-asynchronous-pattern-tap.md | 294 ++---
...asynccallback-delegate-and-state-object.md | 18 +-
...legate-to-end-an-asynchronous-operation.md | 32 +-
...ieving-information-stored-in-attributes.md | 12 +-
.../attributes/writing-custom-attributes.md | 8 +-
.../anchors-in-regular-expressions.md | 214 ++--
...rence-constructs-in-regular-expressions.md | 2 +-
.../backtracking-in-regular-expressions.md | 16 +-
.../base-types/best-practices-display-data.md | 12 +-
.../base-types/best-practices-regex.md | 8 +-
.../base-types/best-practices-strings.md | 90 +-
docs/standard/base-types/changing-case.md | 28 +-
...haracter-classes-in-regular-expressions.md | 16 +-
.../character-encoding-introduction.md | 20 +-
.../standard/base-types/character-encoding.md | 42 +-
.../choosing-between-anonymous-and-tuple.md | 4 +-
.../standard/base-types/common-type-system.md | 8 +-
docs/standard/base-types/comparing.md | 50 +-
...lation-and-reuse-in-regular-expressions.md | 2 +-
.../base-types/composite-formatting.md | 28 +-
docs/standard/base-types/creating-new.md | 222 ++--
.../custom-date-and-time-format-strings.md | 38 +-
.../custom-numeric-format-strings.md | 12 +-
.../custom-timespan-format-strings.md | 48 +-
.../details-of-regular-expression-behavior.md | 2 +-
docs/standard/base-types/divide-up-strings.md | 18 +-
.../base-types/enumeration-format-strings.md | 6 +-
docs/standard/base-types/formatting-types.md | 60 +-
...uping-constructs-in-regular-expressions.md | 28 +-
...and-use-custom-numeric-format-providers.md | 118 +-
...isplay-dates-in-non-gregorian-calendars.md | 124 +-
...ay-milliseconds-in-date-and-time-values.md | 10 +-
...t-a-protocol-and-port-number-from-a-url.md | 50 +-
...he-day-of-the-week-from-a-specific-date.md | 106 +-
.../how-to-pad-a-number-with-leading-zeros.md | 2 +-
.../how-to-round-trip-date-and-time-values.md | 4 +-
...-strip-invalid-characters-from-a-string.md | 20 +-
...-that-strings-are-in-valid-email-format.md | 2 +-
...neous-constructs-in-regular-expressions.md | 2 +-
docs/standard/base-types/padding.md | 14 +-
docs/standard/base-types/parsing-datetime.md | 24 +-
docs/standard/base-types/parsing-numeric.md | 18 +-
.../quantifiers-in-regular-expressions.md | 474 +++----
...xpression-example-changing-date-formats.md | 68 +-
...r-expression-example-scanning-for-hrefs.md | 8 +-
...lar-expression-language-quick-reference.md | 2 +-
.../base-types/regular-expression-options.md | 16 +-
.../base-types/regular-expressions.md | 160 +--
.../standard-date-and-time-format-strings.md | 154 +--
.../standard-numeric-format-strings.md | 94 +-
.../standard-timespan-format-strings.md | 178 +--
docs/standard/base-types/stringbuilder.md | 22 +-
.../substitutions-in-regular-expressions.md | 350 ++---
.../the-regular-expression-object-model.md | 44 +-
docs/standard/base-types/trimming.md | 12 +-
docs/standard/base-types/type-conversion.md | 4 +-
docs/standard/building-console-apps.md | 4 +-
docs/standard/class-library-overview.md | 4 +-
.../commonly-used-collection-types.md | 90 +-
...omparisons-and-sorts-within-collections.md | 26 +-
...shtable-and-dictionary-collection-types.md | 40 +-
docs/standard/collections/index.md | 34 +-
.../selecting-a-collection-class.md | 32 +-
.../collections/sorted-collection-types.md | 26 +-
.../blockingcollection-overview.md | 136 +-
.../how-to-add-and-remove-items.md | 26 +-
.../thread-safe/how-to-add-and-take-items.md | 30 +-
.../how-to-add-bounding-and-blocking.md | 30 +-
.../how-to-create-an-object-pool.md | 6 +-
...ow-to-use-arrays-of-blockingcollections.md | 18 +-
.../how-to-use-foreach-to-remove.md | 10 +-
.../standard/collections/thread-safe/index.md | 24 +-
.../when-to-use-a-thread-safe-collection.md | 98 +-
.../when-to-use-generic-collections.md | 42 +-
.../data/sqlite/adonet-limitations.md | 2 +-
docs/standard/data/sqlite/backup.md | 2 +-
docs/standard/data/sqlite/batching.md | 2 +-
docs/standard/data/sqlite/collation.md | 2 +-
docs/standard/data/sqlite/database-errors.md | 6 +-
docs/standard/data/sqlite/extensions.md | 2 +-
docs/standard/data/sqlite/metadata.md | 2 +-
docs/standard/data/sqlite/transactions.md | 4 +-
.../data/sqlite/user-defined-functions.md | 4 +-
.../xml/accessing-attributes-in-the-dom.md | 2 +-
...gly-typed-xml-data-using-xpathnavigator.md | 342 ++---
...ce-node-navigation-using-xpathnavigator.md | 164 +--
.../standard/data/xml/building-xml-schemas.md | 12 +-
.../data/xml/compiled-xpath-expressions.md | 212 +--
...ting-nodes-from-one-document-to-another.md | 52 +-
.../data/xml/create-new-nodes-in-the-dom.md | 74 +-
...-new-attributes-for-elements-in-the-dom.md | 12 +-
docs/standard/data/xml/editing-xml-schemas.md | 34 +-
...-xpath-expressions-using-xpathnavigator.md | 66 +-
docs/standard/data/xml/extending-the-dom.md | 8 +-
.../extract-xml-data-using-xpathnavigator.md | 296 ++---
.../how-to-migrate-your-xsltransform-code.md | 130 +-
...slt-transformation-by-using-an-assembly.md | 312 ++---
.../xml/how-to-transform-a-node-fragment.md | 70 +-
.../xml/including-or-importing-xml-schemas.md | 8 +-
.../inferring-schemas-from-xml-documents.md | 8 +-
...nputs-to-the-xslcompiledtransform-class.md | 74 +-
.../insert-xml-data-using-xpathnavigator.md | 76 +-
.../data/xml/load-data-from-a-reader.md | 32 +-
.../managing-namespaces-in-an-xml-document.md | 130 +-
.../matching-nodes-using-xpathnavigator.md | 44 +-
.../migrating-from-the-xsltransform-class.md | 10 +-
.../modify-xml-data-using-xpathnavigator.md | 24 +-
...s-content-and-values-in-an-xml-document.md | 66 +-
...ode-set-navigation-using-xpathnavigator.md | 82 +-
.../object-comparison-using-xmlnametable.md | 76 +-
...tions-on-the-xslcompiledtransform-class.md | 10 +-
.../xml/post-schema-compilation-infoset.md | 18 +-
.../reading-an-xml-document-into-the-dom.md | 110 +-
.../xml/reading-and-writing-xml-schemas.md | 6 +-
...ata-using-xpathdocument-and-xmldocument.md | 124 +-
.../remove-xml-data-using-xpathnavigator.md | 350 ++---
...ributes-from-an-element-node-in-the-dom.md | 52 +-
.../xml/removing-node-content-in-the-dom.md | 4 +-
.../data/xml/removing-nodes-from-the-dom.md | 16 +-
...ternal-resources-during-xslt-processing.md | 60 +-
...ferring-schema-node-types-and-structure.md | 18 +-
.../data/xml/saving-and-writing-a-document.md | 154 +--
.../schema-validation-using-xpathnavigator.md | 696 +++++-----
.../xml/script-blocks-using-msxsl-script.md | 4 +-
.../select-nodes-using-xpath-navigation.md | 290 ++---
.../select-xml-data-using-xpathnavigator.md | 100 +-
...-matching-xml-data-using-xpathnavigator.md | 44 +-
.../data/xml/traversing-xml-schemas.md | 32 +-
.../type-support-in-the-system-xml-classes.md | 52 +-
docs/standard/data/xml/types-of-xml-nodes.md | 66 +-
...ordered-node-retrieval-by-name-or-index.md | 198 +--
.../user-defined-functions-and-variables.md | 4 +-
.../using-the-xslcompiledtransform-class.md | 56 +-
.../validating-an-xml-document-in-the-dom.md | 20 +-
...xdr-validation-with-xmlschemacollection.md | 4 +-
.../data/xml/xml-processing-options.md | 40 +-
.../xml/xml-schema-object-model-overview.md | 52 +-
...xsd-validation-with-xmlschemacollection.md | 378 +++---
...schema-xsd-validation-with-xmlschemaset.md | 8 +-
.../xml-type-support-implementation-notes.md | 66 +-
.../xmlschemaset-for-schema-compilation.md | 500 ++++----
...mlschemavalidator-push-based-validation.md | 132 +-
.../data/xml/xpath-namespace-navigation.md | 100 +-
.../data/xml/xpath-queries-and-namespaces.md | 130 +-
.../data/xml/xslt-extension-objects.md | 48 +-
docs/standard/data/xml/xslt-parameters.md | 112 +-
.../data/xml/xslt-security-considerations.md | 90 +-
.../standard/datetime/access-utc-and-local.md | 14 +-
.../datetime/choosing-between-datetime.md | 14 +-
.../converting-between-datetime-and-offset.md | 40 +-
.../datetime/converting-between-time-zones.md | 28 +-
...create-time-zones-with-adjustment-rules.md | 20 +-
...ate-time-zones-without-adjustment-rules.md | 10 +-
.../standard/datetime/enumerate-time-zones.md | 10 +-
.../finding-the-time-zones-on-local-system.md | 8 +-
.../datetime/how-to-use-dateonly-timeonly.md | 14 +-
.../datetime/instantiate-time-zone-info.md | 8 +-
.../instantiating-a-datetimeoffset-object.md | 18 +-
.../let-users-resolve-ambiguous-times.md | 10 +-
.../performing-arithmetic-operations.md | 18 +-
.../datetime/resolve-ambiguous-times.md | 12 +-
...re-time-zones-from-an-embedded-resource.md | 16 +-
...save-time-zones-to-an-embedded-resource.md | 20 +-
.../saving-and-restoring-time-zones.md | 8 +-
.../datetime/system-text-json-support.md | 14 +-
docs/standard/datetime/time-zone-overview.md | 14 +-
.../datetime/use-time-zones-in-arithmetic.md | 4 +-
.../datetime/working-with-calendars.md | 32 +-
docs/standard/delegates-lambdas.md | 2 +-
...tractions-abstract-types-and-interfaces.md | 2 +-
docs/standard/design-guidelines/attributes.md | 4 +-
...e-classes-for-implementing-abstractions.md | 2 +-
.../dependency-properties.md | 4 +-
.../design-guidelines/dispose-pattern.md | 10 +-
.../design-guidelines/equality-operators.md | 2 +-
docs/standard/design-guidelines/event.md | 2 +-
.../exceptions-and-performance.md | 4 +-
.../design-guidelines/extension-methods.md | 2 +-
.../guidelines-for-collections.md | 16 +-
docs/standard/design-guidelines/interface.md | 4 +-
.../design-guidelines/operator-overloads.md | 2 +-
.../design-guidelines/parameter-design.md | 4 +-
docs/standard/design-guidelines/property.md | 4 +-
.../design-guidelines/serialization.md | 6 +-
docs/standard/design-guidelines/struct.md | 4 +-
.../design-guidelines/usage-guidelines.md | 8 +-
...-multiple-events-using-event-properties.md | 2 +-
.../events/how-to-implement-a-provider.md | 72 +-
.../events/how-to-implement-an-observer.md | 56 +-
docs/standard/events/index.md | 6 +-
.../observer-design-pattern-best-practices.md | 22 +-
.../events/observer-design-pattern.md | 28 +-
.../best-practices-for-exceptions.md | 24 +-
.../handling-com-interop-exceptions.md | 24 +-
.../app-domain-resource-monitoring.md | 16 +-
.../garbage-collection/fundamentals.md | 4 +-
.../implementing-dispose.md | 48 +-
.../implementing-disposeasync.md | 6 +-
docs/standard/garbage-collection/index.md | 48 +-
docs/standard/garbage-collection/induced.md | 48 +-
.../garbage-collection/large-object-heap.md | 2 +-
docs/standard/garbage-collection/latency.md | 6 +-
.../garbage-collection/notifications.md | 24 +-
.../garbage-collection/performance.md | 4 +-
docs/standard/garbage-collection/unmanaged.md | 18 +-
.../garbage-collection/using-objects.md | 12 +-
.../garbage-collection/weak-references.md | 74 +-
docs/standard/generics.md | 4 +-
docs/standard/generics/collections.md | 18 +-
.../generics/covariance-and-contravariance.md | 188 +--
...gates-for-manipulating-arrays-and-lists.md | 44 +-
docs/standard/generics/index.md | 20 +-
docs/standard/generics/interfaces.md | 56 +-
docs/standard/generics/math.md | 90 +-
docs/standard/io/asynchronous-file-i-o.md | 4 +-
docs/standard/io/buffers.md | 22 +-
docs/standard/io/common-i-o-tasks.md | 36 +-
docs/standard/io/composing-streams.md | 14 +-
docs/standard/io/file-path-formats.md | 4 +-
docs/standard/io/handling-io-errors.md | 8 +-
...d-or-remove-access-control-list-entries.md | 8 +-
...-space-conditions-with-isolated-storage.md | 6 +-
.../io/how-to-compress-and-extract-files.md | 2 +-
...etween-dotnet-streams-and-winrt-streams.md | 38 +-
...les-and-directories-in-isolated-storage.md | 30 +-
...les-and-directories-in-isolated-storage.md | 4 +-
...ow-to-delete-stores-in-isolated-storage.md | 2 +-
.../how-to-enumerate-directories-and-files.md | 70 +-
...o-enumerate-stores-for-isolated-storage.md | 18 +-
...les-and-directories-in-isolated-storage.md | 6 +-
...w-to-obtain-stores-for-isolated-storage.md | 16 +-
.../how-to-open-and-append-to-a-log-file.md | 40 +-
...-and-write-to-a-newly-created-data-file.md | 2 +-
.../how-to-read-characters-from-a-string.md | 2 +-
.../io/how-to-read-text-from-a-file.md | 8 +-
...-for-network-interprocess-communication.md | 2 +-
.../io/how-to-write-characters-to-a-string.md | 44 +-
.../io/how-to-write-text-to-a-file.md | 38 +-
docs/standard/io/index.md | 6 +-
docs/standard/io/isolated-storage.md | 4 +-
docs/standard/io/memory-mapped-files.md | 252 ++--
docs/standard/io/pipelines.md | 42 +-
docs/standard/io/types-of-isolation.md | 8 +-
docs/standard/language-independence.md | 4 +-
.../add-elements-attributes-nodes-xml-tree.md | 8 +-
.../linq/atomized-xname-xnamespace-objects.md | 2 +-
.../linq/basic-queries-linq-to-xml.md | 24 +-
docs/standard/linq/catch-parsing-errors.md | 4 +-
docs/standard/linq/chain-axis-method-calls.md | 8 +-
...chain-standard-query-operators-together.md | 6 +-
.../linq/change-namespace-entire-xml-tree.md | 2 +-
.../linq/comparison-xpath-linq-xml.md | 20 +-
...s-terminology-functional-transformation.md | 2 +-
.../linq/control-namespace-prefixes.md | 2 +-
docs/standard/linq/control-type-projection.md | 6 +-
.../linq/create-document-namespaces-csharp.md | 2 +-
.../linq/debug-empty-query-results-sets.md | 2 +-
.../deferred-execution-lazy-evaluation.md | 4 +-
docs/standard/linq/filter-element-names.md | 18 +-
docs/standard/linq/filter-optional-element.md | 8 +-
docs/standard/linq/find-attribute-parent.md | 2 +-
.../find-attributes-siblings-specific-name.md | 2 +-
docs/standard/linq/find-child-element.md | 4 +-
.../find-child-elements-based-position.md | 4 +-
.../linq/find-default-paragraph-style.md | 2 +-
.../linq/find-descendants-child-element.md | 4 +-
.../find-descendants-specific-element-name.md | 4 +-
.../linq/find-element-specific-attribute.md | 4 +-
.../find-element-specific-child-element.md | 4 +-
.../linq/find-elements-specific-attribute.md | 2 +-
.../linq/find-immediate-preceding-sibling.md | 4 +-
.../standard/linq/find-list-child-elements.md | 2 +-
docs/standard/linq/find-preceding-siblings.md | 2 +-
docs/standard/linq/find-sibling-nodes.md | 2 +-
...nd-single-descendant-descendants-method.md | 4 +-
.../linq/find-union-two-location-paths.md | 4 +-
docs/standard/linq/functional-construction.md | 2 +-
.../linq/intermediate-materialization.md | 6 +-
.../standard/linq/language-integrated-axes.md | 6 +-
docs/standard/linq/linq-xml-annotations.md | 10 +-
docs/standard/linq/linq-xml-axes-overview.md | 28 +-
.../linq/linq-xml-classes-overview.md | 2 +-
docs/standard/linq/linq-xml-overview.md | 2 +-
docs/standard/linq/linq-xml-security.md | 10 +-
docs/standard/linq/linq-xml-vs-dom.md | 2 +-
docs/standard/linq/load-xml-file.md | 4 +-
.../linq/maintain-name-value-pairs.md | 26 +-
.../mixed-declarative-imperative-code-bugs.md | 8 +-
...dify-elements-attributes-nodes-xml-tree.md | 26 +-
...streaming-transform-large-xml-documents.md | 2 +-
.../linq/performance-chained-queries.md | 6 +-
.../linq/populate-xml-tree-xmlwriter.md | 6 +-
...reserve-white-space-loading-parsing-xml.md | 8 +-
.../linq/preserve-white-space-serializing.md | 8 +-
docs/standard/linq/program-nodes.md | 4 +-
docs/standard/linq/project-new-type.md | 4 +-
docs/standard/linq/project-object-graph.md | 6 +-
docs/standard/linq/query-linq-xml-xpath.md | 2 +-
.../linq/query-xdocument-vs-query-xelement.md | 8 +-
.../linq/read-write-encoded-document.md | 8 +-
.../linq/refactor-extension-method.md | 2 +-
docs/standard/linq/refactor-pure-functions.md | 2 +-
...move-elements-attributes-nodes-xml-tree.md | 22 +-
.../linq/retrieve-collection-attributes.md | 2 +-
.../linq/retrieve-collection-elements.md | 2 +-
.../linq/retrieve-paragraphs-styles.md | 4 +-
.../linq/retrieve-shallow-value-element.md | 2 +-
.../linq/retrieve-single-attribute.md | 4 +-
.../linq/retrieve-single-child-element.md | 2 +-
.../standard/linq/retrieve-text-paragraphs.md | 4 +-
.../standard/linq/retrieve-value-attribute.md | 2 +-
docs/standard/linq/retrieve-value-element.md | 16 +-
.../standard/linq/scope-default-namespaces.md | 2 +-
.../serialize-files-textwriters-xmlwriters.md | 10 +-
.../linq/serialize-xml-declaration.md | 2 +-
.../linq/serialize-xmlreader-invoke-xslt.md | 2 +-
.../linq/statically-compiled-queries.md | 4 +-
...xml-fragments-access-header-information.md | 4 +-
.../linq/stream-xml-fragments-xmlreader.md | 4 +-
.../linq/use-xslt-transform-xml-tree.md | 4 +-
...alid-content-xelement-xdocument-objects.md | 30 +-
docs/standard/linq/validate-xsd.md | 4 +-
.../linq/work-dictionaries-linq-xml.md | 4 +-
.../linq/write-queries-complex-filtering.md | 4 +-
...rite-query-finds-elements-based-context.md | 8 +-
docs/standard/linq/xelement-class-overview.md | 4 +-
...tributed-programming-model-overview-mef.md | 2 +-
docs/standard/mef/index.md | 6 +-
docs/standard/memory-and-spans/index.md | 28 +-
.../memory-t-usage-guidelines.md | 60 +-
.../standard/native-interop/best-practices.md | 10 +-
.../custom-marshalling-source-generation.md | 4 +-
.../native-interop/native-library-loading.md | 4 +-
docs/standard/native-interop/preserve-sig.md | 2 +-
docs/standard/numerics.md | 8 +-
.../attached-and-detached-child-tasks.md | 130 +-
...ining-tasks-by-using-continuation-tasks.md | 44 +-
.../custom-partitioners-for-plinq-and-tpl.md | 62 +-
.../data-parallelism-task-parallel-library.md | 68 +-
...ata-structures-for-parallel-programming.md | 112 +-
.../dataflow-task-parallel-library.md | 492 +++----
...xception-handling-task-parallel-library.md | 26 +-
.../how-to-cancel-a-dataflow-block.md | 6 +-
...o-cancel-a-parallel-for-or-foreach-loop.md | 4 +-
.../how-to-cancel-a-plinq-query.md | 2 +-
.../how-to-cancel-a-task-and-its-children.md | 12 +-
...ne-parallel-and-sequential-linq-queries.md | 28 +-
...ow-to-control-ordering-in-a-plinq-query.md | 2 +-
...create-and-execute-a-simple-plinq-query.md | 22 +-
.../how-to-create-pre-computed-tasks.md | 6 +-
...-to-handle-exceptions-in-parallel-loops.md | 26 +-
...t-a-partitioner-for-static-partitioning.md | 16 +-
...nt-a-producer-consumer-dataflow-pattern.md | 8 +-
.../how-to-implement-dynamic-partitions.md | 16 +-
...-to-iterate-file-directories-with-plinq.md | 38 +-
...ile-directories-with-the-parallel-class.md | 30 +-
...ion-when-a-dataflow-block-receives-data.md | 44 +-
...child-task-from-attaching-to-its-parent.md | 22 +-
.../how-to-return-a-value-from-a-task.md | 22 +-
...fy-a-task-scheduler-in-a-dataflow-block.md | 14 +-
...gree-of-parallelism-in-a-dataflow-block.md | 28 +-
...-to-specify-the-execution-mode-in-plinq.md | 32 +-
.../how-to-speed-up-small-loop-bodies.md | 18 +-
...verse-a-binary-tree-with-parallel-tasks.md | 18 +-
.../how-to-unlink-dataflow-blocks.md | 22 +-
.../how-to-unwrap-a-nested-task.md | 48 +-
...lock-to-read-data-from-multiple-sources.md | 28 +-
...l-invoke-to-execute-parallel-operations.md | 4 +-
.../how-to-wrap-eap-patterns-in-a-task.md | 14 +-
...write-a-custom-plinq-aggregate-function.md | 30 +-
...el-for-loop-with-thread-local-variables.md | 54 +-
...ach-loop-with-partition-local-variables.md | 18 +-
...how-to-write-a-simple-parallel-for-loop.md | 18 +-
...to-write-a-simple-parallel-foreach-loop.md | 10 +-
...and-read-messages-from-a-dataflow-block.md | 10 +-
.../introduction-to-plinq.md | 48 +-
.../lambda-expressions-in-plinq-and-tpl.md | 6 +-
.../merge-options-in-plinq.md | 100 +-
.../order-preservation-in-plinq.md | 208 +--
...l-pitfalls-in-data-and-task-parallelism.md | 128 +-
.../potential-pitfalls-with-plinq.md | 10 +-
.../task-based-asynchronous-programming.md | 92 +-
.../parallel-programming/task-cancellation.md | 44 +-
.../task-parallel-library-tpl.md | 26 +-
.../tpl-and-traditional-async-programming.md | 174 +--
.../understanding-speedup-in-plinq.md | 138 +-
...h-creating-a-custom-dataflow-block-type.md | 60 +-
...alkthrough-creating-a-dataflow-pipeline.md | 170 +--
...-batchedjoinblock-to-improve-efficiency.md | 8 +-
...dataflow-in-a-windows-forms-application.md | 220 ++--
.../security/cross-platform-cryptography.md | 12 +-
.../security/cryptographic-services.md | 2 +-
.../security/cryptographic-signatures.md | 6 +-
docs/standard/security/cryptography-model.md | 8 +-
docs/standard/security/decrypting-data.md | 2 +-
docs/standard/security/encrypting-data.md | 2 +-
...ting-keys-for-encryption-and-decryption.md | 122 +-
...w-to-access-hardware-encryption-devices.md | 4 +-
...how-to-create-a-windowsprincipal-object.md | 112 +-
...crypt-xml-elements-with-asymmetric-keys.md | 104 +-
...ecrypt-xml-elements-with-symmetric-keys.md | 108 +-
...pt-xml-elements-with-x-509-certificates.md | 94 +-
...crypt-xml-elements-with-asymmetric-keys.md | 38 +-
...ncrypt-xml-elements-with-symmetric-keys.md | 132 +-
...pt-xml-elements-with-x-509-certificates.md | 162 +--
...n-xml-documents-with-digital-signatures.md | 164 +--
...tore-asymmetric-keys-in-a-key-container.md | 10 +-
.../security/how-to-use-data-protection.md | 54 +-
...the-digital-signatures-of-xml-documents.md | 98 +-
.../security/impersonating-and-reverting.md | 84 +-
.../security/key-security-concepts.md | 4 +-
...gh-creating-a-cryptographic-application.md | 2 +-
.../binaryformatter-event-source.md | 4 +-
.../read-nrbf-payloads.md | 10 +-
...ling-xml-serialization-using-attributes.md | 4 +-
.../examples-of-xml-serialization.md | 16 +-
.../how-to-chunk-serialized-data.md | 68 +-
.../how-to-deserialize-an-object.md | 10 +-
.../how-to-serialize-an-object.md | 68 +-
...lternate-element-name-for-an-xml-stream.md | 4 +-
.../system-text-json/configure-options.md | 6 +-
.../system-text-json/converters-how-to.md | 24 +-
.../system-text-json/custom-contracts.md | 4 +-
.../system-text-json/customize-properties.md | 6 +-
.../system-text-json/deserialization.md | 6 +-
.../serialization/system-text-json/fields.md | 2 +-
.../serialization/system-text-json/how-to.md | 6 +-
.../system-text-json/httpclient-extensions.md | 2 +-
.../system-text-json/ignore-properties.md | 2 +-
.../system-text-json/invalid-json.md | 2 +-
.../migrate-from-newtonsoft.md | 14 +-
.../system-text-json/preserve-references.md | 12 +-
.../system-text-json/required-properties.md | 2 +-
.../system-text-json/source-generation.md | 18 +-
.../system-text-json/supported-types.md | 108 +-
.../serialization/system-text-json/use-dom.md | 14 +-
.../system-text-json/use-utf8jsonreader.md | 16 +-
.../system-text-json/use-utf8jsonwriter.md | 12 +-
.../system-text-json/visual-basic-support.md | 4 +-
.../xml-schema-definition-tool-xsd-exe.md | 4 +-
docs/standard/simd.md | 8 +-
docs/standard/threading/barrier.md | 56 +-
.../cancellation-in-managed-threads.md | 22 +-
docs/standard/threading/countdownevent.md | 58 +-
...-threads-and-passing-data-at-start-time.md | 8 +-
docs/standard/threading/destroying-threads.md | 84 +-
docs/standard/threading/eventwaithandle.md | 90 +-
.../exceptions-in-managed-threads.md | 42 +-
.../foreground-and-background-threads.md | 26 +-
...en-for-cancellation-requests-by-polling.md | 26 +-
...sten-for-multiple-cancellation-requests.md | 30 +-
...ter-callbacks-for-cancellation-requests.md | 8 +-
...-spinlock-for-low-level-synchronization.md | 24 +-
...to-implement-a-two-phase-wait-operation.md | 26 +-
...aged-and-unmanaged-threading-in-windows.md | 82 +-
.../managed-threading-best-practices.md | 22 +-
docs/standard/threading/mutexes.md | 24 +-
.../overview-of-synchronization-primitives.md | 34 +-
.../threading/pausing-and-resuming-threads.md | 40 +-
.../threading/semaphore-and-semaphoreslim.md | 12 +-
docs/standard/threading/spinwait.md | 26 +-
.../synchronizing-data-for-multithreading.md | 6 +-
.../threading/the-managed-thread-pool.md | 82 +-
...d-relative-static-fields-and-data-slots.md | 12 +-
docs/standard/threading/timers.md | 8 +-
.../threading/using-threads-and-threading.md | 34 +-
docs/standard/value-tuples.md | 22 +-
...ding-the-visual-basic-application-model.md | 46 +-
.../accessing-application-forms.md | 28 +-
.../programming/accessing-user-data.md | 26 +-
...create-property-grids-for-user-settings.md | 64 +-
.../accessing-the-computer-s-ports.md | 68 +-
.../accessing-the-keyboard.md | 32 +-
.../getting-information-about-the-computer.md | 12 +-
...create-a-registry-key-and-set-its-value.md | 6 +-
.../how-to-delete-a-registry-key.md | 62 +-
...to-dial-modems-attached-to-serial-ports.md | 82 +-
.../how-to-download-a-file.md | 4 +-
...ow-to-receive-strings-from-serial-ports.md | 106 +-
.../how-to-send-strings-to-serial-ports.md | 50 +-
...t-an-application-and-send-it-keystrokes.md | 14 +-
.../how-to-upload-a-file.md | 64 +-
.../programming/computer-resources/index.md | 18 +-
.../performing-network-operations.md | 58 +-
.../computer-resources/playing-sounds.md | 108 +-
.../port-operations-in-the-net-framework.md | 2 +-
...try-using-the-microsoft-win32-namespace.md | 56 +-
...-data-to-and-reading-from-the-clipboard.md | 114 +-
...t-framework-file-io-and-the-file-system.md | 8 +-
...leting-and-moving-files-and-directories.md | 188 +--
.../how-to-append-to-text-files.md | 60 +-
...o-copy-a-directory-to-another-directory.md | 4 +-
...-with-a-specific-pattern-to-a-directory.md | 94 +-
...copy-of-a-file-in-a-different-directory.md | 84 +-
...-a-copy-of-a-file-in-the-same-directory.md | 98 +-
.../how-to-create-a-directory.md | 60 +-
.../how-to-create-a-file.md | 76 +-
...w-to-find-files-with-a-specific-pattern.md | 68 +-
...-subdirectories-with-a-specific-pattern.md | 4 +-
...-the-collection-of-files-in-a-directory.md | 72 +-
.../how-to-move-a-file.md | 80 +-
.../how-to-parse-file-paths.md | 50 +-
.../how-to-read-from-binary-files.md | 78 +-
...to-read-from-comma-delimited-text-files.md | 82 +-
...how-to-read-from-fixed-width-text-files.md | 86 +-
...d-from-text-files-with-multiple-formats.md | 18 +-
.../how-to-read-from-text-files.md | 8 +-
...ead-text-from-files-with-a-streamreader.md | 46 +-
.../how-to-rename-a-file.md | 6 +-
...-contents-of-the-my-documents-directory.md | 20 +-
...-to-files-in-the-my-documents-directory.md | 70 +-
...write-text-to-files-with-a-streamwriter.md | 44 +-
.../how-to-write-text-to-files.md | 84 +-
.../how-to-write-to-binary-files.md | 4 +-
...t-files-with-the-textfieldparser-object.md | 70 +-
.../reading-from-files.md | 104 +-
...ough-manipulating-files-and-directories.md | 280 ++--
...ng-files-by-using-net-framework-methods.md | 2 +-
.../writing-to-files.md | 92 +-
.../log-info/how-to-log-exceptions.md | 110 +-
...en-the-application-starts-or-shuts-down.md | 90 +-
...-write-event-information-to-a-text-file.md | 6 +-
.../log-info/how-to-write-log-messages.md | 4 +-
...ow-to-write-to-an-application-event-log.md | 4 +-
.../log-info/troubleshooting-log-listeners.md | 50 +-
...lkthrough-creating-custom-log-listeners.md | 4 +-
...ugh-filtering-my-application-log-output.md | 2 +-
.../log-info/working-with-application-logs.md | 4 +-
.../constants-and-enumerations.md | 128 +-
.../data-types/char-data-type.md | 18 +-
.../data-types/date-data-type.md | 4 +-
.../data-types/decimal-data-type.md | 4 +-
.../language-reference/data-types/index.md | 100 +-
.../data-types/object-data-type.md | 2 +-
.../data-types/string-data-type.md | 116 +-
...alid-comment-token-for-delimited-fields.md | 10 +-
.../a-startup-form-has-not-been-specified.md | 30 +-
.../error-messages/bad-file-name-or-number.md | 36 +-
.../error-messages/bad-record-length.md | 42 +-
.../error-messages/bc2012.md | 4 +-
.../error-messages/bc42358.md | 4 +-
...irst-be-called-with-a-pathname-argument.md | 2 +-
...ntname-is-obsolete-visual-basic-warning.md | 4 +-
...ype-typename-which-is-a-restricted-type.md | 2 +-
...e-cannot-be-the-target-of-an-assignment.md | 4 +-
...xpression-of-type-type-is-not-queryable.md | 2 +-
.../error-messages/file-already-open.md | 2 +-
...-is-too-large-to-read-into-a-byte-array.md | 14 +-
...licit-call-to-mybase-new-or-myclass-new.md | 2 +-
.../for-each-on-type-typename-is-ambiguous.md | 6 +-
.../error-messages/input-past-end-of-file.md | 26 +-
...d-resolution-runtime-errors-could-occur.md | 2 +-
...ot-be-used-as-operands-of-the-addressof.md | 8 +-
.../name-name-is-not-declared.md | 4 +-
.../some-subkeys-cannot-be-deleted.md | 14 +-
.../error-messages/subscript-out-of-range.md | 16 +-
...er-is-unable-to-complete-read-operation.md | 16 +-
...type-of-variablename-cannot-be-inferred.md | 2 +-
.../functions/conversion-functions.md | 18 +-
.../functions/math-functions.md | 110 +-
.../return-values-for-the-cstr-function.md | 28 +-
.../functions/string-functions.md | 58 +-
.../functions/type-conversion-functions.md | 34 +-
.../keywords/arrays-summary.md | 20 +-
.../keywords/collection-object-summary.md | 22 +-
.../keywords/control-flow-summary.md | 22 +-
.../keywords/conversion-summary.md | 34 +-
.../keywords/data-types-summary.md | 18 +-
.../keywords/dates-and-times-summary.md | 24 +-
.../declarations-and-constants-summary.md | 30 +-
.../keywords/directories-and-files-summary.md | 40 +-
.../keywords/errors-summary.md | 24 +-
.../keywords/financial-summary.md | 26 +-
.../information-and-interaction-summary.md | 26 +-
.../keywords/input-and-output-summary.md | 36 +-
.../keywords/math-summary.md | 24 +-
.../keywords/my-reference.md | 32 +-
.../keywords/registry-summary.md | 22 +-
.../keywords/string-manipulation-summary.md | 38 +-
.../language-reference/modifiers/async.md | 2 +-
.../modifiers/in-generic-modifier.md | 8 +-
.../language-reference/modifiers/iterator.md | 80 +-
.../language-reference/modifiers/key.md | 84 +-
.../modifiers/out-generic-modifier.md | 2 +-
.../language-reference/modifiers/shared.md | 6 +-
.../language-reference/objects/index.md | 68 +-
.../objects/my-computer-clipboard-object.md | 38 +-
.../objects/my-forms-object.md | 8 +-
.../objects/my-resources-object.md | 6 +-
.../objects/my-user-object.md | 28 +-
.../operators/await-operator.md | 10 +-
.../operators/comparison-operators.md | 28 +-
.../operators/ctype-operator.md | 16 +-
.../operators/directcast-operator.md | 66 +-
.../operators/gettype-operator.md | 92 +-
.../operators/getxmlnamespace-operator.md | 2 +-
.../operators/if-operator.md | 2 +-
.../operators/like-operator.md | 176 +--
.../operators/mod-operator.md | 4 +-
.../operators/null-conditional-operators.md | 2 +-
.../language-reference/properties.md | 32 +-
.../queries/aggregate-clause.md | 96 +-
.../queries/select-clause.md | 80 +-
.../runtime-library-members.md | 360 +++---
.../statements/class-statement.md | 182 +--
.../statements/const-statement.md | 14 +-
.../statements/declare-statement.md | 2 +-
.../statements/do-loop-statement.md | 2 +-
.../statements/end-statement.md | 72 +-
.../statements/enum-statement.md | 4 +-
.../statements/error-statement.md | 104 +-
.../statements/for-each-next-statement.md | 20 +-
.../statements/for-next-statement.md | 2 +-
.../statements/function-statement.md | 6 +-
.../statements/if-then-else-statement.md | 4 +-
.../statements/inherits-statement.md | 100 +-
.../statements/mid-statement.md | 114 +-
.../statements/of-clause.md | 84 +-
.../statements/on-error-statement.md | 34 +-
.../statements/option-compare-statement.md | 138 +-
.../statements/raiseevent-statement.md | 104 +-
.../statements/select-case-statement.md | 112 +-
.../statements/sub-statement.md | 4 +-
.../statements/throw-statement.md | 2 +-
.../statements/try-catch-finally-statement.md | 10 +-
.../statements/using-statement.md | 34 +-
.../statements/while-end-while-statement.md | 2 +-
.../statements/with-end-with-statement.md | 2 +-
.../statements/yield-statement.md | 166 +--
.../xml-axis/extension-indexer-property.md | 86 +-
.../xml-axis/xml-attribute-axis-property.md | 2 +-
.../xml-axis/xml-child-axis-property.md | 2 +-
.../xml-axis/xml-descendant-axis-property.md | 2 +-
.../xml-axis/xml-value-property.md | 18 +-
.../xml-literals/xml-cdata-literal.md | 90 +-
.../xml-literals/xml-comment-literal.md | 84 +-
.../xml-literals/xml-document-literal.md | 84 +-
.../xml-literals/xml-element-literal.md | 2 +-
.../xml-processing-instruction-literal.md | 96 +-
...er-cannot-be-nothing-or-an-empty-string.md | 16 +-
...-last-element-must-be-greater-than-zero.md | 20 +-
...eady-registered-a-source-with-this-name.md | 20 +-
...ent-basepath-must-be-a-path-to-a-folder.md | 18 +-
...me-cannot-be-nothing-or-an-empty-string.md | 20 +-
docs/visual-basic/misc/bc30456.md | 22 +-
docs/visual-basic/misc/bc30532.md | 20 +-
docs/visual-basic/misc/bc30533.md | 20 +-
docs/visual-basic/misc/bc30668.md | 24 +-
docs/visual-basic/misc/bc30768.md | 24 +-
docs/visual-basic/misc/bc30911.md | 32 +-
docs/visual-basic/misc/bc30912.md | 28 +-
docs/visual-basic/misc/bc30917.md | 24 +-
docs/visual-basic/misc/bc30918.md | 28 +-
docs/visual-basic/misc/bc30919.md | 24 +-
docs/visual-basic/misc/bc30954.md | 28 +-
docs/visual-basic/misc/bc31075.md | 20 +-
docs/visual-basic/misc/bc31521.md | 26 +-
docs/visual-basic/misc/bc31526.md | 32 +-
docs/visual-basic/misc/bc31529.md | 32 +-
docs/visual-basic/misc/bc31530.md | 28 +-
docs/visual-basic/misc/bc32115.md | 26 +-
docs/visual-basic/misc/bc36010.md | 24 +-
docs/visual-basic/misc/bc36012.md | 24 +-
docs/visual-basic/misc/bc36610.md | 28 +-
docs/visual-basic/misc/bc36625.md | 60 +-
docs/visual-basic/misc/bc40000.md | 28 +-
docs/visual-basic/misc/bc40019.md | 36 +-
docs/visual-basic/misc/bc40020.md | 32 +-
docs/visual-basic/misc/bc41000.md | 26 +-
docs/visual-basic/misc/bc41001.md | 28 +-
docs/visual-basic/misc/bc41002.md | 32 +-
docs/visual-basic/misc/bc41003.md | 28 +-
docs/visual-basic/misc/bc41004.md | 32 +-
docs/visual-basic/misc/bc41006.md | 32 +-
...annot-be-deleted-because-it-has-subkeys.md | 14 +-
...tlogsource-is-registered-to-another-log.md | 16 +-
...-argumentname-must-be-a-positive-number.md | 20 +-
...e-must-be-greater-than-or-equal-to-1000.md | 20 +-
...an-only-be-done-when-the-file-is-closed.md | 14 +-
.../unable-to-obtain-a-stream-for-the-log.md | 28 +-
...uce-free-disk-space-below-reservedspace.md | 38 +-
...ld-cause-it-to-exceed-maximumsize-value.md | 38 +-
.../walkthrough-office-programming.md | 4 +-
.../concepts/async/async-return-types.md | 14 +-
...cancel-an-async-task-or-a-list-of-tasks.md | 6 +-
...ncel-async-tasks-after-a-period-of-time.md | 2 +-
...ining-async-tasks-after-one-is-complete.md | 12 +-
.../async/control-flow-in-async-programs.md | 2 +-
.../fine-tuning-your-async-application.md | 60 +-
.../handling-reentrancy-in-async-apps.md | 4 +-
...async-walkthrough-by-using-task-whenall.md | 12 +-
...ts-in-parallel-by-using-async-and-await.md | 4 +-
.../programming-guide/concepts/async/index.md | 18 +-
...tasks-and-process-them-as-they-complete.md | 390 +++---
.../async/using-async-for-file-access.md | 310 ++---
...essing-the-web-by-using-async-and-await.md | 10 +-
.../concepts/caller-information.md | 134 +-
.../programming-guide/concepts/collections.md | 36 +-
.../covariance-contravariance/index.md | 2 +-
...e-in-interfaces-for-generic-collections.md | 6 +-
.../variance-in-delegates.md | 12 +-
.../variance-in-generic-interfaces.md | 20 +-
.../how-to-execute-expression-trees.md | 72 +-
.../how-to-modify-expression-trees.md | 2 +-
...pression-trees-to-build-dynamic-queries.md | 28 +-
.../concepts/expression-trees/index.md | 4 +-
.../programming-guide/concepts/iterators.md | 16 +-
.../concepts/linq/aggregation-operations.md | 116 +-
.../concepts/linq/basic-query-operations.md | 268 ++--
...-query-operators-by-manner-of-execution.md | 102 +-
.../concepts/linq/concatenation-operations.md | 28 +-
.../concepts/linq/converting-data-types.md | 22 +-
.../concepts/linq/element-operations.md | 34 +-
...nabling-a-data-source-for-linq-querying.md | 16 +-
.../concepts/linq/equality-operations.md | 16 +-
.../linq/features-that-support-linq.md | 174 +--
.../concepts/linq/filtering-data.md | 4 +-
.../concepts/linq/generation-operations.md | 26 +-
.../concepts/linq/grouping-data.md | 106 +-
...-to-add-custom-methods-for-linq-queries.md | 18 +-
...e-column-values-in-a-csv-text-file-linq.md | 2 +-
...-occurrences-of-a-word-in-a-string-linq.md | 2 +-
...e-set-difference-between-two-lists-linq.md | 90 +-
.../how-to-group-files-by-extension-linq.md | 170 +--
.../how-to-query-an-arraylist-with-linq.md | 4 +-
...ssembly-s-metadata-with-reflection-linq.md | 54 +-
...o-query-for-characters-in-a-string-linq.md | 2 +-
...s-that-contain-a-specified-set-of-words.md | 4 +-
...rgest-file-or-files-in-a-directory-tree.md | 218 ++--
...tal-number-of-bytes-in-a-set-of-folders.md | 126 +-
...-reorder-the-fields-of-a-delimited-file.md | 2 +-
.../concepts/linq/introduction-to-linq.md | 48 +-
.../concepts/linq/join-operations.md | 34 +-
.../concepts/linq/linq-and-strings.md | 98 +-
.../concepts/linq/linq-to-objects.md | 68 +-
.../concepts/linq/partitioning-data.md | 88 +-
.../concepts/linq/projection-operations.md | 8 +-
.../concepts/linq/quantifier-operations.md | 54 +-
...ion-syntax-for-standard-query-operators.md | 64 +-
.../concepts/linq/set-operations.md | 14 +-
.../concepts/linq/sorting-data.md | 10 +-
.../linq/standard-query-operators-overview.md | 14 +-
.../type-relationships-in-query-operations.md | 2 +-
.../linq/writing-your-first-linq-query.md | 12 +-
.../arrays/array-dimensions.md | 4 +-
.../arrays/how-to-sort-an-array.md | 8 +-
.../language-features/arrays/index.md | 30 +-
.../arrays/troubleshooting-arrays.md | 90 +-
...method-used-by-a-collection-initializer.md | 30 +-
.../collection-initializers/index.md | 6 +-
...ng-associated-with-an-enumeration-value.md | 22 +-
.../how-to-iterate-through-an-enumeration.md | 18 +-
...lkthrough-implementing-ienumerable-of-t.md | 48 +-
...ersions-between-strings-and-other-types.md | 52 +-
.../data-types/efficient-use-of-data-types.md | 10 +-
.../data-types/generic-procedures.md | 82 +-
.../data-types/generic-types.md | 8 +-
.../data-types/how-to-use-a-generic-class.md | 34 +-
.../data-types/nullable-value-types.md | 16 +-
.../data-types/structures-and-classes.md | 144 +--
.../data-types/troubleshooting-data-types.md | 10 +-
.../language-features/data-types/tuples.md | 2 +-
.../value-types-and-reference-types.md | 116 +-
...-property-or-method-using-a-string-name.md | 56 +-
.../determining-object-type.md | 60 +-
.../early-late-binding/index.md | 36 +-
...ough-creating-and-using-dynamic-objects.md | 4 +-
...declare-custom-events-to-avoid-blocking.md | 32 +-
...alkthrough-declaring-and-raising-events.md | 118 +-
...o-call-a-stored-procedure-by-using-linq.md | 2 +-
...modify-data-in-a-database-by-using-linq.md | 2 +-
.../linq/introduction-to-linq.md | 276 ++--
.../anonymous-type-definition.md | 4 +-
.../objects-and-classes/anonymous-types.md | 236 ++--
...nd-types-in-anonymous-type-declarations.md | 2 +-
.../objects-and-classes/index.md | 14 +-
...e-how-objects-are-created-and-destroyed.md | 16 +-
.../arithmetic-operators.md | 158 +--
.../procedures/function-procedures.md | 2 +-
...-procedure-that-does-not-return-a-value.md | 32 +-
...o-call-a-procedure-that-returns-a-value.md | 62 +-
.../how-to-call-a-property-procedure.md | 74 +-
.../how-to-create-a-lambda-expression.md | 186 +--
...-to-declare-and-call-a-default-property.md | 130 +-
.../how-to-pass-arguments-to-a-procedure.md | 54 +-
.../how-to-put-a-value-in-a-property.md | 40 +-
...w-to-use-a-class-that-defines-operators.md | 46 +-
.../procedures/parameter-arrays.md | 82 +-
.../strings/how-culture-affects-strings.md | 140 +-
.../how-to-access-characters-in-strings.md | 36 +-
...vert-a-string-to-an-array-of-characters.md | 26 +-
...convert-an-array-of-bytes-into-a-string.md | 52 +-
...-convert-hexadecimal-strings-to-numbers.md | 6 +-
...-convert-strings-into-an-array-of-bytes.md | 52 +-
.../strings/how-to-search-within-a-string.md | 10 +-
.../how-to-validate-file-names-and-paths.md | 18 +-
...e-strings-that-represent-dates-or-times.md | 28 +-
.../strings/interpolated-strings.md | 2 +-
.../types-of-string-manipulation-methods.md | 4 +-
...ressions-with-the-maskedtextbox-control.md | 92 +-
.../zero-based-vs-one-based-string-access.md | 26 +-
.../how-to-access-members-of-an-object.md | 2 +-
...-what-type-an-object-variable-refers-to.md | 10 +-
...termine-whether-two-objects-are-related.md | 16 +-
.../variables/object-variable-values.md | 110 +-
.../xml/how-to-access-xml-attributes.md | 14 +-
.../xml/how-to-access-xml-child-elements.md | 24 +-
.../how-to-access-xml-descendant-elements.md | 24 +-
...-declare-and-use-xml-namespace-prefixes.md | 24 +-
...o-load-xml-from-a-file-string-or-stream.md | 14 +-
.../xml/how-to-modify-xml-literals.md | 14 +-
.../xml/how-to-transform-xml-by-using-linq.md | 4 +-
.../program-structure/main-procedure.md | 8 +-
.../program-structure/naming-conventions.md | 46 +-
.../command-line-compiler/resource.md | 70 +-
.../command-line-compiler/rootnamespace.md | 2 +-
docs/visual-basic/whats-new/index.md | 2 +-
2644 files changed, 48958 insertions(+), 48958 deletions(-)
diff --git a/docs/architecture/blazor-for-web-forms-developers/config.md b/docs/architecture/blazor-for-web-forms-developers/config.md
index 8586d9f3ea1d4..ea637371f2dbe 100644
--- a/docs/architecture/blazor-for-web-forms-developers/config.md
+++ b/docs/architecture/blazor-for-web-forms-developers/config.md
@@ -144,7 +144,7 @@ Individual configuration settings can be read by specifying the configuration se
var mySetting = Configuration["section1:key0"];
```
-You can fetch entire configuration sections by using the method to retrieve a collection of keys at a specific location with a syntax similar to `GetSection("section1")` to retrieve the configuration for section1 from the earlier example.
+You can fetch entire configuration sections by using the method to retrieve a collection of keys at a specific location with a syntax similar to `GetSection("section1")` to retrieve the configuration for section1 from the earlier example.
## Strongly typed configuration
diff --git a/docs/architecture/cloud-native/infrastructure-resiliency-azure.md b/docs/architecture/cloud-native/infrastructure-resiliency-azure.md
index 71adb7a11543b..6415087e81685 100644
--- a/docs/architecture/cloud-native/infrastructure-resiliency-azure.md
+++ b/docs/architecture/cloud-native/infrastructure-resiliency-azure.md
@@ -89,7 +89,7 @@ We encouraged the best practice of implementing programmatic retry operations in
- *Azure Redis Cache.* The Redis StackExchange client uses a connection manager class that includes retries on failed attempts. The number of retries, specific retry policy and wait time are all configurable.
-- *Azure Service Bus.* The Service Bus client exposes a [RetryPolicy class](xref:Microsoft.ServiceBus.RetryPolicy) that can be configured with a back-off interval, retry count, and , which specifies the maximum time an operation can take. The default policy is nine maximum retry attempts with a 30-second backoff period between attempts.
+- *Azure Service Bus.* The Service Bus client exposes a [RetryPolicy class](xref:Microsoft.ServiceBus.RetryPolicy) that can be configured with a back-off interval, retry count, and , which specifies the maximum time an operation can take. The default policy is nine maximum retry attempts with a 30-second backoff period between attempts.
- *Azure SQL Database.* Retry support is provided when using the [Entity Framework Core](/ef/core/miscellaneous/connection-resiliency) library.
diff --git a/docs/architecture/maui/validation.md b/docs/architecture/maui/validation.md
index 9f4b0c2c2de5b..1b15db1575f84 100644
--- a/docs/architecture/maui/validation.md
+++ b/docs/architecture/maui/validation.md
@@ -105,7 +105,7 @@ public class EmailRule : IValidationRule
}
```
-The `Check` method returns a boolean indicating whether or not the value argument is a valid email address. This is achieved by searching the value argument for the first occurrence of the regular expression pattern specified in the `Regex` constructor. Whether the regular expression pattern has been found in the input string can be determined by checking the `value` against .
+The `Check` method returns a boolean indicating whether or not the value argument is a valid email address. This is achieved by searching the value argument for the first occurrence of the regular expression pattern specified in the `Regex` constructor. Whether the regular expression pattern has been found in the input string can be determined by checking the `value` against .
> [!NOTE]
> Property validation can sometimes involve dependent properties. An example of dependent properties is when the set of valid values for property A depends on the particular value that has been set in property B. To check that the value of property A is one of the allowed values would involve retrieving the value of property B. In addition, when the value of property B changes, property A would need to be revalidated.
@@ -224,7 +224,7 @@ The eShop multi-platform app notifies the user of any validation errors by highl
Command="{Binding ValidateCommand}" />
-
diff --git a/docs/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md b/docs/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md
index 164cedd628ffd..b775c7e5c38c7 100644
--- a/docs/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md
+++ b/docs/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md
@@ -66,9 +66,9 @@ The following diagram shows how Typed Clients are used with `IHttpClientFactory`
**Figure 8-4**. Using `IHttpClientFactory` with Typed Client classes.
-In the above image, a `ClientService` (used by a controller or client code) uses an `HttpClient` created by the registered `IHttpClientFactory`. This factory assigns an `HttpMessageHandler` from a pool to the `HttpClient`. The `HttpClient` can be configured with Polly's policies when registering the `IHttpClientFactory` in the DI container with the extension method .
+In the above image, a `ClientService` (used by a controller or client code) uses an `HttpClient` created by the registered `IHttpClientFactory`. This factory assigns an `HttpMessageHandler` from a pool to the `HttpClient`. The `HttpClient` can be configured with Polly's policies when registering the `IHttpClientFactory` in the DI container with the extension method .
-To configure the above structure, add in your application by installing the `Microsoft.Extensions.Http` NuGet package that includes the extension method for . This extension method registers the internal `DefaultHttpClientFactory` class to be used as a singleton for the interface `IHttpClientFactory`. It defines a transient configuration for the . This message handler ( object), taken from a pool, is used by the `HttpClient` returned from the factory.
+To configure the above structure, add in your application by installing the `Microsoft.Extensions.Http` NuGet package that includes the extension method for . This extension method registers the internal `DefaultHttpClientFactory` class to be used as a singleton for the interface `IHttpClientFactory`. It defines a transient configuration for the . This message handler ( object), taken from a pool, is used by the `HttpClient` returned from the factory.
In the next snippet, you can see how `AddHttpClient()` can be used to register Typed Clients (Service Agents) that need to use `HttpClient`.
diff --git a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md
index dd994461978f7..e14b5626a262a 100644
--- a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md
+++ b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md
@@ -50,7 +50,7 @@ A similar approach can be used in the entity's constructor, raising an exception
### Use validation attributes in the model based on data annotations
-Data annotations, like the Required or MaxLength attributes, can be used to configure EF Core database field properties, as explained in detail in the [Table mapping](infrastructure-persistence-layer-implementation-entity-framework-core.md#table-mapping) section, but [they no longer work for entity validation in EF Core](https://github.com/dotnet/efcore/issues/3680) (neither does the method), as they have done since EF 4.x in .NET Framework.
+Data annotations, like the Required or MaxLength attributes, can be used to configure EF Core database field properties, as explained in detail in the [Table mapping](infrastructure-persistence-layer-implementation-entity-framework-core.md#table-mapping) section, but [they no longer work for entity validation in EF Core](https://github.com/dotnet/efcore/issues/3680) (neither does the method), as they have done since EF 4.x in .NET Framework.
Data annotations and the interface can still be used for model validation during model binding, prior to the controller's actions invocation as usual, but that model is meant to be a ViewModel or DTO and that's an MVC or API concern not a domain model concern.
diff --git a/docs/architecture/microservices/multi-container-microservice-net-applications/background-tasks-with-ihostedservice.md b/docs/architecture/microservices/multi-container-microservice-net-applications/background-tasks-with-ihostedservice.md
index a427eff8e3040..d2119fb3b3250 100644
--- a/docs/architecture/microservices/multi-container-microservice-net-applications/background-tasks-with-ihostedservice.md
+++ b/docs/architecture/microservices/multi-container-microservice-net-applications/background-tasks-with-ihostedservice.md
@@ -41,7 +41,7 @@ SignalR is one example of an artifact using hosted services, but you can also us
You can basically offload any of those actions to a background task that implements `IHostedService`.
-The way you add one or multiple `IHostedServices` into your `WebHost` or `Host` is by registering them up through the extension method in an ASP.NET Core `WebHost` (or in a `Host` in .NET Core 2.1 and above). Basically, you have to register the hosted services within application startup in _Program.cs_.
+The way you add one or multiple `IHostedServices` into your `WebHost` or `Host` is by registering them up through the extension method in an ASP.NET Core `WebHost` (or in a `Host` in .NET Core 2.1 and above). Basically, you have to register the hosted services within application startup in _Program.cs_.
```csharp
//Other DI registrations;
diff --git a/docs/architecture/microservices/secure-net-microservices-web-applications/authorization-net-microservices-web-applications.md b/docs/architecture/microservices/secure-net-microservices-web-applications/authorization-net-microservices-web-applications.md
index d31c6d5694676..0580f0c96606f 100644
--- a/docs/architecture/microservices/secure-net-microservices-web-applications/authorization-net-microservices-web-applications.md
+++ b/docs/architecture/microservices/secure-net-microservices-web-applications/authorization-net-microservices-web-applications.md
@@ -94,13 +94,13 @@ As shown in the example, policies can be associated with different types of requ
In the previous example, the first AddPolicy call is just an alternative way of authorizing by role. If `[Authorize(Policy="AdministratorsOnly")]` is applied to an API, only users in the Administrator role will be able to access it.
-The second call demonstrates an easy way to require that a particular claim should be present for the user. The method also optionally takes expected values for the claim. If values are specified, the requirement is met only if the user has both a claim of the correct type and one of the specified values. If you're using the JWT bearer authentication middleware, all JWT properties will be available as user claims.
+The second call demonstrates an easy way to require that a particular claim should be present for the user. The method also optionally takes expected values for the claim. If values are specified, the requirement is met only if the user has both a claim of the correct type and one of the specified values. If you're using the JWT bearer authentication middleware, all JWT properties will be available as user claims.
The most interesting policy shown here is in the third `AddPolicy` method, because it uses a custom authorization requirement. By using custom authorization requirements, you can have a great deal of control over how authorization is performed. For this to work, you must implement these types:
- A Requirements type that derives from and that contains fields specifying the details of the requirement. In the example, this is an age field for the sample `MinimumAgeRequirement` type.
-- A handler that implements , where T is the type of that the handler can satisfy. The handler must implement the method, which checks whether a specified context that contains information about the user satisfies the requirement.
+- A handler that implements , where T is the type of that the handler can satisfy. The handler must implement the method, which checks whether a specified context that contains information about the user satisfies the requirement.
If the user meets the requirement, a call to `context.Succeed` will indicate that the user is authorized. If there are multiple ways that a user might satisfy an authorization requirement, multiple handlers can be created.
diff --git a/docs/architecture/microservices/secure-net-microservices-web-applications/index.md b/docs/architecture/microservices/secure-net-microservices-web-applications/index.md
index 65943faba86f3..b0469abe6dace 100644
--- a/docs/architecture/microservices/secure-net-microservices-web-applications/index.md
+++ b/docs/architecture/microservices/secure-net-microservices-web-applications/index.md
@@ -217,7 +217,7 @@ If you prefer to issue security tokens for local ASP.NET Core Identity users rat
- The storage mechanism for user information, such as [ASP.NET Core Identity](https://identityserver4.readthedocs.io/en/latest/quickstarts/0_overview.html) or an alternative.
-When you specify clients and resources for IdentityServer4 to use, you can pass an collection of the appropriate type to methods that take in-memory client or resource stores. Or for more complex scenarios, you can provide client or resource provider types via Dependency Injection.
+When you specify clients and resources for IdentityServer4 to use, you can pass an collection of the appropriate type to methods that take in-memory client or resource stores. Or for more complex scenarios, you can provide client or resource provider types via Dependency Injection.
A sample configuration for IdentityServer4 to use in-memory resources and clients provided by a custom IClientStore type might look like the following example:
diff --git a/docs/architecture/modern-web-apps-azure/develop-asp-net-core-mvc-apps.md b/docs/architecture/modern-web-apps-azure/develop-asp-net-core-mvc-apps.md
index 4cc5a6a499e9c..35de18d6eab35 100644
--- a/docs/architecture/modern-web-apps-azure/develop-asp-net-core-mvc-apps.md
+++ b/docs/architecture/modern-web-apps-azure/develop-asp-net-core-mvc-apps.md
@@ -533,7 +533,7 @@ In web-based authentication, there are typically up to five actions that may be
There are a number of common techniques for performing authentication in web applications. These are referred to as schemes. A given scheme will define actions for some or all of the above options. Some schemes only support a subset of actions, and may require a separate scheme to perform those it does not support. For example, the OpenId-Connect (OIDC) scheme doesn't support Sign-in or Sign-out, but is commonly configured to use Cookie authentication for this persistence.
-In your ASP.NET Core application, you can configure a `DefaultAuthenticateScheme` as well as optional specific schemes for each of the actions described above. For example, `DefaultChallengeScheme` and `DefaultForbidScheme`. Calling configures a number of aspects of the application and adds many required services. It also includes this call to configure the authentication scheme:
+In your ASP.NET Core application, you can configure a `DefaultAuthenticateScheme` as well as optional specific schemes for each of the actions described above. For example, `DefaultChallengeScheme` and `DefaultForbidScheme`. Calling configures a number of aspects of the application and adds many required services. It also includes this call to configure the authentication scheme:
```csharp
builder.Services.AddAuthentication(options =>
diff --git a/docs/architecture/modern-web-apps-azure/work-with-data-in-asp-net-core-apps.md b/docs/architecture/modern-web-apps-azure/work-with-data-in-asp-net-core-apps.md
index 7dde778f799d1..73e05819fb223 100644
--- a/docs/architecture/modern-web-apps-azure/work-with-data-in-asp-net-core-apps.md
+++ b/docs/architecture/modern-web-apps-azure/work-with-data-in-asp-net-core-apps.md
@@ -278,7 +278,7 @@ The first DbContext is the `_catalogContext` and the second DbContext is within
While EF Core is a great choice for managing persistence, and for the most part encapsulates database details from application developers, it isn't the only choice. Another popular open-source alternative is [Dapper](https://github.com/StackExchange/Dapper), a so-called micro-ORM. A micro-ORM is a lightweight, less full-featured tool for mapping objects to data structures. In the case of Dapper, its design goals focus on performance, rather than fully encapsulating the underlying queries it uses to retrieve and update data. Because it doesn't abstract SQL from the developer, Dapper is "closer to the metal" and lets developers write the exact queries they want to use for a given data access operation.
-EF Core has two significant features it provides which separate it from Dapper but also add to its performance overhead. The first is the translation from LINQ expressions into SQL. These translations are cached, but even so there is overhead in performing them the first time. The second is change tracking on entities (so that efficient update statements can be generated). This behavior can be turned off for specific queries by using the extension. EF Core also generates SQL queries that usually are very efficient and in any case perfectly acceptable from a performance standpoint, but if you need fine control over the precise query to be executed, you can pass in custom SQL (or execute a stored procedure) using EF Core, too. In this case, Dapper still outperforms EF Core, but only very slightly. Current performance benchmark data for a variety of data access methods can be found on [the Dapper site](https://github.com/StackExchange/Dapper).
+EF Core has two significant features it provides which separate it from Dapper but also add to its performance overhead. The first is the translation from LINQ expressions into SQL. These translations are cached, but even so there is overhead in performing them the first time. The second is change tracking on entities (so that efficient update statements can be generated). This behavior can be turned off for specific queries by using the extension. EF Core also generates SQL queries that usually are very efficient and in any case perfectly acceptable from a performance standpoint, but if you need fine control over the precise query to be executed, you can pass in custom SQL (or execute a stored procedure) using EF Core, too. In this case, Dapper still outperforms EF Core, but only very slightly. Current performance benchmark data for a variety of data access methods can be found on [the Dapper site](https://github.com/StackExchange/Dapper).
To see how the syntax for Dapper varies from EF Core, consider these two versions of the same method for retrieving a list of items:
diff --git a/docs/azure/sdk/aspnetcore-guidance.md b/docs/azure/sdk/aspnetcore-guidance.md
index 7bf1fc58e02cb..f1a2c37666c9d 100644
--- a/docs/azure/sdk/aspnetcore-guidance.md
+++ b/docs/azure/sdk/aspnetcore-guidance.md
@@ -45,7 +45,7 @@ Complete the following steps to register the services you need:
dotnet add package Azure.Messaging.ServiceBus
```
-3. In the `Program.cs` file of your app, invoke the extension method from the `Microsoft.Extensions.Azure` library to register a client to communicate with each Azure service. Some client libraries provide additional [subclients](https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-subclients) for specific subgroups of Azure service functionality. You can register such subclients for dependency injection via the extension method.
+3. In the `Program.cs` file of your app, invoke the extension method from the `Microsoft.Extensions.Azure` library to register a client to communicate with each Azure service. Some client libraries provide additional [subclients](https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-subclients) for specific subgroups of Azure service functionality. You can register such subclients for dependency injection via the extension method.
:::code language="csharp" source="snippets/aspnetcore-guidance/BlazorSample/Program.cs" range="11-30" highlight="4-7,13-15":::
@@ -80,7 +80,7 @@ Use the [Azure Identity](/dotnet/api/overview/azure/identity-readme) library for
dotnet add package Azure.Identity
```
-1. In the `Program.cs` file of your app, invoke the extension method from the `Microsoft.Extensions.Azure` library to set a shared `DefaultAzureCredential` instance for all registered Azure service clients:
+1. In the `Program.cs` file of your app, invoke the extension method from the `Microsoft.Extensions.Azure` library to set a shared `DefaultAzureCredential` instance for all registered Azure service clients:
:::code language="csharp" source="snippets/aspnetcore-guidance/BlazorSample/Program.cs" range="11-30" :::
@@ -126,7 +126,7 @@ You may want to change default Azure client configurations globally or for a spe
## Configure logging
-The Azure SDK for .NET client libraries can log client library operations to monitor requests and responses to Azure services. Client libraries can also log a variety of other events, including retries, token retrieval, and service-specific events from various clients. When you register an Azure SDK client using the extension method, the is registered with the dependency injection container. The `AzureEventSourceLogForwarder` forwards log messages from Azure SDK event sources to to enables you to use the standard ASP.NET Core logging configuration for logging.
+The Azure SDK for .NET client libraries can log client library operations to monitor requests and responses to Azure services. Client libraries can also log a variety of other events, including retries, token retrieval, and service-specific events from various clients. When you register an Azure SDK client using the extension method, the is registered with the dependency injection container. The `AzureEventSourceLogForwarder` forwards log messages from Azure SDK event sources to to enables you to use the standard ASP.NET Core logging configuration for logging.
The following table depicts how the Azure SDK for .NET `EventLevel` maps to the ASP.NET Core `LogLevel`. For more information on these topics and other scenarios, see [Logging with the Azure SDK for .NET](logging.md) and [Dependency injection with the Azure SDK for .NET](dependency-injection.md).
diff --git a/docs/azure/sdk/authentication/best-practices.md b/docs/azure/sdk/authentication/best-practices.md
index 15b889fd623ff..4dd61c7b792fa 100644
--- a/docs/azure/sdk/authentication/best-practices.md
+++ b/docs/azure/sdk/authentication/best-practices.md
@@ -45,7 +45,7 @@ The recommended credential reuse strategy differs by .NET application type.
# [ASP.NET Core](#tab/aspdotnet)
-To implement credential reuse, use the method from `Microsoft.Extensions.Azure`. Consider an ASP.NET Core app hosted on Azure App Service in both production and staging environments. Environment variable `ASPNETCORE_ENVIRONMENT` is set to either `Production` or `Staging` to differentiate between these two non-development environments. In both production and staging, the user-assigned variant of `ManagedIdentityCredential` is used to authenticate the Key Vault Secrets and Blob Storage clients.
+To implement credential reuse, use the method from `Microsoft.Extensions.Azure`. Consider an ASP.NET Core app hosted on Azure App Service in both production and staging environments. Environment variable `ASPNETCORE_ENVIRONMENT` is set to either `Production` or `Staging` to differentiate between these two non-development environments. In both production and staging, the user-assigned variant of `ManagedIdentityCredential` is used to authenticate the Key Vault Secrets and Blob Storage clients.
When the app runs on a local development machine, where `ASPNETCORE_ENVIRONMENT` is set to `Development`, a chained sequence of developer tool credentials is used instead. This approach ensures environment-appropriate credentials are used, enhancing security and simplifying credential management.
@@ -65,7 +65,7 @@ In non-ASP.NET Core apps, credential reuse is accomplished by passing the same c
If you use an Azure Identity library credential outside the context of [an Azure SDK client library that depends on Azure Core](../packages.md#libraries-using-azurecore), it becomes your responsibility to manage [token lifetime](/entra/identity-platform/access-tokens#token-lifetime) and caching behavior in your app.
-The property on `AccessToken`, which provides a hint to consumers as to when token refresh can be attempted, will be automatically used by Azure SDK client libraries that depend on the Azure Core library to refresh the token. For direct usage of Azure Identity library [credentials that support token caching](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/samples/TokenCache.md#credentials-supporting-token-caching), the underlying MSAL cache automatically refreshes proactively when the `RefreshOn` time occurs. This design allows the client code to call `GetToken` each time a token is needed and delegate the refresh to the library.
+The property on `AccessToken`, which provides a hint to consumers as to when token refresh can be attempted, will be automatically used by Azure SDK client libraries that depend on the Azure Core library to refresh the token. For direct usage of Azure Identity library [credentials that support token caching](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/samples/TokenCache.md#credentials-supporting-token-caching), the underlying MSAL cache automatically refreshes proactively when the `RefreshOn` time occurs. This design allows the client code to call `GetToken` each time a token is needed and delegate the refresh to the library.
To only call `GetToken` when necessary, observe the `RefreshOn` date and proactively attempt to refresh the token after that time. The specific implementation is up to the customer.
@@ -86,7 +86,7 @@ The Azure Identity library for .NET allows you to authenticate via managed ident
- **When to use:** For production scenarios where resilience is important
- **How to activate:** Take one of the following approaches:
- Use `DefaultAzureCredential` with environment variable `AZURE_TOKEN_CREDENTIALS` set to `ManagedIdentityCredential`
-
+
> [!IMPORTANT]
> This `DefaultAzureCredential` approach only operates in resilient mode when using `Azure.Identity` package version 1.16.0 or later. In earlier versions, this approach operates in "fail fast" mode.
@@ -94,7 +94,7 @@ The Azure Identity library for .NET allows you to authenticate via managed ident
- Use `ManagedIdentityCredential` directly
- **How it works:** The time interval between retries starts at 0.8 seconds, and a maximum of five retries are attempted with exponential backoff, by default. This mode is optimized for resilience but introduces potentially unwanted delays in the development inner loop.
- To change the default retry settings, use the property on `DefaultAzureCredentialOptions` or `ManagedIdentityCredentialOptions`. For example, retry a maximum of three times, with a starting interval of 0.5 seconds:
+ To change the default retry settings, use the property on `DefaultAzureCredentialOptions` or `ManagedIdentityCredentialOptions`. For example, retry a maximum of three times, with a starting interval of 0.5 seconds:
:::code language="csharp" source="../snippets/authentication/best-practices/CCA/Program.cs" id="snippet_retries" highlight="5-9":::
diff --git a/docs/azure/sdk/authentication/create-token-credentials-from-configuration.md b/docs/azure/sdk/authentication/create-token-credentials-from-configuration.md
index 58112c00ed7bd..48bfa7b2f5dba 100644
--- a/docs/azure/sdk/authentication/create-token-credentials-from-configuration.md
+++ b/docs/azure/sdk/authentication/create-token-credentials-from-configuration.md
@@ -25,7 +25,7 @@ The following credentials can be created via configuration:
## Configure Azure credentials
-Azure service clients registered with the method are automatically configured with an instance of `DefaultAzureCredential` if no explicit credential is supplied via the extension method. You can also override the global `DefaultAzureCredential` using credential values from configuration files when registering a client to create a specific credential:
+Azure service clients registered with the method are automatically configured with an instance of `DefaultAzureCredential` if no explicit credential is supplied via the extension method. You can also override the global `DefaultAzureCredential` using credential values from configuration files when registering a client to create a specific credential:
```csharp
builder.Services.AddAzureClients(clientBuilder =>
@@ -114,7 +114,7 @@ The resource ID takes the form
{
"credential": "managedidentity",
"managedIdentityObjectId": ""
-}
+}
```
> [!IMPORTANT]
diff --git a/docs/azure/sdk/authentication/credential-chains.md b/docs/azure/sdk/authentication/credential-chains.md
index 944f5c06fe996..543e7a608c40f 100644
--- a/docs/azure/sdk/authentication/credential-chains.md
+++ b/docs/azure/sdk/authentication/credential-chains.md
@@ -88,7 +88,7 @@ In the preceding code sample, `EnvironmentCredential`, `ManagedIdentityCredentia
:::image type="content" source="../media/mermaidjs/default-azure-credential-excludes.svg" alt-text="DefaultAzureCredential using Excludes properties":::
> [!NOTE]
-> `InteractiveBrowserCredential` is excluded by default and therefore isn't shown in the preceding diagram. To include `InteractiveBrowserCredential`, either pass `true` to constructor or set property to `false`.
+> `InteractiveBrowserCredential` is excluded by default and therefore isn't shown in the preceding diagram. To include `InteractiveBrowserCredential`, either pass `true` to constructor or set property to `false`.
As more `Exclude`-prefixed properties are set to `true` (credential exclusions are configured), the advantages of using `DefaultAzureCredential` diminish. In such cases, `ChainedTokenCredential` is a better choice and requires less code. To illustrate, these two code samples behave the same way:
diff --git a/docs/azure/sdk/authentication/local-development-broker.md b/docs/azure/sdk/authentication/local-development-broker.md
index 6a2b9376a4652..42af9a51e69e1 100644
--- a/docs/azure/sdk/authentication/local-development-broker.md
+++ b/docs/azure/sdk/authentication/local-development-broker.md
@@ -104,7 +104,7 @@ The Azure Identity library provide interactive brokered authentication using [!TIP]
> View the [complete sample app code](https://github.com/dotnet/docs/tree/main/docs/azure/sdk/snippets/authentication/brokered) in the .NET docs GitHub repository.
-In the preceding example, property is set to `true`, which opts into a silent, brokered authentication flow with the default system account. In this way, the user doesn't have to repeatedly select the same account. If silent, brokered authentication fails, or `UseDefaultBrokerAccount` is set to `false`, `InteractiveBrowserCredential` falls back to interactive, brokered authentication.
+In the preceding example, property is set to `true`, which opts into a silent, brokered authentication flow with the default system account. In this way, the user doesn't have to repeatedly select the same account. If silent, brokered authentication fails, or `UseDefaultBrokerAccount` is set to `false`, `InteractiveBrowserCredential` falls back to interactive, brokered authentication.
:::zone target="docs" pivot="os-windows"
diff --git a/docs/azure/sdk/configure-proxy.md b/docs/azure/sdk/configure-proxy.md
index 5d857c56c62c9..804bfde41876c 100644
--- a/docs/azure/sdk/configure-proxy.md
+++ b/docs/azure/sdk/configure-proxy.md
@@ -1,5 +1,5 @@
---
-title: Configure a proxy when using the Azure SDK for .NET
+title: Configure a proxy when using the Azure SDK for .NET
description: Learn different approaches for configuring a proxy for use with the Azure SDK for .NET client libraries.
ms.topic: concept-article
ms.custom: devx-track-dotnet, engagement-fy23
@@ -20,7 +20,7 @@ The proxy can be configured via code or via an environment variable. The approac
To programmatically configure a proxy, complete the following steps:
1. Create an object whose `Proxy` property is set.
-1. Create a service client options object whose property is set to an `HttpClientTransport` object accepting the `HttpClientHandler` instance.
+1. Create a service client options object whose property is set to an `HttpClientTransport` object accepting the `HttpClientHandler` instance.
1. Pass the service client options object to the service client constructor.
Using the Azure Key Vault Secrets library as an example, you'd have the following code:
diff --git a/docs/azure/sdk/dependency-injection.md b/docs/azure/sdk/dependency-injection.md
index fb1f859f675d3..c4af08efc5556 100644
--- a/docs/azure/sdk/dependency-injection.md
+++ b/docs/azure/sdk/dependency-injection.md
@@ -39,7 +39,7 @@ dotnet add package OpenAI
A service client is the entry point to the API for an Azure service – from it, library users can invoke all operations the service provides and can easily implement the most common scenarios. Where it will simplify an API's design, groups of service calls can be organized around smaller subclient types. For example, `ServiceBusClient` can register additional `ServiceBusSender` subclients for publishing messages or `ServiceBusReceiver` subclients for consuming messages.
-In the *Program.cs* file, invoke the extension method to register a client for each service. The following code samples provide guidance on application builders from the `Microsoft.AspNetCore.Builder` and `Microsoft.Extensions.Hosting` namespaces.
+In the *Program.cs* file, invoke the extension method to register a client for each service. The following code samples provide guidance on application builders from the `Microsoft.AspNetCore.Builder` and `Microsoft.Extensions.Hosting` namespaces.
### [WebApplicationBuilder](#tab/web-app-builder)
@@ -57,10 +57,10 @@ In the *Program.cs* file, invoke the , and , respectively. The `Uri`- and `string`-typed arguments are passed. To avoid specifying these URLs explicitly, see the [Store configuration separately from code](#store-configuration-separately-from-code) section.
+* Key Vault Secrets, Blob Storage, and Service Bus clients are registered using the , and , respectively. The `Uri`- and `string`-typed arguments are passed. To avoid specifying these URLs explicitly, see the [Store configuration separately from code](#store-configuration-separately-from-code) section.
* Each registered client automatically uses for `TokenCredential` unless you configure a different type of credential (for example, using `WithCredential`).
* Service Bus subclients are registered for each queue on the service using the subclient and corresponding options types. The queue names for the subclients are retrieved using a separate method outside of the service registration because the `GetQueuesAsync` method must be run asynchronously.
-* A `ResponsesClient` is registered using a custom client factory via the method, which provides control over how a client instance is created. Custom client factories are useful in the following cases:
+* A `ResponsesClient` is registered using a custom client factory via the method, which provides control over how a client instance is created. Custom client factories are useful in the following cases:
* You need to use other dependencies during the client construction.
* A registration extension method doesn't exist for the service client you want to register.
@@ -209,7 +209,7 @@ In the preceding JSON sample:
## Configure multiple service clients with different names
-Imagine you have two storage accounts: one for private information and another for public information. Your app transfers data from the public to the private storage account after some operation. You need to have two storage service clients. To differentiate those two clients, use the extension method:
+Imagine you have two storage accounts: one for private information and another for public information. Your app transfers data from the public to the private storage account after some operation. You need to have two storage service clients. To differentiate those two clients, use the extension method:
```csharp
builder.Services.AddAzureClients(clientBuilder =>
@@ -223,7 +223,7 @@ builder.Services.AddAzureClients(clientBuilder =>
});
```
-Using an ASP.NET Core controller as an example, access the named service client using the interface:
+Using an ASP.NET Core controller as an example, access the named service client using the interface:
```csharp
public class HomeController : Controller
diff --git a/docs/azure/sdk/logging.md b/docs/azure/sdk/logging.md
index 30313d1038b86..85572897242ae 100644
--- a/docs/azure/sdk/logging.md
+++ b/docs/azure/sdk/logging.md
@@ -64,7 +64,7 @@ The SDK includes the extension method:
+1. In *Program.cs*, register the Azure SDK library's client via a call to the extension method:
```csharp
using Azure.Identity;
using Microsoft.Extensions.Azure;
-
+
// code omitted for brevity
-
+
builder.Services.AddAzureClients(azureBuilder =>
{
azureBuilder.AddServiceBusClient(
@@ -177,7 +177,7 @@ In these scenarios, complete the following steps:
:::code language="csharp" source="snippets/logging/Program.cs" id="RegisterServiceWithDI" highlight="8":::
-1. Fetch the log forwarder service from the DI container and invoke its method. For example, using constructor injection in an ASP.NET Core Razor Pages page model class:
+1. Fetch the log forwarder service from the DI container and invoke its method. For example, using constructor injection in an ASP.NET Core Razor Pages page model class:
:::code language="csharp" source="snippets/logging/Pages/Index.cshtml.cs" id="FetchServiceAndStart" highlight="6-7":::
@@ -225,12 +225,12 @@ When troubleshooting unexpected behavior with a client library, it's helpful to
By default, logging of the aforementioned content is disabled. To enable logging of the HTTP request and response bodies, complete the following steps:
-1. Set the client options object's property to `true`, and pass the options object to the client's constructor. For example, to log HTTP requests and responses for the Azure Key Vault Secrets library:
+1. Set the client options object's property to `true`, and pass the options object to the client's constructor. For example, to log HTTP requests and responses for the Azure Key Vault Secrets library:
```csharp
var clientOptions = new SecretClientOptions
{
- Diagnostics =
+ Diagnostics =
{
IsLoggingContentEnabled = true
}
diff --git a/docs/azure/sdk/pagination.md b/docs/azure/sdk/pagination.md
index 7fd7441b64bf7..c6d160504979c 100644
--- a/docs/azure/sdk/pagination.md
+++ b/docs/azure/sdk/pagination.md
@@ -7,7 +7,7 @@ ms.custom: devx-track-dotnet
# Pagination with the Azure SDK for .NET
-In this article, you'll learn how to use the Azure SDK for .NET pagination functionality to work efficiently and productively with large data sets. Pagination is the act of dividing large data sets into pages, making it easier for the consumer to iterate through smaller amounts of data. Starting with C# 8, you can create and consume streams asynchronously using [Asynchronous (async) streams](../../csharp/language-reference/statements/iteration-statements.md#await-foreach). Async streams are based on the interface. The Azure SDK for .NET exposes an implementation of `IAsyncEnumerable` with its `AsyncPageable` class.
+In this article, you'll learn how to use the Azure SDK for .NET pagination functionality to work efficiently and productively with large data sets. Pagination is the act of dividing large data sets into pages, making it easier for the consumer to iterate through smaller amounts of data. Starting with C# 8, you can create and consume streams asynchronously using [Asynchronous (async) streams](../../csharp/language-reference/statements/iteration-statements.md#await-foreach). Async streams are based on the interface. The Azure SDK for .NET exposes an implementation of `IAsyncEnumerable` with its `AsyncPageable` class.
All of the samples in this article rely on the following NuGet packages:
@@ -29,8 +29,8 @@ Clients instantiated from the Azure SDK for .NET can return the following pageab
| Type | Description |
|----------------------------------------------------|----------------------------------------------------------|
-| [`Pageable`](xref:Azure.Pageable%601) | A collection of values retrieved in pages |
-| [`AsyncPageable`](xref:Azure.AsyncPageable%601) | A collection of values asynchronously retrieved in pages |
+| [`Pageable`](xref:Azure.Pageable`1) | A collection of values retrieved in pages |
+| [`AsyncPageable`](xref:Azure.AsyncPageable`1) | A collection of values asynchronously retrieved in pages |
Most of the samples in this article are asynchronous, using variations of the `AsyncPageable` type. Using asynchronous programming for I/O-bound operations is ideal. A perfect use case is using the async APIs from the Azure SDK for .NET as these operations represent HTTP/S network calls.
@@ -42,7 +42,7 @@ To iterate over an `AsyncPageable` using the [`await foreach`](/dotnet/csharp
In the preceding C# code:
-- The method is invoked and returns an `AsyncPageable` object.
+- The method is invoked and returns an `AsyncPageable` object.
- In an `await foreach` loop, each `SecretProperties` is asynchronously yielded.
- As each `secret` is materialized, its `Name` is written to the console.
@@ -54,27 +54,27 @@ To iterate over an `AsyncPageable` when the `await foreach` syntax isn't avai
In the preceding C# code:
-- The method is invoked, and returns an `AsyncPageable` object.
-- The method is invoked, returning an `IAsyncEnumerator`.
-- The method is invoked repeatedly until there are no items to return.
+- The method is invoked, and returns an `AsyncPageable` object.
+- The method is invoked, returning an `IAsyncEnumerator`.
+- The method is invoked repeatedly until there are no items to return.
## Iterate over `AsyncPageable` pages
-If you want control over receiving pages of values from the service, use the [`AsyncPageable.AsPages`](xref:Azure.AsyncPageable%601.AsPages%2A) method:
+If you want control over receiving pages of values from the service, use the [`AsyncPageable.AsPages`](xref:Azure.AsyncPageable`1.AsPages%2A) method:
:::code source="snippets/pagination/Program.cs" range="67-81":::
In the preceding C# code:
-- The method is invoked and returns an `AsyncPageable` object.
-- The method is invoked and returns an `IAsyncEnumerable>`.
+- The method is invoked and returns an `AsyncPageable` object.
+- The method is invoked and returns an `IAsyncEnumerable>`.
- Each page is iterated over asynchronously, using `await foreach`.
-- Each page has a set of , which represents an `IReadOnlyList` that's iterated over with a synchronous `foreach`.
-- Each page also contains a , which can be used to request the next page.
+- Each page has a set of , which represents an `IReadOnlyList` that's iterated over with a synchronous `foreach`.
+- Each page also contains a , which can be used to request the next page.
## Use `System.Linq.Async` with `AsyncPageable`
-The [`System.Linq.Async`](https://www.nuget.org/packages/System.Linq.Async) package provides a set of [LINQ](../../standard/linq/index.md) methods that operate on type. Because `AsyncPageable` implements [`IAsyncEnumerable`](xref:System.Collections.Generic.IAsyncEnumerable%601), you can use `System.Linq.Async` to query and transform the data.
+The [`System.Linq.Async`](https://www.nuget.org/packages/System.Linq.Async) package provides a set of [LINQ](../../standard/linq/index.md) methods that operate on type. Because `AsyncPageable` implements [`IAsyncEnumerable`](xref:System.Collections.Generic.IAsyncEnumerable`1), you can use `System.Linq.Async` to query and transform the data.
### Convert to a `List`
@@ -84,7 +84,7 @@ Use `ToListAsync` to convert an `AsyncPageable` to a `List`. This method m
In the preceding C# code:
-- The method is invoked and returns an `AsyncPageable` object.
+- The method is invoked and returns an `AsyncPageable` object.
- The `ToListAsync` method is awaited, which materializes a new `List` instance.
### Take the first N elements
@@ -113,7 +113,7 @@ int expensiveSecretCount =
## As an observable sequence
-The [`System.Linq.Async`](https://www.nuget.org/packages/System.Linq.Async) package is primarily used to provide observer pattern capabilities over `IAsyncEnumerable` sequences. Asynchronous streams are pull-based. As their items are iterated over, the next available item is *pulled*. This approach is in juxtaposition with the observer pattern, which is push-based. As items become available, they're *pushed* to subscribers who act as observers. The `System.Linq.Async` package provides the `ToObservable` extension method that lets you convert an `IAsyncEnumerable` to an [`IObservable`](xref:System.IObservable%601).
+The [`System.Linq.Async`](https://www.nuget.org/packages/System.Linq.Async) package is primarily used to provide observer pattern capabilities over `IAsyncEnumerable` sequences. Asynchronous streams are pull-based. As their items are iterated over, the next available item is *pulled*. This approach is in juxtaposition with the observer pattern, which is push-based. As items become available, they're *pushed* to subscribers who act as observers. The `System.Linq.Async` package provides the `ToObservable` extension method that lets you convert an `IAsyncEnumerable` to an [`IObservable`](xref:System.IObservable`1).
Imagine an `IObserver` implementation:
@@ -125,7 +125,7 @@ You could consume the `ToObservable` extension method as follows:
In the preceding C# code:
-- The method is invoked and returns an `AsyncPageable` object.
+- The method is invoked and returns an `AsyncPageable` object.
- The `ToObservable()` method is called on the `AsyncPageable` instance, returning an `IObservable`.
- The `observable` is subscribed to, passing in the observer implementation, returning the subscription to the caller.
- The subscription is an `IDisposable`. When it's disposed, the subscription ends.
diff --git a/docs/azure/sdk/protocol-convenience-methods.md b/docs/azure/sdk/protocol-convenience-methods.md
index e2974c8333b4a..dee3cac7b5be0 100644
--- a/docs/azure/sdk/protocol-convenience-methods.md
+++ b/docs/azure/sdk/protocol-convenience-methods.md
@@ -34,7 +34,7 @@ The following table compares some of the request and response types used by prot
| Request body | | |
| Advanced request options | | |
| Raw HTTP response | | |
-| Return type with output model | | |
+| Return type with output model | | |
The sections ahead provide implementation examples of these concepts.
@@ -69,7 +69,7 @@ The preceding code demonstrates the following `Azure.Core` protocol method patte
1. **Invoke the protocol method**, using a `RequestContext` object to configure request options.
1. **Handle the response** by reading:
- The HTTP status code from the `Response` object to determine success or failure.
- - Data from the `Response` object's content into a [dynamic](../../csharp/advanced-topics/interop/using-type-dynamic.md) type using . For more information, see [Announcing dynamic JSON in the Azure Core library for .NET](https://devblogs.microsoft.com/azure-sdk/dynamic-json-in-azure-core/).
+ - Data from the `Response` object's content into a [dynamic](../../csharp/advanced-topics/interop/using-type-dynamic.md) type using . For more information, see [Announcing dynamic JSON in the Azure Core library for .NET](https://devblogs.microsoft.com/azure-sdk/dynamic-json-in-azure-core/).
> [!NOTE]
> The preceding code configures the [ErrorOptions.NoThrow](/dotnet/api/azure.erroroptions) behavior. This option prevents non-success service responses status codes from throwing an exception, which means the app code should manually handle the response status code checks.
diff --git a/docs/azure/sdk/unit-testing-mocking.md b/docs/azure/sdk/unit-testing-mocking.md
index 23552038852cb..4ce3e07eaa91e 100644
--- a/docs/azure/sdk/unit-testing-mocking.md
+++ b/docs/azure/sdk/unit-testing-mocking.md
@@ -69,7 +69,7 @@ KeyVaultSecret keyVaultSecret = SecretModelFactory.KeyVaultSecret(
```
> [!NOTE]
-> Some input models have read-only properties that are only populated when the model is returned by the service. In this case, a model factory method will be available that allows setting these properties. For example, .
+> Some input models have read-only properties that are only populated when the model is returned by the service. In this case, a model factory method will be available that allows setting these properties. For example, .
```csharp
// CreatedOn is a read-only property and can only be
@@ -98,7 +98,7 @@ The `Response` class is abstract, which means there are many members to override
---
-Some services also support using the type, which is a class that contains a model and the HTTP response that returned it. To create a test instance of `Response`, use the static `Response.FromValue` method:
+Some services also support using the type, which is a class that contains a model and the HTTP response that returned it. To create a test instance of `Response`, use the static `Response.FromValue` method:
## [Non-library](#tab/csharp)
@@ -116,7 +116,7 @@ Some services also support using the type, which is a
### Explore paging
-The class is used as a building block in service methods that invoke operations returning results in multiple pages. The `Page` is rarely returned from APIs directly but is useful to create the `AsyncPageable` and `Pageable` instances in the next section. To create a `Page