From cf970e6e66b3c70ec7d6bf2f2ed03ce429f7b9fa Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Mon, 15 Apr 2024 14:17:46 -0700
Subject: [PATCH 01/84] Update package index with latest published versions
(#40487)
---
docs/azure/includes/dotnet-all.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index e13249f2c9683..fd773c988a87a 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -343,7 +343,7 @@
| Common | NuGet [2.2.1](https://www.nuget.org/packages/Microsoft.Azure.Common/2.2.1) | | |
| Common - Dependencies | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Common.Dependencies/1.0.0) | | |
| Computer Vision | NuGet [7.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.ComputerVision/7.0.1) | | GitHub [7.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.ComputerVision_6.0.0-preview.1/sdk/cognitiveservices/Vision.ComputerVision) |
-| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.39.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.39.0-preview.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
+| Cosmos DB | NuGet [3.39.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.39.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.39.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
| Custom Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomImageSearch) |
| Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | |
| Custom Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomSearch) |
@@ -433,7 +433,7 @@
| Functions extension for Azure Mobile Apps | NuGet [3.0.0-beta8](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MobileApps/3.0.0-beta8) | | GitHub [3.0.0-beta8](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0-beta8/src/WebJobs.Extensions.MobileApps) |
| Functions extension for Azure SQL and SQL Server | NuGet [3.0.534](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/3.0.534) | | |
| Functions extension for Blob Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.2.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | |
-| Functions extension for Cosmos DB | NuGet [4.6.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.6.0) | | GitHub [4.6.0](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) |
+| Functions extension for Cosmos DB | NuGet [4.6.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.6.1) | | GitHub [4.6.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) |
| Functions extension for DocumentDB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) |
| Functions extension for Durable Task Framework | NuGet [2.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.13.0) NuGet [3.0.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/functions) | GitHub [2.13.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
| Functions extension for Durable Task Framework - isolated worker | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.1.0) NuGet [1.2.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.2.0-rc.1) | | |
From 46ab9276837f0160bf094bac5317b0511026d46e Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Mon, 15 Apr 2024 16:24:21 -0700
Subject: [PATCH 02/84] Update package index with latest published versions
(#40490)
---
docs/azure/includes/dotnet-all.md | 4 ++--
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index fd773c988a87a..3368d456239ee 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -9,7 +9,7 @@
| Azure Remote Rendering | NuGet [1.1.0](https://www.nuget.org/packages/Azure.MixedReality.RemoteRendering/1.1.0) | [docs](/dotnet/api/overview/azure/MixedReality.RemoteRendering-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.RemoteRendering_1.1.0/sdk/remoterendering/Azure.MixedReality.RemoteRendering/) |
| Code Transparency | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Security.CodeTransparency/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Security.CodeTransparency-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.CodeTransparency_1.0.0-beta.2/sdk/confidentialledger/Azure.Security.CodeTransparency/) |
| Communication Call Automation | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.1.0) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.1.0/sdk/communication/Azure.Communication.CallAutomation/) |
-| Communication Chat | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Communication.Chat/1.2.0) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.2.0/sdk/communication/Azure.Communication.Chat/) |
+| Communication Chat | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Communication.Chat/1.3.0) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.3.0/sdk/communication/Azure.Communication.Chat/) |
| Communication Common | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Communication.Common/1.3.0) NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Common/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Common-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_1.3.0/sdk/communication/Azure.Communication.Common/) GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_2.0.0-beta.1/sdk/communication/Azure.Communication.Common/) |
| Communication Email | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Email/1.0.1) | [docs](/dotnet/api/overview/azure/Communication.Email-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.0.1/sdk/communication/Azure.Communication.Email/) |
| Communication Identity | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Communication.Identity/1.3.1) | [docs](/dotnet/api/overview/azure/Communication.Identity-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Identity_1.3.1/sdk/communication/Azure.Communication.Identity/) |
@@ -343,7 +343,7 @@
| Common | NuGet [2.2.1](https://www.nuget.org/packages/Microsoft.Azure.Common/2.2.1) | | |
| Common - Dependencies | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Common.Dependencies/1.0.0) | | |
| Computer Vision | NuGet [7.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.ComputerVision/7.0.1) | | GitHub [7.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.ComputerVision_6.0.0-preview.1/sdk/cognitiveservices/Vision.ComputerVision) |
-| Cosmos DB | NuGet [3.39.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.39.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.39.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
+| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.40.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.40.0-preview.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
| Custom Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomImageSearch) |
| Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | |
| Custom Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomSearch) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index a9daa9547552b..25423858bb6bb 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -9,7 +9,7 @@
| Azure Remote Rendering | NuGet [1.1.0](https://www.nuget.org/packages/Azure.MixedReality.RemoteRendering/1.1.0) | [docs](/dotnet/api/overview/azure/MixedReality.RemoteRendering-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.RemoteRendering_1.1.0/sdk/remoterendering/Azure.MixedReality.RemoteRendering/) |
| Code Transparency | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Security.CodeTransparency/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Security.CodeTransparency-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.CodeTransparency_1.0.0-beta.2/sdk/confidentialledger/Azure.Security.CodeTransparency/) |
| Communication Call Automation | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.1.0) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.1.0/sdk/communication/Azure.Communication.CallAutomation/) |
-| Communication Chat | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Communication.Chat/1.2.0) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.2.0/sdk/communication/Azure.Communication.Chat/) |
+| Communication Chat | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Communication.Chat/1.3.0) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.3.0/sdk/communication/Azure.Communication.Chat/) |
| Communication Common | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Communication.Common/1.3.0) NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Common/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Common-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_1.3.0/sdk/communication/Azure.Communication.Common/) GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_2.0.0-beta.1/sdk/communication/Azure.Communication.Common/) |
| Communication Email | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Email/1.0.1) | [docs](/dotnet/api/overview/azure/Communication.Email-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.0.1/sdk/communication/Azure.Communication.Email/) |
| Communication Identity | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Communication.Identity/1.3.1) | [docs](/dotnet/api/overview/azure/Communication.Identity-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Identity_1.3.1/sdk/communication/Azure.Communication.Identity/) |
From 42c4ef4d2c81a534febcd2325109bf01f5ec0739 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Mon, 15 Apr 2024 18:21:12 -0700
Subject: [PATCH 03/84] Update package index with latest published versions
(#40493)
---
docs/azure/includes/dotnet-all.md | 20 ++++++++++----------
docs/azure/includes/dotnet-new.md | 16 ++++++++--------
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 3368d456239ee..5dc8c864e6971 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -76,12 +76,12 @@
| Schema Registry | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.3.0) NuGet [1.4.0-beta.2](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.4.0-beta.2) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.3.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) GitHub [1.4.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.4.0-beta.2/sdk/schemaregistry/Azure.Data.SchemaRegistry/) |
| Schema Registry - Avro | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.1/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) |
| Service Bus | NuGet [7.17.5](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.17.5) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.17.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.17.5/sdk/servicebus/Azure.Messaging.ServiceBus/) |
-| Storage - Blobs | NuGet [12.19.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.19.1) NuGet [12.20.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.20.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.19.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.19.1/sdk/storage/Azure.Storage.Blobs/) GitHub [12.20.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.20.0-beta.1/sdk/storage/Azure.Storage.Blobs/) |
-| Storage - Blobs Batch | NuGet [12.16.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.16.1) NuGet [12.17.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.17.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.16.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.16.1/sdk/storage/Azure.Storage.Blobs.Batch/) GitHub [12.17.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.17.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) |
-| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.42](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.42) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.42](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.42/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) |
-| Storage - Files Data Lake | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.17.1) NuGet [12.18.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.18.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.17.1/sdk/storage/Azure.Storage.Files.DataLake/) GitHub [12.18.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.18.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) |
-| Storage - Files Share | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.17.1) NuGet [12.18.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.18.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.17.1/sdk/storage/Azure.Storage.Files.Shares/) GitHub [12.18.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.18.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) |
-| Storage - Queues | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.17.1) NuGet [12.18.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.18.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.17.1/sdk/storage/Azure.Storage.Queues/) GitHub [12.18.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.18.0-beta.1/sdk/storage/Azure.Storage.Queues/) |
+| Storage - Blobs | NuGet [12.19.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.19.1) NuGet [12.20.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Blobs/12.20.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.19.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.19.1/sdk/storage/Azure.Storage.Blobs/) GitHub [12.20.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.20.0-beta.2/sdk/storage/Azure.Storage.Blobs/) |
+| Storage - Blobs Batch | NuGet [12.16.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.16.1) NuGet [12.17.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.17.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.16.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.16.1/sdk/storage/Azure.Storage.Blobs.Batch/) GitHub [12.17.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.17.0-beta.2/sdk/storage/Azure.Storage.Blobs.Batch/) |
+| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.43](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.43) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.43](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.43/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) |
+| Storage - Files Data Lake | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.17.1) NuGet [12.18.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.18.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.17.1/sdk/storage/Azure.Storage.Files.DataLake/) GitHub [12.18.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.18.0-beta.2/sdk/storage/Azure.Storage.Files.DataLake/) |
+| Storage - Files Share | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.17.1) NuGet [12.18.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.18.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.17.1/sdk/storage/Azure.Storage.Files.Shares/) GitHub [12.18.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.18.0-beta.2/sdk/storage/Azure.Storage.Files.Shares/) |
+| Storage - Queues | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.17.1) NuGet [12.18.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Queues/12.18.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.17.1/sdk/storage/Azure.Storage.Queues/) GitHub [12.18.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.18.0-beta.2/sdk/storage/Azure.Storage.Queues/) |
| Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) |
| Synapse - Artifacts | NuGet [1.0.0-preview.19](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.19) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.19](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.19/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) |
| Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) |
@@ -108,12 +108,12 @@
| Functions extension for Azure Tables | NuGet [1.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.2.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.2.1/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) |
| Key Encryptor for .NET Data Protection | NuGet [1.2.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.2.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.2.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.2.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) |
| Secrets Configuration Provider for .NET | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.3.1) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.3.1/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) |
-| Storage - Common | NuGet [12.18.1](https://www.nuget.org/packages/Azure.Storage.Common/12.18.1) NuGet [12.19.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.19.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.18.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.18.1/sdk/storage/Azure.Storage.Common/) GitHub [12.19.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.19.0-beta.1/sdk/storage/Azure.Storage.Common/) |
+| Storage - Common | NuGet [12.18.1](https://www.nuget.org/packages/Azure.Storage.Common/12.18.1) NuGet [12.19.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Common/12.19.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.18.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.18.1/sdk/storage/Azure.Storage.Common/) GitHub [12.19.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.19.0-beta.2/sdk/storage/Azure.Storage.Common/) |
| WebJobs Extensions - Event Grid | NuGet [3.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.3.1/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) |
| WebJobs Extensions - Event Hubs | NuGet [6.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
| WebJobs Extensions - Service Bus | NuGet [5.14.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.14.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.14.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.14.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
| WebJobs Extensions - SignalR Service | NuGet [1.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.13.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.13.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) |
-| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
+| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
| WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
| Provisioning | NuGet [0.2.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning/0.2.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_0.2.0-beta.2/sdk/provisioning/Azure.Provisioning/) |
| Provisioning - App Configuration | NuGet [0.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.AppConfiguration/0.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.AppConfiguration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppConfiguration_0.1.0-beta.1/sdk/provisioning/Azure.Provisioning.AppConfiguration/) |
@@ -432,7 +432,7 @@
| Functions extension for Application Insights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApplicationInsights/1.0.0-preview4) | | |
| Functions extension for Azure Mobile Apps | NuGet [3.0.0-beta8](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MobileApps/3.0.0-beta8) | | GitHub [3.0.0-beta8](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0-beta8/src/WebJobs.Extensions.MobileApps) |
| Functions extension for Azure SQL and SQL Server | NuGet [3.0.534](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/3.0.534) | | |
-| Functions extension for Blob Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.2.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | |
+| Functions extension for Blob Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | |
| Functions extension for Cosmos DB | NuGet [4.6.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.6.1) | | GitHub [4.6.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) |
| Functions extension for DocumentDB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) |
| Functions extension for Durable Task Framework | NuGet [2.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.13.0) NuGet [3.0.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/functions) | GitHub [2.13.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
@@ -445,7 +445,7 @@
| Functions extension for script abstractions | NuGet [1.0.4-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.Abstractions/1.0.4-preview) | | |
| Functions extension for SendGrid | NuGet [3.0.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SendGrid/3.0.3) | | GitHub [3.0.3](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0/src/WebJobs.Extensions.SendGrid) |
| Functions extension for Sources | NuGet [3.0.39](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Sources/3.0.39) | | GitHub [3.0.39](https://github.com/Azure/azure-webjobs-sdk) |
-| Functions extension for Storage Queues | NuGet [5.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.2.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | |
+| Functions extension for Storage Queues | NuGet [5.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.2.1) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | |
| Functions extension for Storage Timers | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Timers.Storage/1.0.0) | | |
| Functions extension for Twilio | NuGet [3.0.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Twilio/3.0.2) | | GitHub [3.0.2](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0/src/WebJobs.Extensions.Twilio) |
| Functions extension metadata generator | NuGet [4.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator/4.0.1) | | GitHub [4.0.1](https://github.com/Azure/azure-functions-host) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 25423858bb6bb..ac8f2e3dc0957 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -80,12 +80,12 @@
| Schema Registry | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.3.0) NuGet [1.4.0-beta.2](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.4.0-beta.2) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.3.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) GitHub [1.4.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.4.0-beta.2/sdk/schemaregistry/Azure.Data.SchemaRegistry/) |
| Schema Registry - Avro | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.1/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) |
| Service Bus | NuGet [7.17.5](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.17.5) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.17.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.17.5/sdk/servicebus/Azure.Messaging.ServiceBus/) |
-| Storage - Blobs | NuGet [12.19.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.19.1) NuGet [12.20.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.20.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.19.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.19.1/sdk/storage/Azure.Storage.Blobs/) GitHub [12.20.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.20.0-beta.1/sdk/storage/Azure.Storage.Blobs/) |
-| Storage - Blobs Batch | NuGet [12.16.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.16.1) NuGet [12.17.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.17.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.16.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.16.1/sdk/storage/Azure.Storage.Blobs.Batch/) GitHub [12.17.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.17.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) |
-| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.42](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.42) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.42](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.42/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) |
-| Storage - Files Data Lake | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.17.1) NuGet [12.18.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.18.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.17.1/sdk/storage/Azure.Storage.Files.DataLake/) GitHub [12.18.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.18.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) |
-| Storage - Files Share | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.17.1) NuGet [12.18.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.18.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.17.1/sdk/storage/Azure.Storage.Files.Shares/) GitHub [12.18.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.18.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) |
-| Storage - Queues | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.17.1) NuGet [12.18.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.18.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.17.1/sdk/storage/Azure.Storage.Queues/) GitHub [12.18.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.18.0-beta.1/sdk/storage/Azure.Storage.Queues/) |
+| Storage - Blobs | NuGet [12.19.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.19.1) NuGet [12.20.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Blobs/12.20.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.19.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.19.1/sdk/storage/Azure.Storage.Blobs/) GitHub [12.20.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.20.0-beta.2/sdk/storage/Azure.Storage.Blobs/) |
+| Storage - Blobs Batch | NuGet [12.16.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.16.1) NuGet [12.17.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.17.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.16.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.16.1/sdk/storage/Azure.Storage.Blobs.Batch/) GitHub [12.17.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.17.0-beta.2/sdk/storage/Azure.Storage.Blobs.Batch/) |
+| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.43](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.43) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.43](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.43/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) |
+| Storage - Files Data Lake | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.17.1) NuGet [12.18.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.18.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.17.1/sdk/storage/Azure.Storage.Files.DataLake/) GitHub [12.18.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.18.0-beta.2/sdk/storage/Azure.Storage.Files.DataLake/) |
+| Storage - Files Share | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.17.1) NuGet [12.18.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.18.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.17.1/sdk/storage/Azure.Storage.Files.Shares/) GitHub [12.18.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.18.0-beta.2/sdk/storage/Azure.Storage.Files.Shares/) |
+| Storage - Queues | NuGet [12.17.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.17.1) NuGet [12.18.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Queues/12.18.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.17.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.17.1/sdk/storage/Azure.Storage.Queues/) GitHub [12.18.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.18.0-beta.2/sdk/storage/Azure.Storage.Queues/) |
| Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) |
| Synapse - Artifacts | NuGet [1.0.0-preview.19](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.19) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.19](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.19/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) |
| Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) |
@@ -112,12 +112,12 @@
| Functions extension for Azure Tables | NuGet [1.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.2.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.2.1/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) |
| Key Encryptor for .NET Data Protection | NuGet [1.2.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.2.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.2.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.2.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) |
| Secrets Configuration Provider for .NET | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.3.1) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.3.1/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) |
-| Storage - Common | NuGet [12.18.1](https://www.nuget.org/packages/Azure.Storage.Common/12.18.1) NuGet [12.19.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.19.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.18.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.18.1/sdk/storage/Azure.Storage.Common/) GitHub [12.19.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.19.0-beta.1/sdk/storage/Azure.Storage.Common/) |
+| Storage - Common | NuGet [12.18.1](https://www.nuget.org/packages/Azure.Storage.Common/12.18.1) NuGet [12.19.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Common/12.19.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.18.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.18.1/sdk/storage/Azure.Storage.Common/) GitHub [12.19.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.19.0-beta.2/sdk/storage/Azure.Storage.Common/) |
| WebJobs Extensions - Event Grid | NuGet [3.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.3.1/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) |
| WebJobs Extensions - Event Hubs | NuGet [6.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
| WebJobs Extensions - Service Bus | NuGet [5.14.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.14.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.14.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.14.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
| WebJobs Extensions - SignalR Service | NuGet [1.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.13.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.13.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) |
-| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
+| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
| WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
| Provisioning | NuGet [0.2.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning/0.2.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_0.2.0-beta.2/sdk/provisioning/Azure.Provisioning/) |
| Provisioning - App Configuration | NuGet [0.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.AppConfiguration/0.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.AppConfiguration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppConfiguration_0.1.0-beta.1/sdk/provisioning/Azure.Provisioning.AppConfiguration/) |
From a2cf4b18f3718d036ac2c5837de0f0c91e49db2b Mon Sep 17 00:00:00 2001
From: David Pine
Date: Tue, 16 Apr 2024 06:58:59 -0500
Subject: [PATCH 04/84] Fix #39638 (#40452)
---
.../extensions/high-performance-logging.md | 50 ++++++++++---------
.../Extensions/LoggerExtensions.cs | 4 +-
.../logging/worker-service-options/Worker.cs | 27 +++++-----
3 files changed, 43 insertions(+), 38 deletions(-)
diff --git a/docs/core/extensions/high-performance-logging.md b/docs/core/extensions/high-performance-logging.md
index 4337223080856..d4543ca19f3ad 100644
--- a/docs/core/extensions/high-performance-logging.md
+++ b/docs/core/extensions/high-performance-logging.md
@@ -3,20 +3,20 @@ title: High-performance logging
author: IEvangelist
description: Learn how to use LoggerMessage to create cacheable delegates that require fewer object allocations for high-performance logging scenarios.
ms.author: dapine
-ms.date: 03/13/2023
+ms.date: 04/11/2024
---
# High-performance logging in .NET
The class exposes functionality to create cacheable delegates that require fewer object allocations and reduced computational overhead compared to [logger extension methods](xref:Microsoft.Extensions.Logging.LoggerExtensions), such as and . For high-performance logging scenarios, use the pattern.
- provides the following performance advantages over Logger extension methods:
+ provides the following performance advantages over logger extension methods:
- Logger extension methods require "boxing" (converting) value types, such as `int`, into `object`. The pattern avoids boxing by using static fields and extension methods with strongly typed parameters.
- Logger extension methods must parse the message template (named format string) every time a log message is written. only requires parsing a template once when the message is defined.
> [!IMPORTANT]
-> Instead of using the [LoggerMessage class](xref:Microsoft.Extensions.Logging.LoggerMessage) to create high-performance logs, you can use the [LoggerMessage attribute](xref:Microsoft.Extensions.Logging.LoggerMessageAttribute) in .NET 6.0. The `LoggerMessageAttribute` provides source-generation logging support designed to deliver a highly usable and highly performant logging solution for modern .NET applications. For more information, see [Compile-time logging source generation (.NET Fundamentals)](./logger-message-generator.md).
+> Instead of using the [LoggerMessage class](xref:Microsoft.Extensions.Logging.LoggerMessage) to create high-performance logs, you can use the [LoggerMessage attribute](xref:Microsoft.Extensions.Logging.LoggerMessageAttribute) in .NET 6 and later versions. The `LoggerMessageAttribute` provides source-generation logging support designed to deliver a highly usable and highly performant logging solution for modern .NET applications. For more information, see [Compile-time logging source generation (.NET Fundamentals)](./logger-message-generator.md).
The sample app demonstrates features with a priority queue processing worker service. The app processes work items in priority order. As these operations occur, log messages are generated using the pattern.
@@ -52,7 +52,7 @@ Structured logging stores may use the event name when it's supplied with the eve
The is invoked through a strongly typed extension method. The `PriorityItemProcessed` method logs a message every time a work item is processed. `FailedToProcessWorkItem` is called if and when an exception occurs:
-:::code language="csharp" source="snippets/logging/worker-service-options/Worker.cs" range="9-30" highlight="15-18":::
+:::code language="csharp" source="snippets/logging/worker-service-options/Worker.cs" range="9-33" highlight="17-20":::
Inspect the app's console output:
@@ -78,7 +78,7 @@ The static extension method for logging that a work item is being processed, `Pr
In the worker service's `ExecuteAsync` method, `PriorityItemProcessed` is called to log the message:
-:::code language="csharp" source="snippets/logging/worker-service-options/Worker.cs" range="9-30" highlight="12":::
+:::code language="csharp" source="snippets/logging/worker-service-options/Worker.cs" range="9-33" highlight="14":::
Inspect the app's console output:
@@ -89,7 +89,7 @@ info: WorkerServiceOptions.Example.Worker[1]
## Define logger message scope
-The [DefineScope(string)](xref:Microsoft.Extensions.Logging.LoggerMessage.DefineScope%2A) method creates a delegate for defining a [log scope](logging.md#log-scopes). overloads permit passing up to three type parameters to a named format string (template).
+The [DefineScope(string)](xref:Microsoft.Extensions.Logging.LoggerMessage.DefineScope%2A) method creates a delegate for defining a [log scope](logging.md#log-scopes). overloads permit passing up to six type parameters to a named format string (template).
As is the case with the method, the string provided to the method is a template and not an interpolated string. Placeholders are filled in the order that the types are specified. Placeholder names in the template should be descriptive and consistent across templates. They serve as property names within structured log data. We recommend [Pascal casing](../../standard/design-guidelines/capitalization-conventions.md) for placeholder names. For example, `{Item}`, `{DateTime}`.
@@ -97,11 +97,11 @@ Define a [log scope](logging.md#log-scopes) to apply to a series of log messages
:::code language="json" source="snippets/logging/worker-service-options/appsettings.json" highlight="3-5":::
-To create a log scope, add a field to hold a delegate for the scope. The sample app creates a field called `_processingWorkScope` (*Internal/LoggerExtensions.cs*):
+To create a log scope, add a field to hold a delegate for the scope. The sample app creates a field named `s_processingWorkScope` (*Internal/LoggerExtensions.cs*):
:::code language="csharp" source="snippets/logging/worker-service-options/Extensions/LoggerExtensions.cs" id="ProcessingWorkField":::
-Use to create the delegate. Up to three types can be specified for use as template arguments when the delegate is invoked. The sample app uses a message template that includes the date time in which processing started:
+Use to create the delegate. Up to six types can be specified for use as template arguments when the delegate is invoked. The sample app uses a message template that includes the date time in which processing started:
:::code language="csharp" source="snippets/logging/worker-service-options/Extensions/LoggerExtensions.cs" id="ProcessingWorkAssignment":::
@@ -111,38 +111,40 @@ Provide a static extension method for the log message. Include any type paramete
The scope wraps the logging extension calls in a [using](../../csharp/language-reference/statements/using.md) block:
-:::code language="csharp" source="snippets/logging/worker-service-options/Worker.cs" range="9-30" highlight="4":::
+:::code language="csharp" source="snippets/logging/worker-service-options/Worker.cs" range="9-33" highlight="4":::
Inspect the log messages in the app's console output. The following result shows priority ordering of log messages with the log scope message included:
```console
info: WorkerServiceOptions.Example.Worker[1]
- => Processing work, started at: 09/25/2020 14:30:45
- Processing priority item: Priority-Extreme (f5090ede-a337-4041-b914-f6bc0db5ae64): 'Verify communications'
+ => Processing scope, started at: 04/11/2024 11:27:52
+ Processing priority item: Priority-Extreme (7d153ef9-8894-4282-836a-8e5e38319fb3): 'Verify communications'
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
- Content root path: ..\worker-service-options
+ Content root path: D:\source\repos\dotnet-docs\docs\core\extensions\snippets\logging\worker-service-options
info: WorkerServiceOptions.Example.Worker[1]
- => Processing work, started at: 09/25/2020 14:30:45
- Processing priority item: Priority-High (496d440f-2007-4391-b179-09d75ab52373): 'Validate collection'
+ => Processing scope, started at: 04/11/2024 11:27:52
+ Processing priority item: Priority-High (dbad6558-60cd-4eb1-8531-231e90081f62): 'Validate collection'
info: WorkerServiceOptions.Example.Worker[1]
- => Processing work, started at: 09/25/2020 14:30:45
- Processing priority item: Priority-Medium (dea9e3f4-d7df-46d2-b7cd-5e0232eb98a5): 'Propagate selections'
+ => Processing scope, started at: 04/11/2024 11:27:52
+ Processing priority item: Priority-Medium (1eabe213-dc64-4e3a-9920-f67fe1dfb0f6): 'Propagate selections'
info: WorkerServiceOptions.Example.Worker[1]
- => Processing work, started at: 09/25/2020 14:30:45
- Processing priority item: Priority-Medium (089d7f0d-da72-4b55-92fe-57b147838056): 'Enter pooling [contention]'
+ => Processing scope, started at: 04/11/2024 11:27:52
+ Processing priority item: Priority-Medium (1142688d-d4dc-4f78-95c5-04ec01cbfac7): 'Enter pooling [contention]'
info: WorkerServiceOptions.Example.Worker[1]
- => Processing work, started at: 09/25/2020 14:30:45
- Processing priority item: Priority-Low (6e68c4be-089f-4450-9080-1ea63fcbb686): 'Health check network'
+ => Processing scope, started at: 04/11/2024 11:27:52
+ Processing priority item: Priority-Low (e85e0c4d-0840-476e-b8b0-22505c08e913): 'Health check network'
info: WorkerServiceOptions.Example.Worker[1]
- => Processing work, started at: 09/25/2020 14:30:45
- Processing priority item: Priority-Deferred (6f324134-6bb6-455f-81d4-553ab307c421): 'Ping weather service'
+ => Processing scope, started at: 04/11/2024 11:27:52
+ Processing priority item: Priority-Deferred (07571363-d559-4e72-bc33-cd8398348786): 'Ping weather service'
info: WorkerServiceOptions.Example.Worker[1]
- => Processing work, started at: 09/25/2020 14:30:45
- Processing priority item: Priority-Deferred (37bf736c-7a26-4a2a-9e56-e89bcf3b8f35): 'Set process state'
+ => Processing scope, started at: 04/11/2024 11:27:52
+ Processing priority item: Priority-Deferred (2bf74f2f-0198-4831-8138-03368e60bd6b): 'Set process state'
+info: Microsoft.Hosting.Lifetime[0]
+ Application is shutting down...
```
## Log level guarded optimizations
diff --git a/docs/core/extensions/snippets/logging/worker-service-options/Extensions/LoggerExtensions.cs b/docs/core/extensions/snippets/logging/worker-service-options/Extensions/LoggerExtensions.cs
index 3a8e990d12262..9f4bdbdce3fd5 100644
--- a/docs/core/extensions/snippets/logging/worker-service-options/Extensions/LoggerExtensions.cs
+++ b/docs/core/extensions/snippets/logging/worker-service-options/Extensions/LoggerExtensions.cs
@@ -11,7 +11,7 @@ public static class LoggerExtensions
#endregion
#region ProcessingWorkField
- private static Func s_processingWorkScope;
+ private static readonly Func s_processingWorkScope;
#endregion
static LoggerExtensions()
@@ -33,7 +33,7 @@ static LoggerExtensions()
#region ProcessingWorkAssignment
s_processingWorkScope =
LoggerMessage.DefineScope(
- "Processing work, started at: {DateTime}");
+ "Processing scope, started at: {DateTime}");
#endregion
}
diff --git a/docs/core/extensions/snippets/logging/worker-service-options/Worker.cs b/docs/core/extensions/snippets/logging/worker-service-options/Worker.cs
index d51740f2c13cb..96eaf74712191 100644
--- a/docs/core/extensions/snippets/logging/worker-service-options/Worker.cs
+++ b/docs/core/extensions/snippets/logging/worker-service-options/Worker.cs
@@ -9,23 +9,26 @@ public sealed class Worker(
protected override async Task ExecuteAsync(
CancellationToken stoppingToken)
{
- using IDisposable? scope = logger.ProcessingWorkScope(DateTime.Now);
- while (!stoppingToken.IsCancellationRequested)
+ using (IDisposable? scope = logger.ProcessingWorkScope(DateTime.Now))
{
- WorkItem? nextItem = priorityQueue.ProcessNextHighestPriority();
- try
+ while (!stoppingToken.IsCancellationRequested)
{
- if (nextItem is not null)
+ try
{
- logger.PriorityItemProcessed(nextItem);
+ WorkItem? nextItem = priorityQueue.ProcessNextHighestPriority();
+
+ if (nextItem is not null)
+ {
+ logger.PriorityItemProcessed(nextItem);
+ }
+ }
+ catch (Exception ex)
+ {
+ logger.FailedToProcessWorkItem(ex);
}
- }
- catch (Exception ex)
- {
- logger.FailedToProcessWorkItem(ex);
- }
- await Task.Delay(1_000, stoppingToken);
+ await Task.Delay(1_000, stoppingToken);
+ }
}
}
}
From df7c9346491dec7dbdd9ab9449db1d80e7749e0d Mon Sep 17 00:00:00 2001
From: Daniel Tsvetkov
Date: Tue, 16 Apr 2024 18:07:34 +0300
Subject: [PATCH 05/84] Update note for default language version in VS2022
(#40486)
---
docs/csharp/language-reference/configure-language-version.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/csharp/language-reference/configure-language-version.md b/docs/csharp/language-reference/configure-language-version.md
index 3d9276e8d342b..7d3273af4da93 100644
--- a/docs/csharp/language-reference/configure-language-version.md
+++ b/docs/csharp/language-reference/configure-language-version.md
@@ -70,4 +70,4 @@ The following table shows all current C# language versions. Older compilers migh
[!INCLUDE [langversion-table](includes/langversion-table.md)]
>[!NOTE]
->Specifying **LangVersion** with the `default` value is different from omitting the **LangVersion** option. Specifying `default` uses the latest version of the language that the compiler supports, without taking into account the target framework. For example, building a project that targets .NET 6 from the current version of Visual Studio 2022 uses C# 10 if **LangVersion** isn't specified, but uses C# 11 if **LangVersion** is set to `default`.
+>Specifying **LangVersion** with the `default` value is different from omitting the **LangVersion** option. Specifying `default` uses the latest version of the language that the compiler supports, without taking into account the target framework. For example, building a project that targets .NET 6 from the current version of Visual Studio 2022 uses C# 10 if **LangVersion** isn't specified, but uses C# 12 if **LangVersion** is set to `default`.
From ebac1c5e165a5c050e82756e34f199d519211779 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Tue, 16 Apr 2024 08:22:34 -0700
Subject: [PATCH 06/84] Update package index with latest published versions
(#40497)
---
docs/azure/includes/dotnet-all.md | 10 +++++-----
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 5dc8c864e6971..97110dad9023d 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -310,7 +310,7 @@
| Resource Management - Synapse | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Synapse/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Synapse-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Synapse_1.2.0/sdk/synapse/Azure.ResourceManager.Synapse/) |
| Resource Management - Traffic Manager | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.TrafficManager/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.TrafficManager-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.TrafficManager_1.1.1/sdk/trafficmanager/Azure.ResourceManager.TrafficManager/) |
| Resource Management - Voice Services | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.VoiceServices/1.0.1) | [docs](/dotnet/api/overview/azure/ResourceManager.VoiceServices-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.VoiceServices_1.0.1/sdk/voiceservices/Azure.ResourceManager.VoiceServices/) |
-| Resource Management - Web PubSub | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.1.0/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) |
+| Resource Management - Web PubSub | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.1.0/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.2.0-beta.1/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) |
| Resource Management - Workload Monitor | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.WorkloadMonitor/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.WorkloadMonitor-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WorkloadMonitor_1.0.0-beta.4/sdk/workloadmonitor/Azure.ResourceManager.WorkloadMonitor/) |
| Resource Management - Workloads | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Workloads-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.1.0/sdk/workloads/Azure.ResourceManager.Workloads/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.2.0-beta.1/sdk/workloads/Azure.ResourceManager.Workloads/) |
| Azure.Communication.Administration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.Administration/1.0.0-beta.3) | | |
@@ -506,12 +506,12 @@
| Microsoft.Azure.WebJobs.Extensions.Rpc | NuGet [3.0.39](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Rpc/3.0.39) | | |
| Microsoft.Azure.WebJobs.Rpc.Core | NuGet [3.0.39](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Rpc.Core/3.0.39) | | |
| Service Bus - Message ID plugin | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.MessageIdPlugin/2.0.0) | | |
-| SignalR | NuGet [1.25.1](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.1) NuGet [1.25.0-preview1-11147](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.0-preview1-11147) | | GitHub [1.25.1](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) |
-| SignalR - ASP.NET | NuGet [1.25.1](https://www.nuget.org/packages/Microsoft.Azure.SignalR.AspNet/1.25.1) | | GitHub [1.25.1](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.AspNet) |
+| SignalR | NuGet [1.25.2](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.2) NuGet [1.25.0-preview1-11147](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.0-preview1-11147) | | GitHub [1.25.2](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) |
+| SignalR - ASP.NET | NuGet [1.25.2](https://www.nuget.org/packages/Microsoft.Azure.SignalR.AspNet/1.25.2) | | GitHub [1.25.2](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.AspNet) |
| SignalR - Benchmark | NuGet [1.0.0-preview1-10415](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Benchmark/1.0.0-preview1-10415) | | GitHub [1.0.0-preview1-10415](https://github.com/azure/azure-signalr-bench) |
-| SignalR - Protocols | NuGet [1.25.1](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Protocols/1.25.1) | | GitHub [1.25.1](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Protocols) |
+| SignalR - Protocols | NuGet [1.25.2](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Protocols/1.25.2) | | GitHub [1.25.2](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Protocols) |
| SignalR - Serverless Protocols | NuGet [1.10.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Serverless.Protocols/1.10.0) | | GitHub [1.10.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/Microsoft.Azure.SignalR.Serverless.Protocols) |
-| SignalR Management | NuGet [1.25.1](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Management/1.25.1) | | GitHub [1.25.1](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Management) |
+| SignalR Management | NuGet [1.25.2](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Management/1.25.2) | | GitHub [1.25.2](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Management) |
| SQL Database Elastic Scale Client | NuGet [2.4.1](https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.ElasticScale.Client/2.4.1) | | GitHub [2.4.1](https://github.com/Azure/elastic-db-tools/tree/v2.3.0/Src/ElasticScale.Client) |
| SQL Database Elastic Scale Service SplitMerge | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.ElasticScale.Service.SplitMerge/1.2.0) | | |
| SQL Database Jobs | NuGet [0.8.3362.1](https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.Jobs/0.8.3362.1) | | |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index ac8f2e3dc0957..a31a30914459d 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -315,6 +315,6 @@
| Resource Management - Synapse | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Synapse/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Synapse-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Synapse_1.2.0/sdk/synapse/Azure.ResourceManager.Synapse/) |
| Resource Management - Traffic Manager | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.TrafficManager/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.TrafficManager-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.TrafficManager_1.1.1/sdk/trafficmanager/Azure.ResourceManager.TrafficManager/) |
| Resource Management - Voice Services | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.VoiceServices/1.0.1) | [docs](/dotnet/api/overview/azure/ResourceManager.VoiceServices-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.VoiceServices_1.0.1/sdk/voiceservices/Azure.ResourceManager.VoiceServices/) |
-| Resource Management - Web PubSub | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.1.0/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) |
+| Resource Management - Web PubSub | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.1.0/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.2.0-beta.1/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) |
| Resource Management - Workload Monitor | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.WorkloadMonitor/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.WorkloadMonitor-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WorkloadMonitor_1.0.0-beta.4/sdk/workloadmonitor/Azure.ResourceManager.WorkloadMonitor/) |
| Resource Management - Workloads | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Workloads-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.1.0/sdk/workloads/Azure.ResourceManager.Workloads/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.2.0-beta.1/sdk/workloads/Azure.ResourceManager.Workloads/) |
From 385cf7fff73168cdcde04367eb2cd9a2a84f31f6 Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Tue, 16 Apr 2024 08:52:24 -0700
Subject: [PATCH 07/84] Add ML.NET overview and what's new (#40491)
---
docs/machine-learning/index.yml | 19 +++---
docs/machine-learning/overview.md | 21 ++++++
docs/machine-learning/toc.yml | 35 +++++-----
docs/machine-learning/whats-new/overview.md | 53 +++++++++++++++
.../whats-new/snippets/csharp/Program.cs | 1 +
.../whats-new/snippets/csharp/Project.csproj | 13 ++++
.../whats-new/snippets/csharp/Tiktoken.cs | 65 +++++++++++++++++++
7 files changed, 179 insertions(+), 28 deletions(-)
create mode 100644 docs/machine-learning/overview.md
create mode 100644 docs/machine-learning/whats-new/overview.md
create mode 100644 docs/machine-learning/whats-new/snippets/csharp/Program.cs
create mode 100644 docs/machine-learning/whats-new/snippets/csharp/Project.csproj
create mode 100644 docs/machine-learning/whats-new/snippets/csharp/Tiktoken.cs
diff --git a/docs/machine-learning/index.yml b/docs/machine-learning/index.yml
index b56448fb17dd9..70b475ca45e60 100644
--- a/docs/machine-learning/index.yml
+++ b/docs/machine-learning/index.yml
@@ -1,29 +1,27 @@
### YamlMime:Landing
-title: ML.NET Documentation
+title: ML.NET documentation
summary: Learn how to use open-source ML.NET to build custom machine learning models and integrate them into apps. Tutorials, code examples, and more show you how.
metadata:
- title: ML.NET Documentation - Tutorials, API Reference
+ title: ML.NET documentation - Tutorials, API reference
description: Learn how to use open-source ML.NET to build custom machine learning models and integrate them into apps. Tutorials, code examples, and more show you how.
ms.service: dotnet-ml
ms.topic: landing-page
ms.collection: collection
author: natke
ms.author: nakersha
- ms.date: 10/30/2019
-
+ ms.date: 04/15/2024
# linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | video | whats-new
landingContent:
-
# Basics
- - title: ML.NET Basics
+ - title: ML.NET basics
linkLists:
- linkListType: overview
links:
- - text: What is ML.NET?
+ - text: What is the ML.NET API?
url: how-does-mldotnet-work.md
- text: What is Model Builder?
url: automate-training-with-model-builder.md
@@ -54,7 +52,7 @@ landingContent:
- text: Install the CLI on macOS, Windows, or Linux (low-code)
url: how-to-guides/install-ml-net-cli.md
- # Tutorials - scenarios
+ # Tutorials - scenarios
- title: Tutorials
linkLists:
- linkListType: learn
@@ -84,7 +82,6 @@ landingContent:
- text: Build a movie recommender (API)
url: tutorials/movie-recommendation.md
-
# API Card
- title: How-to guides
linkLists:
@@ -109,6 +106,8 @@ landingContent:
- linkListType: reference
links:
- text: ML.NET API reference
- url: ../../api/index.md?view=ml-dotnet
+ url: ../../api/index.md?view=ml-dotnet&preserve-view=true
+ - text: ML.NET CLI reference
+ url: reference/ml-net-cli-reference.md
- text: ML.NET samples
url: https://github.com/dotnet/machinelearning-samples
diff --git a/docs/machine-learning/overview.md b/docs/machine-learning/overview.md
new file mode 100644
index 0000000000000..3278c659079da
--- /dev/null
+++ b/docs/machine-learning/overview.md
@@ -0,0 +1,21 @@
+---
+title: Overview of ML.NET
+description: Learn about the components that make up ML.NET.
+ms.date: 04/15/2024
+---
+
+# Overview of ML.NET
+
+ML.NET is an open-source, cross-platform machine learning framework for .NET developers that enables integration of custom machine learning models into .NET applications. It encompasses an [API](how-does-mldotnet-work.md), which consists of different NuGet packages, a Visual Studio extension called [Model Builder](automate-training-with-model-builder.md), and a [command-line interface](automate-training-with-cli.md) that's installed as a .NET tool.
+
+ML.NET packages:
+
+- [Microsoft.ML](https://www.nuget.org/packages/Microsoft.ML)
+- [Microsoft.ML.AutoML](https://www.nuget.org/packages/Microsoft.ML.AutoML)
+- [Microsoft.ML.Probabilistic](https://www.nuget.org/packages/Microsoft.ML.Probabilistic)
+- [Microsoft.ML.Tokenizers](https://www.nuget.org/packages/Microsoft.ML.Tokenizers)
+- [Many other packages](https://www.nuget.org/profiles/MLNET)
+
+Visual Studio extension:
+
+- [Model Builder extension for Visual Studio](https://marketplace.visualstudio.com/items?itemName=MLNET.ModelBuilder2022)
diff --git a/docs/machine-learning/toc.yml b/docs/machine-learning/toc.yml
index 5a39075836060..dc2807636777d 100644
--- a/docs/machine-learning/toc.yml
+++ b/docs/machine-learning/toc.yml
@@ -2,21 +2,24 @@ items:
- name: ML.NET
href: index.yml
- name: Overview
+ href: overview.md
+- name: Model Builder & CLI
items:
- - name: Model Builder & CLI
- items:
- - name: The ML.NET Model Builder tool
- href: automate-training-with-model-builder.md
- - name: The ML.NET command-line interface
- href: automate-training-with-cli.md
- displayName: cli
- - name: API
- items:
- - name: The ML.NET API
- href: how-does-mldotnet-work.md
- - name: What is Automated Machine Learning (AutoML)?
- href: automated-machine-learning-mlnet.md
- expanded: true
+ - name: The ML.NET Model Builder tool
+ href: automate-training-with-model-builder.md
+ - name: The ML.NET command-line interface
+ href: automate-training-with-cli.md
+ displayName: cli
+ expanded: true
+- name: API
+ items:
+ - name: The ML.NET API
+ href: how-does-mldotnet-work.md
+ - name: What is Automated Machine Learning (AutoML)?
+ href: automated-machine-learning-mlnet.md
+ expanded: true
+- name: What's new
+ href: whats-new/overview.md
- name: Tutorials
items:
- name: Model Builder & CLI
@@ -136,10 +139,6 @@ items:
href: /azure/machine-learning/how-to-use-automl-onnx-model-dotnet?toc=/dotnet/machine-learning/how-to-guides/toc.json&bc=/dotnet/machine-learning/how-to-guides/toc.json
- name: Reference
items:
- - name: ML.NET API reference
- href: ../../api/index.md?view=ml-dotnet&preserve-view=true
- - name: ML.NET Preview API reference
- href: ../../api/index.md?view=ml-dotnet-preview&preserve-view=true
- name: CLI reference
href: reference/ml-net-cli-reference.md
- name: Resources
diff --git a/docs/machine-learning/whats-new/overview.md b/docs/machine-learning/whats-new/overview.md
new file mode 100644
index 0000000000000..26ca97880e577
--- /dev/null
+++ b/docs/machine-learning/whats-new/overview.md
@@ -0,0 +1,53 @@
+---
+title: What's new in ML.NET
+titleSuffix: ""
+description: Discover what's new in ML.NET.
+ms.date: 04/15/2024
+ms.topic: whats-new
+
+#Customer intent: As a developer, I want to know what the new features are in ML.NET.
+
+---
+
+# What's new in ML.NET
+
+> [!NOTE]
+> This article is a work in progress.
+
+You can find all of the release notes for the ML.NET API in the [dotnet/machinelearning repo](https://github.com/dotnet/machinelearning/tree/main/docs/release-notes).
+
+## New deep-learning tasks
+
+ML.NET 3.0 added support for the following deep-learning tasks:
+
+- Object detection (backed by TorchSharp)
+- Named entity recognition (NER)
+- Question answering (QA)
+
+These trainers are included in the [Microsoft.ML.TorchSharp](https://www.nuget.org/packages/Microsoft.ML.TorchSharp) package. For more information, see [Announcing ML.NET 3.0](https://devblogs.microsoft.com/dotnet/announcing-ml-net-3-0/).
+
+## AutoML
+
+In ML.NET 3.0, the AutoML sweeper was updated to support the sentence similarity, question answering, and object detection tasks. For more information about AutoML, see [How to use the ML.NET Automated Machine Learning (AutoML) API](../how-to-guides/how-to-use-the-automl-api.md).
+
+## Additional tokenizer support
+
+[Microsoft.ML.Tokenizers](https://devblogs.microsoft.com/dotnet/announcing-ml-net-2-0/#tokenizer-support) is an open-source, cross-platform tokenization library. When it was introduced, the library was scoped to the [Byte-Pair Encoding (BPE)](https://en.wikipedia.org/wiki/Byte_pair_encoding) tokenization strategy to satisfy the language set of scenarios in ML.NET. Version 4.0 Preview 1 added support for the `Tiktoken` tokenizer.
+
+The following examples show how to use the `Tiktoken` text tokenizer.
+
+:::code language="csharp" source="./snippets/csharp/Tiktoken.cs" id="Tiktoken":::
+
+### About tokenization
+
+Tokenization is a fundamental component in the preprocessing of natural language text for AI models. Tokenizers are responsible for breaking down a string of text into smaller, more manageable parts, often referred to as *tokens*. When using services like Azure OpenAI, you can use tokenizers to get a better understanding of cost and manage context. When working with self-hosted or local models, tokens are the inputs provided to those models.
+
+## Model Builder (Visual Studio extension)
+
+Model Builder has been updated to consume the ML.NET 3.0 release. Model Builder version 17.18.0 added question answering (QA) and named entity recognition (NER) scenarios.
+
+You can find all of the Model Builder release notes in the [dotnet/machinelearning-modelbuilder repo](https://github.com/dotnet/machinelearning-modelbuilder/tree/main/docs/release-notes).
+
+## See also
+
+- [Blog post: Announcing ML.NET 3.0](https://devblogs.microsoft.com/dotnet/announcing-ml-net-3-0/)
diff --git a/docs/machine-learning/whats-new/snippets/csharp/Program.cs b/docs/machine-learning/whats-new/snippets/csharp/Program.cs
new file mode 100644
index 0000000000000..194971ae32a1e
--- /dev/null
+++ b/docs/machine-learning/whats-new/snippets/csharp/Program.cs
@@ -0,0 +1 @@
+TiktokenExample.RunIt();
diff --git a/docs/machine-learning/whats-new/snippets/csharp/Project.csproj b/docs/machine-learning/whats-new/snippets/csharp/Project.csproj
new file mode 100644
index 0000000000000..57fd414b97dfb
--- /dev/null
+++ b/docs/machine-learning/whats-new/snippets/csharp/Project.csproj
@@ -0,0 +1,13 @@
+
+
+
+ Exe
+ net9
+ enable
+
+
+
+
+
+
+
diff --git a/docs/machine-learning/whats-new/snippets/csharp/Tiktoken.cs b/docs/machine-learning/whats-new/snippets/csharp/Tiktoken.cs
new file mode 100644
index 0000000000000..5d26d83c6de9e
--- /dev/null
+++ b/docs/machine-learning/whats-new/snippets/csharp/Tiktoken.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.ML.Tokenizers;
+
+internal class TiktokenExample
+{
+ public static void RunIt()
+ {
+ //
+ Tokenizer tokenizer = Tokenizer.CreateTiktokenForModel("gpt-4");
+ string text = "Hello, World!";
+
+ // Encode to IDs.
+ IReadOnlyList encodedIds = tokenizer.EncodeToIds(text);
+ Console.WriteLine($"encodedIds = {{{string.Join(", ", encodedIds)}}}");
+ // encodedIds = {9906, 11, 4435, 0}
+
+ // Decode IDs to text.
+ string? decodedText = tokenizer.Decode(encodedIds);
+ Console.WriteLine($"decodedText = {decodedText}");
+ // decodedText = Hello, World!
+
+ // Get token count.
+ int idsCount = tokenizer.CountTokens(text);
+ Console.WriteLine($"idsCount = {idsCount}");
+ // idsCount = 4
+
+ // Full encoding.
+ EncodingResult result = tokenizer.Encode(text);
+ Console.WriteLine($"result.Tokens = {{'{string.Join("', '", result.Tokens)}'}}");
+ // result.Tokens = {'Hello', ',', ' World', '!'}
+ Console.WriteLine($"result.Offsets = {{{string.Join(", ", result.Offsets)}}}");
+ // result.Offsets = {(0, 5), (5, 1), (6, 6), (12, 1)}
+ Console.WriteLine($"result.Ids = {{{string.Join(", ", result.Ids)}}}");
+ // result.Ids = {9906, 11, 4435, 0}
+
+ // Encode up to number of tokens limit.
+ int index1 = tokenizer.IndexOfTokenCount(
+ text,
+ maxTokenCount: 1,
+ out string processedText1,
+ out int tokenCount1
+ ); // Encode up to one token.
+ Console.WriteLine($"processedText1 = {processedText1}");
+ // processedText1 = Hello, World!
+ Console.WriteLine($"tokenCount1 = {tokenCount1}");
+ // tokenCount1 = 1
+ Console.WriteLine($"index1 = {index1}");
+ // index1 = 5
+
+ int index2 = tokenizer.LastIndexOfTokenCount(
+ text,
+ maxTokenCount: 1,
+ out string processedText2,
+ out int tokenCount2
+ ); // Encode from end up to one token.
+ Console.WriteLine($"processedText2 = {processedText2}");
+ // processedText2 = Hello, World!
+ Console.WriteLine($"tokenCount2 = {tokenCount2}");
+ // tokenCount2 = 1
+ Console.WriteLine($"index2 = {index2}");
+ // index2 = 12
+ //
+ }
+}
From 30b92f4afe5c3ed238222cb1f1218cb380a814be Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Tue, 16 Apr 2024 14:27:37 -0700
Subject: [PATCH 08/84] Update package index with latest published versions
(#40500)
---
docs/azure/includes/dotnet-all.md | 2 +-
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 97110dad9023d..b765c17e75a0f 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -41,7 +41,7 @@
| Health Insights Cancer Profiling | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.CancerProfiling/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.CancerProfiling-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.CancerProfiling_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.CancerProfiling/) |
| Health Insights Clinical Matching | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.ClinicalMatching/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.ClinicalMatching-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.ClinicalMatching_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.ClinicalMatching/) |
| Health Insights Radiology Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.RadiologyInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.RadiologyInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.RadiologyInsights_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.RadiologyInsights/) |
-| Identity | NuGet [1.11.0](https://www.nuget.org/packages/Azure.Identity/1.11.0) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.11.0/sdk/identity/Azure.Identity/) |
+| Identity | NuGet [1.11.1](https://www.nuget.org/packages/Azure.Identity/1.11.1) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.11.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.11.1/sdk/identity/Azure.Identity/) |
| Identity Broker | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Identity.Broker/1.1.0) | [docs](/dotnet/api/overview/azure/Identity.Broker-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.1.0/sdk/identity/Azure.Identity.Broker/) |
| Image Analysis | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/vision/Azure.AI.Vision.ImageAnalysis) |
| Key Vault - Administration | NuGet [4.4.0](https://www.nuget.org/packages/Azure.Security.KeyVault.Administration/4.4.0) | [docs](/dotnet/api/overview/azure/Security.KeyVault.Administration-readme) | GitHub [4.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.KeyVault.Administration_4.4.0/sdk/keyvault/Azure.Security.KeyVault.Administration/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index a31a30914459d..1c0dc73188860 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -42,7 +42,7 @@
| Health Insights Cancer Profiling | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.CancerProfiling/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.CancerProfiling-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.CancerProfiling_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.CancerProfiling/) |
| Health Insights Clinical Matching | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.ClinicalMatching/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.ClinicalMatching-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.ClinicalMatching_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.ClinicalMatching/) |
| Health Insights Radiology Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.RadiologyInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.RadiologyInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.RadiologyInsights_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.RadiologyInsights/) |
-| Identity | NuGet [1.11.0](https://www.nuget.org/packages/Azure.Identity/1.11.0) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.11.0/sdk/identity/Azure.Identity/) |
+| Identity | NuGet [1.11.1](https://www.nuget.org/packages/Azure.Identity/1.11.1) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.11.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.11.1/sdk/identity/Azure.Identity/) |
| Identity Broker | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Identity.Broker/1.1.0) | [docs](/dotnet/api/overview/azure/Identity.Broker-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.1.0/sdk/identity/Azure.Identity.Broker/) |
| Identity Brokered Authentication | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.Identity.BrokeredAuthentication/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Identity.BrokeredAuthentication-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.BrokeredAuthentication_1.0.0-beta.4/sdk/identity/Azure.Identity.BrokeredAuthentication/) |
| Image Analysis | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/vision/Azure.AI.Vision.ImageAnalysis) |
From 83bd530498755f51ac706c59568b57b4f66de626 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Tue, 16 Apr 2024 16:23:50 -0700
Subject: [PATCH 09/84] Update package index with latest published versions
(#40501)
---
docs/azure/includes/dotnet-all.md | 2 +-
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index b765c17e75a0f..669e4aef63333 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -100,7 +100,7 @@
| Vision Common | NuGet [0.15.1-beta.1](https://www.nuget.org/packages/Azure.AI.Vision.Common/0.15.1-beta.1) | | GitHub [0.15.1-beta.1](https://msasg.visualstudio.com/Skyman/_git/Carbon) |
| Web PubSub | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub/1.3.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub_1.3.0/sdk/webpubsub/Azure.Messaging.WebPubSub/) |
| Web PubSub Client | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub.Client/1.0.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub.Client-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub.Client_1.0.0/sdk/webpubsub/Azure.Messaging.WebPubSub.Client/) |
-| Azure client library integration for ASP.NET Core | NuGet [1.7.2](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.7.2) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.7.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.7.2/sdk/extensions/Microsoft.Extensions.Azure/) |
+| Azure client library integration for ASP.NET Core | NuGet [1.7.3](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.7.3) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.7.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.7.3/sdk/extensions/Microsoft.Extensions.Azure/) |
| Blob Storage Key Store for .NET Data Protection | NuGet [1.3.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Blobs/1.3.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Blobs-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Blobs_1.3.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Blobs/) |
| CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) |
| Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 1c0dc73188860..c2d3604b22d84 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -104,7 +104,7 @@
| Vision Common | NuGet [0.15.1-beta.1](https://www.nuget.org/packages/Azure.AI.Vision.Common/0.15.1-beta.1) | | GitHub [0.15.1-beta.1](https://msasg.visualstudio.com/Skyman/_git/Carbon) |
| Web PubSub | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub/1.3.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub_1.3.0/sdk/webpubsub/Azure.Messaging.WebPubSub/) |
| Web PubSub Client | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub.Client/1.0.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub.Client-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub.Client_1.0.0/sdk/webpubsub/Azure.Messaging.WebPubSub.Client/) |
-| Azure client library integration for ASP.NET Core | NuGet [1.7.2](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.7.2) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.7.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.7.2/sdk/extensions/Microsoft.Extensions.Azure/) |
+| Azure client library integration for ASP.NET Core | NuGet [1.7.3](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.7.3) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.7.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.7.3/sdk/extensions/Microsoft.Extensions.Azure/) |
| Blob Storage Key Store for .NET Data Protection | NuGet [1.3.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Blobs/1.3.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Blobs-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Blobs_1.3.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Blobs/) |
| CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) |
| Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) |
From 862e52e2af36037d4c4e8c410942581818a2f286 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:07:51 +0000
Subject: [PATCH 10/84] Bump xunit.runner.visualstudio
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8)
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/PrimeService.Tests/PrimeService.Tests.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj
index 2dd44c5566bd0..5fe9ad091d0a3 100644
--- a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj
+++ b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj
@@ -9,7 +9,7 @@
-
+
From e4282e0591909f819094d62ab1b38354e574149a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:09:17 +0000
Subject: [PATCH 11/84] Bump xunit
Bumps [xunit](https://github.com/xunit/xunit) from 2.7.0 to 2.7.1.
- [Commits](https://github.com/xunit/xunit/compare/2.7.0...2.7.1)
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/before/unit-testing-best-practices-before.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj
index 4d6cab2389e17..d4359d506f1ca 100644
--- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj
+++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj
@@ -9,7 +9,7 @@
-
+
From baf57fb2d14a374f2ce853ccd37034434071d506 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:17:40 +0000
Subject: [PATCH 12/84] Bump xunit
Bumps [xunit](https://github.com/xunit/xunit) from 2.7.0 to 2.7.1.
- [Commits](https://github.com/xunit/xunit/compare/2.7.0...2.7.1)
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/PrimeService.Tests/PrimeService.Tests.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj
index 5fe9ad091d0a3..a6130c4bdc1ff 100644
--- a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj
+++ b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj
@@ -8,7 +8,7 @@
-
+
From d7ce916c0d8cf4256aca06a75de02959d842fac1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:17:53 +0000
Subject: [PATCH 13/84] Bump xunit.runner.visualstudio
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8)
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/before/unit-testing-best-practices-before.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj
index d4359d506f1ca..72ae7282b2f08 100644
--- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj
+++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj
@@ -10,7 +10,7 @@
-
+
From 16b91d74b2a3d3b3bb60a4b925bfa162eaf54a8a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:27:09 +0000
Subject: [PATCH 14/84] Bump Octokit
Bumps [Octokit](https://github.com/octokit/octokit.net) from 10.0.0 to 11.0.1.
- [Release notes](https://github.com/octokit/octokit.net/releases)
- [Changelog](https://github.com/octokit/octokit.net/blob/main/docs/releases.md)
- [Commits](https://github.com/octokit/octokit.net/compare/v10.0.0...v11.0.1)
---
updated-dependencies:
- dependency-name: Octokit
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
---
.../finished/IssuePRreport.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/finished/IssuePRreport.csproj b/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/finished/IssuePRreport.csproj
index 0883ce5f25d05..c470029f00cc8 100644
--- a/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/finished/IssuePRreport.csproj
+++ b/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/finished/IssuePRreport.csproj
@@ -9,7 +9,7 @@
-
+
From 4414263490c4a10a03c1da65195bc3d5792b85e5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:29:57 +0000
Subject: [PATCH 15/84] Bump xunit
Bumps [xunit](https://github.com/xunit/xunit) from 2.7.0 to 2.7.1.
- [Commits](https://github.com/xunit/xunit/compare/2.7.0...2.7.1)
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/after/unit-testing-best-practices-after.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj
index 4d6cab2389e17..d4359d506f1ca 100644
--- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj
+++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj
@@ -9,7 +9,7 @@
-
+
From bd41cf55191df9612082a0436b2cab807478fa3b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:31:06 +0000
Subject: [PATCH 16/84] Bump xunit.runner.visualstudio
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8)
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/XUnit.TestProject/XUnit.Project.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj b/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj
index eea43b1529c2d..69683900b11a6 100644
--- a/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj
+++ b/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj
@@ -10,7 +10,7 @@
-
+ allruntime; build; native; contentfiles; analyzers; buildtransitive
From d68b13b7dd65bf9a864c8349038dd1c50975ed0d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:35:57 +0000
Subject: [PATCH 17/84] Bump Microsoft.Extensions.Azure in
/docs/azure/sdk/snippets/logging
Bumps [Microsoft.Extensions.Azure](https://github.com/Azure/azure-sdk-for-net) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Microsoft.Extensions.Azure_1.7.2...Microsoft.Extensions.Azure_1.7.3)
---
updated-dependencies:
- dependency-name: Microsoft.Extensions.Azure
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
index d7776febea80c..d9d4637a523fb 100644
--- a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
+++ b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
@@ -10,7 +10,7 @@
-
+
From ebb44a3a5d4533ef31f355fef5f724801afdc610 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:38:13 +0000
Subject: [PATCH 18/84] Bump xunit.runner.visualstudio in
/samples/snippets/csharp/xunit-test
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8)
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
samples/snippets/csharp/xunit-test/xunit-test.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/csharp/xunit-test/xunit-test.csproj b/samples/snippets/csharp/xunit-test/xunit-test.csproj
index 90055c05a868d..300f6ef3c3837 100644
--- a/samples/snippets/csharp/xunit-test/xunit-test.csproj
+++ b/samples/snippets/csharp/xunit-test/xunit-test.csproj
@@ -8,7 +8,7 @@
-
+
From 4f7c83ee2adec58f5dfb70219892c9b6169520dc Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:39:55 +0000
Subject: [PATCH 19/84] Bump xunit.runner.visualstudio
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8)
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/after/unit-testing-best-practices-after.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj
index d4359d506f1ca..72ae7282b2f08 100644
--- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj
+++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj
@@ -10,7 +10,7 @@
-
+
From 7dc972df6a738446e501fcf21af7a6ccc7da8993 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:41:01 +0000
Subject: [PATCH 20/84] Bump xunit
Bumps [xunit](https://github.com/xunit/xunit) from 2.7.0 to 2.7.1.
- [Commits](https://github.com/xunit/xunit/compare/2.7.0...2.7.1)
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/XUnit.TestProject/XUnit.Project.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj b/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj
index 69683900b11a6..9004229e898f5 100644
--- a/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj
+++ b/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj
@@ -9,7 +9,7 @@
-
+ allruntime; build; native; contentfiles; analyzers; buildtransitive
From 8b39bd895de91b7ed33a2bd35016e4b2ab927088 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:42:27 +0000
Subject: [PATCH 21/84] Bump Octokit
Bumps [Octokit](https://github.com/octokit/octokit.net) from 10.0.0 to 11.0.1.
- [Release notes](https://github.com/octokit/octokit.net/releases)
- [Changelog](https://github.com/octokit/octokit.net/blob/main/docs/releases.md)
- [Commits](https://github.com/octokit/octokit.net/compare/v10.0.0...v11.0.1)
---
updated-dependencies:
- dependency-name: Octokit
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
---
.../start/IssuePRreport.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/start/IssuePRreport.csproj b/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/start/IssuePRreport.csproj
index 0883ce5f25d05..c470029f00cc8 100644
--- a/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/start/IssuePRreport.csproj
+++ b/docs/csharp/asynchronous-programming/snippets/generate-consume-asynchronous-streams/start/IssuePRreport.csproj
@@ -9,7 +9,7 @@
-
+
From da9edc00e23ac8cdd12a36fcbfbfb8ea4f0a53a2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:43:42 +0000
Subject: [PATCH 22/84] Bump xunit.runner.visualstudio
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8)
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/test/NewTypesTests/NewTypesTests.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj
index 47fcb48359954..c57c728022ca6 100644
--- a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj
+++ b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj
@@ -8,7 +8,7 @@
-
+
From c28efdb0610be39e216fd352d4662cffdbbbc189 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:44:58 +0000
Subject: [PATCH 23/84] Bump xunit.runner.visualstudio
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8)
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj b/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj
index 492bc098c5e09..b684cfebcc9fe 100644
--- a/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj
+++ b/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj
@@ -10,7 +10,7 @@
-
+ runtime; build; native; contentfiles; analyzers; buildtransitiveall
From 7eb15ea959957b50bb738c38d47370664d3a937e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:47:45 +0000
Subject: [PATCH 24/84] Bump Azure.Identity in /docs/azure/sdk/snippets/logging
Bumps [Azure.Identity](https://github.com/Azure/azure-sdk-for-net) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Azure.Identity_1.11.0...Azure.Identity_1.11.1)
---
updated-dependencies:
- dependency-name: Azure.Identity
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
index d9d4637a523fb..ac0e2a49eae03 100644
--- a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
+++ b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
@@ -9,7 +9,7 @@
-
+
From 2ea4264235a993b5b2bcc0c1aa83d923a2446342 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:50:09 +0000
Subject: [PATCH 25/84] Bump xunit
Bumps [xunit](https://github.com/xunit/xunit) from 2.7.0 to 2.7.1.
- [Commits](https://github.com/xunit/xunit/compare/2.7.0...2.7.1)
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../csharp/test/NewTypesTests/NewTypesTests.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj
index c57c728022ca6..6aa5e0194aa46 100644
--- a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj
+++ b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj
@@ -7,7 +7,7 @@
-
+
From d844baf0f0941f0442a2e922e93e76416a24b74a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:50:21 +0000
Subject: [PATCH 26/84] Bump xunit from 2.7.0 to 2.7.1 in
/samples/snippets/csharp/xunit-test
Bumps [xunit](https://github.com/xunit/xunit) from 2.7.0 to 2.7.1.
- [Commits](https://github.com/xunit/xunit/compare/2.7.0...2.7.1)
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
samples/snippets/csharp/xunit-test/xunit-test.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/csharp/xunit-test/xunit-test.csproj b/samples/snippets/csharp/xunit-test/xunit-test.csproj
index 300f6ef3c3837..3871f9c80aa57 100644
--- a/samples/snippets/csharp/xunit-test/xunit-test.csproj
+++ b/samples/snippets/csharp/xunit-test/xunit-test.csproj
@@ -7,7 +7,7 @@
-
+
From 3dce711268e195d58a69be25a17be05384cb13b7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:52:59 +0000
Subject: [PATCH 27/84] Bump Microsoft.Extensions.Azure in
/docs/azure/sdk/snippets/pagination
Bumps [Microsoft.Extensions.Azure](https://github.com/Azure/azure-sdk-for-net) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Microsoft.Extensions.Azure_1.7.2...Microsoft.Extensions.Azure_1.7.3)
---
updated-dependencies:
- dependency-name: Microsoft.Extensions.Azure
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
docs/azure/sdk/snippets/pagination/pagination.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/azure/sdk/snippets/pagination/pagination.csproj b/docs/azure/sdk/snippets/pagination/pagination.csproj
index afa3227df8963..49a2edd6d9a12 100644
--- a/docs/azure/sdk/snippets/pagination/pagination.csproj
+++ b/docs/azure/sdk/snippets/pagination/pagination.csproj
@@ -10,7 +10,7 @@
-
+
From b2d9b132ead7dafdb986c7a14d28a314693a6d4d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:53:04 +0000
Subject: [PATCH 28/84] Bump xunit in
/samples/snippets/csharp/concepts/linq/LinqSamples.Test
Bumps [xunit](https://github.com/xunit/xunit) from 2.7.0 to 2.7.1.
- [Commits](https://github.com/xunit/xunit/compare/2.7.0...2.7.1)
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.../concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj b/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj
index b684cfebcc9fe..0c1eba2bb05cd 100644
--- a/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj
+++ b/samples/snippets/csharp/concepts/linq/LinqSamples.Test/LinqSamples.Test.csproj
@@ -9,7 +9,7 @@
-
+ runtime; build; native; contentfiles; analyzers; buildtransitiveall
From ab9a8b76bc9c5e60b4d1fcbbeccc0f4b649078ee Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:56:33 +0000
Subject: [PATCH 29/84] Bump peter-evans/create-pull-request from 6.0.2 to
6.0.4
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.2 to 6.0.4.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/70a41aba780001da0a30141984ae2a0c95d8704e...9153d834b60caba6d51c9b9510b087acf9f33f83)
---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.github/workflows/clean-repo.yml | 2 +-
.github/workflows/dependabot-bot.yml | 2 +-
.github/workflows/whats-new.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/clean-repo.yml b/.github/workflows/clean-repo.yml
index 8f635924ecf33..266be8f95bb50 100644
--- a/.github/workflows/clean-repo.yml
+++ b/.github/workflows/clean-repo.yml
@@ -39,7 +39,7 @@ jobs:
# Create the PR for the work done by the "clean repo" tool
- name: create-pull-request
- uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e
+ uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83
with:
branch: create-cleanrepo-pull-request/patch
title: "Monthly chores: Automated repo cleanup"
diff --git a/.github/workflows/dependabot-bot.yml b/.github/workflows/dependabot-bot.yml
index a83c7e2793775..44e0615107ef6 100644
--- a/.github/workflows/dependabot-bot.yml
+++ b/.github/workflows/dependabot-bot.yml
@@ -44,7 +44,7 @@ jobs:
dependabot-yml-path: ".github/dependabot.yml"
- name: Create pull request
if: github.event_name == 'workflow_dispatch' || github.repository_owner == 'dotnet'
- uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e
+ uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83
with:
branch: create-dependabotconfig-pull-request/patch
title: "Update dependabot.yml - automatically."
diff --git a/.github/workflows/whats-new.yml b/.github/workflows/whats-new.yml
index e4852920d897c..449c35e883320 100644
--- a/.github/workflows/whats-new.yml
+++ b/.github/workflows/whats-new.yml
@@ -35,7 +35,7 @@ jobs:
savedir: './docs/whats-new'
- name: create-pull-request
- uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e
+ uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83
with:
branch: create-whatsnew-pull-request/patch
title: "What's new article"
From da151929a47df7f6e63959a4ee8d271e96df91a7 Mon Sep 17 00:00:00 2001
From: Tim Deschryver <28659384+timdeschryver@users.noreply.github.com>
Date: Wed, 17 Apr 2024 15:44:48 +0200
Subject: [PATCH 30/84] address nullable reference types warnings in event
handler doc (#40469)
* address warnings in event handler snippet
* address warnings event handler page
* update to file-scoped namespace
* fix the build by adding a csproj
---
...vents-that-conform-to-net-framework-guidelines.md | 10 +++++-----
.../csProgGuideEvents/CS/Events.cs | 8 +++-----
.../csProgGuideEvents/CS/Events.csproj | 12 ++++++++++++
.../csProgGuideEvents/CS/Program.cs | 11 +++++++++++
4 files changed, 31 insertions(+), 10 deletions(-)
create mode 100644 samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.csproj
create mode 100644 samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Program.cs
diff --git a/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md b/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md
index 978946f0312a3..a5020cbfa4de0 100644
--- a/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md
+++ b/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md
@@ -13,7 +13,7 @@ ms.assetid: 9310ae16-8627-44a2-b08c-05e5976202b1
The following procedure demonstrates how to add events that follow the standard .NET pattern to your classes and structs. All events in the .NET class library are based on the delegate, which is defined as follows:
```csharp
-public delegate void EventHandler(object sender, EventArgs e);
+public delegate void EventHandler(object? sender, EventArgs e);
```
> [!NOTE]
@@ -42,7 +42,7 @@ The name `EventHandler` can lead to a bit of confusion as it doesn't actually ha
2. (Skip this step if you are using the generic version of .) Declare a delegate in your publishing class. Give it a name that ends with `EventHandler`. The second parameter specifies your custom `EventArgs` type.
```csharp
- public delegate void CustomEventHandler(object sender, CustomEventArgs args);
+ public delegate void CustomEventHandler(object? sender, CustomEventArgs args);
```
3. Declare the event in your publishing class by using one of the following steps.
@@ -50,19 +50,19 @@ The name `EventHandler` can lead to a bit of confusion as it doesn't actually ha
1. If you have no custom EventArgs class, your Event type will be the non-generic EventHandler delegate. You do not have to declare the delegate because it is already declared in the namespace that is included when you create your C# project. Add the following code to your publisher class.
```csharp
- public event EventHandler RaiseCustomEvent;
+ public event EventHandler? RaiseCustomEvent;
```
2. If you are using the non-generic version of and you have a custom class derived from , declare your event inside your publishing class and use your delegate from step 2 as the type.
```csharp
- public event CustomEventHandler RaiseCustomEvent;
+ public event CustomEventHandler? RaiseCustomEvent;
```
3. If you are using the generic version, you do not need a custom delegate. Instead, in your publishing class, you specify your event type as `EventHandler`, substituting the name of your own class between the angle brackets.
```csharp
- public event EventHandler RaiseCustomEvent;
+ public event EventHandler? RaiseCustomEvent;
```
## Example
diff --git a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.cs b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.cs
index 84f72e819792e..20f6f0797ce1d 100644
--- a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.cs
+++ b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.cs
@@ -177,8 +177,6 @@ Drawing a rectangle
//--------------------------------------------------------------------------------------
//
-using System;
-
namespace DotNetEvents
{
// Define a class to hold custom event info
@@ -196,7 +194,7 @@ public CustomEventArgs(string message)
class Publisher
{
// Declare the event using EventHandler
- public event EventHandler RaiseCustomEvent;
+ public event EventHandler? RaiseCustomEvent;
public void DoSomething()
{
@@ -213,7 +211,7 @@ protected virtual void OnRaiseCustomEvent(CustomEventArgs e)
// Make a temporary copy of the event to avoid possibility of
// a race condition if the last subscriber unsubscribes
// immediately after the null check and before the event is raised.
- EventHandler raiseEvent = RaiseCustomEvent;
+ EventHandler? raiseEvent = RaiseCustomEvent;
// Event will be null if there are no subscribers
if (raiseEvent != null)
@@ -241,7 +239,7 @@ public Subscriber(string id, Publisher pub)
}
// Define what actions to take when the event is raised.
- void HandleCustomEvent(object sender, CustomEventArgs e)
+ void HandleCustomEvent(object? sender, CustomEventArgs e)
{
Console.WriteLine($"{_id} received this message: {e.Message}");
}
diff --git a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.csproj b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.csproj
new file mode 100644
index 0000000000000..8fc28546a07a7
--- /dev/null
+++ b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Events.csproj
@@ -0,0 +1,12 @@
+
+
+
+ Exe
+ net8.0-windows
+ enable
+ enable
+ true
+ Events.Program
+
+
+
diff --git a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Program.cs b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Program.cs
new file mode 100644
index 0000000000000..0fd06ec4ae7eb
--- /dev/null
+++ b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideEvents/CS/Program.cs
@@ -0,0 +1,11 @@
+using System;
+
+namespace Events
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ }
+ }
+}
From 13b0e46e5b9e95c5ddcc8159903bf1b78c9e48a5 Mon Sep 17 00:00:00 2001
From: Rageking8 <106309953+Rageking8@users.noreply.github.com>
Date: Wed, 17 Apr 2024 21:46:50 +0800
Subject: [PATCH 31/84] Update github default branch in URLs (#40504)
---
docs/architecture/maui/preface.md | 2 +-
.../porting/net-framework-tech-unavailable.md | 2 +-
docs/framework/install/on-windows-10.md | 2 +-
docs/framework/install/on-windows-8-1.md | 4 ++--
docs/framework/install/on-windows-8.md | 4 ++--
.../versions-and-dependencies.md | 22 +++++++++----------
...the-ui-automation-value-control-pattern.md | 3 +--
docs/framework/ui-automation/index.md | 7 +++---
.../invoke-a-control-using-ui-automation.md | 2 +-
.../move-a-ui-automation-element.md | 2 +-
...xtpattern-and-embedded-objects-overview.md | 3 +--
.../ui-automation-and-screen-scaling.md | 5 ++---
...automation-control-patterns-for-clients.md | 7 +++---
.../ui-automation-events-for-clients.md | 3 +--
.../ui-automation-textpattern-overview.md | 3 +--
docs/framework/whats-new/index.md | 8 +++----
docs/standard/commandline/tab-completion.md | 4 ++--
17 files changed, 38 insertions(+), 45 deletions(-)
diff --git a/docs/architecture/maui/preface.md b/docs/architecture/maui/preface.md
index f86e60319ab31..e3b2e783f9f77 100644
--- a/docs/architecture/maui/preface.md
+++ b/docs/architecture/maui/preface.md
@@ -14,7 +14,7 @@ This eBook provides guidance on building cross-platform enterprise apps using .N
The guide provides architectural guidance for developing adaptable, maintainable, and testable .NET MAUI enterprise apps. Guidance is provided on how to implement MVVM, dependency injection, navigation, validation, and configuration management, while maintaining loose coupling. In addition, there's also guidance on performing authentication and authorization with IdentityServer, accessing data from containerized microservices, and unit testing.
-The guide comes with source code for the [eShopOnContainers multi-platform app](https://github.com/dotnet-architecture/eShopOnContainers/tree/master/src/Mobile), and source code for the [eShopOnContainers reference app](https://github.com/dotnet-architecture/eShopOnContainers). The eShopOnContainers multi-platform app is a cross-platform enterprise app developed using .NET MAUI, which connects to a series of containerized microservices known as the eShopOnContainers reference app. However, the eShopOnContainers multi-platform app can be configured to consume data from mock services for those who wish to avoid deploying the containerized microservices.
+The guide comes with source code for the [eShopOnContainers multi-platform app](https://github.com/dotnet-architecture/eShopOnContainers/tree/main/src/Mobile), and source code for the [eShopOnContainers reference app](https://github.com/dotnet-architecture/eShopOnContainers). The eShopOnContainers multi-platform app is a cross-platform enterprise app developed using .NET MAUI, which connects to a series of containerized microservices known as the eShopOnContainers reference app. However, the eShopOnContainers multi-platform app can be configured to consume data from mock services for those who wish to avoid deploying the containerized microservices.
## What's left out of this guide's scope
diff --git a/docs/core/porting/net-framework-tech-unavailable.md b/docs/core/porting/net-framework-tech-unavailable.md
index 3f509c6ad44e5..144894c18ab4e 100644
--- a/docs/core/porting/net-framework-tech-unavailable.md
+++ b/docs/core/porting/net-framework-tech-unavailable.md
@@ -24,7 +24,7 @@ For simple communication across processes, consider inter-process communication
Across machines, use a network-based solution as an alternative. Preferably, use a low-overhead plain text protocol, such as HTTP. The [Kestrel web server](/aspnet/core/fundamentals/servers/kestrel), which is the web server used by ASP.NET Core, is an option here. Also, consider using for network-based, cross-machine scenarios. StreamJsonRpc, mentioned earlier, can be used for JSON or binary (via MessagePack) communication over web sockets.
-For more messaging options, see [.NET Open Source Developer Projects: Messaging](https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md#messaging).
+For more messaging options, see [.NET Open Source Developer Projects: Messaging](https://github.com/Microsoft/dotnet/blob/main/dotnet-developer-projects.md#messaging).
Because remoting is not supported, calls to `BeginInvoke()` and `EndInvoke()` on delegate objects will throw `PlatformNotSupportedException`. For more information, see [Migrating Delegate BeginInvoke Calls For .NET Core](https://devblogs.microsoft.com/dotnet/migrating-delegate-begininvoke-calls-for-net-core/).
diff --git a/docs/framework/install/on-windows-10.md b/docs/framework/install/on-windows-10.md
index 16bbc30efc6ad..f312dc0049458 100644
--- a/docs/framework/install/on-windows-10.md
+++ b/docs/framework/install/on-windows-10.md
@@ -5,7 +5,7 @@ ms.date: 10/06/2021
---
# Install the .NET Framework on Windows 10 and Windows Server 2016 and later
-The .NET Framework is required to run many applications on Windows. The instructions in this article should help you install the .NET Framework versions that you need. The [.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/master/releases/net48) is the latest available version.
+The .NET Framework is required to run many applications on Windows. The instructions in this article should help you install the .NET Framework versions that you need. The [.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/main/releases/net48) is the latest available version.
You may have arrived on this page after trying to run an application and seeing a dialog on your machine similar to the following one:
diff --git a/docs/framework/install/on-windows-8-1.md b/docs/framework/install/on-windows-8-1.md
index b5a2b9b3b84fe..b420df785928b 100644
--- a/docs/framework/install/on-windows-8-1.md
+++ b/docs/framework/install/on-windows-8-1.md
@@ -10,14 +10,14 @@ The .NET Framework is required to run many applications on Windows. You can use
![This application could not be started](./media/this-application-could-not-be-started.png)
-These instructions will help you install the .NET Framework versions you need. [.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/master/releases/net48) is the latest version. It is supported on Windows 8.1 and Windows Server 2012 R2. It's included with Windows 11 and in Windows 10 starting with the [May 2019 Update](https://support.microsoft.com/help/4028685/windows-10-get-the-update).
+These instructions will help you install the .NET Framework versions you need. [.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/main/releases/net48) is the latest version. It is supported on Windows 8.1 and Windows Server 2012 R2. It's included with Windows 11 and in Windows 10 starting with the [May 2019 Update](https://support.microsoft.com/help/4028685/windows-10-get-the-update).
## .NET Framework 4.8
> [!div class="button"]
> [Download .NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48)
-[.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/master/releases/net48) can be used to run applications built for .NET Framework 4.0 or later.
+[.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/main/releases/net48) can be used to run applications built for .NET Framework 4.0 or later.
## .NET Framework 3.5
diff --git a/docs/framework/install/on-windows-8.md b/docs/framework/install/on-windows-8.md
index 39d3a14e8a03f..e48bbf9733e5a 100644
--- a/docs/framework/install/on-windows-8.md
+++ b/docs/framework/install/on-windows-8.md
@@ -10,7 +10,7 @@ The .NET Framework is required to run many applications on Windows. You can use
![This application could not be started](./media/this-application-could-not-be-started.png)
-These instructions will help you install the .NET Framework versions you need. [.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/master/releases/net48) is the latest version. It is supported on Windows Server 2012 but is not supported on Windows 8. It's included with Windows 11 and in Windows 10 starting with the [May 2019 Update](https://support.microsoft.com/help/4028685/windows-10-get-the-update).
+These instructions will help you install the .NET Framework versions you need. [.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/main/releases/net48) is the latest version. It is supported on Windows Server 2012 but is not supported on Windows 8. It's included with Windows 11 and in Windows 10 starting with the [May 2019 Update](https://support.microsoft.com/help/4028685/windows-10-get-the-update).
## .NET Framework 4.8
@@ -19,7 +19,7 @@ These instructions will help you install the .NET Framework versions you need. [
.NET Framework 4.8 is supported on Windows Server 2012. It is not supported on Windows 8.
-[.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/master/releases/net48) can be used to run applications built for .NET Framework 4.0 or later.
+[.NET Framework 4.8](https://github.com/Microsoft/dotnet/tree/main/releases/net48) can be used to run applications built for .NET Framework 4.0 or later.
## .NET Framework 4.6
diff --git a/docs/framework/migration-guide/versions-and-dependencies.md b/docs/framework/migration-guide/versions-and-dependencies.md
index 021bc5dc87c4b..fd8008d645d49 100644
--- a/docs/framework/migration-guide/versions-and-dependencies.md
+++ b/docs/framework/migration-guide/versions-and-dependencies.md
@@ -53,7 +53,7 @@ Jump to:
- [New features](../whats-new/index.md#whats-new-in-net-framework-481)
- New accessibility features
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net481/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net481/README.md)
| | Versions |
|-|-|
@@ -72,7 +72,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
- [New features](../whats-new/index.md#whats-new-in-net-framework-48)
- [New in accessibility](../whats-new/whats-new-in-accessibility.md#whats-new-in-accessibility-in-net-framework-48)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net48/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net48/README.md)
| | Versions |
|-|-|
@@ -93,7 +93,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
- [New features](../whats-new/index.md#whats-new-in-net-framework-472)
- [New in accessibility](../whats-new/whats-new-in-accessibility.md#whats-new-in-accessibility-in-net-framework-472)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net472/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net472/README.md)
| | Versions |
|-|-|
@@ -116,7 +116,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
- [New features](../whats-new/index.md#whats-new-in-net-framework-471)
- [New in accessibility](../whats-new/whats-new-in-accessibility.md#whats-new-in-accessibility-in-net-framework-471)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net471/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net471/README.md)
| | Versions |
|-|-|
@@ -134,7 +134,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
### .NET Framework 4.7
- [New features](../whats-new/index.md#whats-new-in-net-framework-47)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net47/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net47/README.md)
| | Versions |
|--------------------|-------------------------------------------------------------------------------------------------------|
@@ -152,7 +152,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
### .NET Framework 4.6.2
- [New features](../whats-new/index.md#whats-new-in-net-framework-462)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net462/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net462/README.md)
| | Versions |
|--------------------|------------------------------------------------------------------------------------------------------------|
@@ -170,7 +170,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
### .NET Framework 4.6.1
- [New features](../whats-new/index.md#whats-new-in-net-framework-461)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net461/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net461/README.md)
| | Versions |
|---------------------------------------|---------------------------------------------------------------------------|
@@ -191,7 +191,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
### .NET Framework 4.6
- [New features](../whats-new/index.md#whats-new-in-net-2015)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net46/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net46/README.md)
| | Versions |
|---------------------------------------|----------------------------------------------------------|
@@ -210,7 +210,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
### .NET Framework 4.5.2
- [New features](../whats-new/index.md#whats-new-in-net-framework-452)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net452/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net452/README.md)
| | Versions |
|--------------------|----------------------------------------------------------|
@@ -223,7 +223,7 @@ To determine the installed .NET version, use `Release` DWORD 379893. For more in
### .NET Framework 4.5.1
- [New features](../whats-new/index.md#whats-new-in-net-framework-451)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net451/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net451/README.md)
| | Versions |
|---------------------------------------|----------------------------------------------------------------|
@@ -244,7 +244,7 @@ For more information, see [instructions](how-to-determine-which-versions-are-ins
### .NET Framework 4.5
- [New features](../whats-new/index.md#whats-new-in-net-framework-45)
-- [Release notes](https://github.com/Microsoft/dotnet/tree/master/releases/net45/README.md)
+- [Release notes](https://github.com/Microsoft/dotnet/tree/main/releases/net45/README.md)
| | Versions |
|---------------------------------------|-------------------------------------------|
diff --git a/docs/framework/ui-automation/implementing-the-ui-automation-value-control-pattern.md b/docs/framework/ui-automation/implementing-the-ui-automation-value-control-pattern.md
index 2f02581a1e11b..a1c6a30aedd0c 100644
--- a/docs/framework/ui-automation/implementing-the-ui-automation-value-control-pattern.md
+++ b/docs/framework/ui-automation/implementing-the-ui-automation-value-control-pattern.md
@@ -6,7 +6,6 @@ helpviewer_keywords:
- "control patterns, Value"
- "UI Automation, Value control pattern"
- "Value control pattern"
-ms.assetid: b0fcdd87-3add-4345-bca9-e891205e02ba
---
# Implementing the UI Automation Value Control Pattern
@@ -70,6 +69,6 @@ Example of Color Swatch String Mapping
- [UI Automation Control Patterns Overview](ui-automation-control-patterns-overview.md)
- [Support Control Patterns in a UI Automation Provider](support-control-patterns-in-a-ui-automation-provider.md)
- [UI Automation Control Patterns for Clients](ui-automation-control-patterns-for-clients.md)
-- [ValuePattern Insert Text Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/InsertText)
+- [ValuePattern Insert Text Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/InsertText)
- [UI Automation Tree Overview](ui-automation-tree-overview.md)
- [Use Caching in UI Automation](use-caching-in-ui-automation.md)
diff --git a/docs/framework/ui-automation/index.md b/docs/framework/ui-automation/index.md
index 8ce046af18927..58e3713747ba9 100644
--- a/docs/framework/ui-automation/index.md
+++ b/docs/framework/ui-automation/index.md
@@ -2,11 +2,10 @@
title: "Microsoft UI Automation"
description: See articles about Microsoft UI Automation, an accessibility framework for Microsoft Windows. This documentation describes UI Automation API for managed code.
ms.date: "03/30/2017"
-f1_keywords:
+f1_keywords:
- "AutoGeneratedOrientationPage"
-helpviewer_keywords:
+helpviewer_keywords:
- "UI Automation"
-ms.assetid: e7ec856e-41ee-47b1-9d57-b75a3dad088c
---
# Microsoft UI Automation
@@ -29,4 +28,4 @@ ms.assetid: e7ec856e-41ee-47b1-9d57-b75a3dad088c
## Related sections
-- [Accessibility Samples](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility)
+- [Accessibility Samples](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility)
diff --git a/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md b/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md
index b581c51dafc4d..b327191942c50 100644
--- a/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md
+++ b/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md
@@ -37,4 +37,4 @@ ms.topic: how-to
## See also
-- [InvokePattern, ExpandCollapsePattern, and TogglePattern Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/InvokePattern)
+- [InvokePattern, ExpandCollapsePattern, and TogglePattern Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/InvokePattern)
diff --git a/docs/framework/ui-automation/move-a-ui-automation-element.md b/docs/framework/ui-automation/move-a-ui-automation-element.md
index 2fcdea6a319e4..2632195734f15 100644
--- a/docs/framework/ui-automation/move-a-ui-automation-element.md
+++ b/docs/framework/ui-automation/move-a-ui-automation-element.md
@@ -29,4 +29,4 @@ ms.topic: how-to
## See also
-- [WindowPattern Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/WindowMove)
+- [WindowPattern Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/WindowMove)
diff --git a/docs/framework/ui-automation/textpattern-and-embedded-objects-overview.md b/docs/framework/ui-automation/textpattern-and-embedded-objects-overview.md
index 00f2d1d0d3b98..4da53bed72d03 100644
--- a/docs/framework/ui-automation/textpattern-and-embedded-objects-overview.md
+++ b/docs/framework/ui-automation/textpattern-and-embedded-objects-overview.md
@@ -7,7 +7,6 @@ helpviewer_keywords:
- "embedded objects, accessing"
- "accessing embedded objects"
- "embedded objects, UI Automation"
-ms.assetid: 93fdfbb9-0025-4b72-8ca0-0714adbb70d5
---
# TextPattern and Embedded Objects Overview
@@ -162,4 +161,4 @@ Examples of how a text range is adjusted for Move() and ExpandToEnclosingUnit()
- [Access Embedded Objects Using UI Automation](access-embedded-objects-using-ui-automation.md)
- [Expose the Content of a Table Using UI Automation](expose-the-content-of-a-table-using-ui-automation.md)
- [Traverse Text Using UI Automation](traverse-text-using-ui-automation.md)
-- [TextPattern Search and Selection Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/FindText)
+- [TextPattern Search and Selection Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/FindText)
diff --git a/docs/framework/ui-automation/ui-automation-and-screen-scaling.md b/docs/framework/ui-automation/ui-automation-and-screen-scaling.md
index 680b8861c4405..82d0a1c8eb244 100644
--- a/docs/framework/ui-automation/ui-automation-and-screen-scaling.md
+++ b/docs/framework/ui-automation/ui-automation-and-screen-scaling.md
@@ -10,7 +10,6 @@ helpviewer_keywords:
- "screens, scaling"
- "UI (user interface), automation"
- "UI Automation"
-ms.assetid: 4380cad7-e509-448f-b9a5-6de042605fd4
---
# UI Automation and Screen Scaling
@@ -63,7 +62,7 @@ Starting with Windows Vista, Windows enables users to change the dots per inch (
[!code-csharp[Highlighter#101](../../../samples/snippets/csharp/VS_Snippets_Wpf/Highlighter/CSharp/NativeMethods.cs#101)]
[!code-vb[Highlighter#101](../../../samples/snippets/visualbasic/VS_Snippets_Wpf/Highlighter/VisualBasic/NativeMethods.vb#101)]
- This function makes the entire process dpi-aware, meaning that all windows that belong to the process are unscaled. In the [Highlighter Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/Highlighter), for instance, the four windows that make up the highlight rectangle are located at the physical coordinates obtained from UI Automation, not the logical coordinates. If the sample were not dpi-aware, the highlight would be drawn at the logical coordinates on the desktop, which would result in incorrect placement in a non-96- dpi environment.
+ This function makes the entire process dpi-aware, meaning that all windows that belong to the process are unscaled. In the [Highlighter Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/Highlighter), for instance, the four windows that make up the highlight rectangle are located at the physical coordinates obtained from UI Automation, not the logical coordinates. If the sample were not dpi-aware, the highlight would be drawn at the logical coordinates on the desktop, which would result in incorrect placement in a non-96- dpi environment.
2. To get cursor coordinates, call the Win32 function `GetPhysicalCursorPos`. The following example shows how to declare and use this function.
@@ -77,4 +76,4 @@ Starting with Windows Vista, Windows enables users to change the dots per inch (
## See also
-- [Highlighter Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/Highlighter)
+- [Highlighter Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/Highlighter)
diff --git a/docs/framework/ui-automation/ui-automation-control-patterns-for-clients.md b/docs/framework/ui-automation/ui-automation-control-patterns-for-clients.md
index b671830d8245e..98c94ef53dbdb 100644
--- a/docs/framework/ui-automation/ui-automation-control-patterns-for-clients.md
+++ b/docs/framework/ui-automation/ui-automation-control-patterns-for-clients.md
@@ -5,7 +5,6 @@ ms.date: "03/30/2017"
helpviewer_keywords:
- "UI Automation, control patterns for clients"
- "control patterns, UI Automation clients"
-ms.assetid: 571561d8-5f49-43a9-a054-87735194e013
---
# UI Automation Control Patterns for Clients
@@ -53,6 +52,6 @@ ms.assetid: 571561d8-5f49-43a9-a054-87735194e013
- [Invoke a Control Using UI Automation](invoke-a-control-using-ui-automation.md)
- [Get the Toggle State of a Check Box Using UI Automation](get-the-toggle-state-of-a-check-box-using-ui-automation.md)
- [Control Pattern Mapping for UI Automation Clients](control-pattern-mapping-for-ui-automation-clients.md)
-- [TextPattern Insert Text Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/InsertText)
-- [TextPattern Search and Selection Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/FindText)
-- [InvokePattern, ExpandCollapsePattern, and TogglePattern Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/InvokePattern)
+- [TextPattern Insert Text Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/InsertText)
+- [TextPattern Search and Selection Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/FindText)
+- [InvokePattern, ExpandCollapsePattern, and TogglePattern Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/InvokePattern)
diff --git a/docs/framework/ui-automation/ui-automation-events-for-clients.md b/docs/framework/ui-automation/ui-automation-events-for-clients.md
index 4272a2d79afc7..8ed5c6b08657f 100644
--- a/docs/framework/ui-automation/ui-automation-events-for-clients.md
+++ b/docs/framework/ui-automation/ui-automation-events-for-clients.md
@@ -5,7 +5,6 @@ ms.date: "03/30/2017"
helpviewer_keywords:
- "UI Automation, events for clients"
- "events, UI Automation clients"
-ms.assetid: b909e388-3f24-4997-b6d4-bd9c35c2dc27
---
# UI Automation Events for Clients
@@ -60,4 +59,4 @@ ms.assetid: b909e388-3f24-4997-b6d4-bd9c35c2dc27
- [Subscribe to UI Automation Events](subscribe-to-ui-automation-events.md)
- [UI Automation Events Overview](ui-automation-events-overview.md)
- [UI Automation Properties Overview](ui-automation-properties-overview.md)
-- [TrackFocus Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/FocusTracker)
+- [TrackFocus Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/FocusTracker)
diff --git a/docs/framework/ui-automation/ui-automation-textpattern-overview.md b/docs/framework/ui-automation/ui-automation-textpattern-overview.md
index d6e8109aa6d2e..0dfa31e3b9946 100644
--- a/docs/framework/ui-automation/ui-automation-textpattern-overview.md
+++ b/docs/framework/ui-automation/ui-automation-textpattern-overview.md
@@ -6,7 +6,6 @@ helpviewer_keywords:
- "UI Automation, TextPattern class"
- "TextPattern class"
- "classes, TextPattern"
-ms.assetid: 41787927-df1f-4f4a-aba3-641662854fc4
---
# UI Automation TextPattern Overview
@@ -19,7 +18,7 @@ This overview describes how to use Microsoft UI Automation to expose the textual
Exposing the textual content of a control is accomplished through the use of the control pattern, which represents the contents of a text container as a text stream. In turn, requires the support of the class to expose format and style attributes. supports by representing contiguous or multiple, disjoint text spans in a text container with a collection of and endpoints. supports functionality such as selection, comparison, retrieval and traversal.
> [!NOTE]
-> The classes do not provide a means to insert or modify text. However, depending on the control, this may be accomplished by the UI Automation or through direct keyboard input. See the [TextPattern Insert Text Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Accessibility/InsertText) for an example.
+> The classes do not provide a means to insert or modify text. However, depending on the control, this may be accomplished by the UI Automation or through direct keyboard input. See the [TextPattern Insert Text Sample](https://github.com/Microsoft/WPF-Samples/tree/main/Accessibility/InsertText) for an example.
The functionality described in this overview is vital to assistive technology vendors and their end users. Assistive technologies can use UI Automation to gather complete text formatting information for the user and provide programmatic navigation and selection of text by (character, word, line, or paragraph).
diff --git a/docs/framework/whats-new/index.md b/docs/framework/whats-new/index.md
index 882a79fe27371..d2f7e7f9e5455 100644
--- a/docs/framework/whats-new/index.md
+++ b/docs/framework/whats-new/index.md
@@ -736,7 +736,7 @@ In .NET Framework 4.7 and earlier versions, ASP.NET allowed developers to store
- [Windows Forms](#wf47)
- [Windows Presentation Foundation (WPF)](#WPF47)
-For a list of new APIs added to .NET Framework 4.7, see [.NET Framework 4.7 API Changes](https://github.com/Microsoft/dotnet/blob/master/releases/net47/dotnet47-api-changes.md) on GitHub. For a list of feature improvements and bug fixes in .NET Framework 4.7, see [.NET Framework 4.7 List of Changes](https://github.com/Microsoft/dotnet/blob/master/releases/net47/dotnet47-changes.md) on GitHub. For more information, see [Announcing .NET Framework 4.7](https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-7/) in the .NET blog.
+For a list of new APIs added to .NET Framework 4.7, see [.NET Framework 4.7 API Changes](https://github.com/Microsoft/dotnet/blob/main/releases/net47/dotnet47-api-changes.md) on GitHub. For a list of feature improvements and bug fixes in .NET Framework 4.7, see [.NET Framework 4.7 List of Changes](https://github.com/Microsoft/dotnet/blob/main/releases/net47/dotnet47-changes.md) on GitHub. For more information, see [Announcing .NET Framework 4.7](https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-7/) in the .NET blog.
@@ -1235,7 +1235,7 @@ In previous versions of .NET Framework, WPF applications can't opt into the focu
**Per-monitor DPI**
-To support the recent proliferation of high-DPI and hybrid-DPI environments for WPF apps, WPF in .NET Framework 4.6.2 enables per-monitor awareness. See the [samples and developer guide](https://github.com/Microsoft/WPF-Samples/tree/master/PerMonitorDPI) on GitHub for more information about how to enable your WPF app to become per-monitor DPI aware.
+To support the recent proliferation of high-DPI and hybrid-DPI environments for WPF apps, WPF in .NET Framework 4.6.2 enables per-monitor awareness. See the [samples and developer guide](https://github.com/Microsoft/WPF-Samples/tree/main/PerMonitorDPI) on GitHub for more information about how to enable your WPF app to become per-monitor DPI aware.
In previous versions of .NET Framework, WPF apps are system-DPI aware. In other words, the application's UI is scaled by the OS as appropriate, depending on the DPI of the monitor on which the app is rendered.
@@ -1322,11 +1322,11 @@ The *unmanaged debugging API* has been enhanced in .NET Framework 4.6.2 to perfo
For more information on .NET Framework 4.6.1, see the following topics:
-- [.NET Framework 4.6.1 list of changes](https://github.com/Microsoft/dotnet/blob/master/releases/net461/dotnet461-changes.md)
+- [.NET Framework 4.6.1 list of changes](https://github.com/Microsoft/dotnet/blob/main/releases/net461/dotnet461-changes.md)
- [Application Compatibility in 4.6.1](../migration-guide/application-compatibility.md)
-- [.NET Framework API diff](https://github.com/Microsoft/dotnet/blob/master/releases/net461/dotnet461-api-changes.md) (on GitHub)
+- [.NET Framework API diff](https://github.com/Microsoft/dotnet/blob/main/releases/net461/dotnet461-api-changes.md) (on GitHub)
diff --git a/docs/standard/commandline/tab-completion.md b/docs/standard/commandline/tab-completion.md
index eb39496416021..4336f7387418e 100644
--- a/docs/standard/commandline/tab-completion.md
+++ b/docs/standard/commandline/tab-completion.md
@@ -32,9 +32,9 @@ For other command-line apps built on `System.CommandLine`:
* For `bash`, add the contents of [*dotnet-suggest-shim.bash*](https://github.com/dotnet/command-line-api/blob/main/src/System.CommandLine.Suggest/dotnet-suggest-shim.bash) to *~/.bash_profile*.
- * For `zsh`, add the contents of [dotnet-suggest-shim.zsh](https://github.com/dotnet/command-line-api/blob/master/src/System.CommandLine.Suggest/dotnet-suggest-shim.zsh) to *~/.zshrc*.
+ * For `zsh`, add the contents of [dotnet-suggest-shim.zsh](https://github.com/dotnet/command-line-api/blob/main/src/System.CommandLine.Suggest/dotnet-suggest-shim.zsh) to *~/.zshrc*.
- * For PowerShell, add the contents of [*dotnet-suggest-shim.ps1*](https://github.com/dotnet/command-line-api/blob/master/src/System.CommandLine.Suggest/dotnet-suggest-shim.ps1) to your PowerShell profile. You can find the expected path to your PowerShell profile by running the following command in your console:
+ * For PowerShell, add the contents of [*dotnet-suggest-shim.ps1*](https://github.com/dotnet/command-line-api/blob/main/src/System.CommandLine.Suggest/dotnet-suggest-shim.ps1) to your PowerShell profile. You can find the expected path to your PowerShell profile by running the following command in your console:
```console
echo $profile
From e4873ce3ab50d53fc3f79aeb44bfe5ca329477f5 Mon Sep 17 00:00:00 2001
From: Olabamiji Oyetubo <60369677+bigboybamo@users.noreply.github.com>
Date: Wed, 17 Apr 2024 14:51:44 +0100
Subject: [PATCH 32/84] Update object-and-collection-initializers.md (#40466)
* Update object-and-collection-initializers.md
Added section for class type object Initialization
* Update object-and-collection-initializers.md
Fixed Class name issue
Moved explanation from comments to text
* Create HowToClassTypedInitializer.cs
* Update object-and-collection-initializers.md
Add code in seperate program
* Update HowToClassTypedInitializer.cs
Updated constructor information
---
.../object-and-collection-initializers.md | 8 ++
.../HowToClassTypedInitializer.cs | 83 +++++++++++++++++++
2 files changed, 91 insertions(+)
create mode 100644 samples/snippets/csharp/programming-guide/classes-and-structs/object-collection-initializers/HowToClassTypedInitializer.cs
diff --git a/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md b/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md
index aa6647537964c..7b557a2e2e713 100644
--- a/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md
+++ b/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md
@@ -123,6 +123,14 @@ pet.FirstName = "Jane";
Required init-only properties support immutable structures while allowing natural syntax for users of the type.
+## Object Initializers with class-typed properties
+
+When initializing an object, particularly when reusing the current instance, it's crucial to consider the implications for class-typed properties.
+
+[!code-csharp[ClassTypedInitializer](../../../../samples/snippets/csharp/programming-guide/classes-and-structs/object-collection-initializers/HowToClassTypedInitializer.cs#HowToClassTypedInitializer)]
+
+The following example shows how, for ClassB, the initialization process involves updating specific values while retaining others from the original instance. The Initializer reuses current instance: ClassB's values will be: `100003` (new value we assign here), `true` (kept from EmbeddedClassTypeA's initialization), `BBBabc` (unchanged default from EmbeddedClassTypeB)
+
## Collection initializers
Collection initializers let you specify one or more element initializers when you initialize a collection type that implements and has `Add` with the appropriate signature as an instance method or an extension method. The element initializers can be a simple value, an expression, or an object initializer. By using a collection initializer, you do not have to specify multiple calls; the compiler adds the calls automatically.
diff --git a/samples/snippets/csharp/programming-guide/classes-and-structs/object-collection-initializers/HowToClassTypedInitializer.cs b/samples/snippets/csharp/programming-guide/classes-and-structs/object-collection-initializers/HowToClassTypedInitializer.cs
new file mode 100644
index 0000000000000..0e5a839910fda
--- /dev/null
+++ b/samples/snippets/csharp/programming-guide/classes-and-structs/object-collection-initializers/HowToClassTypedInitializer.cs
@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace object_collection_initializers
+{
+ //
+ public class HowToClassTypedInitializer
+ {
+ public class EmbeddedClassTypeA
+ {
+ public int I { get; set; }
+ public bool B { get; set; }
+ public string S { get; set; }
+ public EmbeddedClassTypeB ClassB { get; set; }
+
+ public override string ToString() => $"{I}|{B}|{S}|||{ClassB}";
+
+ public EmbeddedClassTypeA()
+ {
+ Console.WriteLine($"Entering EmbeddedClassTypeA constructor. Values are: {this}");
+ I = 3;
+ B = true;
+ S = "abc";
+ ClassB = new() { BB = true, BI = 43 };
+ Console.WriteLine($"Exiting EmbeddedClassTypeA constructor. Values are: {this})");
+ }
+ }
+
+ public class EmbeddedClassTypeB
+ {
+ public int BI { get; set; }
+ public bool BB { get; set; }
+ public string BS { get; set; }
+
+ public override string ToString() => $"{BI}|{BB}|{BS}";
+
+ public EmbeddedClassTypeB()
+ {
+ Console.WriteLine($"Entering EmbeddedClassTypeB constructor. Values are: {this}");
+ BI = 23;
+ BB = false;
+ BS = "BBBabc";
+ Console.WriteLine($"Exiting EmbeddedClassTypeB constructor. Values are: {this})");
+ }
+ }
+
+ public static void Main()
+ {
+ var a = new EmbeddedClassTypeA
+ {
+ I = 103,
+ B = false,
+ ClassB = { BI = 100003 }
+ };
+ Console.WriteLine($"After initializing EmbeddedClassTypeA: {a}");
+
+ var a2 = new EmbeddedClassTypeA
+ {
+ I = 103,
+ B = false,
+ ClassB = new() { BI = 100003 } //New instance
+ };
+ Console.WriteLine($"After initializing EmbeddedClassTypeA a2: {a2}");
+ }
+
+ // Output:
+ //Entering EmbeddedClassTypeA constructor Values are: 0|False||||
+ //Entering EmbeddedClassTypeB constructor Values are: 0|False|
+ //Exiting EmbeddedClassTypeB constructor Values are: 23|False|BBBabc)
+ //Exiting EmbeddedClassTypeA constructor Values are: 3|True|abc|||43|True|BBBabc)
+ //After initializing EmbeddedClassTypeA: 103|False|abc|||100003|True|BBBabc
+ //Entering EmbeddedClassTypeA constructor Values are: 0|False||||
+ //Entering EmbeddedClassTypeB constructor Values are: 0|False|
+ //Exiting EmbeddedClassTypeB constructor Values are: 23|False|BBBabc)
+ //Exiting EmbeddedClassTypeA constructor Values are: 3|True|abc|||43|True|BBBabc)
+ //Entering EmbeddedClassTypeB constructor Values are: 0|False|
+ //Exiting EmbeddedClassTypeB constructor Values are: 23|False|BBBabc)
+ //After initializing EmbeddedClassTypeA a2: 103|False|abc|||100003|False|BBBabc
+ }
+ //
+}
From c922fb1e96b39ff7a08a695752bf8fac99106f23 Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Wed, 17 Apr 2024 06:52:53 -0700
Subject: [PATCH 33/84] miscellaneous ml updates (#40498)
---
.../automate-training-with-cli.md | 6 +-
.../automate-training-with-model-builder.md | 109 ++++---
.../automated-machine-learning-mlnet.md | 10 +-
.../deep-learning-overview.md | 36 +--
.../how-does-mldotnet-work.md | 265 ++++--------------
.../install-extra-dependencies.md | 10 +-
.../how-to-guides/install-ml-net-cli.md | 4 +-
.../how-to-guides/load-data-ml-net.md | 2 +-
.../how-to-guides/matchup-app-infer-net.md | 22 +-
.../how-to-guides/retrain-model-ml-net.md | 40 +--
...model-serverless-azure-functions-ml-net.md | 4 +-
.../reference/ml-net-cli-reference.md | 4 +-
.../azure-training-concepts-model-builder.md | 4 +-
docs/machine-learning/resources/metrics.md | 4 +-
docs/machine-learning/resources/tasks.md | 2 +-
.../tutorials/github-issue-classification.md | 6 +-
...-violation-classification-model-builder.md | 8 +-
...ge-classification-api-transfer-learning.md | 2 +-
.../image-classification-model-builder.md | 2 +-
.../tutorials/image-classification.md | 8 +-
.../movie-recommendation-model-builder.md | 2 +-
.../tutorials/movie-recommendation.md | 6 +-
.../object-detection-model-builder.md | 30 +-
.../phone-calls-anomaly-detection.md | 4 +-
.../predict-prices-with-model-builder.md | 31 +-
.../tutorials/sales-anomaly-detection.md | 6 +-
.../tutorials/sentiment-analysis-cli.md | 6 +-
.../sentiment-analysis-model-builder.md | 32 +--
.../tutorials/sentiment-analysis.md | 8 +-
.../tutorials/text-classification-tf.md | 8 +-
.../time-series-demand-forecasting.md | 2 +-
31 files changed, 259 insertions(+), 424 deletions(-)
diff --git a/docs/machine-learning/automate-training-with-cli.md b/docs/machine-learning/automate-training-with-cli.md
index 1293fe86d8e08..443406b725844 100644
--- a/docs/machine-learning/automate-training-with-cli.md
+++ b/docs/machine-learning/automate-training-with-cli.md
@@ -14,11 +14,11 @@ To use the ML.NET API by itself, (without the ML.NET AutoML CLI) you need to cho
The ML.NET CLI simplifies this process using automated machine learning (AutoML).
> [!NOTE]
-> This topic refers to ML.NET **CLI** and ML.NET **AutoML**, which are currently in Preview, and material may be subject to change.
+> This article refers to ML.NET **CLI** and ML.NET **AutoML**, which are currently in Preview, and material may be subject to change.
## What is the ML.NET command-line interface (CLI)?
-The ML.NET CLI is a [.NET Core tool](../core/tools/global-tools.md). Once installed, you give it a machine learning task and a training dataset, and it generates an ML.NET model, as well as the C# code to run to use the model in your application.
+The ML.NET CLI is a [.NET tool](../core/tools/global-tools.md). Once installed, you give it a machine learning task and a training dataset, and it generates an ML.NET model, as well as the C# code to run to use the model in your application.
As shown in the following figure, it is simple to generate a high quality ML.NET model (serialized model .zip file) plus the sample C# code to run/score that model. In addition, the C# code to create/train that model is also generated, so that you can research and iterate on the algorithm and settings used for that generated "best model".
@@ -69,7 +69,7 @@ The ML task commands in the CLI generate the following assets in the output fold
- C# code with the training code used to generate that model (for learning purposes or model retraining).
- Log file with information of all iterations/sweeps across the multiple algorithms evaluated, including their detailed configuration/pipeline.
-The first two assets can directly be used in your end-user apps (ASP.NET Core web app, services, desktop app, etc.) to make predictions with that generated ML model.
+The first two assets can directly be used in your end-user apps (for example, ASP.NET Core web apps, services, and desktop apps) to make predictions with that generated ML model.
The third asset, the training code, shows you what ML.NET API code was used by the CLI to train the generated model, so you can retrain your model and investigate and iterate on which specific trainer/algorithm and hyperparameters were selected by the CLI and AutoML under the covers.
diff --git a/docs/machine-learning/automate-training-with-model-builder.md b/docs/machine-learning/automate-training-with-model-builder.md
index 5171fc7870852..aa9fb0ff34272 100644
--- a/docs/machine-learning/automate-training-with-model-builder.md
+++ b/docs/machine-learning/automate-training-with-model-builder.md
@@ -3,25 +3,22 @@ title: What is Model Builder and how does it work?
description: How to use the ML.NET Model Builder to automatically train a machine learning model
ms.date: 11/10/2022
ms.custom: overview, mlnet-tooling
+ms.topic: concept-article
#Customer intent: As a developer, I want to use Model Builder to automatically train a model using a visual interface.
---
# What is Model Builder and how does it work?
-ML.NET Model Builder is an intuitive graphical Visual Studio extension to build, train, and deploy custom machine learning models.
-
-Model Builder uses automated machine learning (AutoML) to explore different machine learning algorithms and settings to help you find the one that best suits your scenario.
+ML.NET Model Builder is an intuitive graphical Visual Studio extension to build, train, and deploy custom machine learning models. It uses automated machine learning (AutoML) to explore different machine learning algorithms and settings to help you find the one that best suits your scenario.
You don't need machine learning expertise to use Model Builder. All you need is some data, and a problem to solve. Model Builder generates the code to add the model to your .NET application.
:::image type="content" source="media/model-builder-scenarios-2-0.png" alt-text="Model Builder scenario screen" lightbox="media/model-builder-scenarios-2-0.png":::
-## Creating a Model Builder Project
-
-When you first start up Model Builder it will ask for you to name the project. This will create an `mbconfig` configuration file inside of the project.
+## Create a Model Builder project
-The `mbconfig` file keeps track of everything you do in Model Builder to allow you to reopen the session.
+When you first start up Model Builder, it asks you to name the project, and then creates an `mbconfig` configuration file inside of the project. The `mbconfig` file keeps track of everything you do in Model Builder to allow you to reopen the session.
-After training, three files are generated under the *.mbconfig file:
+After training, three files are generated under the \*.mbconfig file:
- **Model.consumption.cs:** This file contains the `ModelInput` and `ModelOutput` schemas as well as the `Predict` function generated for consuming the model.
- **Model.training.cs:** This file contains the training pipeline (data transforms, algorithm, algorithm hyperparameters) chosen by Model Builder to train the model. You can use this pipeline for re-training your model.
@@ -35,22 +32,22 @@ You can bring many different scenarios to Model Builder, to generate a machine l
A scenario is a description of the type of prediction you want to make using your data. For example:
-- predict future product sales volume based on historical sales data
-- classify sentiments as positive or negative based on customer reviews
-- detect whether a banking transaction is fraudulent
-- route customer feedback issues to the correct team in your company
+- Predict future product sales volume based on historical sales data.
+- Classify sentiments as positive or negative based on customer reviews.
+- Detect whether a banking transaction is fraudulent.
+- Route customer feedback issues to the correct team in your company.
-Each scenario maps to a different Machine Learning Task which include:
+Each scenario maps to a different machine learning task, which include:
-| Task | Scenario |
-| --- | --- |
-| Binary classification | Data classification |
-| Multiclass classification | Data classification |
-| Image classification | Image classification |
-| Text classification | Text classification |
-| Regression | Value prediction |
-| Recommendation | Recommendation |
-| Forecasting | Forecasting |
+| Task | Scenario |
+|---------------------------|----------------------|
+| Binary classification | Data classification |
+| Multiclass classification | Data classification |
+| Image classification | Image classification |
+| Text classification | Text classification |
+| Regression | Value prediction |
+| Recommendation | Recommendation |
+| Forecasting | Forecasting |
For example, the scenario of classifying sentiments as positive or negative would fall under the binary classification task.
@@ -58,7 +55,7 @@ For more information about the different ML Tasks supported by ML.NET see [Machi
### Which machine learning scenario is right for me?
-In Model Builder, you need to select a scenario. The type of scenario depends on what type of prediction you are trying to make.
+In Model Builder, you need to select a scenario. The type of scenario depends on what type of prediction you're trying to make.
#### Tabular
@@ -172,7 +169,7 @@ You can use the forecasting scenario to forecast demand or sale for a product.
:::column-end:::
:::row-end:::
-#### Computer Vision
+#### Computer vision
##### Image classification
@@ -201,7 +198,7 @@ You can use the image classification scenario if you have a set of images, and y
##### Object detection
-Object detection is used to locate and categorize entities within images. For example, locating and identifying cars and people in an image.
+Object detection is used to locate and categorize entities within images. For example, locating and identifying cars and people in an image.
You can use object detection when images contain multiple objects of different types.
@@ -222,7 +219,7 @@ You can use object detection when images contain multiple objects of different t
:::column-end:::
:::row-end:::
-#### Natural Language Processing
+#### Natural language processing
##### Text classification
@@ -258,22 +255,22 @@ You can train your machine learning model locally on your machine or in the clou
When you train locally, you work within the constraints of your computer resources (CPU, memory, and disk). When you train in the cloud, you can scale up your resources to meet the demands of your scenario, especially for large datasets.
| Scenario | Local CPU | Local GPU | Azure |
-|-----------------------|------------|------------|--------|
-| Data classification | ✔️ | ❌ | ❌ |
-| Value prediction | ✔️ | ❌ | ❌ |
-| Recommendation | ✔️ | ❌ | ❌ |
-| Forecasting | ✔️ | ❌ | ❌ |
-| Image classification | ✔️ | ✔️ | ✔️ |
-| Object detection | ❌ | ❌ | ✔️ |
-| Text classification | ✔️ | ✔️ | ❌ |
+|----------------------|-----------|-----------|-------|
+| Data classification | ✔️ | ❌ | ❌ |
+| Value prediction | ✔️ | ❌ | ❌ |
+| Recommendation | ✔️ | ❌ | ❌ |
+| Forecasting | ✔️ | ❌ | ❌ |
+| Image classification | ✔️ | ✔️ | ✔️ |
+| Object detection | ❌ | ❌ | ✔️ |
+| Text classification | ✔️ | ✔️ | ❌ |
## Data
-Once you have chosen your scenario, Model Builder asks you to provide a dataset. The data is used to train, evaluate, and choose the best model for your scenario.
+Once you've chosen your scenario, Model Builder asks you to provide a dataset. The data is used to train, evaluate, and choose the best model for your scenario.
![Diagram showing Model Builder steps](media/model-builder-steps.png)
-Model Builder supports datasets in .tsv, .csv, .txt formats, as well as SQL database format. If you have a .txt file, columns should be separated with `,`, `;` or `\t`.
+Model Builder supports datasets in .tsv, .csv, .txt, and SQL database formats. If you have a .txt file, columns should be separated with `,`, `;`, or `\t`.
If the dataset is made up of images, the supported file types are `.jpg` and `.png`.
@@ -284,13 +281,13 @@ For more information, see [Load training data into Model Builder](how-to-guides/
A dataset is a table of rows of training examples, and columns of attributes. Each row has:
- a **label** (the attribute that you want to predict)
-- **features** (attributes that are used as inputs to predict the label).
+- **features** (attributes that are used as inputs to predict the label)
For the house-price prediction scenario, the features could be:
-- the square footage of the house
-- the number of bedrooms and bathrooms
-- the zip code
+- The square footage of the house.
+- The number of bedrooms and bathrooms.
+- The zip code.
The label is the historical house price for that row of square footage, bedroom, and bathroom values and zip code.
@@ -300,8 +297,8 @@ The label is the historical house price for that row of square footage, bedroom,
If you don't have your own data yet, try out one of these datasets:
-|Scenario|Example|Data|Label|Features|
-|-|-|-|-|-|
+| Scenario | Example | Data | Label | Features |
+|----------|---------|------|-------|----------|
|Classification|Predict sales anomalies|[product sales data](https://github.com/dotnet/machinelearning-samples/blob/main/samples/csharp/getting-started/AnomalyDetection_Sales/SpikeDetection/Data/product-sales.csv)|Product Sales|Month|
||Predict sentiment of website comments|[website comment data](https://raw.githubusercontent.com/dotnet/machinelearning/main/test/data/wikipedia-detox-250-line-data.tsv)|Label (0 when negative sentiment, 1 when positive)|Comment, Year|
||Predict fraudulent credit card transactions|[credit card data](https://github.com/dotnet/machinelearning-samples/blob/main/samples/csharp/getting-started/BinaryClassification_CreditCardFraudDetection/CCFraudDetection.Trainer/assets/input/creditcardfraud-dataset.zip)|Class (1 when fraudulent, 0 otherwise)|Amount, V1-V28 (anonymized features)|
@@ -328,20 +325,20 @@ Longer training periods allow AutoML to explore more models with a wider range o
The table below summarizes the average time taken to get good performance for a suite of example datasets, on a local machine.
-|Dataset size|Average time to train|
-|------------|---------------------|
-|0 - 10 MB|10 sec|
-|10 - 100 MB|10 min|
-|100 - 500 MB|30 min|
-|500 - 1 GB|60 min|
-|1 GB+|3+ hours|
+| Dataset size | Average time to train |
+|--------------|-----------------------|
+| 0 - 10 MB | 10 sec |
+| 10 - 100 MB | 10 min |
+| 100 - 500 MB | 30 min |
+| 500 - 1 GB | 60 min |
+| 1 GB+ | 3+ hours |
These numbers are a guide only. The exact length of training is dependent on:
-- the number of features (columns) being used to as input to the model
-- the type of columns
-- the ML task
-- the CPU, disk, and memory performance of the machine used for training
+- The number of features (columns) being used to as input to the model.
+- The type of columns.
+- The ML task.
+- The CPU, disk, and memory performance of the machine used for training.
It's generally advised that you use more than 100 rows as datasets with less than that may not produce any results.
@@ -398,11 +395,11 @@ After the evaluation phase, Model Builder outputs a model file, and code that yo
In addition, Model Builder gives you the option to create projects that consume your model. Currently, Model Builder will create the following projects:
-- **Console app:** Creates a .NET Core console applications to make predictions from your model.
+- **Console app:** Creates a .NET console application to make predictions from your model.
- **Web API:** Creates an ASP.NET Core Web API that lets you consume your model over the internet.
## What's next?
-[Install](how-to-guides/install-model-builder.md) the Model Builder Visual Studio extension
+[Install](how-to-guides/install-model-builder.md) the Model Builder Visual Studio extension.
-Try [price prediction or any regression scenario](tutorials/predict-prices-with-model-builder.md)
+Try [price prediction or any regression scenario](tutorials/predict-prices-with-model-builder.md).
diff --git a/docs/machine-learning/automated-machine-learning-mlnet.md b/docs/machine-learning/automated-machine-learning-mlnet.md
index 7c18ab2a54b20..39c2264363659 100644
--- a/docs/machine-learning/automated-machine-learning-mlnet.md
+++ b/docs/machine-learning/automated-machine-learning-mlnet.md
@@ -11,7 +11,7 @@ ms.custom: mvc
Automated machine learning (AutoML) automates the process of applying machine learning to data. Given a dataset, you can run AutoML to iterate over different data transformations, machine learning algorithms, and hyperparameters to select the best model.
> [!NOTE]
-> This topic refers to the ML.NET AutoML API, which is currently in preview. Material may be subject to change.
+> This article refers to the ML.NET AutoML API, which is currently in preview. Material may be subject to change.
## How does AutoML work?
@@ -31,8 +31,8 @@ Preprocessing, training, and evaluation are an experimental and iterative proces
Whether you're just getting started with machine learning or you're an experienced user, AutoML provides solutions for automating the model development process.
-- **Beginners** - If you're new to machine learning, AutoML simplifies the model development process by providing a set of defaults that reduces the number of decisions you have to make when training your model. In doing so, you can focus on your data and the problem you're trying to solve and let AutoML do the rest.
-- **Experienced users** - If you have some experience with machine learning, you can customize, configure, and extend the defaults provided by AutoML based on your needs while still leveraging its automation capabilities.
+- **Beginners** - If you're new to machine learning, AutoML simplifies the model development process by providing a set of defaults that reduces the number of decisions you have to make when training your model. In doing so, you can focus on your data and the problem you're trying to solve and let AutoML do the rest.
+- **Experienced users** - If you have some experience with machine learning, you can customize, configure, and extend the defaults provided by AutoML based on your needs while still leveraging its automation capabilities.
## AutoML in ML.NET
@@ -48,7 +48,7 @@ Whether you're just getting started with machine learning or you're an experienc
- **Random Search**
- **Sweepable Estimator** - An ML.NET estimator that contains a search space.
- **Sweepable Pipeline** - An ML.NET pipeline that contains one or more Sweepable Estimators.
-- **Trial Runner** - AutoML component that uses sweepable pipelines and trial settings to generate trial results from model training and evaluation.
+- **Trial Runner** - AutoML component that uses sweepable pipelines and trial settings to generate trial results from model training and evaluation.
It's recommended for beginners to start with the defaults provided by the high-level experiment API. For more experienced users looking for customization options, use the sweepable estimator, sweepable pipeline, search space, trial runner and tuner components.
@@ -62,7 +62,7 @@ AutoML provides preconfigured defaults for the following tasks:
- Multiclass classification
- Regression
-For other tasks, you can build your own trial runner to enable those scenarios. For more information, see the [How to use the ML.NET Automated Machine Learning (AutoML) API](how-to-guides/how-to-use-the-automl-api.md) guide.
+For other tasks, you can build your own trial runner to enable those scenarios. For more information, see the [How to use the ML.NET Automated Machine Learning (AutoML) API](how-to-guides/how-to-use-the-automl-api.md) guide.
## Next steps
diff --git a/docs/machine-learning/deep-learning-overview.md b/docs/machine-learning/deep-learning-overview.md
index 6e1f2068d055d..0bb41c95831c8 100644
--- a/docs/machine-learning/deep-learning-overview.md
+++ b/docs/machine-learning/deep-learning-overview.md
@@ -1,6 +1,6 @@
---
title: Deep Learning overview
-description: Learn what deep learning is and components in ML.NET
+description: Learn what deep learning is and components in ML.NET
ms.date: 11/10/2022
ms.topic: overview
ms.custom: mvc
@@ -8,25 +8,25 @@ ms.custom: mvc
# What is deep learning?
-Deep learning is an umbrella term for machine learning techniques that make use of "deep" neural networks. Today, deep learning is one of the most visible areas of machine learning because of its success in areas like Computer Vision, Natural Language Processing, and when applied to reinforcement learning, scenarios like game playing, decision making and simulation.
+Deep learning is an umbrella term for machine-learning techniques that make use of "deep" neural networks. Today, deep learning is one of the most visible areas of machine learning because of its success in areas like computer vision, natural language processing, and—when applied to reinforcement learning—scenarios like game playing, decision making, and simulation.
-A crucial element to the success of deep learning has been the availability of data, compute, software frameworks, and runtimes that facilitate the creation of neural network models and their execution for inference. Examples of such frameworks include TensorFlow, (Py)Torch and ONNX.
+A crucial element to the success of deep learning has been the availability of data, compute, software frameworks, and runtimes that facilitate the creation of neural network models and their execution for inference. Examples of such frameworks include TensorFlow, (Py)Torch, and ONNX.
ML.NET provides access to some of these frameworks. As a result, ML.NET users can take advantage of deep learning models without having to start from scratch.
-## Deep Learning vs Machine Learning?
+## Deep learning vs machine learning
-Deep learning relies on neural network algorithms. This is in contrast with traditional or classical machine learning techniques which use a wider variety of algorithms such as generalized linear models, decision trees or Support Vector Machines (SVM). The most immediate, practical implication of this difference is that deep learning methods may be better suited for some kind of data. In some cases, classical machine learning techniques such as gradient-boosted trees (XGBoost, LightGBM and CatBoost) seem to have an edge for tabular data. For less structured data like text and images, neural networks tend to perform better. The best approach is always to experiment with your particular data source and use case to determine for yourself which techniques work best for your problem.
+Deep learning relies on neural network algorithms. This is in contrast with traditional or classical machine learning techniques which use a wider variety of algorithms such as generalized linear models, decision trees or Support Vector Machines (SVM). The most immediate, practical implication of this difference is that deep learning methods may be better suited for some kind of data. In some cases, classical machine learning techniques such as gradient-boosted trees (XGBoost, LightGBM and CatBoost) seem to have an edge for tabular data. For less structured data like text and images, neural networks tend to perform better. The best approach is always to experiment with your particular data source and use case to determine for yourself which techniques work best for your problem.
For classical machine learning tasks, ML.NET simplifies this experimentation process through Automated Machine Learning (AutoML). For more information on AutoML, see the article [what is Automated Machine Learning (AutoML)?](automated-machine-learning-mlnet.md).
-## Neural Network architectures
+## Neural network architectures
-One of the main differentiating characteristics of deep learning is the use of artificial neural network algorithms. At a high-level, you can think of neural networks as a configuration of "processing units" where the output of each unit constitutes the input of another. Each of these units can take one or many inputs, and essentially carries out a weighted sum of its inputs, applies an offset (or "bias") and then a non-linear transformation function (called "activation"). Different arrangements of these components have been used to describe decision boundaries in classification, regression functions and other structures central to machine learning tasks.
+One of the main differentiating characteristics of deep learning is the use of artificial neural network algorithms. At a high-level, you can think of neural networks as a configuration of "processing units" where the output of each unit constitutes the input of another. Each of these units can take one or many inputs, and essentially carries out a weighted sum of its inputs, applies an offset (or "bias") and then a non-linear transformation function (called "activation"). Different arrangements of these components have been used to describe decision boundaries in classification, regression functions and other structures central to machine learning tasks.
:::image type="content" source="media/single-layer-neural-net.png" alt-text="Diagram representing single layer in neural network" lightbox="media/single-layer-neural-net.png":::
-The past decade has seen an increase in cases, applications and techniques of deep learning. This increase is driven in part by an increasing variety of operations that can be incorporated into neural networks, a richer set of arrangements that these operations can be configured in and improved computational support for these improvements. In general, neural network architectures can be grouped into the following categories:
+The past decade has seen an increase in cases, applications and techniques of deep learning. This increase is driven in part by an increasing variety of operations that can be incorporated into neural networks, a richer set of arrangements that these operations can be configured in and improved computational support for these improvements. In general, neural network architectures can be grouped into the following categories:
* Feed-forward Neural Network
* Convolutional Neural Network
@@ -38,7 +38,7 @@ For more details, see the [artificial neural networks guide](/azure/machine-lear
## What can I use deep learning for?
-Deep learning architectures, have shown good performance in tasks involving "unstructured data" such as images, audio, and free-form text. As a result, deep learning has been used to solve problems like:
+Deep learning architectures, have shown good performance in tasks involving "unstructured data" such as images, audio, and free-form text. As a result, deep learning has been used to solve problems like:
* Image classification
* Audio classification
@@ -91,7 +91,7 @@ At this time, there is no local support for object detection in ML.NET.
To train custom object detection models with ML.NET, see the [Detect stop signs in images with Model Builder tutorial](tutorials/object-detection-model-builder.md)
-#### Text classification
+#### Text classification
Classifying free-form text, whether that's customer reviews or business memos is an important part of many processes.
@@ -101,7 +101,7 @@ A text classification training pipeline in ML.NET might look like the following:
```csharp
// Define training pipeline using TextClassification trainer
-var pipeline =
+var pipeline =
mlContext.Transforms.Conversion.MapValueToKey("Label","Sentiment")
.Append(mlContext.MulticlassClassification.Trainers.TextClassification(sentence1ColumnName: "Text"))
.Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel"));
@@ -115,7 +115,7 @@ var predictedData = model.Transform(newData).GetColumn("PredictedLabel")
To get started training text classification models with ML.NET, see the [Analyze sentiment of website comments in a web application using ML.NET Model Builder tutorial](tutorials/sentiment-analysis-model-builder.md).
-#### Sentence Similarity
+#### Sentence similarity
Tasks such as semantic search rely on the determination of how similar two sentences or passages of text are to each other.
@@ -142,9 +142,9 @@ ML.NET provides APIs to consume models in other formats like TensorFlow and ONNX
These APIs are powered by [TensorFlow.NET](https://github.com/SciSharp/TensorFlow.NET) and the [ONNX Runtime](https://onnxruntime.ai/).
-#### TensorFlow
+#### TensorFlow
-[TensorFlow](https://www.tensorflow.org/) is a deep learning framework with a rich ecosystem and a variety of pre-trained models available in the [TensorFlow Hub](https://www.tensorflow.org/hub).
+[TensorFlow](https://www.tensorflow.org/) is a deep learning framework with a rich ecosystem and a variety of pre-trained models available in the [TensorFlow Hub](https://www.tensorflow.org/hub).
With ML.NET, you can take these pretrained TensorFlow models and use them for inferencing inside your .NET applications.
@@ -165,11 +165,11 @@ var predictions = model.Transform(dataView).GetColumn("Prediction/Softmax
To get started consuming pretrained TensorFlow models with ML.NET, see the [movie reviews sentiment analysis using a pre-trained TensorFlow model in ML.NET tutorial](tutorials/text-classification-tf.md)
-#### ONNX
+#### ONNX
-The [Open Neural Network Exchange(ONNX)](https://onnx.ai/) is an open-source format designed to enable interoperability between machine learning and deep learning frameworks. This means you can train a model in one of the many popular machine learning frameworks like PyTorch, convert it into ONNX format and consume the ONNX model in a different framework like ML.NET.
+The [Open Neural Network Exchange (ONNX)](https://onnx.ai/) is an open-source format designed to enable interoperability between machine-learning and deep-learning frameworks. This means you can train a model in one of the many popular machine-learning frameworks like PyTorch, convert it into ONNX format, and consume the ONNX model in a different framework like ML.NET.
-The [ONNX model repository](https://github.com/onnx/models) hosts several pre-trained ONNX models you can use for inferencing in a wide variety of tasks.
+The [ONNX model repository](https://github.com/onnx/models) hosts several pretrained ONNX models you can use for inferencing in a wide variety of tasks.
With ML.NET, you can take these pretrained ONNX models and use them for inferencing inside your .NET applications.
@@ -186,4 +186,4 @@ var model = pipeline.Fit(data);
var predictions = pipeline.Fit(data).GetColumn(TinyYoloModelSettings.ModelOutput);
```
-To get started consuming pretrained ONNX models with ML.NET, see the [object detection using ONNX in ML.NET tutorial](tutorials/object-detection-onnx.md)
+To get started consuming pretrained ONNX models with ML.NET, see the [object detection using ONNX in ML.NET](tutorials/object-detection-onnx.md) tutorial.
diff --git a/docs/machine-learning/how-does-mldotnet-work.md b/docs/machine-learning/how-does-mldotnet-work.md
index b0d03280893be..07745f04d8ad2 100644
--- a/docs/machine-learning/how-does-mldotnet-work.md
+++ b/docs/machine-learning/how-does-mldotnet-work.md
@@ -15,74 +15,20 @@ Central to ML.NET is a machine learning **model**. The model specifies the steps
Once you have a model, you can add it to your application to make the predictions.
-ML.NET runs on Windows, Linux, and macOS using .NET Core, or Windows using .NET Framework. 64 bit is supported on all platforms. 32 bit is supported on Windows, except for TensorFlow, LightGBM, and ONNX-related functionality.
-
-Examples of the type of predictions that you can make with ML.NET:
-
-:::row:::
- :::column:::
- **Classification/Categorization**
- :::column-end:::
- :::column:::
- Automatically divide customer feedback into positive and negative categories
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Regression/Predict continuous values**
- :::column-end:::
- :::column:::
- Predict the price of houses based on size and location
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Anomaly Detection**
- :::column-end:::
- :::column:::
- Detect fraudulent banking transactions
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Recommendations**
- :::column-end:::
- :::column:::
- Suggest products that online shoppers may want to buy, based on their previous purchases
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Time series/sequential data**
- :::column-end:::
- :::column:::
- Forecast the weather/product sales
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Image classification**
- :::column-end:::
- :::column:::
- Categorize pathologies in medical images
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Text classification**
- :::column-end:::
- :::column:::
- Categorize documents based on their content.
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Sentence similarity**
- :::column-end:::
- :::column:::
- Measure how similar two sentences are.
- :::column-end:::
-:::row-end:::
+ML.NET runs on Windows, Linux, and macOS using .NET, or on Windows using .NET Framework. 64 bit is supported on all platforms. 32 bit is supported on Windows, except for TensorFlow, LightGBM, and ONNX-related functionality.
+
+The following table shows examples of the type of predictions that you can make with ML.NET.
+
+| Prediction type | Example |
+|--------------------------------------|-------------------------------------------------------------------------------------------|
+| Classification/Categorization | Automatically divide customer feedback into positive and negative categories. |
+| Regression/Predict continuous values | Predict the price of houses based on size and location. |
+| Anomaly Detection | Detect fraudulent banking transactions. |
+| Recommendations | Suggest products that online shoppers may want to buy, based on their previous purchases. |
+| Time series/sequential data | Forecast the weather or product sales. |
+| Image classification | Categorize pathologies in medical images. |
+| Text classification | Categorize documents based on their content. |
+| Sentence similarity | Measure how similar two sentences are. |
## Hello ML.NET World
@@ -218,164 +164,71 @@ The evaluation metrics tell you that the error is low-ish, and that correlation
## ML.NET architecture
-In this section, we go through the architectural patterns of ML.NET. If you are an experienced .NET developer, some of these patterns will be familiar to you, and some will be less familiar. Hold tight, while we dive in!
-
-An ML.NET application starts with an object. This singleton object contains **catalogs**. A catalog is a factory for data loading and saving, transforms, trainers, and model operation components. Each catalog object has methods to create the different types of components:
-
-:::row:::
- :::column:::
- **Data loading and saving**
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Data preparation**
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column span="3":::
- **Training algorithms**
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Binary classification
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Multiclass classification
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Anomaly detection
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Clustering
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Forecasting
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Ranking
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Regression
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- Recommendation
- :::column-end:::
- :::column span="":::
-
- :::column-end:::
- :::column span="":::
- Add the `Microsoft.ML.Recommender` NuGet package
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- TimeSeries
- :::column-end:::
- :::column span="":::
-
- :::column-end:::
- :::column span="":::
- Add the `Microsoft.ML.TimeSeries` NuGet package
- :::column-end:::
-:::row-end:::
-:::row:::
- :::column:::
- **Model usage**
- :::column-end:::
- :::column span="2":::
-
- :::column-end:::
-:::row-end:::
+This section describes the architectural patterns of ML.NET. If you're an experienced .NET developer, some of these patterns will be familiar to you, and some will be less familiar.
+
+An ML.NET application starts with an object. This singleton object contains **catalogs**. A catalog is a factory for data loading and saving, transforms, trainers, and model operation components. Each catalog object has methods to create the different types of components.
+
+| Task | Catalog |
+|---------------------------|-----------------------------------------------------|
+| Data loading and saving | |
+| Data preparation | |
+| Binary classification | |
+| Multiclass classification | |
+| Anomaly detection | |
+| Clustering | |
+| Forecasting | |
+| Ranking | |
+| Regression | |
+| Recommendation | |
+| Time series | |
+| Model usage | |
You can navigate to the creation methods in each of the above categories. Using Visual Studio, the catalogs show up via IntelliSense.
- ![Intellisense for Regression Trainers](./media/catalog-intellisense.png)
+![Intellisense for Regression Trainers](./media/catalog-intellisense.png)
### Build the pipeline
-Inside each catalog is a set of extension methods. Let's look at how extension methods are used to create a training pipeline.
+Inside each catalog is a set of extension methods that you can use to create a training pipeline.
```csharp
- var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "Size" })
- .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Price", maximumNumberOfIterations: 100));
+var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "Size" })
+ .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Price", maximumNumberOfIterations: 100));
```
-In the snippet, `Concatenate` and `Sdca` are both methods in the catalog. They each create an [IEstimator](xref:Microsoft.ML.IEstimator%601) object that is appended to the pipeline.
+In the snippet, `Concatenate` and `Sdca` are both methods in the catalog. They each create an [IEstimator](xref:Microsoft.ML.IEstimator%601) object that's appended to the pipeline.
-At this point, the objects are created only. No execution has happened.
+At this point, the objects have been created, but no execution has happened.
### Train the model
Once the objects in the pipeline have been created, data can be used to train the model.
```csharp
- var model = pipeline.Fit(trainingData);
+var model = pipeline.Fit(trainingData);
```
-Calling `Fit()` uses the input training data to estimate the parameters of the model. This is known as training the model. Remember, the linear regression model above had two model parameters: **bias** and **weight**. After the `Fit()` call, the values of the parameters are known. Most models will have many more parameters than this.
+Calling `Fit()` uses the input training data to estimate the parameters of the model. This is known as training the model. Remember, the linear regression model shown earlier had two model parameters: **bias** and **weight**. After the `Fit()` call, the values of the parameters are known. (Most models will have many more parameters than this.)
You can learn more about model training in [How to train your model](./how-to-guides/train-machine-learning-model-ml-net.md).
The resulting model object implements the interface. That is, the model transforms input data into predictions.
```csharp
- IDataView predictions = model.Transform(inputData);
+IDataView predictions = model.Transform(inputData);
```
### Use the model
-You can transform input data into predictions in bulk, or one input at a time. In the house price example, we did both: in bulk for the purpose of evaluating the model, and one at a time to make a new prediction. Let's look at making single predictions.
+You can transform input data into predictions in bulk, or one input at a time. The house price example did both: in bulk for the purpose of evaluating the model, and one at a time to make a new prediction. Let's look at making single predictions.
```csharp
- var size = new HouseData() { Size = 2.5F };
- var predEngine = mlContext.CreatePredictionEngine(model);
- var price = predEngine.Predict(size);
+var size = new HouseData() { Size = 2.5F };
+var predEngine = mlContext.CreatePredictionEngine(model);
+var price = predEngine.Predict(size);
```
-The `CreatePredictionEngine()` method takes an input class and an output class. The field names and/or code attributes determine the names of the data columns used during model training and prediction. For more information, see [Make predictions with a trained model](how-to-guides/machine-learning-model-predictions-ml-net.md).
+The `CreatePredictionEngine()` method takes an input class and an output class. The field names or code attributes determine the names of the data columns used during model training and prediction. For more information, see [Make predictions with a trained model](how-to-guides/machine-learning-model-predictions-ml-net.md).
### Data models and schema
@@ -387,40 +240,40 @@ If the output schema from one transform in the pipeline doesn't match the input
A data view object has columns and rows. Each column has a name and a type and a length. For example, the input columns in the house price example are **Size** and **Price**. They are both type and they are scalar quantities rather than vector ones.
- ![ML.NET Data View example with house price prediction data](./media/ml-net-dataview.png)
+![ML.NET Data View example with house price prediction data](./media/ml-net-dataview.png)
-All ML.NET algorithms look for an input column that is a vector. By default this vector column is called **Features**. This is why we concatenated the **Size** column into a new column called **Features** in our house price example.
+All ML.NET algorithms look for an input column that's a vector. By default, this vector column is called **Features**. That's why the house price example concatenated the **Size** column into a new column called **Features**.
```csharp
- var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "Size" })
+var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "Size" })
```
-All algorithms also create new columns after they have performed a prediction. The fixed names of these new columns depend on the type of machine learning algorithm. For the regression task, one of the new columns is called **Score**. This is why we attributed our price data with this name.
+All algorithms also create new columns after they've performed a prediction. The fixed names of these new columns depend on the type of machine learning algorithm. For the regression task, one of the new columns is called **Score** as shown in the price data attribute.
```csharp
- public class Prediction
- {
- [ColumnName("Score")]
- public float Price { get; set; }
- }
+public class Prediction
+{
+ [ColumnName("Score")]
+ public float Price { get; set; }
+}
```
You can find out more about output columns of different machine learning tasks in the [Machine Learning Tasks](resources/tasks.md) guide.
-An important property of DataView objects is that they are evaluated **lazily**. Data views are only loaded and operated on during model training and evaluation, and data prediction. While you are writing and testing your ML.NET application, you can use the Visual Studio debugger to take a peek at any data view object by calling the [Preview](xref:Microsoft.ML.DebuggerExtensions.Preview%2A) method.
+An important property of DataView objects is that they're evaluated **lazily**. Data views are only loaded and operated on during model training and evaluation, and data prediction. While you are writing and testing your ML.NET application, you can use the Visual Studio debugger to take a peek at any data view object by calling the [Preview](xref:Microsoft.ML.DebuggerExtensions.Preview%2A) method.
```csharp
- var debug = testPriceDataView.Preview();
+var debug = testPriceDataView.Preview();
```
You can watch the `debug` variable in the debugger and examine its contents. Do not use the Preview method in production code, as it significantly degrades performance.
-### Model Deployment
+### Model deployment
In real-life applications, your model training and evaluation code will be separate from your prediction. In fact, these two activities are often performed by separate teams. Your model development team can save the model for use in the prediction application.
```csharp
- mlContext.Model.Save(model, trainingData.Schema,"model.zip");
+mlContext.Model.Save(model, trainingData.Schema,"model.zip");
```
## Next steps
diff --git a/docs/machine-learning/how-to-guides/install-extra-dependencies.md b/docs/machine-learning/how-to-guides/install-extra-dependencies.md
index 20dc1e02c2e01..6f6d331336cc8 100644
--- a/docs/machine-learning/how-to-guides/install-extra-dependencies.md
+++ b/docs/machine-learning/how-to-guides/install-extra-dependencies.md
@@ -32,7 +32,7 @@ No extra installation steps required. The library is installed when the NuGet pa
```bash
sudo bash
- #
+ #
# cd to /tmp where this shell has write permission
cd /tmp
# now get the key:
@@ -88,8 +88,8 @@ No extra installation steps required. The library is installed when the NuGet pa
### Mac
-1. Install the library with `Homebrew`
+Install the library with `Homebrew`
- ```bash
- wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb && brew install ./libomp.rb && brew link libomp --force
- ```
+```bash
+wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb && brew install ./libomp.rb && brew link libomp --force
+```
diff --git a/docs/machine-learning/how-to-guides/install-ml-net-cli.md b/docs/machine-learning/how-to-guides/install-ml-net-cli.md
index df24fbe289e83..b96f2795cc92a 100644
--- a/docs/machine-learning/how-to-guides/install-ml-net-cli.md
+++ b/docs/machine-learning/how-to-guides/install-ml-net-cli.md
@@ -13,7 +13,7 @@ Learn how to install the ML.NET CLI (command-line interface) on Windows, Mac, or
The ML.NET CLI generates good quality ML.NET models and source code using automated machine learning (AutoML) and a training dataset.
> [!NOTE]
-> This topic refers to ML.NET CLI and ML.NET AutoML, which are currently in Preview, and material may be subject to change.
+> This article refers to ML.NET CLI and ML.NET AutoML, which are currently in Preview, and material may be subject to change.
## Pre-requisites
@@ -98,7 +98,7 @@ mlnet
You should see the help for available commands for the mlnet tool such as the 'classification' command.
> [!IMPORTANT]
-> If you're running Linux or macOS and using a console other than Bash (for example, zsh, which is the new default for macOS), then you'll need to give `mlnet` executable permissions and include `mlnet` to the system path. In general, you can do so with the following command:
+> If you're running Linux or macOS and using a console other than Bash (for example, zsh, which is the new default for macOS), then you'll need to give `mlnet` executable permissions and include `mlnet` to the system path. In general, you can do so with the following command:
>
> ```console
> chmod +x
diff --git a/docs/machine-learning/how-to-guides/load-data-ml-net.md b/docs/machine-learning/how-to-guides/load-data-ml-net.md
index a47300d983659..f534497f6d0dd 100644
--- a/docs/machine-learning/how-to-guides/load-data-ml-net.md
+++ b/docs/machine-learning/how-to-guides/load-data-ml-net.md
@@ -43,7 +43,7 @@ public class HousingData
}
```
-### Annotating the data model with column attributes
+### Annotate the data model with column attributes
Attributes give ML.NET more information about the data model and the data source.
diff --git a/docs/machine-learning/how-to-guides/matchup-app-infer-net.md b/docs/machine-learning/how-to-guides/matchup-app-infer-net.md
index 6608a9d33002b..f1e0d3b232d6a 100644
--- a/docs/machine-learning/how-to-guides/matchup-app-infer-net.md
+++ b/docs/machine-learning/how-to-guides/matchup-app-infer-net.md
@@ -16,13 +16,13 @@ Probabilistic programming allows you to create statistical models of real-world
## Prerequisites
-- Local development environment setup
+- Local development environment.
This how-to guide expects you to have a machine you can use for development. The .NET tutorial [Hello World in 10 minutes](https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro) has instructions for setting up your local development environment on macOS, Windows, or Linux.
## Create your app
-1. Open a new command prompt and run the following commands:
+Open a new command prompt and run the following commands:
```dotnetcli
dotnet new console -o myApp
@@ -41,20 +41,20 @@ dotnet add package Microsoft.ML.Probabilistic.Compiler
## Design your model
-The example sample uses table tennis or foosball matches played in the office. You have the participants and outcome of each match. You want to infer the player's skills from this data. Assume that each player has a normally distributed latent skill and their given match performance is a noisy version of this skill. The data constrains the winner’s performance to be greater than the loser’s performance. This is a simplified version of the popular [TrueSkill](https://www.microsoft.com/research/project/trueskill-ranking-system/) model, which also supports teams, draws, and other extensions. An [advanced version](https://www.microsoft.com/research/publication/trueskill-2-improved-bayesian-skill-rating-system/) of this model is used for matchmaking in the best-selling game titles Halo and Gears of War.
+The example sample uses table tennis or foosball matches played in the office. You have the participants and outcome of each match. You want to infer the player's skills from this data. Assume that each player has a normally distributed latent skill and their given match performance is a noisy version of this skill. The data constrains the winner’s performance to be greater than the loser’s performance. This is a simplified version of the popular [TrueSkill](https://www.microsoft.com/research/project/trueskill-ranking-system/) model, which also supports teams, draws, and other extensions. An [advanced version](https://www.microsoft.com/research/publication/trueskill-2-improved-bayesian-skill-rating-system/) of this model is used for matchmaking in the best-selling game titles Halo and Gears of War.
You need to list the inferred player skills, alongside with their variance – the measure of uncertainty around the skills.
*Game result sample data*
-Game |Winner | Loser
----------|----------|---------
- 1 | Player 0 | Player 1
- 2 | Player 0 | Player 3
- 3 | Player 0 | Player 4
- 4 | Player 1 | Player 2
- 5 | Player 3 | Player 1
- 6 | Player 4 | Player 2
+| Game | Winner | Loser |
+|------|----------|----------|
+| 1 | Player 0 | Player 1 |
+| 2 | Player 0 | Player 3 |
+| 3 | Player 0 | Player 4 |
+| 4 | Player 1 | Player 2 |
+| 5 | Player 3 | Player 1 |
+| 6 | Player 4 | Player 2 |
With a closer look at the sample data, you’ll notice that players 3 and 4 both have one win and one loss. Let's see what the rankings look like using probabilistic programming. Notice also there is a player zero because even office match up lists are zero based to us developers.
diff --git a/docs/machine-learning/how-to-guides/retrain-model-ml-net.md b/docs/machine-learning/how-to-guides/retrain-model-ml-net.md
index 64dd5b091001f..cfba8b5c7985c 100644
--- a/docs/machine-learning/how-to-guides/retrain-model-ml-net.md
+++ b/docs/machine-learning/how-to-guides/retrain-model-ml-net.md
@@ -1,6 +1,6 @@
---
-title: Re-train a model
-description: Learn how retrain a model in ML.NET
+title: Retrain a model
+description: Learn how to retrain a model in ML.NET
ms.date: 11/02/2021
author: luisquintanilla
ms.author: luquinta
@@ -9,13 +9,13 @@ ms.topic: how-to
#Customer intent: As a developer, I want to retrain a model using existing model parameters.
---
-# Re-train a model
+# Retrain a model
Learn how to retrain a machine learning model in ML.NET.
-The world and the data around it change at a constant pace. As such, models need to change and update as well. ML.NET provides functionality for re-training models using learned model parameters as a starting point to continually build on previous experience rather than starting from scratch every time.
+The world and its data change constantly. As such, models need to change and update as well. ML.NET provides functionality for retraining models using learned model parameters as a starting point to continually build on previous experience rather than starting from scratch every time.
-The following algorithms are re-trainable in ML.NET:
+The following algorithms are retrainable in ML.NET:
- [AveragedPerceptronTrainer](xref:Microsoft.ML.Trainers.AveragedPerceptronTrainer)
- [FieldAwareFactorizationMachineTrainer](xref:Microsoft.ML.Trainers.FieldAwareFactorizationMachineTrainer)
@@ -28,9 +28,9 @@ The following algorithms are re-trainable in ML.NET:
- [SgdNonCalibratedTrainer](xref:Microsoft.ML.Trainers.SgdNonCalibratedTrainer)
- [SymbolicSgdLogisticRegressionBinaryTrainer](xref:Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer)
-## Load pre-trained model
+## Load pretrained model
-First, load the pre-trained model into your application. To learn more about loading training pipelines and models, see [Save and load a trained model](save-load-machine-learning-models-ml-net.md).
+First, load the pretrained model into your application. To learn more about loading training pipelines and models, see [Save and load a trained model](save-load-machine-learning-models-ml-net.md).
```csharp
// Create MLContext
@@ -46,9 +46,9 @@ ITransformer dataPrepPipeline = mlContext.Model.Load("data_preparation_pipeline.
ITransformer trainedModel = mlContext.Model.Load("ogd_model.zip", out modelSchema);
```
-## Extract pre-trained model parameters
+## Extract pretrained model parameters
-Once the model is loaded, extract the learned model parameters by accessing the [`Model`](xref:Microsoft.ML.Data.PredictionTransformerBase%601.Model%2A) property of the pre-trained model. The pre-trained model was trained using the linear regression model [`OnlineGradientDescentTrainer`](xref:Microsoft.ML.Trainers.OnlineGradientDescentTrainer) which creates a [`RegressionPredictionTransformer`](xref:Microsoft.ML.Data.RegressionPredictionTransformer%601) that outputs [`LinearRegressionModelParameters`](xref:Microsoft.ML.Trainers.LinearRegressionModelParameters). These model parameters contain the learned bias and weights or coefficients of the model. These values will be used as a starting point for the new re-trained model.
+Once the model is loaded, extract the learned model parameters by accessing the [`Model`](xref:Microsoft.ML.Data.PredictionTransformerBase%601.Model%2A) property of the pretrained model. The pretrained model was trained using the linear regression model [`OnlineGradientDescentTrainer`](xref:Microsoft.ML.Trainers.OnlineGradientDescentTrainer), which creates a [`RegressionPredictionTransformer`](xref:Microsoft.ML.Data.RegressionPredictionTransformer%601) that outputs [`LinearRegressionModelParameters`](xref:Microsoft.ML.Trainers.LinearRegressionModelParameters). These model parameters contain the learned bias and weights or coefficients of the model. These values are used as a starting point for the new retrained model.
```csharp
// Extract trained model parameters
@@ -59,9 +59,9 @@ LinearRegressionModelParameters originalModelParameters =
> [!NOTE]
> The model parameters output depend on the algorithm used. For example [`OnlineGradientDescentTrainer`](xref:Microsoft.ML.Trainers.OnlineGradientDescentTrainer) uses [`LinearRegressionModelParameters`](xref:Microsoft.ML.Trainers.LinearRegressionModelParameters), while [LbfgsMaximumEntropyMulticlassTrainer](xref:Microsoft.ML.Trainers.LbfgsMaximumEntropyMulticlassTrainer) outputs [`MaximumEntropyModelParameters`](xref:Microsoft.ML.Trainers.MaximumEntropyModelParameters). When extracting model parameters, cast to the appropriate type.
-## Re-train model
+## Retrain a model
-The process for retraining a model is no different than that of training a model. The only difference is, the [`Fit`](xref:Microsoft.ML.Trainers.OnlineLinearTrainer%602.Fit%2A) method in addition to the data also takes as input the original learned model parameters and uses them as a starting point in the re-training process.
+The process for retraining a model is no different than that of training a model. The only difference is, the [`Fit`](xref:Microsoft.ML.Trainers.OnlineLinearTrainer%602.Fit%2A) method in addition to the data also takes the original learned model parameters as input and uses them as a starting point in the retraining process.
```csharp
// New Data
@@ -99,11 +99,11 @@ RegressionPredictionTransformer retrainedModel
.Fit(transformedNewData, originalModelParameters);
```
-At this point, you can save your re-trained model and use it in your application. For more information, see the [save and load a trained model](save-load-machine-learning-models-ml-net.md) and [make predictions with a trained model](machine-learning-model-predictions-ml-net.md) guides.
+At this point, you can save your retrained model and use it in your application. For more information, see the [save and load a trained model](save-load-machine-learning-models-ml-net.md) and [make predictions with a trained model](machine-learning-model-predictions-ml-net.md) guides.
## Compare model parameters
-How do you know if re-training actually happened? One way would be to compare whether the re-trained model's parameters are different than those of the original model. The code sample below compares the original against the re-trained model weights and outputs them to the console.
+How do you know if retraining actually happened? One way would be to compare whether the retrained model's parameters are different than those of the original model. The following code sample compares the original against the retrained model weights and outputs them to the console.
```csharp
// Extract Model Parameters of re-trained model
@@ -121,11 +121,11 @@ for(int i=0;i < weightDiffs.Count();i++)
}
```
-The table below shows what the output might look like.
+The following table shows what the output might look like.
-|Original | Retrained | Difference |
-|---|---|---|
-| 33039.86 | 56293.76 | -23253.9 |
-| 29099.14 | 49586.03 | -20486.89 |
-| 28938.38 | 48609.23 | -19670.85 |
-| 30484.02 | 53745.43 | -23261.41 |
+| Original | Retrained | Difference |
+|----------|-----------|------------|
+| 33039.86 | 56293.76 | -23253.9 |
+| 29099.14 | 49586.03 | -20486.89 |
+| 28938.38 | 48609.23 | -19670.85 |
+| 30484.02 | 53745.43 | -23261.41 |
diff --git a/docs/machine-learning/how-to-guides/serve-model-serverless-azure-functions-ml-net.md b/docs/machine-learning/how-to-guides/serve-model-serverless-azure-functions-ml-net.md
index 5fe470f8d64da..b6147ce8b494e 100644
--- a/docs/machine-learning/how-to-guides/serve-model-serverless-azure-functions-ml-net.md
+++ b/docs/machine-learning/how-to-guides/serve-model-serverless-azure-functions-ml-net.md
@@ -26,7 +26,7 @@ This sample is a **C# HTTP Trigger Azure Functions application** that uses a pre
## Create Azure Functions project
-1. In Visual Studio 2022 open the **Create a new project** dialog.
+1. In Visual Studio 2022 open the **Create a new project** dialog.
1. In the "Create a new project" dialog, select the **Azure Functions** project template.
1. In the **Name** text box, type "SentimentAnalysisFunctionsApp" and select the **Next** button.
1. In the "Additional information dialog", leave all the defaults as is and select the **Create** button.
@@ -53,7 +53,7 @@ This sample is a **C# HTTP Trigger Azure Functions application** that uses a pre
Create a class to predict sentiment. Add a new class to your project:
-1. In **Solution Explorer**, right-click the project, and then select **Add** > **New Azure Function...**.
+1. In **Solution Explorer**, right-click the project, and then select **Add** > **New Azure Function**.
1. In the **Add New Item** dialog box, select **Azure Function** and change the **Name** field to *AnalyzeSentiment.cs*. Then, select the **Add** button.
diff --git a/docs/machine-learning/reference/ml-net-cli-reference.md b/docs/machine-learning/reference/ml-net-cli-reference.md
index 69f3594a04a74..4106a0f784f3c 100644
--- a/docs/machine-learning/reference/ml-net-cli-reference.md
+++ b/docs/machine-learning/reference/ml-net-cli-reference.md
@@ -10,7 +10,7 @@ ms.custom: mlnet-tooling
The `classification`, `regression`, and `recommendation` commands are the main commands provided by the ML.NET CLI tool. These commands allow you to generate good quality ML.NET models for classification, regression, and recommendation models using automated machine learning (AutoML) as well as the example C# code to run/score that model. In addition, the C# code to train the model is generated for you to research the algorithm and settings of the model.
> [!NOTE]
-> This topic refers to ML.NET CLI and ML.NET AutoML, which are currently in Preview, and material may be subject to change.
+> This article refers to ML.NET CLI and ML.NET AutoML, which are currently in Preview, and material may be subject to change.
## Overview
@@ -125,7 +125,7 @@ mlnet regression
### Recommendation options
-Running `mlnet recommendation` will train a recommendation model. Choose this command if you want an ML Model to recommend items to users based on ratings (e.g. product recommendation).
+Running `mlnet recommendation` will train a recommendation model. Choose this command if you want an ML Model to recommend items to users based on ratings (e.g. product recommendation).
```console
mlnet recommendation
diff --git a/docs/machine-learning/resources/azure-training-concepts-model-builder.md b/docs/machine-learning/resources/azure-training-concepts-model-builder.md
index a78eac6a8d1eb..6a13cadce32cc 100644
--- a/docs/machine-learning/resources/azure-training-concepts-model-builder.md
+++ b/docs/machine-learning/resources/azure-training-concepts-model-builder.md
@@ -57,8 +57,8 @@ Training on Azure is only available for the Model Builder image classification s
Once training is complete, two projects are added to your solution with the following suffixes:
-- *ConsoleApp*: A C# .NET Core console application that provides starter code to build the prediction pipeline and make predictions.
-- *Model*: A C# .NET Standard application that contains the data models that define the schema of input and output model data as well as the following assets:
+- *ConsoleApp*: A C# console app that provides starter code to build the prediction pipeline and make predictions.
+- *Model*: A C# .NET Standard app that contains the data models that define the schema of input and output model data as well as the following assets:
- bestModel.onnx: A serialized version of the model in Open Neural Network Exchange (ONNX) format. ONNX is an open source format for AI models that supports interoperability between frameworks like ML.NET, PyTorch and TensorFlow.
- bestModelMap.json: A list of categories used when making predictions to map the model output to a text category.
diff --git a/docs/machine-learning/resources/metrics.md b/docs/machine-learning/resources/metrics.md
index 418c98777e1d7..5d15b51242dcc 100644
--- a/docs/machine-learning/resources/metrics.md
+++ b/docs/machine-learning/resources/metrics.md
@@ -18,7 +18,7 @@ For example, for the classification task, the model is evaluated by measuring ho
| **Accuracy** | [Accuracy](https://en.wikipedia.org/wiki/Accuracy_and_precision#In_binary_classification) is the proportion of correct predictions with a test data set. It is the ratio of number of correct predictions to the total number of input samples. It works well if there are similar number of samples belonging to each class.| **The closer to 1.00, the better**. But exactly 1.00 indicates an issue (commonly: label/target leakage, over-fitting, or testing with training data). When the test data is unbalanced (where most of the instances belong to one of the classes), the dataset is small, or scores approach 0.00 or 1.00, then accuracy doesn't really capture the effectiveness of a classifier and you need to check additional metrics. |
| **AUC** | [aucROC](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) or *Area under the curve* measures the area under the curve created by sweeping the true positive rate vs. the false positive rate. | **The closer to 1.00, the better**. It should be greater than 0.50 for a model to be acceptable. A model with AUC of 0.50 or less is worthless. |
| **AUCPR** | aucPR or *Area under the curve of a Precision-Recall curve*: Useful measure of success of prediction when the classes are imbalanced (highly skewed datasets). | **The closer to 1.00, the better**. High scores close to 1.00 show that the classifier is returning accurate results (high precision), and returning a majority of all positive results (high recall). |
-| **F1-score** | [F1 score](https://en.wikipedia.org/wiki/F1_score) also known as *balanced F-score or F-measure*. It's the harmonic mean of the precision and recall. F1 Score is helpful when you want to seek a balance between Precision and Recall.| **The closer to 1.00, the better**. An F1 score reaches its best value at 1.00 and worst score at 0.00. It tells you how precise your classifier is. |
+| **F1-score** | [F1 score](https://en.wikipedia.org/wiki/F1_score) also known as *balanced F-score or F-measure*. It's the harmonic mean of the precision and recall. F1 Score is helpful when you want to seek a balance between Precision and Recall.| **The closer to 1.00, the better**. An F1 score reaches its best value at 1.00 and worst score at 0.00. It tells you how precise your classifier is. |
For further details on binary classification metrics read the following articles:
@@ -31,7 +31,7 @@ For further details on binary classification metrics read the following articles
| Metrics | Description | Look for |
|-----------|-----------------------|-----------|
| **Micro-Accuracy** | [Micro-average Accuracy](xref:Microsoft.ML.Data.MulticlassClassificationMetrics.MicroAccuracy) aggregates the contributions of all classes to compute the average metric. It is the fraction of instances predicted correctly. The micro-average does not take class membership into account. Basically, every sample-class pair contributes equally to the accuracy metric. | **The closer to 1.00, the better**. In a multi-class classification task, micro-accuracy is preferable over macro-accuracy if you suspect there might be class imbalance (i.e you may have many more examples of one class than of other classes).|
-| **Macro-Accuracy** | [Macro-average Accuracy](xref:Microsoft.ML.Data.MulticlassClassificationMetrics.MacroAccuracy) is the average accuracy at the class level. The accuracy for each class is computed and the macro-accuracy is the average of these accuracies. Basically, every class contributes equally to the accuracy metric. Minority classes are given equal weight as the larger classes. The macro-average metric gives the same weight to each class, no matter how many instances from that class the dataset contains. | **The closer to 1.00, the better**. It computes the metric independently for each class and then takes the average (hence treating all classes equally) |
+| **Macro-Accuracy** | [Macro-average Accuracy](xref:Microsoft.ML.Data.MulticlassClassificationMetrics.MacroAccuracy) is the average accuracy at the class level. The accuracy for each class is computed and the macro-accuracy is the average of these accuracies. Basically, every class contributes equally to the accuracy metric. Minority classes are given equal weight as the larger classes. The macro-average metric gives the same weight to each class, no matter how many instances from that class the dataset contains. | **The closer to 1.00, the better**. It computes the metric independently for each class and then takes the average (hence treating all classes equally) |
| **Log-loss**| Logarithmic loss measures the performance of a classification model where the prediction input is a probability value between 0.00 and 1.00. Log-loss increases as the predicted probability diverges from the actual label. | **The closer to 0.00, the better**. A perfect model would have a log-loss of 0.00. The goal of our machine learning models is to minimize this value.|
| **Log-Loss Reduction** | [Logarithmic loss reduction](xref:Microsoft.ML.Data.MulticlassClassificationMetrics.LogLossReduction) can be interpreted as the advantage of the classifier over a random prediction.| **Ranges from -inf and 1.00, where 1.00 is perfect predictions and 0.00 indicates mean predictions**. For example, if the value equals 0.20, it can be interpreted as "the probability of a correct prediction is 20% better than random guessing"|
diff --git a/docs/machine-learning/resources/tasks.md b/docs/machine-learning/resources/tasks.md
index ff841f673482f..33c2756e628ba 100644
--- a/docs/machine-learning/resources/tasks.md
+++ b/docs/machine-learning/resources/tasks.md
@@ -183,7 +183,7 @@ This trainer outputs the following:
## Ranking
-A ranking task constructs a ranker from a set of labeled examples. This example set consists of instance groups that can be scored with a given criteria. The ranking labels are { 0, 1, 2, 3, 4 } for each instance. The ranker is trained to rank new instance groups with unknown scores for each instance. ML.NET ranking learners are [machine learned ranking](https://en.wikipedia.org/wiki/Learning_to_rank) based.
+A ranking task constructs a ranker from a set of labeled examples. This example set consists of instance groups that can be scored with a given criteria. The ranking labels are { 0, 1, 2, 3, 4 } for each instance. The ranker is trained to rank new instance groups with unknown scores for each instance. ML.NET ranking learners are [machine learned ranking](https://en.wikipedia.org/wiki/Learning_to_rank) based.
### Ranking training algorithms
diff --git a/docs/machine-learning/tutorials/github-issue-classification.md b/docs/machine-learning/tutorials/github-issue-classification.md
index 0a16631455c5a..4a44ee749a3e7 100644
--- a/docs/machine-learning/tutorials/github-issue-classification.md
+++ b/docs/machine-learning/tutorials/github-issue-classification.md
@@ -8,7 +8,7 @@ ms.custom: mvc, title-hack-0516
---
# Tutorial: Categorize support issues using multiclass classification with ML.NET
-This sample tutorial illustrates using ML.NET to create a GitHub issue classifier to train a model that classifies and predicts the Area label for a GitHub issue via a .NET Core console application using C# in Visual Studio.
+This sample tutorial illustrates using ML.NET to create a GitHub issue classifier to train a model that classifies and predicts the Area label for a GitHub issue via a .NET console application using C# in Visual Studio.
In this tutorial, you learn how to:
> [!div class="checklist"]
@@ -226,7 +226,7 @@ Use the [Predict()](xref:Microsoft.ML.PredictionEngine%602.Predict%2A) function
### Use the model: prediction results
-Display `GitHubIssue` and corresponding `Area` label prediction in order to share the results and act on them accordingly. Create a display for the results using the following code:
+Display `GitHubIssue` and corresponding `Area` label prediction in order to share the results and act on them accordingly. Create a display for the results using the following code:
[!code-csharp[OutputPrediction](./snippets/github-issue-classification/csharp/Program.cs#OutputPrediction)]
@@ -270,7 +270,7 @@ Notice the use of the [Transform()](xref:Microsoft.ML.ITransformer.Transform%2A)
The following metrics are evaluated for multiclass classification:
-* Micro Accuracy - Every sample-class pair contributes equally to the accuracy metric. You want Micro Accuracy to be as close to one as possible.
+* Micro Accuracy - Every sample-class pair contributes equally to the accuracy metric. You want Micro Accuracy to be as close to one as possible.
* Macro Accuracy - Every class contributes equally to the accuracy metric. Minority classes are given equal weight as the larger classes. You want Macro Accuracy to be as close to one as possible.
diff --git a/docs/machine-learning/tutorials/health-violation-classification-model-builder.md b/docs/machine-learning/tutorials/health-violation-classification-model-builder.md
index bf1843ab80e8a..daa4268599b21 100644
--- a/docs/machine-learning/tutorials/health-violation-classification-model-builder.md
+++ b/docs/machine-learning/tutorials/health-violation-classification-model-builder.md
@@ -31,11 +31,11 @@ For a list of prerequisites and installation instructions, visit the [Model Buil
## Model Builder multiclass classification overview
-This sample creates a C# .NET Core console application that categorizes the risk of health violations using a machine learning model built with Model Builder. You can find the source code for this tutorial at the [dotnet/machinelearning-samples](https://github.com/dotnet/machinelearning-samples/tree/main/samples/modelbuilder/MulticlassClassification_RestaurantViolations) GitHub repository.
+This sample creates a C# console application that categorizes the risk of health violations using a machine learning model built with Model Builder. You can find the source code for this tutorial at the [dotnet/machinelearning-samples](https://github.com/dotnet/machinelearning-samples/tree/main/samples/modelbuilder/MulticlassClassification_RestaurantViolations) GitHub repository.
## Create a console application
-1. Create a **C# .NET Core console application** called "RestaurantViolations".
+Create a **C# console application** called "RestaurantViolations".
## Prepare and understand the data
@@ -57,11 +57,11 @@ Each row in the dataset contains information regarding violations observed durin
The `label` is the column you want to predict. When performing a classification task, the goal is to assign a category (text or numerical). In this classification scenario, the severity of the violation is assigned the value of low, moderate, or high risk. Therefore, the **RiskCategory** is the label. The `features` are the inputs you give the model to predict the `label`. In this case, the **InspectionType** and **ViolationDescription** are used as features or inputs to predict the **RiskCategory**.
-## Create Model Builder Config File
+## Create Model Builder config file
When first adding Model Builder to the solution it will prompt you to create an `mbconfig` file. The `mbconfig` file keeps track of everything you do in Model Builder to allow you to reopen the session.
-1. In **Solution Explorer**, right-click the *RestaurantViolations* project, and select **Add** > **Machine Learning Model...**.
+1. In **Solution Explorer**, right-click the *RestaurantViolations* project, and select **Add** > **Machine Learning Model**.
1. Name the `mbconfig` project **RestaurantViolationsPrediction**, and click the **Add** button.
## Choose a scenario
diff --git a/docs/machine-learning/tutorials/image-classification-api-transfer-learning.md b/docs/machine-learning/tutorials/image-classification-api-transfer-learning.md
index 949e0a9a66644..7018aa558c54f 100644
--- a/docs/machine-learning/tutorials/image-classification-api-transfer-learning.md
+++ b/docs/machine-learning/tutorials/image-classification-api-transfer-learning.md
@@ -28,7 +28,7 @@ In this tutorial, you learn how to:
## Image classification transfer learning sample overview
-This sample is a C# .NET Core console application that classifies images using a pretrained deep learning TensorFlow model. The code for this sample can be found on the [samples browser](/samples/dotnet/machinelearning-samples/mlnet-image-classification-transfer-learning/).
+This sample is a C# console application that classifies images using a pretrained deep learning TensorFlow model. The code for this sample can be found on the [samples browser](/samples/dotnet/machinelearning-samples/mlnet-image-classification-transfer-learning/).
## Understand the problem
diff --git a/docs/machine-learning/tutorials/image-classification-model-builder.md b/docs/machine-learning/tutorials/image-classification-model-builder.md
index ef2e9c9712607..a7e8b2f89ac66 100644
--- a/docs/machine-learning/tutorials/image-classification-model-builder.md
+++ b/docs/machine-learning/tutorials/image-classification-model-builder.md
@@ -61,7 +61,7 @@ The EuroSAT dataset contains a collection of satellite images divided into ten c
When first adding Model Builder to the solution it will prompt you to create an `mbconfig` file. The `mbconfig` file keeps track of everything you do in Model Builder to allow you to reopen the session.
-1. In Solution Explorer, right-click the **LandUse** project, and select **Add > Machine Learning Model...**.
+1. In Solution Explorer, right-click the **LandUse** project, and select **Add > Machine Learning Model**.
1. In the dialog, name the Model Builder project **LandUse**, and click **Add**.
## Choose a scenario
diff --git a/docs/machine-learning/tutorials/image-classification.md b/docs/machine-learning/tutorials/image-classification.md
index 15b13ad435768..cbde83493f58e 100644
--- a/docs/machine-learning/tutorials/image-classification.md
+++ b/docs/machine-learning/tutorials/image-classification.md
@@ -69,7 +69,7 @@ This tutorial uses the TensorFlow [Inception](https://storage.googleapis.com/dow
Because the `Inception model` has already been pre-trained on thousands of different images, internally it contains the [image features](https://en.wikipedia.org/wiki/Feature_(computer_vision)) needed for image identification. We can make use of these internal image features in the model to train a new model with far fewer classes.
-As shown in the following diagram, you add a reference to the ML.NET NuGet packages in your .NET Core or .NET Framework applications. Under the covers, ML.NET includes and references the native `TensorFlow` library that allows you to write code that loads an existing trained `TensorFlow` model file.
+As shown in the following diagram, you add a reference to the ML.NET NuGet packages in your .NET or .NET Framework applications. Under the covers, ML.NET includes and references the native `TensorFlow` library that allows you to write code that loads an existing trained `TensorFlow` model file.
![TensorFlow transform ML.NET Arch diagram](./media/image-classification/tensorflow-mlnet.png)
@@ -85,7 +85,7 @@ See [Deep learning vs. machine learning](/azure/machine-learning/concept-deep-le
### Data
-There are two data sources: the `.tsv` file, and the image files. The `tags.tsv` file contains two columns: the first one is defined as `ImagePath` and the second one is the `Label` corresponding to the image. The following example file doesn't have a header row, and looks like this:
+There are two data sources: the `.tsv` file, and the image files. The `tags.tsv` file contains two columns: the first one is defined as `ImagePath` and the second one is the `Label` corresponding to the image. The following example file doesn't have a header row, and looks like this:
```tsv
@@ -171,7 +171,7 @@ The training and testing images are located in the assets folders that you'll do
### Initialize variables
-1. Initialize the `mlContext` variable with a new instance of `MLContext`. Replace the `Console.WriteLine("Hello World!")` line with the following code:
+1. Initialize the `mlContext` variable with a new instance of `MLContext`. Replace the `Console.WriteLine("Hello World!")` line with the following code:
[!code-csharp[CreateMLContext](./snippets/image-classification/csharp/Program.cs#CreateMLContext)]
@@ -321,7 +321,7 @@ An ML.NET model pipeline is a chain of estimators. No execution happens during p
[!code-csharp[SaveModel](./snippets/image-classification/csharp/Program.cs#ReturnModel)]
-## Run the application!
+## Run the application
1. Add the call to `GenerateModel` after the creation of the class:
diff --git a/docs/machine-learning/tutorials/movie-recommendation-model-builder.md b/docs/machine-learning/tutorials/movie-recommendation-model-builder.md
index f7d52ab4461eb..d484998908d4b 100644
--- a/docs/machine-learning/tutorials/movie-recommendation-model-builder.md
+++ b/docs/machine-learning/tutorials/movie-recommendation-model-builder.md
@@ -54,7 +54,7 @@ Each row in the dataset contains information regarding a movie rating.
When first adding Model Builder to the solution it will prompt you to create an `mbconfig` file. The `mbconfig` file keeps track of everything you do in Model Builder to allow you to reopen the session.
-1. In Solution Explorer, right-click the **MovieRecommender** project, and select **Add > Machine Learning Model...**.
+1. In Solution Explorer, right-click the **MovieRecommender** project, and select **Add > Machine Learning Model**.
1. In the dialog, name the Model Builder project **MovieRecommender**, and click **Add**.
## Choose a scenario
diff --git a/docs/machine-learning/tutorials/movie-recommendation.md b/docs/machine-learning/tutorials/movie-recommendation.md
index 0b0dd10c85442..4130d7eb1a731 100644
--- a/docs/machine-learning/tutorials/movie-recommendation.md
+++ b/docs/machine-learning/tutorials/movie-recommendation.md
@@ -1,6 +1,6 @@
---
title: 'Tutorial: Build a movie recommender - matrix factorization'
-description: This tutorial shows you how to build a movie recommender with ML.NET in a .NET Core console application. The steps use C# and Visual Studio 2019.
+description: This tutorial shows you how to build a movie recommender with ML.NET in a .NET console application. The steps use C# and Visual Studio 2019.
author: briacht
ms.date: 11/11/2021
ms.custom: mvc, title-hack-0516
@@ -10,7 +10,7 @@ ms.topic: tutorial
# Tutorial: Build a movie recommender using matrix factorization with ML.NET
-This tutorial shows you how to build a movie recommender with ML.NET in a .NET Core console application. The steps use C# and Visual Studio 2019.
+This tutorial shows you how to build a movie recommender with ML.NET in a .NET console application. The steps use C# and Visual Studio 2019.
In this tutorial, you learn how to:
> [!div class="checklist"]
@@ -195,7 +195,7 @@ Choose the machine learning algorithm and append it to the data transformation d
[!code-csharp[AddAlgorithm](./snippets/movie-recommendation/csharp/Program.cs#AddAlgorithm "Add the training algorithm with options")]
-The [MatrixFactorizationTrainer](xref:Microsoft.ML.RecommendationCatalog.RecommendationTrainers.MatrixFactorization%28Microsoft.ML.Trainers.MatrixFactorizationTrainer.Options%29) is your recommendation training algorithm. [Matrix Factorization](https://en.wikipedia.org/wiki/Matrix_factorization_(recommender_systems)) is a common approach to recommendation when you have data on how users have rated products in the past, which is the case for the datasets in this tutorial. There are other recommendation algorithms for when you have different data available (see the [Other recommendation algorithms](#other-recommendation-algorithms) section below to learn more).
+The [MatrixFactorizationTrainer](xref:Microsoft.ML.RecommendationCatalog.RecommendationTrainers.MatrixFactorization%28Microsoft.ML.Trainers.MatrixFactorizationTrainer.Options%29) is your recommendation training algorithm. [Matrix Factorization](https://en.wikipedia.org/wiki/Matrix_factorization_(recommender_systems)) is a common approach to recommendation when you have data on how users have rated products in the past, which is the case for the datasets in this tutorial. There are other recommendation algorithms for when you have different data available (see the [Other recommendation algorithms](#other-recommendation-algorithms) section below to learn more).
In this case, the `Matrix Factorization` algorithm uses a method called "collaborative filtering", which assumes that if User 1 has the same opinion as User 2 on a certain issue, then User 1 is more likely to feel the same way as User 2 about a different issue.
diff --git a/docs/machine-learning/tutorials/object-detection-model-builder.md b/docs/machine-learning/tutorials/object-detection-model-builder.md
index 3ff142410b6f9..6cd3843fed2c4 100644
--- a/docs/machine-learning/tutorials/object-detection-model-builder.md
+++ b/docs/machine-learning/tutorials/object-detection-model-builder.md
@@ -11,9 +11,7 @@ ms.custom: mlnet-tooling
# Tutorial: Detect stop signs in images with Model Builder
-Learn how to build an object detection model using ML.NET Model Builder and Azure Machine Learning to detect and locate stop signs in images.
-
-In this tutorial, you learn how to:
+In this tutorial, you learn how to build an object detection model using ML.NET Model Builder and Azure Machine Learning to detect and locate stop signs in images.
> [!div class="checklist"]
>
@@ -47,7 +45,7 @@ Some use cases for object detection include:
- Object Counting
- Activity Recognition
-This sample creates a C# .NET Core console application that detects stop signs in images using a machine learning model built with Model Builder. You can find the source code for this tutorial at the [dotnet/machinelearning-samples](https://github.com/dotnet/machinelearning-samples/tree/main/samples/modelbuilder/ObjectDetection_StopSigns) GitHub repository.
+This sample creates a C# console application that detects stop signs in images using a machine learning model built with Model Builder. You can find the source code for this tutorial at the [dotnet/machinelearning-samples](https://github.com/dotnet/machinelearning-samples/tree/main/samples/modelbuilder/ObjectDetection_StopSigns) GitHub repository.
## Prepare and understand the data
@@ -62,14 +60,14 @@ The Stop Sign dataset consists of 50 images downloaded from [Unsplash](https://u
![VoTT Home Screen](../how-to-guides/media/vott/vott.png)
1. In **Project Settings**, change the **Display Name** to "StopSignObjDetection".
-1. Change the **Security Token** to *Generate New Security Token*.
+1. Change the **Security Token** to _Generate New Security Token_.
1. Next to **Source Connection**, select **Add Connection**.
-1. In **Connection Settings**, change the **Display Name** for the source connection to "StopSignImages", and select *Local File System* as the **Provider**. For the **Folder Path**, select the *Stop-Signs* folder which contains the 50 training images, and then select **Save Connection**.
+1. In **Connection Settings**, change the **Display Name** for the source connection to "StopSignImages", and select _Local File System_ as the **Provider**. For the **Folder Path**, select the _Stop-Signs_ folder which contains the 50 training images, and then select **Save Connection**.
![VoTT New Connection Dialog](./media/object-detection-model-builder/vott-new-connection.png)
-1. In **Project Settings**, change the **Source Connection** to *StopSignImages* (the connection you just created).
-1. Change the **Target Connection** to *StopSignImages* as well. Your **Project Settings** should now look similar to this screenshot:
+1. In **Project Settings**, change the **Source Connection** to _StopSignImages_ (the connection you just created).
+1. Change the **Target Connection** to _StopSignImages_ as well. Your **Project Settings** should now look similar to this screenshot:
![VoTT Project Settings Dialog](./media/object-detection-model-builder/vott-new-project.png)
@@ -99,8 +97,8 @@ You should now see a window with preview images of all the training images on th
Once you have labeled all of your training images, you can export the file that will be used by Model Builder for training.
1. Select the fourth icon in the left toolbar (the one with the diagonal arrow in a box) to go to the **Export Settings**.
-1. Leave the **Provider** as *VoTT JSON*.
-1. Change the **Asset State** to *Only tagged Assets*.
+1. Leave the **Provider** as _VoTT JSON_.
+1. Change the **Asset State** to _Only tagged Assets_.
1. Uncheck **Include Images**. If you include the images, then the training images will be copied to the export folder that is generated, which is not necessary.
1. Select **Save Export Settings**.
@@ -110,15 +108,15 @@ Once you have labeled all of your training images, you can export the file that
![VoTT Export Button](../how-to-guides/media/vott/vott-export-button.png)
-This export will create a new folder called *vott-json-export* in your *Stop-Sign-Images* folder and will generate a JSON file named *StopSignObjDetection-export* in that new folder. You will use this JSON file in the next steps for training an object detection model in Model Builder.
+This export will create a new folder called _vott-json-export_ in your _Stop-Sign-Images_ folder and will generate a JSON file named _StopSignObjDetection-export_ in that new folder. You will use this JSON file in the next steps for training an object detection model in Model Builder.
## Create a console application
-In Visual Studio, create a **C# .NET Core console application** called *StopSignDetection*.
+In Visual Studio, create a **C# console application** called _StopSignDetection_.
## Create an `mbconfig` file
-1. In **Solution Explorer**, right-click the *StopSignDetection* project, and select **Add** > **Machine Learning Model...** to open the Model Builder UI.
+1. In **Solution Explorer**, right-click the _StopSignDetection_ project, and select **Add** > **Machine Learning Model** to open the Model Builder UI.
1. In the dialog, name the Model Builder project **StopSignDetection**, and click **Add**.
## Choose a scenario
@@ -127,7 +125,7 @@ For this sample, the scenario is object detection. In the **Scenario** step of M
![Model Builder wizard in Visual Studio](./media/object-detection-model-builder/obj-det-scenario.png)
-> If you don't see *Object Detection* in the list of scenarios, you may need to [update your version of Model Builder](https://marketplace.visualstudio.com/items?itemName=MLNET.07).
+> If you don't see _Object Detection_ in the list of scenarios, you may need to [update your version of Model Builder](https://marketplace.visualstudio.com/items?itemName=MLNET.07).
## Choose the training environment
@@ -179,7 +177,7 @@ In the **Data** step of Model Builder, you will select your training dataset.
> [!IMPORTANT]
> Model Builder currently only accepts the format of JSON [generated by VoTT](../how-to-guides/label-images-for-object-detection-using-vott.md).
-1. Select the button inside **Input** section and use the File Explorer to find the `StopSignObjDetection-export.json` which should be located in the *Stop-Signs/vott-json-export* directory.
+1. Select the button inside **Input** section and use the File Explorer to find the `StopSignObjDetection-export.json` which should be located in the _Stop-Signs/vott-json-export_ directory.
![Model Builder Data Step](./media/object-detection-model-builder/obj-det-data.png)
@@ -205,7 +203,7 @@ In the Evaluate screen, you get an overview of the results from the training pro
![Model Builder Evaluate Step](./media/object-detection-model-builder/obj-det-evaluate.png)
-In this case, the accuracy says 100%, which means that the model is more than likely *overfit* due to too few images in the dataset.
+In this case, the accuracy says 100%, which means that the model is more than likely _overfit_ due to too few images in the dataset.
You can use the **Try your model** experience to quickly check whether your model is performing as expected.
diff --git a/docs/machine-learning/tutorials/phone-calls-anomaly-detection.md b/docs/machine-learning/tutorials/phone-calls-anomaly-detection.md
index c0b556bd67aff..56db29b26342e 100644
--- a/docs/machine-learning/tutorials/phone-calls-anomaly-detection.md
+++ b/docs/machine-learning/tutorials/phone-calls-anomaly-detection.md
@@ -1,6 +1,6 @@
---
title: 'Tutorial: Detect anomalies in phone calls'
-description: Learn how to build an anomaly detection application for time series data. This tutorial creates a .NET Core console application using C# in Visual Studio 2019.
+description: Learn how to build an anomaly detection application for time series data. This tutorial creates a .NET console application using C# in Visual Studio 2019.
ms.date: 07/28/2021
ms.topic: tutorial
ms.custom: mvc
@@ -8,7 +8,7 @@ ms.custom: mvc
---
# Tutorial: Detect anomalies in time series with ML.NET
-Learn how to build an anomaly detection application for time series data. This tutorial creates a .NET Core console application using C# in Visual Studio 2019.
+Learn how to build an anomaly detection application for time series data. This tutorial creates a .NET console application using C# in Visual Studio 2019.
In this tutorial, you learn how to:
> [!div class="checklist"]
diff --git a/docs/machine-learning/tutorials/predict-prices-with-model-builder.md b/docs/machine-learning/tutorials/predict-prices-with-model-builder.md
index 49b3172486b59..8d5c551a646d0 100644
--- a/docs/machine-learning/tutorials/predict-prices-with-model-builder.md
+++ b/docs/machine-learning/tutorials/predict-prices-with-model-builder.md
@@ -11,11 +11,8 @@ ms.custom: mvc, mlnet-tooling
# Tutorial: Predict prices using regression with Model Builder
-Learn how to use ML.NET Model Builder to build a regression model to predict prices. The .NET console app that you develop in this tutorial predicts taxi fares based on historical New York taxi fare data.
+In this tutorial, you learn how to use ML.NET Model Builder to build a regression model to predict prices. The .NET console app that you develop in this tutorial predicts taxi fares based on historical New York taxi fare data.
-The Model Builder price prediction template can be used for any scenario requiring a numerical prediction value. Example scenarios include: house price prediction, demand prediction, and sales forecasting.
-
-In this tutorial, you learn how to:
> [!div class="checklist"]
>
> - Prepare and understand the data
@@ -26,13 +23,15 @@ In this tutorial, you learn how to:
> - Evaluate the model
> - Use the model for predictions
-## Pre-requisites
+The Model Builder price prediction template can be used for any scenario requiring a numerical prediction value. Example scenarios include: house price prediction, demand prediction, and sales forecasting.
+
+## Prerequisites
For a list of pre-requisites and installation instructions, visit the [Model Builder installation guide](../how-to-guides/install-model-builder.md).
## Create a console application
-1. Create a **C# .NET Core Console Application** called "TaxiFarePrediction". Make sure **Place solution and project in the same directory** is **unchecked** (VS 2019).
+Create a **C# Console Application** called "TaxiFarePrediction". Make sure **Place solution and project in the same directory** is **unchecked**.
## Prepare and understand the data
@@ -64,11 +63,11 @@ Each row in the `taxi-fare-train.csv` data set contains details of trips made by
The `label` is the column you want to predict. When performing a regression task, the goal is to predict a numerical value. In this price prediction scenario, the cost of a taxi ride is being predicted. Therefore, the **fare_amount** is the label. The identified `features` are the inputs you give the model to predict the `label`. In this case, the rest of the columns with the exception of **trip_time_in_secs** are used as features or inputs to predict the fare amount.
-## Create Model Builder Config File
+## Create Model Builder config file
When first adding Model Builder to the solution it will prompt you to create an `mbconfig` file. The `mbconfig` file keeps track of everything you do in Model Builder to allow you to reopen the session.
-1. In **Solution Explorer**, right-click the *TaxiFarePrediction* project, and select **Add** > **Machine Learning Model...**.
+1. In **Solution Explorer**, right-click the *TaxiFarePrediction* project, and select **Add** > **Machine Learning Model**.
1. Name the `mbconfig` project **TaxiFarePrediction**, and click the **Add** button.
## Choose a scenario
@@ -136,7 +135,7 @@ This step will have project templates that you can use to consume the model. Thi
- Console App
- Web API
-### Console App
+### Console app
When adding a console app to your solution, you will be prompted to name the project.
@@ -179,19 +178,7 @@ When adding a web API to your solution, you will be prompted to name the project
15.020833
```
-## Next Steps
-
-In this tutorial, you learned how to:
-> [!div class="checklist"]
->
-> - Prepare and understand the data
-> - Choose a scenario
-> - Load the data
-> - Train the model
-> - Evaluate the model
-> - Use the model for predictions
-
-### Additional Resources
+## Related content
To learn more about topics mentioned in this tutorial, visit the following resources:
diff --git a/docs/machine-learning/tutorials/sales-anomaly-detection.md b/docs/machine-learning/tutorials/sales-anomaly-detection.md
index f0bb97c0b9f00..e5cf7055f6426 100644
--- a/docs/machine-learning/tutorials/sales-anomaly-detection.md
+++ b/docs/machine-learning/tutorials/sales-anomaly-detection.md
@@ -1,6 +1,6 @@
---
title: 'Tutorial: Detect anomalies in product sales'
-description: Learn how to build an anomaly detection application for product sales data. This tutorial creates a .NET Core console application using C# in Visual Studio 2019.
+description: Learn how to build an anomaly detection application for product sales data. This tutorial creates a .NET console application using C# in Visual Studio 2019.
ms.date: 11/11/2021
ms.topic: tutorial
ms.custom: mvc, title-hack-0612
@@ -8,7 +8,7 @@ ms.custom: mvc, title-hack-0612
---
# Tutorial: Detect anomalies in product sales with ML.NET
-Learn how to build an anomaly detection application for product sales data. This tutorial creates a .NET Core console application using C# in Visual Studio.
+Learn how to build an anomaly detection application for product sales data. This tutorial creates a .NET console application using C# in Visual Studio.
In this tutorial, you learn how to:
> [!div class="checklist"]
@@ -266,7 +266,7 @@ Alert Score P-Value
## Change point detection
-`Change points` are persistent changes in a time series event stream distribution of values, like level changes and trends. These persistent changes last much longer than `spikes` and could indicate catastrophic event(s). `Change points` are not usually visible to the naked eye, but can be detected in your data using approaches such as in the following method. The following image is an example of a change point detection:
+`Change points` are persistent changes in a time series event stream distribution of values, like level changes and trends. These persistent changes last much longer than `spikes` and could indicate catastrophic event(s). `Change points` are not usually visible to the naked eye, but can be detected in your data using approaches such as in the following method. The following image is an example of a change point detection:
![Screenshot that shows a change point detection.](./media/sales-anomaly-detection/change-point-detection.png)
diff --git a/docs/machine-learning/tutorials/sentiment-analysis-cli.md b/docs/machine-learning/tutorials/sentiment-analysis-cli.md
index fd7fa30884ae2..b984bb1eae21d 100644
--- a/docs/machine-learning/tutorials/sentiment-analysis-cli.md
+++ b/docs/machine-learning/tutorials/sentiment-analysis-cli.md
@@ -23,7 +23,7 @@ In this tutorial, you will do the following steps:
> - Explore the generated C# code that was used to train the model
> [!NOTE]
-> This topic refers to the ML.NET CLI tool, which is currently in Preview, and material may be subject to change. For more information, visit the [ML.NET](https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet) page.
+> This article refers to the ML.NET CLI tool, which is currently in Preview, and material may be subject to change. For more information, visit the [ML.NET](https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet) page.
The ML.NET CLI is part of ML.NET and its main goal is to "democratize" ML.NET for .NET developers when learning ML.NET so you don't need to code from scratch to get started.
@@ -31,7 +31,7 @@ You can run the ML.NET CLI on any command-prompt (Windows, Mac, or Linux) to gen
## Pre-requisites
-- [.NET Core 6 SDK](https://dotnet.microsoft.com/download/dotnet/6.0) or later
+- [.NET 6 SDK](https://dotnet.microsoft.com/download/dotnet/6.0) or later
- (Optional) [Visual Studio](https://visualstudio.microsoft.com/vs/)
- [ML.NET CLI](../how-to-guides/install-ml-net-cli.md)
@@ -196,7 +196,7 @@ The creation of the model object (`ITransformer` loaded from a model's .zip file
For the second object, the `PredictionEngine` object, it is not so easy because the `PredictionEngine` object is not thread-safe, therefore you cannot instantiate this object as singleton or static object in an ASP.NET Core app. This thread-safe and scalability problem is deeply discussed in this [Blog Post](https://devblogs.microsoft.com/cesardelatorre/how-to-optimize-and-run-ml-net-models-on-scalable-asp-net-core-webapis-or-web-apps/).
-However, things got a lot easier for you than what's explained in that blog post. We worked on a simpler approach for you and have created a nice **'.NET Core Integration Package'** that you can easily use in your ASP.NET Core apps and services by registering it in the application DI services (Dependency Injection services) and then directly use it from your code. Check the following tutorial and example for doing that:
+However, things got a lot easier for you than what's explained in that blog post. We worked on a simpler approach for you and have created a **'.NET Integration Package'** that you can easily use in your ASP.NET Core apps and services by registering it in the application DI services (Dependency Injection services) and then directly use it from your code. Check the following tutorial and example for doing that:
- [Tutorial: Running ML.NET models on scalable ASP.NET Core web apps and WebAPIs](../how-to-guides/serve-model-web-api-ml-net.md)
- [Sample: Scalable ML.NET model on ASP.NET Core WebAPI](https://aka.ms/mlnet-sample-netcoreintegrationpkg)
diff --git a/docs/machine-learning/tutorials/sentiment-analysis-model-builder.md b/docs/machine-learning/tutorials/sentiment-analysis-model-builder.md
index da5f718606b21..62d944f02c552 100644
--- a/docs/machine-learning/tutorials/sentiment-analysis-model-builder.md
+++ b/docs/machine-learning/tutorials/sentiment-analysis-model-builder.md
@@ -58,7 +58,7 @@ Each row in the *wikipedia-detox-250-line-data.tsv* dataset represents a differe
When first adding a machine learning model to the solution it will prompt you to create an `mbconfig` file. The `mbconfig` file keeps track of everything you do in Model Builder to allow you to reopen the session.
-1. In **Solution Explorer**, right-click the *SentimentRazor* project, and select **Add** > **Machine Learning Model...**.
+1. In **Solution Explorer**, right-click the *SentimentRazor* project, and select **Add** > **Machine Learning Model**.
1. In the dialog, name the Model Builder project **SentimentAnalysis.mbconfig**, and select **Add**.
## Choose a scenario
@@ -106,7 +106,7 @@ The machine learning task used to train the sentiment analysis model in this tut
The result of the training step will be one model that has the best performance. In the evaluate step of the Model Builder tool, the output section will contain the trainer used by the best-performing model in the as well as evaluation metrics.
-If you're not satisfied with your evaluation metrics, some easy ways to try to improve model performance are to use more data.
+If you're not satisfied with your evaluation metrics, some easy ways to try to improve model performance are to use more data.
Otherwise, select the **Next step** button to move to the *Consume* step in Model Builder.
@@ -229,16 +229,16 @@ The results returned by the `OnGetAnalyzeSentiment` will be dynamically displaye
@{
ViewData["Title"] = "Home page";
}
-
+
Live Sentiment
-
+
-
+
Your sentiment is...
😡 😐 😍
-
+
▲
@@ -246,7 +246,7 @@ The results returned by the `OnGetAnalyzeSentiment` will be dynamically displaye
-
+
```
1. Next, add css styling code to the end of the *site.css* page in the *wwwroot\css* directory:
@@ -262,37 +262,37 @@ The results returned by the `OnGetAnalyzeSentiment` will be dynamically displaye
padding-bottom: 0;
border-radius: 1rem;
}
-
+
.sentiment h4 {
font-size: 16px;
text-align: center;
margin: 0;
padding: 0;
}
-
+
.sentiment p {
font-size: 50px;
}
-
+
.sentiment .marker {
position: relative;
left: 22px;
width: calc(100% - 68px);
}
-
+
.sentiment .marker > div {
transition: 0.3s ease-in-out;
position: absolute;
margin-left: -30px;
text-align: center;
}
-
+
.sentiment .marker > div > div {
font-size: 50px;
line-height: 20px;
color: green;
}
-
+
.sentiment .marker > div label {
font-size: 30px;
color: gray;
@@ -339,15 +339,15 @@ The results returned by the `OnGetAnalyzeSentiment` will be dynamically displaye
break;
default:
updateMarker(45.0, "Neutral");
- }
+ }
});
- }
+ }
```
1. Finally, register the event handler and bind it to the `textarea` element with the `id=Message` attribute.
```javascript
- $("#Message").on('change input paste', updateSentiment)
+ $("#Message").on('change input paste', updateSentiment)
```
## Run the application
diff --git a/docs/machine-learning/tutorials/sentiment-analysis.md b/docs/machine-learning/tutorials/sentiment-analysis.md
index 63186bbd5033a..47542e73404c4 100644
--- a/docs/machine-learning/tutorials/sentiment-analysis.md
+++ b/docs/machine-learning/tutorials/sentiment-analysis.md
@@ -1,6 +1,6 @@
---
title: 'Tutorial: Analyze website comments - binary classification'
-description: This tutorial shows you how to create a .NET Core console application that classifies sentiment from website comments and takes the appropriate action. The binary sentiment classifier uses C# in Visual Studio.
+description: This tutorial shows you how to create a .NET console application that classifies sentiment from website comments and takes the appropriate action. The binary sentiment classifier uses C# in Visual Studio.
ms.date: 11/04/2021
ms.topic: tutorial
ms.custom: mvc
@@ -8,7 +8,7 @@ ms.custom: mvc
---
# Tutorial: Analyze sentiment of website comments with binary classification in ML.NET
-This tutorial shows you how to create a .NET Core console application that classifies sentiment from website comments and takes the appropriate action. The binary sentiment classifier uses C# in Visual Studio 2022.
+This tutorial shows you how to create a .NET console application that classifies sentiment from website comments and takes the appropriate action. The binary sentiment classifier uses C# in Visual Studio 2022.
In this tutorial, you learn how to:
> [!div class="checklist"]
@@ -80,7 +80,7 @@ You can find the source code for this tutorial at the [dotnet/samples](https://g
### How the data was prepared
-The input dataset class, `SentimentData`, has a `string` for user comments (`SentimentText`) and a `bool` (`Sentiment`) value of either 1 (positive) or 0 (negative) for sentiment. Both fields have [LoadColumn](xref:Microsoft.ML.Data.LoadColumnAttribute.%23ctor%28System.Int32%29) attributes attached to them, which describes the data file order of each field. In addition, the `Sentiment` property has a [ColumnName](xref:Microsoft.ML.Data.ColumnNameAttribute.%23ctor%2A) attribute to designate it as the `Label` field. The following example file doesn't have a header row, and looks like this:
+The input dataset class, `SentimentData`, has a `string` for user comments (`SentimentText`) and a `bool` (`Sentiment`) value of either 1 (positive) or 0 (negative) for sentiment. Both fields have [LoadColumn](xref:Microsoft.ML.Data.LoadColumnAttribute.%23ctor%28System.Int32%29) attributes attached to them, which describes the data file order of each field. In addition, the `Sentiment` property has a [ColumnName](xref:Microsoft.ML.Data.ColumnNameAttribute.%23ctor%2A) attribute to designate it as the `Label` field. The following example file doesn't have a header row, and looks like this:
|SentimentText |Sentiment (Label) |
|--------------------------------------|----------|
@@ -253,7 +253,7 @@ Use the following code to display the metrics:
- The `AreaUnderRocCurve` metric indicates how confident the model is correctly classifying the positive and negative classes. You want the `AreaUnderRocCurve` to be as close to one as possible.
-- The `F1Score` metric gets the model's F1 score, which is a measure of balance between [precision](../resources/glossary.md#precision) and [recall](../resources/glossary.md#recall). You want the `F1Score` to be as close to one as possible.
+- The `F1Score` metric gets the model's F1 score, which is a measure of balance between [precision](../resources/glossary.md#precision) and [recall](../resources/glossary.md#recall). You want the `F1Score` to be as close to one as possible.
### Predict the test data outcome
diff --git a/docs/machine-learning/tutorials/text-classification-tf.md b/docs/machine-learning/tutorials/text-classification-tf.md
index 1b691a7cb2e8c..fb4149be59c22 100644
--- a/docs/machine-learning/tutorials/text-classification-tf.md
+++ b/docs/machine-learning/tutorials/text-classification-tf.md
@@ -23,7 +23,7 @@ You can find the source code for this tutorial at the [dotnet/samples](https://g
## Prerequisites
-- [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) with the ".NET Desktop Development" workload installed.
+* [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) with the ".NET Desktop Development" workload installed.
## Setup
@@ -100,15 +100,15 @@ The variable length feature array is then resized to a fixed length of 600. This
[!code-csharp[VariableLengthFeatures](./snippets/text-classification-tf/csharp/Program.cs#VariableLengthFeatures "Declare variable length features type")]
- The `VariableLengthFeatures` property has a [VectorType](xref:Microsoft.ML.Data.VectorTypeAttribute.%23ctor%2A) attribute to designate it as a vector. All of the vector elements must be the same type. In data sets with a large number of columns, loading multiple columns as a single vector reduces the number of data passes when you apply data transformations.
+ The `VariableLengthFeatures` property has a [VectorType](xref:Microsoft.ML.Data.VectorTypeAttribute.%23ctor%2A) attribute to designate it as a vector. All of the vector elements must be the same type. In data sets with a large number of columns, loading multiple columns as a single vector reduces the number of data passes when you apply data transformations.
- This class is used in the `ResizeFeatures` action. The names of its properties (in this case only one) are used to indicate which columns in the DataView can be used as the _input_ to the custom mapping action.
+ This class is used in the `ResizeFeatures` action. The names of its properties (in this case only one) are used to indicate which columns in the DataView can be used as the *input* to the custom mapping action.
1. Create a class for the fixed length features, after the `VariableLength` class:
[!code-csharp[FixedLengthFeatures](./snippets/text-classification-tf/csharp/Program.cs#FixedLengthFeatures)]
- This class is used in the `ResizeFeatures` action. The names of its properties (in this case only one) are used to indicate which columns in the DataView can be used as the _output_ of the custom mapping action.
+ This class is used in the `ResizeFeatures` action. The names of its properties (in this case only one) are used to indicate which columns in the DataView can be used as the *output* of the custom mapping action.
Note that the name of the property `Features` is determined by the TensorFlow model. You cannot change this property name.
diff --git a/docs/machine-learning/tutorials/time-series-demand-forecasting.md b/docs/machine-learning/tutorials/time-series-demand-forecasting.md
index ecb7cf7bfee47..41ef44eab1f21 100644
--- a/docs/machine-learning/tutorials/time-series-demand-forecasting.md
+++ b/docs/machine-learning/tutorials/time-series-demand-forecasting.md
@@ -29,7 +29,7 @@ In this tutorial, you learn how to:
## Time series forecasting sample overview
-This sample is a **C# .NET Core console application** that forecasts demand for bike rentals using a univariate time series analysis algorithm known as Singular Spectrum Analysis. The code for this sample can be found on the [dotnet/machinelearning-samples](https://github.com/dotnet/machinelearning-samples/tree/main/samples/csharp/getting-started/Forecasting_BikeSharingDemand) repository on GitHub.
+This sample is a **C# console application** that forecasts demand for bike rentals using a univariate time series analysis algorithm known as Singular Spectrum Analysis. The code for this sample can be found on the [dotnet/machinelearning-samples](https://github.com/dotnet/machinelearning-samples/tree/main/samples/csharp/getting-started/Forecasting_BikeSharingDemand) repository on GitHub.
## Understand the problem
From b276a5700a313d30962f0e2bbc314634971c8254 Mon Sep 17 00:00:00 2001
From: Rageking8 <106309953+Rageking8@users.noreply.github.com>
Date: Wed, 17 Apr 2024 22:07:48 +0800
Subject: [PATCH 34/84] Address malformed code block in data driven crud
microservice (#40360)
---
.../data-driven-crud-microservice.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md b/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md
index 0474f3c2a5f00..139d595693a8a 100644
--- a/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md
+++ b/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md
@@ -382,7 +382,7 @@ app.UseSwagger()
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
- ```
+```
Once this is done, you can start your application and browse the following Swagger JSON and UI endpoints using URLs like these:
From 2f7038e975e8da994e9458c1aa28d39a1bf62019 Mon Sep 17 00:00:00 2001
From: Kirk Larkin <6025110+serpent5@users.noreply.github.com>
Date: Wed, 17 Apr 2024 15:08:24 +0100
Subject: [PATCH 35/84] Update build-your-first-orleans-app.md (#40510)
---
docs/orleans/quickstarts/build-your-first-orleans-app.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/orleans/quickstarts/build-your-first-orleans-app.md b/docs/orleans/quickstarts/build-your-first-orleans-app.md
index 507221ac51b46..549ad6554ea49 100644
--- a/docs/orleans/quickstarts/build-your-first-orleans-app.md
+++ b/docs/orleans/quickstarts/build-your-first-orleans-app.md
@@ -47,7 +47,7 @@ At the end of the quickstart, you have an app that creates and handles redirects
1. Inside Visual Studio Code, open the [integrated terminal](https://code.visualstudio.com/docs/editor/integrated-terminal).
-1. Change directories (`cd`) directory that will contain the project.
+1. Change to the directory (`cd`) that will contain the project.
1. Run the following commands:
```dotnetcli
From b76957c6a522aab220c5ce0789c53382a21e9381 Mon Sep 17 00:00:00 2001
From: Kirk Larkin <6025110+serpent5@users.noreply.github.com>
Date: Wed, 17 Apr 2024 15:08:47 +0100
Subject: [PATCH 36/84] Update overview.md (#40509)
---
docs/orleans/overview.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/orleans/overview.md b/docs/orleans/overview.md
index 49efb86562e6b..cc18f6d467195 100644
--- a/docs/orleans/overview.md
+++ b/docs/orleans/overview.md
@@ -65,7 +65,7 @@ Orleans provides a simple persistence model that ensures the state is available
While a grain is running, the state is kept in memory so that read requests can be served without accessing storage. When the grain updates its state, calling ensures that the backing store is updated for durability and consistency.
-For more information, see the [Grain persistence](grains/grain-persistence/index.md).
+For more information, see [Grain persistence](grains/grain-persistence/index.md).
### Timers and reminders
From 6690312d8546a74537d26e7ae9ad3a892e487398 Mon Sep 17 00:00:00 2001
From: Tom Dykstra
Date: Wed, 17 Apr 2024 07:15:02 -0700
Subject: [PATCH 37/84] Use SwaggerUI only in development environment (#40489)
Co-authored-by: David Pine
---
.../data-driven-crud-microservice.md | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md b/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md
index 139d595693a8a..e3fcd727dfccb 100644
--- a/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md
+++ b/docs/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice.md
@@ -361,7 +361,6 @@ Currently, Swashbuckle consists of five internal NuGet packages under the high-l
After you have installed these NuGet packages in your Web API project, you need to configure Swagger in the _Program.cs_ class, as in the following **simplified** code:
```csharp
-
// Add framework services.
builder.Services.AddSwaggerGen(options =>
@@ -377,11 +376,15 @@ builder.Services.AddSwaggerGen(options =>
// Other startup code...
-app.UseSwagger()
- .UseSwaggerUI(c =>
+app.UseSwagger();
+
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
+}
```
Once this is done, you can start your application and browse the following Swagger JSON and UI endpoints using URLs like these:
From 6a67480ef9ac1481ed5092df08eb9c91c5a5b6b0 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Wed, 17 Apr 2024 08:17:28 -0700
Subject: [PATCH 38/84] Update package index with latest published versions
(#40533)
---
docs/azure/includes/dotnet-all.md | 2 +-
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 669e4aef63333..1d1198439f1f7 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -33,7 +33,7 @@
| Document Intelligence | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.DocumentIntelligence/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.DocumentIntelligence-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.DocumentIntelligence_1.0.0-beta.2/sdk/documentintelligence/Azure.AI.DocumentIntelligence/) |
| Document Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Document/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Document-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Document_1.0.0/sdk/translation/Azure.AI.Translation.Document/) |
| Event Grid | NuGet [4.24.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.24.0) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.24.0/sdk/eventgrid/Azure.Messaging.EventGrid/) |
-| Event Grid Namespaces | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid.Namespaces/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.Namespaces_1.0.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/) |
+| Event Grid Namespaces | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid.Namespaces/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid.Namespaces-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.Namespaces_1.0.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/) |
| Event Hubs | NuGet [5.11.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.11.2) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.11.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.11.2/sdk/eventhub/Azure.Messaging.EventHubs/) |
| Event Hubs - Event Processor | NuGet [5.11.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.11.2) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.11.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.11.2/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) |
| FarmBeats | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Verticals.AgriFood.Farming/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Verticals.AgriFood.Farming-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Verticals.AgriFood.Farming_1.0.0-beta.2/sdk/agrifood/Azure.Verticals.AgriFood.Farming/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index c2d3604b22d84..c3088a00f3ffb 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -34,7 +34,7 @@
| Document Intelligence | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.DocumentIntelligence/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.DocumentIntelligence-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.DocumentIntelligence_1.0.0-beta.2/sdk/documentintelligence/Azure.AI.DocumentIntelligence/) |
| Document Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Document/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Document-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Document_1.0.0/sdk/translation/Azure.AI.Translation.Document/) |
| Event Grid | NuGet [4.24.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.24.0) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.24.0/sdk/eventgrid/Azure.Messaging.EventGrid/) |
-| Event Grid Namespaces | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid.Namespaces/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.Namespaces_1.0.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/) |
+| Event Grid Namespaces | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid.Namespaces/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid.Namespaces-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.Namespaces_1.0.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/) |
| Event Hubs | NuGet [5.11.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.11.2) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.11.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.11.2/sdk/eventhub/Azure.Messaging.EventHubs/) |
| Event Hubs - Event Processor | NuGet [5.11.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.11.2) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.11.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.11.2/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) |
| FarmBeats | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Verticals.AgriFood.Farming/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Verticals.AgriFood.Farming-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Verticals.AgriFood.Farming_1.0.0-beta.2/sdk/agrifood/Azure.Verticals.AgriFood.Farming/) |
From 0d0b859541e0e0feff08c9ddb960bf4ee0e1d8f4 Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Wed, 17 Apr 2024 09:09:56 -0700
Subject: [PATCH 39/84] Fix build warnings; add orphans to toc (#40499)
---
.openpublishing.redirection.core.json | 3 +--
docs/azure/includes/dotnet-all.md | 14 +++++++-------
.../compiler-messages/cs8352.md | 4 ++--
.../compiler-options/advanced.md | 2 +-
docs/csharp/language-reference/toc.yml | 14 ++++++++------
.../tips-for-javascript-developers.md | 2 +-
docs/framework/network-programming/tls.md | 17 +++++++++--------
docs/navigate/tools-diagnostics/toc.yml | 2 ++
8 files changed, 31 insertions(+), 27 deletions(-)
diff --git a/.openpublishing.redirection.core.json b/.openpublishing.redirection.core.json
index 8169039d95259..4ed3bce656a93 100644
--- a/.openpublishing.redirection.core.json
+++ b/.openpublishing.redirection.core.json
@@ -1154,8 +1154,7 @@
},
{
"source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-runsettings.md",
- "redirect_url": "/dotnet/core/testing/unit-testing-platform-runsettings",
- "redirect_document_id": true
+ "redirect_url": "/dotnet/core/testing/unit-testing-platform-extensions-vstest-bridge#runsettings-support"
},
{
"source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-telemetry.md",
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 1d1198439f1f7..181d25edf96d3 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -343,7 +343,7 @@
| Common | NuGet [2.2.1](https://www.nuget.org/packages/Microsoft.Azure.Common/2.2.1) | | |
| Common - Dependencies | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Common.Dependencies/1.0.0) | | |
| Computer Vision | NuGet [7.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.ComputerVision/7.0.1) | | GitHub [7.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.ComputerVision_6.0.0-preview.1/sdk/cognitiveservices/Vision.ComputerVision) |
-| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.40.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.40.0-preview.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
+| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.40.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.40.0-preview.0) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
| Custom Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomImageSearch) |
| Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | |
| Custom Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomSearch) |
@@ -360,15 +360,15 @@
| Entity Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.EntitySearch/2.0.0) | | |
| Event Hubs - Service Fabric Processor | NuGet [0.5.4](https://www.nuget.org/packages/Microsoft.Azure.EventHubs.ServiceFabricProcessor/0.5.4) | | GitHub [0.5.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.EventHubs.ServiceFabricProcessor_0.5.4/sdk/eventhub/Microsoft.Azure.EventHubs.ServiceFabricProcessor/) |
| Face | NuGet [2.8.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.Face/2.8.0-preview.3) | | GitHub [2.8.0-preview.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.Face_2.6.0-preview.1/sdk/cognitiveservices/Vision.Face) |
-| Feature Management | NuGet [3.0.0](https://www.nuget.org/packages/Microsoft.FeatureManagement/3.0.0) | [docs](https://learn.microsoft.com/dotnet/api/microsoft.featuremanagement) | |
+| Feature Management | NuGet [3.0.0](https://www.nuget.org/packages/Microsoft.FeatureManagement/3.0.0) | [docs](/dotnet/api/microsoft.featuremanagement) | |
| Gallery | NuGet [2.6.2-preview](https://www.nuget.org/packages/Microsoft.Azure.Gallery/2.6.2-preview) | | |
| HDInsight - Job | NuGet [3.0.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.HDInsight.Job/3.0.0-preview.3) | | GitHub [3.0.0-preview.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.HDInsight.Job_3.0.0-preview.3/sdk/hdinsight/Microsoft.Azure.HDInsight.Job/) |
| Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingImageSearch) |
| Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.ImageSearch/2.0.0) | | |
| IoT Edge Function | NuGet [3.5.3](https://www.nuget.org/packages/Microsoft.Azure.IoT.Edge.Function/3.5.3) | | |
| IoT Plug and Play - Devices Client | NuGet [1.42.3](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/1.42.3) NuGet [2.0.0-preview007](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/2.0.0-preview007) | | |
-| Kusto Data | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Data/9.3.1) | [docs](https://learn.microsoft.com/azure/data-explorer/kusto/api/netfx/about-kusto-data) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
-| Kusto Ingest | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Ingest/9.3.1) | [docs](https://learn.microsoft.com/azure/data-explorer/kusto/api/netfx/about-kusto-ingest) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
+| Kusto Data | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Data/9.3.1) | [docs](/azure/data-explorer/kusto/api/netfx/about-kusto-data) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
+| Kusto Ingest | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Ingest/9.3.1) | [docs](/azure/data-explorer/kusto/api/netfx/about-kusto-ingest) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
| Local Search | NuGet [1.0.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingLocalSearch/1.0.0-preview.1) | | GitHub [1.0.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingLocalSearch_1.0.0-preview.1/sdk/cognitiveservices/Search.BingLocalSearch) |
| Local Search | NuGet [0.9.0-preview](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.LocalSearch/0.9.0-preview) | | |
| LUIS Authoring | NuGet [3.1.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Language.LUIS.Authoring/3.1.0) NuGet [3.2.0-preview.5](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Language.LUIS.Authoring/3.2.0-preview.5) | | GitHub [3.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Language.LUIS.Authoring_3.2.0-preview.3/sdk/cognitiveservices/Language.LUIS.Authoring) |
@@ -398,7 +398,7 @@
| News Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.NewsSearch/2.0.0) | | |
| Notification Hubs | NuGet [4.2.0](https://www.nuget.org/packages/Microsoft.Azure.NotificationHubs/4.2.0) | | GitHub [4.2.0](https://github.com/Azure/azure-notificationhubs-dotnet) |
| Personalizer | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Personalizer/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Personalizer_1.0.0/sdk/cognitiveservices/Personalizer) |
-| Relay | NuGet [3.0.1](https://www.nuget.org/packages/Microsoft.Azure.Relay/3.0.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/service-bus-relay) | GitHub [3.0.1](https://github.com/Azure/azure-relay-dotnet/tree/2.0.1) |
+| Relay | NuGet [3.0.1](https://www.nuget.org/packages/Microsoft.Azure.Relay/3.0.1) | [docs](/dotnet/api/overview/azure/service-bus-relay) | GitHub [3.0.1](https://github.com/Azure/azure-relay-dotnet/tree/2.0.1) |
| Schema Registry - Avro | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Kafka.SchemaRegistry.Avro/1.0.0-beta.1) | | |
| Schema Registry - JSON | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Kafka.SchemaRegistry.Json/1.0.0-beta.1) | | |
| Search - Common | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Common/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Common_10.1.0/sdk/search/Microsoft.Azure.Search.Common/) |
@@ -409,7 +409,7 @@
| Speech Xamarin iOS | NuGet [1.25.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Xamarin.iOS/1.25.0) | | |
| Spell Check | NuGet [4.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Language.SpellCheck/4.1.0-preview.1) | | GitHub [4.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Language.SpellCheck_4.1.0-preview.1/sdk/cognitiveservices/Language.SpellCheck) |
| Spring Cloud Client | NuGet [2.0.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.SpringCloud.Client/2.0.0-preview.3) | | |
-| Storage - Files Data Lake | NuGet [2.0.0-alpha.2](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.0-alpha.2) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.0-alpha.2](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) |
+| Storage - Files Data Lake | NuGet [2.0.0-alpha.2](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.0-alpha.2) | [docs](/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.0-alpha.2](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) |
| Synapse Analytics | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Synapse/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Synapse_0.1.0-preview/sdk/synapse/Microsoft.Azure.Synapse/) |
| Tables | NuGet [2.1.2](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.Table/2.1.2) | | |
| Video Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingVideoSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingVideoSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingVideoSearch) |
@@ -435,7 +435,7 @@
| Functions extension for Blob Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | |
| Functions extension for Cosmos DB | NuGet [4.6.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.6.1) | | GitHub [4.6.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) |
| Functions extension for DocumentDB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) |
-| Functions extension for Durable Task Framework | NuGet [2.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.13.0) NuGet [3.0.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/functions) | GitHub [2.13.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
+| Functions extension for Durable Task Framework | NuGet [2.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.13.0) NuGet [3.0.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.1) | [docs](/dotnet/api/overview/azure/functions) | GitHub [2.13.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
| Functions extension for Durable Task Framework - isolated worker | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.1.0) NuGet [1.2.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.2.0-rc.1) | | |
| Functions extension for HTTP | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.2.0) | | GitHub [3.2.0](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.2/src/WebJobs.Extensions.Http) |
| Functions extension for IoT Edge | NuGet [1.0.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EdgeHub/1.0.7) | | GitHub [1.0.7](https://github.com/Azure/iotedge/tree/1.0.7/edge-hub) |
diff --git a/docs/csharp/language-reference/compiler-messages/cs8352.md b/docs/csharp/language-reference/compiler-messages/cs8352.md
index 06f7bebaec31e..f2f711f3f3864 100644
--- a/docs/csharp/language-reference/compiler-messages/cs8352.md
+++ b/docs/csharp/language-reference/compiler-messages/cs8352.md
@@ -11,11 +11,11 @@ helpviewer_keywords:
Cannot use variable 'variable' in this context because it may expose referenced variables outside of their declaration scope.
-This error indicates potential undefined behavior when there's a risk of accessing a stack allocated variable after it has already been deleted from the stack.
+This error indicates potential undefined behavior when there's a risk of accessing a stack-allocated variable after it's already been deleted from the stack.
## To correct this error
-You fix `CS8352` by ensuring the variable's scope is at least as wide as the variable that refers to it. You do this by either allocating the storage on a heap, or in the stack on the calling context.
+You fix `CS8352` by ensuring the variable's scope is at least as wide as the variable that refers to it. You do this by allocating the storage on a heap, or in the stack on the calling context.
## Example
diff --git a/docs/csharp/language-reference/compiler-options/advanced.md b/docs/csharp/language-reference/compiler-options/advanced.md
index 34b8f613e170b..23793eed76ed4 100644
--- a/docs/csharp/language-reference/compiler-options/advanced.md
+++ b/docs/csharp/language-reference/compiler-options/advanced.md
@@ -86,7 +86,7 @@ When you specify [**DebugType**](code-generation.md#debugtype), the compiler cre
## PathMap
> [!NOTE]
-Specifying **PathMap** will prevent breakpoints from working in local debug builds. Only set **PathMap** for production or [continuous integration builds](https://learn.microsoft.com/dotnet/core/project-sdk/msbuild-props#continuousintegrationbuild).
+Specifying **PathMap** will prevent breakpoints from working in local debug builds. Only set **PathMap** for production or [continuous integration builds](../../../core/project-sdk/msbuild-props.md#continuousintegrationbuild).
The **PathMap** compiler option specifies how to map physical paths to source path names output by the compiler. This option maps each physical path on the machine where the compiler runs to a corresponding path that should be written in the output files. In the following example, `path1` is the full path to the source files in the current environment, and `sourcePath1` is the source path substituted for `path1` in any output files. To specify multiple mapped source paths, separate each with a comma.
diff --git a/docs/csharp/language-reference/toc.yml b/docs/csharp/language-reference/toc.yml
index 2718f5bb1b842..b0cd4097bf617 100644
--- a/docs/csharp/language-reference/toc.yml
+++ b/docs/csharp/language-reference/toc.yml
@@ -443,20 +443,20 @@ items:
CS7071, CS7079, CS8090, CS8203
- name: Constructor declarations
href: ./compiler-messages/constructor-errors.md
- displayName: >
+ displayName: >
Primary constructors,
CS0514, CS0515, CS0516, CS0517, CS0522, CS0526, CS0568, CS0710, CS0768, CS0824, CS8054, CS8091, CS8358, CS8862, CS8867,
CS8868, CS8878, CS8910, CS8958, CS8982, CS8983, CS9105, CS9106, CS9107, CS9108, CS9109, CS9110, CS9111, CS9112, CS9113,
CS9114, CS9115, CS9116, CS9117, CS9118, CS9119, CS9120, CS9121, CS9122, CS9124, CS9136, CS9179
- name: Parameter / argument mismatch
href: ./compiler-messages/parameter-argument-mismatch.md
- displayName: >
+ displayName: >
CS0182, CS0591, CS0599, CS0617, CS0633, CS0643, CS0655, CS0839, CS1016, CS1739, CS1740, CS1742, CS1744, CS1746, CS7036,
CS7067, CS8196, CS8324, CS8861, CS8905, CS8943, CS8944, CS8945, CS8948, CS8949, CS8950, CS8951, CS8964, CS8965, CS8966
- name: Reference parameters
href: ./compiler-messages/ref-modifiers-errors.md
displayName: >
- ref safety,
+ ref safety,
CS0192, CS0199, CS0206, CS0631, CS0767, CS1510, CS1605, CS1623, CS1649, CS1651, CS1655, CS1657, CS1741, CS1939, CS1988,
CS7084, CS8166, CS8167, CS8168, CS8169. CS8325, CS8326, CS8327, CS8329, CS8330, CS8331, CS8332, CS8337, CS8338, CS8345,
CS8351, CS8373, CS8374, CS8388, CS8977, CS9072, CS9077, CS9078, CS9079, CS9085, CS9086, CS9087, CS9089, CS9091, CS9092,
@@ -474,7 +474,7 @@ items:
displayName: CS8509, CS9134, CS9135
- name: Array declarations
href: ./compiler-messages/array-declaration-errors.md
- displayName: >
+ displayName: >
CS0022, CS0178, CS0248, CS0251, CS0270, CS0611, CS0623, CS0650, CS0719, CS0747, CS0820, CS0826, CS0846, CS1552, CS1586,
CS1920, CS1921, CS1925, CS1954, CS3007, CS3016, CS9174, CS9176, CS9185, CS9186, CS9187, CS9188, CS9203, CS9208, CS9209,
CS9210
@@ -483,7 +483,7 @@ items:
displayName: CS9164, CS9165, CS9166, CS9167, CS9168, CS9169, CS9172, CS9173, CS9180, CS9181, CS9182, CS9183, CS9184
- name: Lambda expressions
href: ./compiler-messages/lambda-expression-errors.md
- displayName: >
+ displayName: >
CS0748, CS1621, CS1628, CS1632, CS1673, CS1686, CS1706, CS1989, CS8030, CS8175, CS8916, CS8971, CS8972, CS8975, CS9098,
CS9099, CS9100
- name: Restrictions on expression trees
@@ -494,7 +494,7 @@ items:
CS8514, CS8640, CS8642, CS8790, CS8791, CS8792, CS8810, CS8849, CS8927, CS8952, CS9170, CS9175
- name: Using directive and aliases
href: ./compiler-messages/using-directive-errors.md
- displayName: >
+ displayName: >
CS0105, CS0138, CS0431, CS0432, CS0440, CS0576, CS0687, CS1529, CS1537, CS7000, CS7007, CS8019, CS8083, CS8085, CS8914,
CS8915, CS8933, CS9055, CS9130, CS9131, CS9132, CS9133, CS9162, CS9163
- name: Source generators
@@ -2010,6 +2010,8 @@ items:
href: ./compiler-messages/cs8333.md
- name: CS8334
href: ./compiler-messages/cs8334.md
+ - name: CS8352
+ href: ./compiler-messages/cs8352.md
- name: CS8354
href: ./compiler-messages/cs8354.md
- name: CS8355
diff --git a/docs/csharp/tour-of-csharp/tips-for-javascript-developers.md b/docs/csharp/tour-of-csharp/tips-for-javascript-developers.md
index 8dd3c80228886..19888b417e33f 100644
--- a/docs/csharp/tour-of-csharp/tips-for-javascript-developers.md
+++ b/docs/csharp/tour-of-csharp/tips-for-javascript-developers.md
@@ -37,4 +37,4 @@ In addition, a few more TypeScript features aren't available in C#:
1. ***Decorators***: C# doesn't have decorators. Some common decorators, such as `@sealed` are reserved keywords in C#. Other common decorators might have corresponding [Attributes](../language-reference/attributes/general.md). For other decorators, you can create your own attributes.
1. ***More forgiving syntax***: The C# compiler parses code more strictly than JavaScript requires.
-If you're building a web application, you should consider using [Blazor](/aspnet/core/blazor/index.md) to build your application. Blazor is a full-stack web framework built for .NET and C#. Blazor components can run on the server, as .NET assemblies, or on the client using WebAssembly. Blazor supports interop with your favorite JavaScript or TypeScript libraries.
+If you're building a web application, you should consider using [Blazor](/aspnet/core/blazor/index) to build your application. Blazor is a full-stack web framework built for .NET and C#. Blazor components can run on the server, as .NET assemblies, or on the client using WebAssembly. Blazor supports interop with your favorite JavaScript or TypeScript libraries.
diff --git a/docs/framework/network-programming/tls.md b/docs/framework/network-programming/tls.md
index ca0a6cfb2c766..eb101b7678ee0 100644
--- a/docs/framework/network-programming/tls.md
+++ b/docs/framework/network-programming/tls.md
@@ -1,8 +1,9 @@
---
-title: Transport Layer Security (TLS) best practices with the .NET Framework
-description: Describes best practices using Transport Layer Security (TLS) with the .NET Framework
+title: Transport Layer Security (TLS) best practices with .NET Framework
+titleSuffix: ""
+description: Describes best practices using Transport Layer Security (TLS) with .NET Framework
ms.date: 03/18/2024
-helpviewer_keywords:
+helpviewer_keywords:
- "sending data, Internet security"
- "protocols, Internet security"
- "Network security"
@@ -13,10 +14,10 @@ helpviewer_keywords:
- "security [.NET Framework], Internet"
- "permissions [.NET Framework], Internet"
---
-# Transport Layer Security (TLS) best practices with the .NET Framework
+# Transport Layer Security (TLS) best practices with .NET Framework
> [!NOTE]
-> This page contains .NET Framework TLS information. If you're looking for .NET TLS information, see: [TLS/SSL Best Practices](https://learn.microsoft.com/dotnet/core/extensions/sslstream-best-practices)
+> This page contains .NET Framework TLS information. If you're looking for .NET TLS information, see: [TLS/SSL Best Practices](../../core/extensions/sslstream-best-practices.md)
.NET Framework supports the use of the Transport Layer Security (TLS) protocol to secure network communications.
@@ -48,7 +49,7 @@ Here is an updated example table showing the highest supported TLS version for d
| 4.8 | TLS 1.2 | **TLS 1.3**|
| 4.8.1 | TLS 1.2 | **TLS 1.3**|
-For more information see [TLS protocol version support in Schannel](https://learn.microsoft.com/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-#tls-protocol-version-support).
+For more information see [TLS protocol version support in Schannel](/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-#tls-protocol-version-support).
## Recommendations
@@ -207,7 +208,7 @@ A value of `false` for `Switch.System.Net.DontEnableSystemDefaultTlsVersions` ca
If your app targets .NET Framework 4.7 or later versions, this switch defaults to `false`. That's a secure default that we recommend. If your app runs on .NET Framework 4.7 or later versions, but targets an earlier version, the switch defaults to `true`. In that case, you should explicitly set it to `false`.
-### For WCF Applications
+### For WCF applications
#### Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols
@@ -284,7 +285,7 @@ You can use the registry for fine-grained control over the protocols that your c
Start with the `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols` registry key. Under that key you can create any subkeys in the set `TLS 1.2`, `TLS 1.3`. Under each of those subkeys, you can create subkeys `Client` and/or `Server`. Under `Client` and `Server`, you can create DWORD values `DisabledByDefault` (0 or 1) and `Enabled` (0 or 1).
-For more information see: [TLS Registry Settings - Schannel](https://learn.microsoft.com/windows-server/security/tls/tls-registry-settings?tabs=diffie-hellman#tls-dtls-and-ssl-protocol-version-settings)
+For more information see: [TLS Registry Settings - Schannel](/windows-server/security/tls/tls-registry-settings?tabs=diffie-hellman#tls-dtls-and-ssl-protocol-version-settings)
## The SCH_USE_STRONG_CRYPTO flag
diff --git a/docs/navigate/tools-diagnostics/toc.yml b/docs/navigate/tools-diagnostics/toc.yml
index 20f8efdf6e734..0483f104ae58a 100644
--- a/docs/navigate/tools-diagnostics/toc.yml
+++ b/docs/navigate/tools-diagnostics/toc.yml
@@ -170,6 +170,8 @@ items:
href: ../../core/tools/dotnet-nuget-sign.md
- name: dotnet pack
href: ../../core/tools/dotnet-pack.md
+ - name: dotnet package search
+ href: ../../core/tools/dotnet-package-search.md
- name: dotnet publish
href: ../../core/tools/dotnet-publish.md
- name: dotnet restore
From 49cbe5e833d7a72cf85d1b05b1faf4d8ae985edd Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Wed, 17 Apr 2024 10:20:41 -0700
Subject: [PATCH 40/84] Update package index with latest published versions
(#40534)
---
docs/azure/includes/dotnet-all.md | 18 +++++++++---------
docs/azure/includes/dotnet-new.md | 4 ++--
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 181d25edf96d3..87c33e6ff9117 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -101,7 +101,7 @@
| Web PubSub | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub/1.3.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub_1.3.0/sdk/webpubsub/Azure.Messaging.WebPubSub/) |
| Web PubSub Client | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub.Client/1.0.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub.Client-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub.Client_1.0.0/sdk/webpubsub/Azure.Messaging.WebPubSub.Client/) |
| Azure client library integration for ASP.NET Core | NuGet [1.7.3](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.7.3) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.7.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.7.3/sdk/extensions/Microsoft.Extensions.Azure/) |
-| Blob Storage Key Store for .NET Data Protection | NuGet [1.3.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Blobs/1.3.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Blobs-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Blobs_1.3.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Blobs/) |
+| Blob Storage Key Store for .NET Data Protection | NuGet [1.3.4](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Blobs/1.3.4) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Blobs-readme) | GitHub [1.3.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Blobs_1.3.4/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Blobs/) |
| CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) |
| Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) |
| Core - Client - Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial.NewtonsoftJson-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) |
@@ -147,7 +147,7 @@
| Resource Management - Authorization | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Authorization/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Authorization-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Authorization_1.1.1/sdk/authorization/Azure.ResourceManager.Authorization/) |
| Resource Management - Automanage | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Automanage/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Automanage-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automanage_1.1.0/sdk/automanage/Azure.ResourceManager.Automanage/) |
| Resource Management - Automation | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Automation/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Automation-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automation_1.1.0/sdk/automation/Azure.ResourceManager.Automation/) |
-| Resource Management - Azure AI Search | NuGet [1.2.2](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.2.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.2.2/sdk/search/Azure.ResourceManager.Search/) |
+| Resource Management - Azure AI Search | NuGet [1.2.2](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.2.2) NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.2.2/sdk/search/Azure.ResourceManager.Search/) GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.3.0-beta.1/sdk/search/Azure.ResourceManager.Search/) |
| Resource Management - Azure Stack HCI | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Hci-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.1.0/sdk/azurestackhci/Azure.ResourceManager.Hci/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.2.0-beta.1/sdk/azurestackhci/Azure.ResourceManager.Hci/) |
| Resource Management - Azure VMware Solution | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.Avs/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Avs-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Avs_1.3.0/sdk/avs/Azure.ResourceManager.Avs/) |
| Resource Management - Batch | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.Batch/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Batch-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Batch_1.4.0/sdk/batch/Azure.ResourceManager.Batch/) |
@@ -343,7 +343,7 @@
| Common | NuGet [2.2.1](https://www.nuget.org/packages/Microsoft.Azure.Common/2.2.1) | | |
| Common - Dependencies | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Common.Dependencies/1.0.0) | | |
| Computer Vision | NuGet [7.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.ComputerVision/7.0.1) | | GitHub [7.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.ComputerVision_6.0.0-preview.1/sdk/cognitiveservices/Vision.ComputerVision) |
-| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.40.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.40.0-preview.0) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
+| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.40.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.40.0-preview.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
| Custom Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomImageSearch) |
| Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | |
| Custom Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomSearch) |
@@ -360,15 +360,15 @@
| Entity Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.EntitySearch/2.0.0) | | |
| Event Hubs - Service Fabric Processor | NuGet [0.5.4](https://www.nuget.org/packages/Microsoft.Azure.EventHubs.ServiceFabricProcessor/0.5.4) | | GitHub [0.5.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.EventHubs.ServiceFabricProcessor_0.5.4/sdk/eventhub/Microsoft.Azure.EventHubs.ServiceFabricProcessor/) |
| Face | NuGet [2.8.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.Face/2.8.0-preview.3) | | GitHub [2.8.0-preview.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.Face_2.6.0-preview.1/sdk/cognitiveservices/Vision.Face) |
-| Feature Management | NuGet [3.0.0](https://www.nuget.org/packages/Microsoft.FeatureManagement/3.0.0) | [docs](/dotnet/api/microsoft.featuremanagement) | |
+| Feature Management | NuGet [3.0.0](https://www.nuget.org/packages/Microsoft.FeatureManagement/3.0.0) | [docs](https://learn.microsoft.com/dotnet/api/microsoft.featuremanagement) | |
| Gallery | NuGet [2.6.2-preview](https://www.nuget.org/packages/Microsoft.Azure.Gallery/2.6.2-preview) | | |
| HDInsight - Job | NuGet [3.0.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.HDInsight.Job/3.0.0-preview.3) | | GitHub [3.0.0-preview.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.HDInsight.Job_3.0.0-preview.3/sdk/hdinsight/Microsoft.Azure.HDInsight.Job/) |
| Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingImageSearch) |
| Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.ImageSearch/2.0.0) | | |
| IoT Edge Function | NuGet [3.5.3](https://www.nuget.org/packages/Microsoft.Azure.IoT.Edge.Function/3.5.3) | | |
| IoT Plug and Play - Devices Client | NuGet [1.42.3](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/1.42.3) NuGet [2.0.0-preview007](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/2.0.0-preview007) | | |
-| Kusto Data | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Data/9.3.1) | [docs](/azure/data-explorer/kusto/api/netfx/about-kusto-data) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
-| Kusto Ingest | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Ingest/9.3.1) | [docs](/azure/data-explorer/kusto/api/netfx/about-kusto-ingest) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
+| Kusto Data | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Data/9.3.1) | [docs](https://learn.microsoft.com/azure/data-explorer/kusto/api/netfx/about-kusto-data) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
+| Kusto Ingest | NuGet [9.3.1](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Ingest/9.3.1) | [docs](https://learn.microsoft.com/azure/data-explorer/kusto/api/netfx/about-kusto-ingest) | GitHub [9.3.1](https://github.com/Azure/azure-kusto-dotnet) |
| Local Search | NuGet [1.0.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingLocalSearch/1.0.0-preview.1) | | GitHub [1.0.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingLocalSearch_1.0.0-preview.1/sdk/cognitiveservices/Search.BingLocalSearch) |
| Local Search | NuGet [0.9.0-preview](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.LocalSearch/0.9.0-preview) | | |
| LUIS Authoring | NuGet [3.1.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Language.LUIS.Authoring/3.1.0) NuGet [3.2.0-preview.5](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Language.LUIS.Authoring/3.2.0-preview.5) | | GitHub [3.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Language.LUIS.Authoring_3.2.0-preview.3/sdk/cognitiveservices/Language.LUIS.Authoring) |
@@ -398,7 +398,7 @@
| News Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.NewsSearch/2.0.0) | | |
| Notification Hubs | NuGet [4.2.0](https://www.nuget.org/packages/Microsoft.Azure.NotificationHubs/4.2.0) | | GitHub [4.2.0](https://github.com/Azure/azure-notificationhubs-dotnet) |
| Personalizer | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Personalizer/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Personalizer_1.0.0/sdk/cognitiveservices/Personalizer) |
-| Relay | NuGet [3.0.1](https://www.nuget.org/packages/Microsoft.Azure.Relay/3.0.1) | [docs](/dotnet/api/overview/azure/service-bus-relay) | GitHub [3.0.1](https://github.com/Azure/azure-relay-dotnet/tree/2.0.1) |
+| Relay | NuGet [3.0.1](https://www.nuget.org/packages/Microsoft.Azure.Relay/3.0.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/service-bus-relay) | GitHub [3.0.1](https://github.com/Azure/azure-relay-dotnet/tree/2.0.1) |
| Schema Registry - Avro | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Kafka.SchemaRegistry.Avro/1.0.0-beta.1) | | |
| Schema Registry - JSON | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Kafka.SchemaRegistry.Json/1.0.0-beta.1) | | |
| Search - Common | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Common/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Common_10.1.0/sdk/search/Microsoft.Azure.Search.Common/) |
@@ -409,7 +409,7 @@
| Speech Xamarin iOS | NuGet [1.25.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Xamarin.iOS/1.25.0) | | |
| Spell Check | NuGet [4.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Language.SpellCheck/4.1.0-preview.1) | | GitHub [4.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Language.SpellCheck_4.1.0-preview.1/sdk/cognitiveservices/Language.SpellCheck) |
| Spring Cloud Client | NuGet [2.0.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.SpringCloud.Client/2.0.0-preview.3) | | |
-| Storage - Files Data Lake | NuGet [2.0.0-alpha.2](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.0-alpha.2) | [docs](/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.0-alpha.2](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) |
+| Storage - Files Data Lake | NuGet [2.0.0-alpha.2](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.0-alpha.2) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.0-alpha.2](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) |
| Synapse Analytics | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Synapse/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Synapse_0.1.0-preview/sdk/synapse/Microsoft.Azure.Synapse/) |
| Tables | NuGet [2.1.2](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.Table/2.1.2) | | |
| Video Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingVideoSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingVideoSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingVideoSearch) |
@@ -435,7 +435,7 @@
| Functions extension for Blob Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | |
| Functions extension for Cosmos DB | NuGet [4.6.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.6.1) | | GitHub [4.6.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) |
| Functions extension for DocumentDB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) |
-| Functions extension for Durable Task Framework | NuGet [2.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.13.0) NuGet [3.0.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.1) | [docs](/dotnet/api/overview/azure/functions) | GitHub [2.13.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
+| Functions extension for Durable Task Framework | NuGet [2.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.13.0) NuGet [3.0.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/functions) | GitHub [2.13.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
| Functions extension for Durable Task Framework - isolated worker | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.1.0) NuGet [1.2.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.2.0-rc.1) | | |
| Functions extension for HTTP | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.2.0) | | GitHub [3.2.0](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.2/src/WebJobs.Extensions.Http) |
| Functions extension for IoT Edge | NuGet [1.0.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EdgeHub/1.0.7) | | GitHub [1.0.7](https://github.com/Azure/iotedge/tree/1.0.7/edge-hub) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index c3088a00f3ffb..daf0948e230b4 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -105,7 +105,7 @@
| Web PubSub | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub/1.3.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub_1.3.0/sdk/webpubsub/Azure.Messaging.WebPubSub/) |
| Web PubSub Client | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub.Client/1.0.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub.Client-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub.Client_1.0.0/sdk/webpubsub/Azure.Messaging.WebPubSub.Client/) |
| Azure client library integration for ASP.NET Core | NuGet [1.7.3](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.7.3) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.7.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.7.3/sdk/extensions/Microsoft.Extensions.Azure/) |
-| Blob Storage Key Store for .NET Data Protection | NuGet [1.3.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Blobs/1.3.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Blobs-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Blobs_1.3.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Blobs/) |
+| Blob Storage Key Store for .NET Data Protection | NuGet [1.3.4](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Blobs/1.3.4) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Blobs-readme) | GitHub [1.3.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Blobs_1.3.4/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Blobs/) |
| CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) |
| Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) |
| Core - Client - Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial.NewtonsoftJson-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) |
@@ -151,7 +151,7 @@
| Resource Management - Authorization | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Authorization/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Authorization-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Authorization_1.1.1/sdk/authorization/Azure.ResourceManager.Authorization/) |
| Resource Management - Automanage | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Automanage/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Automanage-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automanage_1.1.0/sdk/automanage/Azure.ResourceManager.Automanage/) |
| Resource Management - Automation | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Automation/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Automation-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Automation_1.1.0/sdk/automation/Azure.ResourceManager.Automation/) |
-| Resource Management - Azure AI Search | NuGet [1.2.2](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.2.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.2.2/sdk/search/Azure.ResourceManager.Search/) |
+| Resource Management - Azure AI Search | NuGet [1.2.2](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.2.2) NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Search/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Search-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.2.2/sdk/search/Azure.ResourceManager.Search/) GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Search_1.3.0-beta.1/sdk/search/Azure.ResourceManager.Search/) |
| Resource Management - Azure Stack HCI | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Hci-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.1.0/sdk/azurestackhci/Azure.ResourceManager.Hci/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.2.0-beta.1/sdk/azurestackhci/Azure.ResourceManager.Hci/) |
| Resource Management - Azure VMware Solution | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.Avs/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Avs-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Avs_1.3.0/sdk/avs/Azure.ResourceManager.Avs/) |
| Resource Management - Batch | NuGet [1.4.0](https://www.nuget.org/packages/Azure.ResourceManager.Batch/1.4.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Batch-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Batch_1.4.0/sdk/batch/Azure.ResourceManager.Batch/) |
From 9e911670f7cac951c581d9c618e2593960b948c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amaury=20Lev=C3=A9?=
Date: Wed, 17 Apr 2024 20:11:44 +0200
Subject: [PATCH 41/84] Add documentation about MSTest runsettings (#40496)
Co-authored-by: David Pine
---
.../testing/unit-testing-mstest-configure.md | 99 +++++++++++++++++++
1 file changed, 99 insertions(+)
create mode 100644 docs/core/testing/unit-testing-mstest-configure.md
diff --git a/docs/core/testing/unit-testing-mstest-configure.md b/docs/core/testing/unit-testing-mstest-configure.md
new file mode 100644
index 0000000000000..df15f70f1e351
--- /dev/null
+++ b/docs/core/testing/unit-testing-mstest-configure.md
@@ -0,0 +1,99 @@
+---
+title: Configure MSTest
+description: Learn how to configure MSTest.
+author: Evangelink
+ms.author: amauryleve
+ms.date: 04/16/2024
+---
+
+# Configure MSTest
+
+MSTest, Microsoft Testing Framework, is a test framework for .NET applications. It allows you to write and execute tests, and provide test suites with integration to Visual Studio and Visual Studio Code Test Explorers, the .NET CLI, and many CI pipelines.
+
+MSTest is a fully supported, open-source and a cross-platform test framework that works with all supported .NET targets (.NET Framework, .NET Core, .NET, UWP, WinUI, and so on) hosted on [GitHub](https://github.com/microsoft/testfx).
+
+## Runsettings
+
+A *.runsettings* file can be used to configure how unit tests are being run. To learn more about the runsettings and the configurations related to the platform, you can check out [VSTest runsettings documentation](/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file) or [MSTest runner runsettings documentation](unit-testing-platform-extensions-vstest-bridge.md#runsettings-support).
+
+### MSTest element
+
+The following runsettings entries allows to configure how MSTest behaves.
+
+|Configuration|Default|Values|
+|-|-|-|
+|**AssemblyCleanupTimeout**|0|Specify globally the timeout to apply on each instance of assembly cleanup method. `[Timeout]` attribute specified on the assembly cleanup method overrides the global timeout .|
+|**AssemblyInitializeTimeout**|0|Specify globally the timeout to apply on each instance of assembly initialize method. `[Timeout]` attribute specified on the assembly initialize method overrides the global timeout .|
+|**AssemblyResolution**|false|You can specify paths to extra assemblies when finding and running unit tests. For example, use these paths for dependency assemblies that aren't in the same directory as the test assembly. To specify a path, use a **Directory Path** element. Paths can include environment variables.
``
Note that this feature is only being applied when using .NET Framework target.|
+|**CaptureTraceOutput**|true|Capture text messages coming from `Console.Write*`, `Trace.Write*`, `Debug.Write*` api that will be associated to the current running test.|
+|**ClassCleanupLifecycle**|EndOfClass|If you want the class cleanup to occur at the end of assembly, set it to **EndOfAssembly**. (No longer supported starting from MSTest v4 as EndOfClass is the default and only [ClassCleanup]() behavior)|
+|**ClassCleanupTimeout**|0|Specify globally the timeout to apply on each instance of class cleanup method. `[Timeout]` attribute specified on the class cleanup method overrides the global timeout .|
+|**ClassInitializeTimeout**|0|Specify globally the timeout to apply on each instance of class initialize method. `[Timeout]` attribute specified on the class initialize method overrides the global timeout .|
+|**DeleteDeploymentDirectoryAfterTestRunIsComplete**|true|To retain the deployment directory after a test run, set this value to **false**.|
+|**DeploymentEnabled**|true|If you set the value to **false**, deployment items that you've specified in your test method aren't copied to the deployment directory.|
+|**DeployTestSourceDependencies**|true|A value indicating whether the test source references are to be deployed.|
+|**EnableBaseClassTestMethodsFromOtherAssemblies**|true|A value indicating whether to enable discovery of test methods from base classes in a different assembly from the inheriting test class.|
+|**ForcedLegacyMode**|false|In older versions of Visual Studio, the MSTest adapter was optimized to make it faster and more scalable. Some behavior, such as the order in which tests are run, might not be exactly as it was in previous editions of Visual Studio. Set the value to **true** to use the older test adapter.
For example, you might use this setting if you have an *app.config* file specified for a unit test.
We recommend that you consider refactoring your tests to allow you to use the newer adapter.|
+|**MapInconclusiveToFailed**|false|If a test completes with an inconclusive status, it's mapped to the skipped status in **Test Explorer**. If you want inconclusive tests to be shown as failed, set the value to **true**.|
+|**MapNotRunnableToFailed**|true|A value indicating whether a not runnable result is mapped to failed test.|
+|**Parallelize**||Used to set the parallelization settings:
**Workers**: The number of threads/workers to be used for parallelization, which is by default **the number of processors on the current machine**.
**SCOPE**: The scope of parallelization. You can set it to **MethodLevel**. By default, it's **ClassLevel**.
`32MethodLevel`|
+|**SettingsFile**||You can specify a test settings file to use with the MSTest adapter here. You can also specify a test settings file [from the settings menu](/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file#specify-a-run-settings-file-in-the-ide).
If you specify this value, you must also set the **ForcedLegacyMode** to **true**.
`true`|
+|**TestCleanupTimeout**|0|Specify globally the timeout to apply on each instance of test cleanup method. `[Timeout]` attribute specified on the test cleanup method overrides the global timeout .|
+|**TestInitializeTimeout**|0|Specify globally the timeout to apply on each instance of test initialize method. `[Timeout]` attribute specified on the test initialize method overrides the global timeout .|
+|**TestTimeout**|0|Gets specified global test case timeout.|
+|**TreatClassAndAssemblyCleanupWarningsAsErrors**|false|To see your failures in class cleanups as errors, set this value to **true**.|
+|**TreatDiscoveryWarningsAsErrors**|false|To report test discovery warnings as errors, set this value to **true**.|
+
+### `TestRunParameter` element
+
+```xml
+
+
+
+```
+
+Test run parameters provide a way to define variables and values that are available to the tests at run time. Access the parameters using the MSTest property:
+
+```csharp
+private string _appUrl;
+public TestContext TestContext { get; set; }
+
+[TestMethod]
+public void HomePageTest()
+{
+ string _appUrl = TestContext.Properties["webAppUrl"];
+}
+```
+
+To use test run parameters, add a public property to your test class.
+
+### Example *.runsettings* file
+
+The following XML shows the contents of a typical *.runsettings* file. Copy this code and edit it to suit your needs.
+
+Each element of the file is optional because it has a default value.
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ false
+ False
+ False
+
+
+
+
+
+
+```
From 0cc35dd22e95e7efd8b9c0ad2580e5805bf51f4a Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Wed, 17 Apr 2024 12:15:54 -0700
Subject: [PATCH 42/84] Update package index with latest published versions
(#40536)
---
docs/azure/includes/dotnet-all.md | 8 ++++----
docs/azure/includes/dotnet-new.md | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 87c33e6ff9117..a1641c375f858 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -105,13 +105,13 @@
| CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) |
| Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) |
| Core - Client - Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial.NewtonsoftJson-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) |
-| Functions extension for Azure Tables | NuGet [1.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.2.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.2.1/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) |
+| Functions extension for Azure Tables | NuGet [1.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.3.1/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) |
| Key Encryptor for .NET Data Protection | NuGet [1.2.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.2.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.2.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.2.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) |
| Secrets Configuration Provider for .NET | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.3.1) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.3.1/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) |
| Storage - Common | NuGet [12.18.1](https://www.nuget.org/packages/Azure.Storage.Common/12.18.1) NuGet [12.19.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Common/12.19.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.18.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.18.1/sdk/storage/Azure.Storage.Common/) GitHub [12.19.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.19.0-beta.2/sdk/storage/Azure.Storage.Common/) |
-| WebJobs Extensions - Event Grid | NuGet [3.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.3.1/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) |
-| WebJobs Extensions - Event Hubs | NuGet [6.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
-| WebJobs Extensions - Service Bus | NuGet [5.14.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.14.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.14.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.14.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
+| WebJobs Extensions - Event Grid | NuGet [3.4.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.4.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.4.1/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) |
+| WebJobs Extensions - Event Hubs | NuGet [6.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
+| WebJobs Extensions - Service Bus | NuGet [5.15.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.15.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.15.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.15.1/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
| WebJobs Extensions - SignalR Service | NuGet [1.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.13.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.13.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) |
| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
| WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index daf0948e230b4..dc855fa7110bd 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -109,13 +109,13 @@
| CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) |
| Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) |
| Core - Client - Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial.NewtonsoftJson-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) |
-| Functions extension for Azure Tables | NuGet [1.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.2.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.2.1/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) |
+| Functions extension for Azure Tables | NuGet [1.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.3.1/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) |
| Key Encryptor for .NET Data Protection | NuGet [1.2.3](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.2.3) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.2.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.2.3/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) |
| Secrets Configuration Provider for .NET | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.3.1) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.3.1/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) |
| Storage - Common | NuGet [12.18.1](https://www.nuget.org/packages/Azure.Storage.Common/12.18.1) NuGet [12.19.0-beta.2](https://www.nuget.org/packages/Azure.Storage.Common/12.19.0-beta.2) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.18.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.18.1/sdk/storage/Azure.Storage.Common/) GitHub [12.19.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.19.0-beta.2/sdk/storage/Azure.Storage.Common/) |
-| WebJobs Extensions - Event Grid | NuGet [3.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.3.1/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) |
-| WebJobs Extensions - Event Hubs | NuGet [6.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
-| WebJobs Extensions - Service Bus | NuGet [5.14.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.14.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.14.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.14.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
+| WebJobs Extensions - Event Grid | NuGet [3.4.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.4.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.4.1/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) |
+| WebJobs Extensions - Event Hubs | NuGet [6.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
+| WebJobs Extensions - Service Bus | NuGet [5.15.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.15.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.15.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.15.1/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
| WebJobs Extensions - SignalR Service | NuGet [1.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.13.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.13.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) |
| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
| WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
From 9d638c321f747e192ec7ceee540fdc083af6399c Mon Sep 17 00:00:00 2001
From: Matt Kotsenas
Date: Wed, 17 Apr 2024 16:17:57 -0700
Subject: [PATCH 43/84] Note CA1047 is replaced by CS0628 for C# (#40503)
---
docs/fundamentals/code-analysis/quality-rules/ca1047.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1047.md b/docs/fundamentals/code-analysis/quality-rules/ca1047.md
index 5e6722ef8b9b3..168272c2db005 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1047.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1047.md
@@ -32,7 +32,7 @@ A public type is `sealed` (`NotInheritable` in Visual basic) and declares a prot
Types declare protected members so that inheriting types can access or override the member. By definition, you cannot inherit from a sealed type, which means that protected methods on sealed types cannot be called.
-The C# compiler issues a warning for this error.
+The C# compiler emits warning [CS0628](../../../csharp/misc/cs0628.md) instead of CA1047 for this situation.
## How to fix violations
From aefbe9ff85e05107ab3a70e53a9a47e60a502f02 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Wed, 17 Apr 2024 18:19:55 -0700
Subject: [PATCH 44/84] Update package index with latest published versions
(#40542)
---
docs/azure/includes/dotnet-all.md | 2 +-
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index a1641c375f858..da658f51454f6 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -16,7 +16,7 @@
| Communication JobRouter | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Communication.JobRouter/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Communication.JobRouter/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.JobRouter-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.JobRouter_1.0.0/sdk/communication/Azure.Communication.JobRouter/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.JobRouter_1.1.0-beta.1/sdk/communication/Azure.Communication.JobRouter/) |
| Communication Messages | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Communication.Messages/1.0.0) | [docs](/dotnet/api/overview/azure/Communication.Messages-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Messages_1.0.0/sdk/communication/Azure.Communication.Messages/) |
| Communication Phone Numbers | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Communication.PhoneNumbers/1.1.0) NuGet [1.3.0-beta.5](https://www.nuget.org/packages/Azure.Communication.PhoneNumbers/1.3.0-beta.5) | [docs](/dotnet/api/overview/azure/Communication.PhoneNumbers-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.PhoneNumbers_1.1.0/sdk/communication/Azure.Communication.PhoneNumbers/) GitHub [1.3.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.PhoneNumbers_1.3.0-beta.5/sdk/communication/Azure.Communication.PhoneNumbers/) |
-| Communication Rooms | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Communication.Rooms/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Rooms/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Rooms-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.0.0/sdk/communication/Azure.Communication.Rooms/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.1.0-beta.1/sdk/communication/Azure.Communication.Rooms/) |
+| Communication Rooms | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Communication.Rooms/1.1.0) | [docs](/dotnet/api/overview/azure/Communication.Rooms-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.1.0/sdk/communication/Azure.Communication.Rooms/) |
| Communication SMS | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Sms/1.0.1) | [docs](/dotnet/api/overview/azure/Communication.Sms-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.0.1/sdk/communication/Azure.Communication.Sms/) |
| Confidential Ledger | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.3.0) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.3.0/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) |
| Container Registry | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.1.1) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Containers.ContainerRegistry-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.1.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.2.0-beta.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index dc855fa7110bd..f28d3d9ebc43f 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -17,7 +17,7 @@
| Communication Messages | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Communication.Messages/1.0.0) | [docs](/dotnet/api/overview/azure/Communication.Messages-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Messages_1.0.0/sdk/communication/Azure.Communication.Messages/) |
| Communication Network Traversal | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Communication.NetworkTraversal/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Communication.NetworkTraversal/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.NetworkTraversal-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.NetworkTraversal_1.0.0/sdk/communication/Azure.Communication.NetworkTraversal/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.NetworkTraversal_1.1.0-beta.1/sdk/communication/Azure.Communication.NetworkTraversal/) |
| Communication Phone Numbers | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Communication.PhoneNumbers/1.1.0) NuGet [1.3.0-beta.5](https://www.nuget.org/packages/Azure.Communication.PhoneNumbers/1.3.0-beta.5) | [docs](/dotnet/api/overview/azure/Communication.PhoneNumbers-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.PhoneNumbers_1.1.0/sdk/communication/Azure.Communication.PhoneNumbers/) GitHub [1.3.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.PhoneNumbers_1.3.0-beta.5/sdk/communication/Azure.Communication.PhoneNumbers/) |
-| Communication Rooms | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Communication.Rooms/1.0.0) NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Rooms/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Rooms-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.0.0/sdk/communication/Azure.Communication.Rooms/) GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.1.0-beta.1/sdk/communication/Azure.Communication.Rooms/) |
+| Communication Rooms | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Communication.Rooms/1.1.0) | [docs](/dotnet/api/overview/azure/Communication.Rooms-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.1.0/sdk/communication/Azure.Communication.Rooms/) |
| Communication SMS | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Sms/1.0.1) | [docs](/dotnet/api/overview/azure/Communication.Sms-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.0.1/sdk/communication/Azure.Communication.Sms/) |
| Confidential Ledger | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.3.0) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.3.0/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) |
| Container Registry | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.1.1) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Containers.ContainerRegistry-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.1.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.2.0-beta.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/) |
From c0ce3260e292b7479819b97107e4b0f388e5bc96 Mon Sep 17 00:00:00 2001
From: YUVRAJ N JADHAV <80637788+yuvraj2675@users.noreply.github.com>
Date: Thu, 18 Apr 2024 19:01:04 +0530
Subject: [PATCH 45/84] Update ConditionalOperator.cs (#40547)
Typo issue in Document #40546
---
.../operators/snippets/shared/ConditionalOperator.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/csharp/language-reference/operators/snippets/shared/ConditionalOperator.cs b/docs/csharp/language-reference/operators/snippets/shared/ConditionalOperator.cs
index e6931e6fce710..bae892ccc0278 100644
--- a/docs/csharp/language-reference/operators/snippets/shared/ConditionalOperator.cs
+++ b/docs/csharp/language-reference/operators/snippets/shared/ConditionalOperator.cs
@@ -24,8 +24,8 @@ private static void BasicExample()
private static void ConditionalRefExpressions()
{
//
- int[] smallArray = [1, 2, 3, 4, 5];
- int[] largeArray = [10, 20, 30, 40, 50];
+ int[] smallArray = {1, 2, 3, 4, 5};
+ int[] largeArray = {10, 20, 30, 40, 50};
int index = 7;
ref int refValue = ref ((index < 5) ? ref smallArray[index] : ref largeArray[index - 5]);
From 2315a2cb047283ada54a18c4f55f19f1669f1e48 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Thu, 18 Apr 2024 08:17:48 -0700
Subject: [PATCH 46/84] Update package index with latest published versions
(#40550)
---
docs/azure/includes/dotnet-all.md | 2 +-
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index da658f51454f6..1f4253cfa735d 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -1,7 +1,7 @@
| Name | Package | Docs | Source |
| ---- | ------- | ---- | ------ |
| Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) |
-| App Configuration | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.4.0) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.4.0/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
+| App Configuration | NuGet [1.4.1](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.4.1) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.4.1/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
| App Configuration Provider | NuGet [7.0.0](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/7.0.0) NuGet [7.1.0-preview](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/7.1.0-preview) | | GitHub [7.0.0](https://github.com/Azure/AppConfiguration-DotnetProvider) |
| Attestation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Security.Attestation/1.0.0) | [docs](/dotnet/api/overview/azure/Security.Attestation-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.Attestation_1.0.0/sdk/attestation/Azure.Security.Attestation/) |
| Azure AI Search | NuGet [11.5.1](https://www.nuget.org/packages/Azure.Search.Documents/11.5.1) NuGet [11.6.0-beta.3](https://www.nuget.org/packages/Azure.Search.Documents/11.6.0-beta.3) | [docs](/dotnet/api/overview/azure/Search.Documents-readme) | GitHub [11.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.5.1/sdk/search/Azure.Search.Documents/) GitHub [11.6.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.6.0-beta.3/sdk/search/Azure.Search.Documents/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index f28d3d9ebc43f..505aae0332c43 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -1,7 +1,7 @@
| Name | Package | Docs | Source |
| ---- | ------- | ---- | ------ |
| Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) |
-| App Configuration | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.4.0) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.4.0/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
+| App Configuration | NuGet [1.4.1](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.4.1) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.4.1/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
| App Configuration Provider | NuGet [7.0.0](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/7.0.0) NuGet [7.1.0-preview](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/7.1.0-preview) | | GitHub [7.0.0](https://github.com/Azure/AppConfiguration-DotnetProvider) |
| Attestation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Security.Attestation/1.0.0) | [docs](/dotnet/api/overview/azure/Security.Attestation-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.Attestation_1.0.0/sdk/attestation/Azure.Security.Attestation/) |
| Azure AI Search | NuGet [11.5.1](https://www.nuget.org/packages/Azure.Search.Documents/11.5.1) NuGet [11.6.0-beta.3](https://www.nuget.org/packages/Azure.Search.Documents/11.6.0-beta.3) | [docs](/dotnet/api/overview/azure/Search.Documents-readme) | GitHub [11.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.5.1/sdk/search/Azure.Search.Documents/) GitHub [11.6.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.6.0-beta.3/sdk/search/Azure.Search.Documents/) |
From 1923813a85a2af724c9d43094099e33b1fe7e39a Mon Sep 17 00:00:00 2001
From: David Pine
Date: Thu, 18 Apr 2024 10:43:32 -0500
Subject: [PATCH 47/84] Update csharp-version-history.md (#40549)
---
docs/csharp/whats-new/csharp-version-history.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/csharp/whats-new/csharp-version-history.md b/docs/csharp/whats-new/csharp-version-history.md
index 7ed0ed155dfb9..7f741f206050d 100644
--- a/docs/csharp/whats-new/csharp-version-history.md
+++ b/docs/csharp/whats-new/csharp-version-history.md
@@ -290,7 +290,7 @@ C# version 7.0 was released with Visual Studio 2017. This version has some evolu
Other features included:
- [Discards](../fundamentals/functional/discards.md)
-- Binary Literals and Digit Separators
+- [Binary Literals and Digit Separators](../language-reference/builtin-types/integral-numeric-types.md#integer-literals)
- [Throw expressions](../language-reference/statements/exception-handling-statements.md#the-throw-expression)
All of these features offer new capabilities for developers and the opportunity to write cleaner code than ever. A highlight is condensing the declaration of variables to use with the `out` keyword and by allowing multiple return values via tuple. .NET Core now targets any operating system and has its eyes firmly on the cloud and on portability. These new capabilities certainly occupy the language designers' thoughts and time, in addition to coming up with new features.
From 2f1a4ece1b99b4cf3ca6f7d5353419c910fc9fe2 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Thu, 18 Apr 2024 12:26:57 -0700
Subject: [PATCH 48/84] Update package index with latest published versions
(#40552)
---
docs/azure/includes/dotnet-all.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 1f4253cfa735d..e273e439512ae 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -343,7 +343,7 @@
| Common | NuGet [2.2.1](https://www.nuget.org/packages/Microsoft.Azure.Common/2.2.1) | | |
| Common - Dependencies | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Common.Dependencies/1.0.0) | | |
| Computer Vision | NuGet [7.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.ComputerVision/7.0.1) | | GitHub [7.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.ComputerVision_6.0.0-preview.1/sdk/cognitiveservices/Vision.ComputerVision) |
-| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.40.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.40.0-preview.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
+| Cosmos DB | NuGet [3.37.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.37.1) NuGet [3.40.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.40.0-preview.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.37.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) |
| Custom Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomImageSearch) |
| Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | |
| Custom Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomSearch) |
From 294c699c1513f9a62552f361526b1decdd814dd1 Mon Sep 17 00:00:00 2001
From: Kirk Larkin <6025110+serpent5@users.noreply.github.com>
Date: Fri, 19 Apr 2024 12:32:37 +0100
Subject: [PATCH 49/84] Update index.md (#40544)
---
docs/orleans/grains/index.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/orleans/grains/index.md b/docs/orleans/grains/index.md
index fc8fdc71b0a94..06449599291a3 100644
--- a/docs/orleans/grains/index.md
+++ b/docs/orleans/grains/index.md
@@ -219,11 +219,11 @@ await joinedTask;
When a grain method throws an exception, Orleans propagates that exception up the calling stack, across hosts as necessary. For this to work as intended, exceptions must be serializable by Orleans and hosts which are handling the exception must have the exception type available. If an exception type isn't available, the exception will be thrown as an instance of , preserving the message, type, and stack trace of the original exception.
-Exeptions thrown from grain methods don't cause the grain to be deactivated unless the exception inherits from . `InconsistentStateException` is thrown by storage operations which discover that the grain's in-memory state is inconsistent with the state in the database. Aside from the special-casing of `InconsistentStateException, this behavior is similar to throwing an exception from any .NET object: exceptions don't cause an object to be destroyed.
+Exeptions thrown from grain methods don't cause the grain to be deactivated unless the exception inherits from . `InconsistentStateException` is thrown by storage operations which discover that the grain's in-memory state is inconsistent with the state in the database. Aside from the special-casing of `InconsistentStateException`, this behavior is similar to throwing an exception from any .NET object: exceptions don't cause an object to be destroyed.
### Virtual methods
-A grain class can optionally override and virtual methods; are invoked by the Orleans runtime upon activation and deactivation of each grain of the class. This gives the grain code a chance to perform additional initialization and cleanup operations. An exception thrown by `OnActivateAsync` fails the activation process.
+A grain class can optionally override the and virtual methods; these methods are invoked by the Orleans runtime upon activation and deactivation of each grain of the class. This gives the grain code a chance to perform additional initialization and cleanup operations. An exception thrown by `OnActivateAsync` fails the activation process.
While `OnActivateAsync`, if overridden, is always called as part of the grain activation process, `OnDeactivateAsync` is not guaranteed to get called in all situations, for example, in case of a server failure or other abnormal event. Because of that, applications should not rely on `OnDeactivateAsync` for performing critical operations such as the persistence of state changes. They should use it only for best-effort operations.
From 6a064001669afe9c5760f42a7330fd30d2834bb3 Mon Sep 17 00:00:00 2001
From: David Pine
Date: Fri, 19 Apr 2024 06:36:39 -0500
Subject: [PATCH 50/84] Localhost IP details expanded (#40532)
* Extend the tip with a code snippet
* Rephrase explanation
---
docs/fundamentals/networking/includes/ip-endpoint.md | 11 +++++++++--
docs/fundamentals/networking/sockets/tcp-classes.md | 2 +-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/docs/fundamentals/networking/includes/ip-endpoint.md b/docs/fundamentals/networking/includes/ip-endpoint.md
index 2305425594dc2..2b3c0efa97d09 100644
--- a/docs/fundamentals/networking/includes/ip-endpoint.md
+++ b/docs/fundamentals/networking/includes/ip-endpoint.md
@@ -1,5 +1,5 @@
---
-ms.date: 08/24/2022
+ms.date: 04/17/2024
author: IEvangelist
ms.author: dapine
ms.topic: include
@@ -19,7 +19,14 @@ IPAddress ipAddress = ipHostInfo.AddressList[0];
```
> [!TIP]
-> For manual testing and debugging purposes, you can typically use the method to get given the value to resolve the localhost name to an IP address.
+> For manual testing and debugging purposes, you can typically use the method with the resulting host name from the value to resolve the localhost name to an IP address. Consider the following code snippet:
+>
+> ```csharp
+> var hostName = Dns.GetHostName();
+> IPHostEntry localhost = await Dns.GetHostEntryAsync(hostName);
+> // This is the IP address of the local machine
+> IPAddress localIpAddress = localhost.AddressList[0];
+> ```
The Internet Assigned Numbers Authority (IANA) defines port numbers for common services. For more information, see [IANA: Service Name and Transport Protocol Port Number Registry](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml)). Other services can have registered port numbers in the range 1,024 to 65,535. The following code combines the IP address for `host.contoso.com` with a port number to create a remote endpoint for a connection.
diff --git a/docs/fundamentals/networking/sockets/tcp-classes.md b/docs/fundamentals/networking/sockets/tcp-classes.md
index 3d0260d1349e5..8d8d2651edce5 100644
--- a/docs/fundamentals/networking/sockets/tcp-classes.md
+++ b/docs/fundamentals/networking/sockets/tcp-classes.md
@@ -3,7 +3,7 @@ title: Use TcpClient and TcpListener
description: Learn how to use the TcpClient class to create a socket to request and receive data using TCP in .NET.
author: IEvangelist
ms.author: dapine
-ms.date: 08/24/2022
+ms.date: 04/17/2024
helpviewer_keywords:
- "protocols, TCP"
- "network resources, TCP"
From 1db55fc89a8ff4c17bcf3c85305544174341bf91 Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Fri, 19 Apr 2024 08:02:17 -0700
Subject: [PATCH 51/84] improve regex doc (#40553)
---
.../system-text-regularexpressions-regex.md | 68 +++++++++----------
1 file changed, 33 insertions(+), 35 deletions(-)
diff --git a/docs/fundamentals/runtime-libraries/system-text-regularexpressions-regex.md b/docs/fundamentals/runtime-libraries/system-text-regularexpressions-regex.md
index 9ac893bb8ab53..a38d5066179a4 100644
--- a/docs/fundamentals/runtime-libraries/system-text-regularexpressions-regex.md
+++ b/docs/fundamentals/runtime-libraries/system-text-regularexpressions-regex.md
@@ -10,17 +10,18 @@ dev_langs:
[!INCLUDE [context](includes/context.md)]
-The class represents .NET's regular expression engine. It can be used to quickly parse large amounts of text to find specific character patterns; to extract, edit, replace, or delete text substrings; and to add the extracted strings to a collection to generate a report.
+The class represents .NET's regular expression engine. You can use this class to:
-> [!NOTE]
-> If you want to validate a string by determining whether it conforms to a particular pattern, you can use the class.
-
-To use regular expressions, you define the pattern that you want to identify in a text stream by using the syntax documented in [Regular Expression Language - Quick Reference](../../standard/base-types/regular-expression-language-quick-reference.md). Next, you can optionally instantiate a object. Finally, you call a method that performs some operation, such as replacing text that matches the regular expression pattern, or identifying a pattern match.
+- Quickly parse large amounts of text to find specific character patterns.
+- Extract, edit, replace, or delete text substrings.
+- Add the extracted strings to a collection to generate a report.
> [!NOTE]
-> For some common regular expression patterns, see [Regular Expression Examples](/dotnet/standard/base-types/regular-expression-examples). There are also a number of online libraries of regular expression patterns, such as the one at [Regular-Expressions.info](https://www.regular-expressions.info/examples.html).
+> If you want to validate a string by determining whether it conforms to a particular regular expression pattern, you can use the class.
+
+To use regular expressions, you define the pattern that you want to identify in a text stream by using the syntax documented in [Regular expression language - quick reference](../../standard/base-types/regular-expression-language-quick-reference.md). Next, you can optionally instantiate a object. Finally, you call a method that performs some operation, such as replacing text that matches the regular expression pattern, or identifying a pattern match.
-For more information about the regular expression language, see [Regular Expression Language - Quick Reference](../../standard/base-types/regular-expression-language-quick-reference.md) or download and print one of these brochures:
+For more information about the regular expression language, see [Regular expression language - quick reference](../../standard/base-types/regular-expression-language-quick-reference.md) or download and print one of these brochures:
[Quick Reference in Word (.docx) format](https://download.microsoft.com/download/D/2/4/D240EBF6-A9BA-4E4F-A63F-AEB6DA0B921C/Regular%20expressions%20quick%20reference.docx)
[Quick Reference in PDF (.pdf) format](https://download.microsoft.com/download/D/2/4/D240EBF6-A9BA-4E4F-A63F-AEB6DA0B921C/Regular%20expressions%20quick%20reference.pdf)
@@ -70,14 +71,12 @@ Whether you decide to instantiate a
In addition to its pattern-matching methods, the class includes several special-purpose methods:
- The method escapes any characters that may be interpreted as regular expression operators in a regular expression or input string.
-
- The method removes these escape characters.
-
- The method creates an assembly that contains predefined regular expressions. .NET contains examples of these special-purpose assemblies in the namespace.
## Define a time-out value
-.NET supports a full-featured regular expression language that provides substantial power and flexibility in pattern matching. However, the power and flexibility come at a cost: the risk of poor performance. Regular expressions that perform poorly are surprisingly easy to create. In some cases, regular expression operations that rely on excessive backtracking can appear to stop responding when they process text that nearly matches the regular expression pattern. For more information about the .NET Regular Expression engine, see [Details of Regular Expression Behavior](../../standard/base-types/details-of-regular-expression-behavior.md). For more information about excessive backtracking, see [Backtracking](../../standard/base-types/backtracking-in-regular-expressions.md).
+.NET supports a full-featured regular expression language that provides substantial power and flexibility in pattern matching. However, the power and flexibility come at a cost: the risk of poor performance. Regular expressions that perform poorly are surprisingly easy to create. In some cases, regular expression operations that rely on excessive backtracking can appear to stop responding when they process text that nearly matches the regular expression pattern. For more information about the .NET Regular Expression engine, see [Details of regular expression behavior](../../standard/base-types/details-of-regular-expression-behavior.md). For more information about excessive backtracking, see [Backtracking](../../standard/base-types/backtracking-in-regular-expressions.md).
Starting with .NET Framework 4.5, you can define a time-out interval for regular expression matches to limit excessive backtracking. Depending on the regular expression pattern and the input text, the execution time may exceed the specified time-out interval, but it will not spend more time backtracking than the specified time-out interval. If the regular expression engine times out, it throws a exception. In most cases, this prevents the regular expression engine from wasting processing power by trying to match text that nearly matches the regular expression pattern. It also could indicate, however, that the time-out interval has been set too low, or that the current machine load has caused an overall degradation in performance.
@@ -85,43 +84,42 @@ How you handle the exception depends on the cause of the exception. If the excep
You can set a time-out interval by calling the constructor when you instantiate a regular expression object. For static methods, you can set a time-out interval by calling an overload of a matching method that has a `matchTimeout` parameter. If you do not set a time-out value explicitly, the default time-out value is determined as follows:
-- By using the application-wide time-out value, if one exists. This can be any time-out value that applies to the application domain in which the object is instantiated or the static method call is made. You can set the application-wide time-out value by calling the method to assign the string representation of a value to the "REGEX_DEFAULT_MATCH_TIMEOUT" property.
-
+- By using the application-wide time-out value, if one exists. Set the application-wide time-out value by calling the method to assign the string representation of a value to the `REGEX_DEFAULT_MATCH_TIMEOUT` property.
- By using the value , if no application-wide time-out value has been set.
> [!IMPORTANT]
-> We recommend that you set a time-out value in all regular expression pattern-matching operations. For more information, see [Best Practices for Regular Expressions](/dotnet/standard/base-types/best-practices).
+> We recommend that you set a time-out value in all regular expression pattern-matching operations. For more information, see [Best practices for regular expressions](../../standard/base-types/best-practices-regex.md).
## Examples
The following example uses a regular expression to check for repeated occurrences of words in a string. The regular expression `\b(?\w+)\s+(\k)\b` can be interpreted as shown in the following table.
-|Pattern|Description|
-|-------------|-----------------|
-|`\b`|Start the match at a word boundary.|
-|`(?\w+)`|Match one or more word characters up to a word boundary. Name this captured group `word`.|
-|`\s+`|Match one or more white-space characters.|
-|`(\k)`|Match the captured group that is named `word`.|
-|`\b`|Match a word boundary.|
+| Pattern | Description |
+|----------------|-------------------------------------------------------------------------------------------|
+| `\b` | Start the match at a word boundary. |
+| `(?\w+)` | Match one or more word characters up to a word boundary. Name this captured group `word`. |
+| `\s+` | Match one or more white-space characters. |
+| `(\k)` | Match the captured group that's named `word`. |
+| `\b` | Match a word boundary. |
:::code language="csharp" source="./snippets/System.Text.RegularExpressions/Regex/Overview/csharp/words.cs" interactive="try-dotnet" id="Snippet0":::
:::code language="vb" source="./snippets/System.Text.RegularExpressions/Regex/Overview/vb/words.vb" id="Snippet0":::
-The following example illustrates the use of a regular expression to check whether a string either represents a currency value or has the correct format to represent a currency value. In this case, the regular expression is built dynamically from the , , , , and properties for the en-US culture. The resulting regular expression is `^\s*[\+-]?\s?\$?\s?(\d*\.?\d{2}?){1}$`. This regular expression can be interpreted as shown in the following table.
-
-|Pattern|Description|
-|-------------|-----------------|
-|`^`|Start at the beginning of the string.|
-|`\s*`|Match zero or more white-space characters.|
-|`[\+-]?`|Match zero or one occurrence of either the positive sign or the negative sign.|
-|`\s?`|Match zero or one white-space character.|
-|`\$?`|Match zero or one occurrence of the dollar sign.|
-|`\s?`|Match zero or one white-space character.|
-|`\d*`|Match zero or more decimal digits.|
-|`\.?`|Match zero or one decimal point symbol.|
-|`(\d{2})?`|Capturing group 1: Match two decimal digits zero or one time.|
-|`(\d*\.?(\d{2})?){1}`|Match the pattern of integral and fractional digits separated by a decimal point symbol at least one time.|
-|`$`|Match the end of the string.|
+The next example illustrates the use of a regular expression to check whether a string either represents a currency value or has the correct format to represent a currency value. In this case, the regular expression is built dynamically from the , , , , and properties for the en-US culture. The resulting regular expression is `^\s*[\+-]?\s?\$?\s?(\d*\.?\d{2}?){1}$`. This regular expression can be interpreted as shown in the following table.
+
+| Pattern | Description |
+|------------|--------------------------------------------------------------------------------|
+| `^` | Start at the beginning of the string. |
+| `\s*` | Match zero or more white-space characters. |
+| `[\+-]?` | Match zero or one occurrence of either the positive sign or the negative sign. |
+| `\s?` | Match zero or one white-space character. |
+| `\$?` | Match zero or one occurrence of the dollar sign. |
+| `\s?` | Match zero or one white-space character. |
+| `\d*` | Match zero or more decimal digits. |
+| `\.?` | Match zero or one decimal point symbol. |
+| `(\d{2})?` | Capturing group 1: Match two decimal digits zero or one time. |
+| `(\d*\.?(\d{2})?){1}` | Match the pattern of integral and fractional digits separated by a decimal point symbol at least one time. |
+| `$` | Match the end of the string. |
In this case, the regular expression assumes that a valid currency string does not contain group separator symbols, and that it has either no fractional digits or the number of fractional digits defined by the specified culture's property.
From d6c7adf3478b59669d0ffe08b1da122dc65c43bd Mon Sep 17 00:00:00 2001
From: Berkan Sasmaz
Date: Fri, 19 Apr 2024 18:05:59 +0300
Subject: [PATCH 52/84] fix typo in prometheus configuration file (#40560)
---
docs/core/diagnostics/snippets/Metrics/prometheus.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/core/diagnostics/snippets/Metrics/prometheus.yml b/docs/core/diagnostics/snippets/Metrics/prometheus.yml
index c865a3953bf37..032541ee72a6d 100644
--- a/docs/core/diagnostics/snippets/Metrics/prometheus.yml
+++ b/docs/core/diagnostics/snippets/Metrics/prometheus.yml
@@ -1,4 +1,4 @@
- my global config
+# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
From cf6d4d8d974f2e0590998e2fa52b94fc39ac3bca Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Fri, 19 Apr 2024 08:18:51 -0700
Subject: [PATCH 53/84] Update package index with latest published versions
(#40561)
---
docs/azure/includes/dotnet-all.md | 12 ++++++------
docs/azure/includes/dotnet-new.md | 6 ++++--
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index e273e439512ae..5ac2df33a9a8f 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -26,6 +26,8 @@
| Core - Client - Core | NuGet [1.38.0](https://www.nuget.org/packages/Azure.Core/1.38.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.38.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.38.0/sdk/core/Azure.Core/) |
| Core Newtonsoft Json | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.NewtonsoftJson/2.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.NewtonsoftJson-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.NewtonsoftJson_2.0.0/sdk/core/Microsoft.Azure.Core.NewtonsoftJson/) |
| Data Movement | NuGet [12.0.0-beta.4](https://www.nuget.org/packages/Azure.Storage.DataMovement/12.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Storage.DataMovement-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement_12.0.0-beta.4/sdk/storage/Azure.Storage.DataMovement/) |
+| Data Movement - Blobs | NuGet [12.0.0-beta.4](https://www.nuget.org/packages/Azure.Storage.DataMovement.Blobs/12.0.0-beta.4) | | GitHub [12.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement.Blobs_12.0.0-beta.4/sdk/storage/Azure.Storage.DataMovement.Blobs/) |
+| Data Movement - Files Shares | NuGet [12.0.0-beta.1](https://www.nuget.org/packages/Azure.Storage.DataMovement.Files.Shares/12.0.0-beta.1) | | GitHub [12.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement.Files.Shares_12.0.0-beta.1/sdk/storage/Azure.Storage.DataMovement.Files.Shares/) |
| Defender EASM | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Defender.Easm/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Defender.Easm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Defender.Easm_1.0.0-beta.1/sdk/easm/Azure.Analytics.Defender.Easm/) |
| Dev Center | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Developer.DevCenter/1.0.0) | [docs](/dotnet/api/overview/azure/Developer.DevCenter-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Developer.DevCenter_1.0.0/sdk/devcenter/Azure.Developer.DevCenter/) |
| Device Update | NuGet [1.0.0](https://www.nuget.org/packages/Azure.IoT.DeviceUpdate/1.0.0) | [docs](/dotnet/api/overview/azure/IoT.DeviceUpdate-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.DeviceUpdate_1.0.0/sdk/deviceupdate/Azure.IoT.DeviceUpdate/) |
@@ -113,7 +115,7 @@
| WebJobs Extensions - Event Hubs | NuGet [6.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
| WebJobs Extensions - Service Bus | NuGet [5.15.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.15.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.15.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.15.1/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
| WebJobs Extensions - SignalR Service | NuGet [1.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.13.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.13.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) |
-| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
+| WebJobs Extensions - Storage | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.3.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
| WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
| Provisioning | NuGet [0.2.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning/0.2.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_0.2.0-beta.2/sdk/provisioning/Azure.Provisioning/) |
| Provisioning - App Configuration | NuGet [0.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.AppConfiguration/0.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.AppConfiguration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppConfiguration_0.1.0-beta.1/sdk/provisioning/Azure.Provisioning.AppConfiguration/) |
@@ -140,7 +142,7 @@
| Resource Management - App Compliance Automation | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppComplianceAutomation/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppComplianceAutomation-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppComplianceAutomation_1.0.0-beta.4/sdk/appcomplianceautomation/Azure.ResourceManager.AppComplianceAutomation/) |
| Resource Management - App Configuration | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.3.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.3.1/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) |
| Resource Management - App Platform | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.AppPlatform/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AppPlatform-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppPlatform_1.1.0/sdk/appplatform/Azure.ResourceManager.AppPlatform/) |
-| Resource Management - App Service | NuGet [1.0.2](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.0.2) NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.0.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.0.2/sdk/websites/Azure.ResourceManager.AppService/) GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.1.0-beta.4/sdk/websites/Azure.ResourceManager.AppService/) |
+| Resource Management - App Service | NuGet [1.0.2](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.0.2) NuGet [1.1.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.1.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.0.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.0.2/sdk/websites/Azure.ResourceManager.AppService/) GitHub [1.1.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.1.0-beta.5/sdk/websites/Azure.ResourceManager.AppService/) |
| Resource Management - Application Insights | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.ApplicationInsights/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.ApplicationInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ApplicationInsights_1.0.0-beta.5/sdk/applicationinsights/Azure.ResourceManager.ApplicationInsights/) |
| Resource Management - Arc ScVmm | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ArcScVmm/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ArcScVmm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ArcScVmm_1.0.0-beta.4/sdk/arc-scvmm/Azure.ResourceManager.ArcScVmm/) |
| Resource Management - Attestation | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.Attestation/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.Attestation-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Attestation_1.0.0-beta.4/sdk/attestation/Azure.ResourceManager.Attestation/) |
@@ -315,7 +317,6 @@
| Resource Management - Workloads | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Workloads-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.1.0/sdk/workloads/Azure.ResourceManager.Workloads/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.2.0-beta.1/sdk/workloads/Azure.ResourceManager.Workloads/) |
| Azure.Communication.Administration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.Administration/1.0.0-beta.3) | | |
| Communication Calling Windows Client | NuGet [1.6.0](https://www.nuget.org/packages/Azure.Communication.Calling.WindowsClient/1.6.0) | | |
-| Data Movement - Files Shares | NuGet [12.0.0-beta.1](https://www.nuget.org/packages/Azure.Storage.DataMovement.Files.Shares/12.0.0-beta.1) | | |
| DotNetty | NuGet [0.7.6](https://www.nuget.org/packages/DotNetty.Common/0.7.6) | | |
| HTTP ASPNETCore Analyzers | NuGet [1.0.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.Analyzers/1.0.2) | | |
| Item Templates NetCore | NuGet [4.0.2945](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetCore/4.0.2945) | | |
@@ -352,7 +353,6 @@
| Custom Vision Training | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training/2.0.0) NuGet [2.1.0-preview](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training/2.1.0-preview) | | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training_2.0.0/sdk/cognitiveservices/Vision.CustomVision.Training) |
| Data Lake Analytics | NuGet [1.4.211011](https://www.nuget.org/packages/Microsoft.Azure.DataLake.USQL.SDK/1.4.211011) | | |
| Data Movement | NuGet [2.0.4](https://www.nuget.org/packages/Microsoft.Azure.Storage.DataMovement/2.0.4) | | GitHub [2.0.4](https://github.com/Azure/azure-storage-net-data-movement/tree/v1.3.0) |
-| Data Movement - Blobs | NuGet [12.0.0-beta.4](https://www.nuget.org/packages/Azure.Storage.DataMovement.Blobs/12.0.0-beta.4) | | |
| DCAP | NuGet [1.12.3](https://www.nuget.org/packages/Microsoft.Azure.DCAP/1.12.3) | | GitHub [1.12.3](https://github.com/microsoft/Azure-DCAP-Client/tree/1.6) |
| Devices Provisioning Service | NuGet [1.18.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Service/1.18.1) NuGet [1.19.1-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Service/1.19.1-preview-001) | | |
| Digital Twins Service | NuGet [1.0.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.DigitalTwin.Service/1.0.0-preview-001) | | |
@@ -432,7 +432,7 @@
| Functions extension for Application Insights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApplicationInsights/1.0.0-preview4) | | |
| Functions extension for Azure Mobile Apps | NuGet [3.0.0-beta8](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MobileApps/3.0.0-beta8) | | GitHub [3.0.0-beta8](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0-beta8/src/WebJobs.Extensions.MobileApps) |
| Functions extension for Azure SQL and SQL Server | NuGet [3.0.534](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/3.0.534) | | |
-| Functions extension for Blob Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | |
+| Functions extension for Blob Storage | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | |
| Functions extension for Cosmos DB | NuGet [4.6.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.6.1) | | GitHub [4.6.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) |
| Functions extension for DocumentDB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) |
| Functions extension for Durable Task Framework | NuGet [2.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.13.0) NuGet [3.0.0-rc.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/functions) | GitHub [2.13.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
@@ -445,7 +445,7 @@
| Functions extension for script abstractions | NuGet [1.0.4-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.Abstractions/1.0.4-preview) | | |
| Functions extension for SendGrid | NuGet [3.0.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SendGrid/3.0.3) | | GitHub [3.0.3](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0/src/WebJobs.Extensions.SendGrid) |
| Functions extension for Sources | NuGet [3.0.39](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Sources/3.0.39) | | GitHub [3.0.39](https://github.com/Azure/azure-webjobs-sdk) |
-| Functions extension for Storage Queues | NuGet [5.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.2.1) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | |
+| Functions extension for Storage Queues | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | |
| Functions extension for Storage Timers | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Timers.Storage/1.0.0) | | |
| Functions extension for Twilio | NuGet [3.0.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Twilio/3.0.2) | | GitHub [3.0.2](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0/src/WebJobs.Extensions.Twilio) |
| Functions extension metadata generator | NuGet [4.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator/4.0.1) | | GitHub [4.0.1](https://github.com/Azure/azure-functions-host) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 505aae0332c43..0258888ca6392 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -27,6 +27,8 @@
| Core - Client - Core | NuGet [1.38.0](https://www.nuget.org/packages/Azure.Core/1.38.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.38.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.38.0/sdk/core/Azure.Core/) |
| Core Newtonsoft Json | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.NewtonsoftJson/2.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.NewtonsoftJson-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.NewtonsoftJson_2.0.0/sdk/core/Microsoft.Azure.Core.NewtonsoftJson/) |
| Data Movement | NuGet [12.0.0-beta.4](https://www.nuget.org/packages/Azure.Storage.DataMovement/12.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Storage.DataMovement-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement_12.0.0-beta.4/sdk/storage/Azure.Storage.DataMovement/) |
+| Data Movement - Blobs | NuGet [12.0.0-beta.4](https://www.nuget.org/packages/Azure.Storage.DataMovement.Blobs/12.0.0-beta.4) | | GitHub [12.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement.Blobs_12.0.0-beta.4/sdk/storage/Azure.Storage.DataMovement.Blobs/) |
+| Data Movement - Files Shares | NuGet [12.0.0-beta.1](https://www.nuget.org/packages/Azure.Storage.DataMovement.Files.Shares/12.0.0-beta.1) | | GitHub [12.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement.Files.Shares_12.0.0-beta.1/sdk/storage/Azure.Storage.DataMovement.Files.Shares/) |
| Defender EASM | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Defender.Easm/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Defender.Easm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Defender.Easm_1.0.0-beta.1/sdk/easm/Azure.Analytics.Defender.Easm/) |
| Dev Center | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Developer.DevCenter/1.0.0) | [docs](/dotnet/api/overview/azure/Developer.DevCenter-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Developer.DevCenter_1.0.0/sdk/devcenter/Azure.Developer.DevCenter/) |
| Device Update | NuGet [1.0.0](https://www.nuget.org/packages/Azure.IoT.DeviceUpdate/1.0.0) | [docs](/dotnet/api/overview/azure/IoT.DeviceUpdate-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.DeviceUpdate_1.0.0/sdk/deviceupdate/Azure.IoT.DeviceUpdate/) |
@@ -117,7 +119,7 @@
| WebJobs Extensions - Event Hubs | NuGet [6.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.3.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) |
| WebJobs Extensions - Service Bus | NuGet [5.15.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.15.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.15.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.15.1/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) |
| WebJobs Extensions - SignalR Service | NuGet [1.13.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.13.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.13.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) |
-| WebJobs Extensions - Storage | NuGet [5.2.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.2.2) NuGet [5.3.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.2.2](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
+| WebJobs Extensions - Storage | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.3.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) |
| WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
| Provisioning | NuGet [0.2.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning/0.2.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_0.2.0-beta.2/sdk/provisioning/Azure.Provisioning/) |
| Provisioning - App Configuration | NuGet [0.1.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.AppConfiguration/0.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.AppConfiguration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppConfiguration_0.1.0-beta.1/sdk/provisioning/Azure.Provisioning.AppConfiguration/) |
@@ -144,7 +146,7 @@
| Resource Management - App Compliance Automation | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppComplianceAutomation/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppComplianceAutomation-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppComplianceAutomation_1.0.0-beta.4/sdk/appcomplianceautomation/Azure.ResourceManager.AppComplianceAutomation/) |
| Resource Management - App Configuration | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.3.1) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.3.1/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) |
| Resource Management - App Platform | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.AppPlatform/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AppPlatform-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppPlatform_1.1.0/sdk/appplatform/Azure.ResourceManager.AppPlatform/) |
-| Resource Management - App Service | NuGet [1.0.2](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.0.2) NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.0.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.0.2/sdk/websites/Azure.ResourceManager.AppService/) GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.1.0-beta.4/sdk/websites/Azure.ResourceManager.AppService/) |
+| Resource Management - App Service | NuGet [1.0.2](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.0.2) NuGet [1.1.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.1.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme) | GitHub [1.0.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.0.2/sdk/websites/Azure.ResourceManager.AppService/) GitHub [1.1.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.1.0-beta.5/sdk/websites/Azure.ResourceManager.AppService/) |
| Resource Management - Application Insights | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.ApplicationInsights/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.ApplicationInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ApplicationInsights_1.0.0-beta.5/sdk/applicationinsights/Azure.ResourceManager.ApplicationInsights/) |
| Resource Management - Arc ScVmm | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ArcScVmm/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ArcScVmm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ArcScVmm_1.0.0-beta.4/sdk/arc-scvmm/Azure.ResourceManager.ArcScVmm/) |
| Resource Management - Attestation | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.Attestation/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.Attestation-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Attestation_1.0.0-beta.4/sdk/attestation/Azure.ResourceManager.Attestation/) |
From c6f31c7b499e8d56a09049ae40321dcca32629f0 Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Fri, 19 Apr 2024 08:53:50 -0700
Subject: [PATCH 54/84] Use CIL instead of MSIL (#40554)
---
docs/core/diagnostics/dotnet-dump.md | 2 +-
.../diagnostics/sos-debugging-extension.md | 4 +-
docs/core/whats-new/dotnet-8/containers.md | 2 +-
.../advanced-topics/expression-trees/index.md | 4 +-
.../compiler-options/security.md | 6 +-
...static-classes-and-static-class-members.md | 142 ++--
.../programming-guide/concepts/iterators.md | 2 +-
.../generics/generics-in-the-run-time.md | 70 +-
docs/framework/64-bit-apps.md | 92 +--
.../app-domains/build-multifile-assembly.md | 2 +-
.../working-with-assemblies-and-the-gac.md | 112 +--
.../protecting-connection-information.md | 64 +-
.../debug-trace-profile/code-contracts.md | 2 +-
docs/framework/debug-trace-profile/index.md | 44 +-
.../making-an-image-easier-to-debug.md | 6 +-
.../performance-counters.md | 8 +-
.../interop/default-marshalling-for-arrays.md | 642 +++++++++---------
docs/framework/performance/clr-etw-events.md | 94 +--
.../performance/interop-etw-events.md | 10 +-
.../performance/loader-etw-events.md | 6 +-
.../performance/method-etw-events.md | 2 +-
.../security-issues-in-reflection-emit.md | 4 +-
.../framework/tools/al-exe-assembly-linker.md | 30 +-
docs/framework/tools/index.md | 2 +-
.../tools/installutil-exe-installer-tool.md | 2 +-
docs/framework/tools/mdbg-exe.md | 182 ++---
.../tools/ngen-exe-native-image-generator.md | 4 +-
.../tools/peverify-exe-peverify-tool.md | 194 +++---
.../tools/sos-dll-sos-debugging-extension.md | 2 +-
.../constants-unmanaged-api-reference.md | 76 +--
.../cor-active-function-structure.md | 80 +--
.../cor-debug-il-to-native-map-structure.md | 72 +-
.../debugging/cor-il-map-structure.md | 144 ++--
.../cordebugmappingresult-enumeration.md | 92 +--
.../debugging/debugging-interfaces.md | 564 +++++++--------
.../debugging/debugging-structures.md | 2 +-
.../icordebugcode-createbreakpoint-method.md | 78 +--
...ordebugcode-getiltonativemapping-method.md | 92 +--
.../debugging/icordebugcode-interface1.md | 76 +--
.../debugging/icordebugcode-isil-method.md | 6 +-
.../icordebugcode2-getcodechunks-method.md | 8 +-
.../icordebugfunction-getilcode-method.md | 66 +-
.../icordebugfunction-getnativecode-method.md | 66 +-
.../debugging/icordebugfunction-interface1.md | 86 +--
.../icordebugilframe-cansetip-method.md | 66 +-
.../icordebugilframe-getargument-method.md | 74 +-
.../icordebugilframe-getip-method.md | 76 +--
...cordebugilframe-getlocalvariable-method.md | 74 +-
.../debugging/icordebugilframe-interface.md | 76 +--
.../icordebugilframe-setip-method.md | 74 +-
.../debugging/icordebugilframe2-interface.md | 58 +-
.../icordebugilframe2-remapfunction-method.md | 86 +--
...rdebugmanagedcallback2-exception-method.md | 132 ++--
...llback2-functionremapopportunity-method.md | 106 +--
...ordebugmodule-enablejitdebugging-method.md | 74 +-
...debugmodule-getfunctionfromtoken-method.md | 74 +-
.../icordebugmodule2-applychanges-method.md | 110 +--
.../debugging/icordebugmodule2-interface.md | 64 +-
.../icordebugprocess-readmemory-method.md | 94 +--
...ess2-setdesiredngencompilerflags-method.md | 78 +--
.../debugging/icordebugstepper-interface.md | 94 +--
.../icordebugstepper-setrangeil-method.md | 58 +-
...debugstepper-setunmappedstopmask-method.md | 74 +-
.../icordebugstepper-steprange-method.md | 90 +--
.../diagnostics/corsymaddrkind-enumeration.md | 90 +--
.../isymunmanagedmethod-getranges-method.md | 98 +--
...nmanagedmethod-getsequencepoints-method.md | 112 +--
.../isymunmanagedmethod-interface.md | 52 +-
.../iclrprobingassemblyenum-get-method.md | 116 ++--
.../hosting/iclrvalidator-interface.md | 50 +-
.../hosting/iclrvalidator-validate-method.md | 138 ++--
.../hosting/ivalidator-interface.md | 50 +-
.../hosting/ivalidator-validate-method.md | 116 ++--
.../hosting/validatorflags-enumeration.md | 80 +--
.../metadata/cormethodimpl-enumeration.md | 130 ++--
...ercallback-jitcompilationstarted-method.md | 84 +--
...orprofilerinfo-getilfunctionbody-method.md | 96 +--
...rinfo-getilfunctionbodyallocator-method.md | 76 +--
...rofilerinfo-getiltonativemapping-method.md | 102 +--
.../profiling/icorprofilerinfo-interface.md | 128 ++--
...lerinfo-setilinstrumentedcodemap-method.md | 12 +-
.../icorprofilerinfo2-getcodeinfo2-method.md | 102 +--
...filerinfo3-requestprofilerdetach-method.md | 102 +--
...filerinfo4-getiltonativemapping2-method.md | 118 ++--
.../profiling/icorprofilerinfo4-interface.md | 74 +-
.../profiling/imethodmalloc-alloc-method.md | 2 +-
.../profiling/imethodmalloc-interface.md | 60 +-
.../profiling/profiling-interfaces.md | 2 +-
.../profiling/profiling-overview.md | 10 +-
.../operator-overloading.md | 2 +-
.../language-reference/type-abbreviations.md | 4 +-
.../code-analysis/quality-rules/ca1810.md | 4 +-
.../code-analysis/quality-rules/ca1820.md | 2 +-
.../code-analysis/quality-rules/ca2207.md | 2 +-
.../system-collections-generic-list{t}.md | 2 +-
.../system-invalidoperationexception.md | 2 +-
.../system-reflection-emit-methodbuilder.md | 2 +-
.../runtime-libraries/system-type-gettype.md | 2 +-
.../system-type-makegenerictype.md | 2 +-
docs/standard/assembly/contents.md | 6 +-
docs/standard/assembly/identify.md | 36 +-
docs/standard/assembly/index.md | 2 +-
docs/standard/assembly/manifest.md | 74 +-
docs/standard/assembly/view-contents.md | 6 +-
.../attributes/applying-attributes.md | 2 +-
docs/standard/attributes/index.md | 2 +-
.../base-types/best-practices-regex.md | 6 +-
.../standard/base-types/common-type-system.md | 2 +-
...lation-and-reuse-in-regular-expressions.md | 42 +-
.../base-types/regular-expression-options.md | 2 +-
.../xml/script-blocks-using-msxsl-script.md | 276 ++++----
docs/standard/generics/index.md | 2 +-
docs/standard/managed-code.md | 4 +-
...metadata-and-self-describing-components.md | 20 +-
.../security/key-security-concepts.md | 90 +--
.../concepts/expression-trees/index.md | 264 +++----
.../programming-guide/concepts/iterators.md | 2 +-
.../command-line-compiler/keycontainer.md | 74 +-
.../command-line-compiler/keyfile.md | 56 +-
.../command-line-compiler/rootnamespace.md | 66 +-
120 files changed, 3966 insertions(+), 3968 deletions(-)
diff --git a/docs/core/diagnostics/dotnet-dump.md b/docs/core/diagnostics/dotnet-dump.md
index 84570b91e4fd3..eed83a6307086 100644
--- a/docs/core/diagnostics/dotnet-dump.md
+++ b/docs/core/diagnostics/dotnet-dump.md
@@ -169,7 +169,7 @@ dotnet-dump analyze [-h|--help] [-c|--command]
| `dumpgcdata` | Displays information about the GC data. |
| `dumpgen` | Displays heap content for the specified generation. |
| `dumpheap` | Displays info about the garbage-collected heap and collection statistics about objects. |
-| `dumpil` | Displays the Microsoft intermediate language (MSIL) that's associated with a managed method. |
+| `dumpil` | Displays the common intermediate language (CIL) that's associated with a managed method. |
| `dumplog` | Writes the contents of an in-memory stress log to the specified file. |
| `dumpmd` | Displays information about the `MethodDesc` structure at the specified address. |
| `dumpmodule` | Displays information about the module at the specified address. |
diff --git a/docs/core/diagnostics/sos-debugging-extension.md b/docs/core/diagnostics/sos-debugging-extension.md
index 7c1cc184b1840..3f85bdcca865f 100644
--- a/docs/core/diagnostics/sos-debugging-extension.md
+++ b/docs/core/diagnostics/sos-debugging-extension.md
@@ -41,7 +41,7 @@ The following table of commands is also available under **Help** or **soshelp**.
| **DumpClass** \<*EEClass address*> | Displays information about the `EEClass` structure associated with a type.
The **DumpClass** command displays static field values but does not display nonstatic field values.
Use the **DumpMT**, **DumpObj**, **Name2EE**, or **Token2EE** command to get an `EEClass` structure address. |
| **DumpDomain** [\<*domain address*>] | Enumerates each object that's loaded within the specified object address. When called with no parameters, the **DumpDomain** command lists all objects in a process. Since .NET (Core) only has one , **DumpDomain** only returns one object. |
| **DumpHeap** [**-stat**] [**-strings**] [**-short**] [**-min** \<*size*>] [**-max** \<*size*>] [**-thinlock**] [**-startAtLowerBound**] [**-mt** \<*MethodTable address*>] [**-type** \<*partial type name*>] [*start* [*end*]] | Displays information about the garbage-collected heap and collection statistics about objects.
The **DumpHeap** command displays a warning if it detects excessive fragmentation in the garbage collector heap.
The **-stat** option restricts the output to the statistical type summary.
The **-strings** option restricts the output to a statistical string value summary.
The **-short** option limits output to just the address of each object. This lets you easily pipe output from the command to another debugger command for automation.
The **-min** option ignores objects that are less than the `size` parameter, specified in bytes.
The **-max** option ignores objects that are larger than the `size` parameter, specified in bytes.
The **-thinlock** option reports ThinLocks. For more information, see the **SyncBlk** command.
The `-startAtLowerBound` option forces the heap walk to begin at the lower bound of a supplied address range. During the planning phase, the heap is often not walkable because objects are being moved. This option forces **DumpHeap** to begin its walk at the specified lower bound. You must supply the address of a valid object as the lower bound for this option to work. You can display memory at the address of a bad object to manually find the next method table. If the garbage collection is currently in a call to `memcopy`, you may also be able to find the address of the next object by adding the size to the start address, which is supplied as a parameter.
The **-mt** option lists only those objects that correspond to the specified `MethodTable` structure.
The **-type** option lists only those objects whose type name is a substring match of the specified string.
The `start` parameter begins listing from the specified address.
The `end` parameter stops listing at the specified address. |
-| **DumpIL** \<*Managed DynamicMethod object*> | \<*DynamicMethodDesc pointer*> | \<*MethodDesc pointer*> | Displays the Microsoft intermediate language (MSIL) that is associated with a managed method.
Dynamic MSIL is emitted differently than MSIL that's loaded from an assembly. Dynamic MSIL refers to objects in a managed object array rather than to metadata tokens. |
+| **DumpIL** \<*Managed DynamicMethod object*> | \<*DynamicMethodDesc pointer*> | \<*MethodDesc pointer*> | Displays the common intermediate language (CIL) that's associated with a managed method.
Dynamic CIL is emitted differently than CIL that's loaded from an assembly. Dynamic CIL refers to objects in a managed object array rather than to metadata tokens. |
| **DumpLog** [**-addr** \<*addressOfStressLog*>] [<*Filename*>] | Writes the contents of an in-memory stress log to the specified file. If you do not specify a name, this command creates a file called StressLog.txt in the current directory.
The in-memory stress log helps you diagnose stress failures without using locks or I/O. To enable the stress log, set the following registry keys under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\\.NETFramework:
(DWORD) StressLog = 1
(DWORD) LogFacility = 0xffffffff
(DWORD) StressLogSize = 65536
The optional `-addr` option lets you specify a stress log other than the default log. |
| **DumpMD** \<*MethodDesc address*> | Displays information about a `MethodDesc` structure at the specified address.
You can use the **IP2MD** command to get the `MethodDesc` structure address from a managed function. |
| **DumpMT** [**-MD**] \<*MethodTable address*> | Displays information about a method table at the specified address. Specifying the **-MD** option displays a list of all methods defined with the object.
Each managed object contains a method table pointer. |
@@ -135,7 +135,7 @@ By default you can reach all the SOS commands by entering: `sos [command_name]`.
| `dumpgcdata` | Displays information about the GC data. |
| `dumpgen` | Displays heap content for the specified generation. |
| `dumpheap` | Displays info about the garbage-collected heap and collection statistics about objects. |
-| `dumpil` | Displays the Microsoft intermediate language (MSIL) that's associated with a managed method. |
+| `dumpil` | Displays the common intermediate language (CIL) that's associated with a managed method. |
| `dumplog` | Writes the contents of an in-memory stress log to the specified file. |
| `dumpmd` | Displays information about the `MethodDesc` structure at the specified address. |
| `dumpmodule` | Displays information about the module at the specified address. |
diff --git a/docs/core/whats-new/dotnet-8/containers.md b/docs/core/whats-new/dotnet-8/containers.md
index 435f2ab7c206c..a7066d41bb2af 100644
--- a/docs/core/whats-new/dotnet-8/containers.md
+++ b/docs/core/whats-new/dotnet-8/containers.md
@@ -68,7 +68,7 @@ For more information, see the [Improving multi-platform container support](https
### ASP.NET composite images
-As part of an effort to improve containerization performance, new ASP.NET Docker images are available that have a composite version of the runtime. This composite is built by compiling multiple MSIL assemblies into a single ready-to-run (R2R) output binary. Because these assemblies are embedded into a single image, jitting takes less time, and the startup performance of apps improves. The other big advantage of the composite over the regular ASP.NET image is that the composite images have a smaller size on disk.
+As part of an effort to improve containerization performance, new ASP.NET Docker images are available that have a composite version of the runtime. This composite is built by compiling multiple CIL assemblies into a single ready-to-run (R2R) output binary. Because these assemblies are embedded into a single image, jitting takes less time, and the startup performance of apps improves. The other big advantage of the composite over the regular ASP.NET image is that the composite images have a smaller size on disk.
There is a caveat to be aware of. Since composites have multiple assemblies embedded into one, they have tighter version coupling. Apps can't use custom versions of framework or ASP.NET binaries.
diff --git a/docs/csharp/advanced-topics/expression-trees/index.md b/docs/csharp/advanced-topics/expression-trees/index.md
index 798076ca42faf..b30434ba250c7 100644
--- a/docs/csharp/advanced-topics/expression-trees/index.md
+++ b/docs/csharp/advanced-topics/expression-trees/index.md
@@ -17,8 +17,8 @@ You've likely already written code that uses Expression trees. Entity Framework'
When you want to have a richer interaction, you need to use *Expression Trees*. Expression Trees represent code as a structure that you examine, modify, or execute. These tools give you the power to manipulate code during run time. You write code that examines running algorithms, or injects new capabilities. In more advanced scenarios, you modify running algorithms and even translate C# expressions into another form for execution in another environment.
You compile and run code represented by expression trees. Building and running expression trees enables dynamic modification of executable code, the execution of LINQ queries in various databases, and the creation of dynamic queries. For more information about expression trees in LINQ, see [How to use expression trees to build dynamic queries](../../programming-guide/concepts/linq/how-to-use-expression-trees-to-build-dynamic-queries.md).
-
-Expression trees are also used in the dynamic language runtime (DLR) to provide interoperability between dynamic languages and .NET and to enable compiler writers to emit expression trees instead of Microsoft intermediate language (MSIL). For more information about the DLR, see [Dynamic Language Runtime Overview](../../../framework/reflection-and-codedom/dynamic-language-runtime-overview.md).
+
+Expression trees are also used in the dynamic language runtime (DLR) to provide interoperability between dynamic languages and .NET and to enable compiler writers to emit expression trees instead of common intermediate language (CIL). For more information about the DLR, see [Dynamic Language Runtime Overview](../../../framework/reflection-and-codedom/dynamic-language-runtime-overview.md).
You can have the C# or Visual Basic compiler create an expression tree for you based on an anonymous lambda expression, or you can create expression trees manually by using the namespace.
diff --git a/docs/csharp/language-reference/compiler-options/security.md b/docs/csharp/language-reference/compiler-options/security.md
index 4ba3fa72b183b..cec2cd22d057d 100644
--- a/docs/csharp/language-reference/compiler-options/security.md
+++ b/docs/csharp/language-reference/compiler-options/security.md
@@ -2,9 +2,9 @@
description: "C# Compiler Options for security. These options control signing assemblies or address space layout."
title: "C# Compiler Options - security options"
ms.date: 03/12/2021
-f1_keywords:
+f1_keywords:
- "cs.build.options"
-helpviewer_keywords:
+helpviewer_keywords:
- "PublicSign compiler option [C#]"
- "DelaySign compiler option [C#]"
- "KeyFile compiler option [C#]"
@@ -61,7 +61,7 @@ Specifies the name of the cryptographic key container.
container
```
-`container` is the name of the strong name key container. When the **KeyContainer** option is used, the compiler creates a sharable component. The compiler inserts a public key from the specified container into the assembly manifest and signs the final assembly with the private key. To generate a key file, type `sn -k file` at the command line. `sn -i` installs the key pair into a container. This option isn't supported when the compiler runs on CoreCLR. To sign an assembly when building on CoreCLR, use the [**KeyFile**](#keyfile) option. If you compile with [**TargetType**](output.md#targettype), the name of the key file is held in the module and incorporated into the assembly when you compile this module into an assembly with [**AddModules**](inputs.md#addmodules). You can also specify this option as a custom attribute () in the source code for any Microsoft intermediate language (MSIL) module. You can also pass your encryption information to the compiler with [**KeyFile**](#keyfile). Use [**DelaySign**](#delaysign) to add the public key to the assembly manifest but signing the assembly until it has been tested. For more information, see [Creating and Using Strong-Named Assemblies](../../../standard/assembly/create-use-strong-named.md) and [Delay Signing an Assembly](../../../standard/assembly/delay-sign.md).
+`container` is the name of the strong name key container. When the **KeyContainer** option is used, the compiler creates a sharable component. The compiler inserts a public key from the specified container into the assembly manifest and signs the final assembly with the private key. To generate a key file, type `sn -k file` at the command line. `sn -i` installs the key pair into a container. This option isn't supported when the compiler runs on CoreCLR. To sign an assembly when building on CoreCLR, use the [**KeyFile**](#keyfile) option. If you compile with [**TargetType**](output.md#targettype), the name of the key file is held in the module and incorporated into the assembly when you compile this module into an assembly with [**AddModules**](inputs.md#addmodules). You can also specify this option as a custom attribute () in the source code for any common intermediate language (CIL) module. You can also pass your encryption information to the compiler with [**KeyFile**](#keyfile). Use [**DelaySign**](#delaysign) to add the public key to the assembly manifest but signing the assembly until it has been tested. For more information, see [Creating and Using Strong-Named Assemblies](../../../standard/assembly/create-use-strong-named.md) and [Delay Signing an Assembly](../../../standard/assembly/delay-sign.md).
## HighEntropyVA
diff --git a/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md b/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md
index c835a6f63e6bc..d650dffa2bd94 100644
--- a/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md
+++ b/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md
@@ -2,7 +2,7 @@
title: "Static Classes and Static Class Members - C# Programming Guide"
description: Static classes can't be instantiated in C#. You access the members of a static class by using the class name itself.
ms.date: 03/15/2024
-helpviewer_keywords:
+helpviewer_keywords:
- "C# language, static members"
- "static members [C#]"
- "static classes [C#]"
@@ -12,79 +12,79 @@ ms.assetid: 235614b5-1371-4dbd-9abd-b406a8b0298b
---
# Static Classes and Static Class Members (C# Programming Guide)
-A [static](../../language-reference/keywords/static.md) class is basically the same as a non-static class, but there's one difference: a static class can't be instantiated. In other words, you can't use the [new](../../language-reference/operators/new-operator.md) operator to create a variable of the class type. Because there's no instance variable, you access the members of a static class by using the class name itself. For example, if you have a static class that is named `UtilityClass` that has a public static method named `MethodA`, you call the method as shown in the following example:
-
-```csharp
-UtilityClass.MethodA();
-```
-
- A static class can be used as a convenient container for sets of methods that just operate on input parameters and don't have to get or set any internal instance fields. For example, in the .NET Class Library, the static class contains methods that perform mathematical operations, without any requirement to store or retrieve data that is unique to a particular instance of the class. That is, you apply the members of the class by specifying the class name and the method name, as shown in the following example.
-
-```csharp
-double dub = -3.14;
-Console.WriteLine(Math.Abs(dub));
-Console.WriteLine(Math.Floor(dub));
-Console.WriteLine(Math.Round(Math.Abs(dub)));
-
-// Output:
-// 3.14
-// -4
-// 3
-```
-
- As is the case with all class types, the .NET runtime loads the type information for a static class when the program that references the class is loaded. The program can't specify exactly when the class is loaded. However, it's guaranteed to load and have its fields initialized and its static constructor called before the class is referenced for the first time in your program. A static constructor is only called one time, and a static class remains in memory for the lifetime of the application domain in which your program resides.
-
+A [static](../../language-reference/keywords/static.md) class is basically the same as a non-static class, but there's one difference: a static class can't be instantiated. In other words, you can't use the [new](../../language-reference/operators/new-operator.md) operator to create a variable of the class type. Because there's no instance variable, you access the members of a static class by using the class name itself. For example, if you have a static class that is named `UtilityClass` that has a public static method named `MethodA`, you call the method as shown in the following example:
+
+```csharp
+UtilityClass.MethodA();
+```
+
+ A static class can be used as a convenient container for sets of methods that just operate on input parameters and don't have to get or set any internal instance fields. For example, in the .NET Class Library, the static class contains methods that perform mathematical operations, without any requirement to store or retrieve data that is unique to a particular instance of the class. That is, you apply the members of the class by specifying the class name and the method name, as shown in the following example.
+
+```csharp
+double dub = -3.14;
+Console.WriteLine(Math.Abs(dub));
+Console.WriteLine(Math.Floor(dub));
+Console.WriteLine(Math.Round(Math.Abs(dub)));
+
+// Output:
+// 3.14
+// -4
+// 3
+```
+
+ As is the case with all class types, the .NET runtime loads the type information for a static class when the program that references the class is loaded. The program can't specify exactly when the class is loaded. However, it's guaranteed to load and have its fields initialized and its static constructor called before the class is referenced for the first time in your program. A static constructor is only called one time, and a static class remains in memory for the lifetime of the application domain in which your program resides.
+
> [!NOTE]
-> To create a non-static class that allows only one instance of itself to be created, see [Implementing Singleton in C#](/previous-versions/msp-n-p/ff650316(v=pandp.10)).
-
- The following list provides the main features of a static class:
-
-- Contains only static members.
-
-- Can't be instantiated.
-
-- Is sealed.
-
-- Can't contain [Instance Constructors](./instance-constructors.md).
-
- Creating a static class is therefore basically the same as creating a class that contains only static members and a private constructor. A private constructor prevents the class from being instantiated. The advantage of using a static class is that the compiler can check to make sure that no instance members are accidentally added. The compiler guarantees that instances of this class can't be created.
-
- Static classes are sealed and therefore can't be inherited. They can't inherit from any class or interface except . Static classes can't contain an instance constructor. However, they can contain a static constructor. Non-static classes should also define a static constructor if the class contains static members that require non-trivial initialization. For more information, see [Static Constructors](./static-constructors.md).
-
-## Example
-
- Here's an example of a static class that contains two methods that convert temperature from Celsius to Fahrenheit and from Fahrenheit to Celsius:
-
- [!code-csharp[TemperatureConverter#1](snippets/static-classes-and-static-class-members/Program.cs#1)]
-
-## Static Members
-
- A non-static class can contain static methods, fields, properties, or events. The static member is callable on a class even when no instance of the class exists. The static member is always accessed by the class name, not the instance name. Only one copy of a static member exists, regardless of how many instances of the class are created. Static methods and properties can't access non-static fields and events in their containing type, and they can't access an instance variable of any object unless it's explicitly passed in a method parameter.
-
- It's more typical to declare a non-static class with some static members, than to declare an entire class as static. Two common uses of static fields are to keep a count of the number of objects that are instantiated, or to store a value that must be shared among all instances.
-
- Static methods can be overloaded but not overridden, because they belong to the class, and not to any instance of the class.
-
- Although a field can't be declared as `static const`, a [const](../../language-reference/keywords/const.md) field is essentially static in its behavior. It belongs to the type, not to instances of the type. Therefore, `const` fields can be accessed by using the same `ClassName.MemberName` notation used for static fields. No object instance is required.
-
- C# doesn't support static local variables (that is, variables that are declared in method scope).
-
- You declare static class members by using the `static` keyword before the return type of the member, as shown in the following example:
-
- [!code-csharp[AutomobileExample#2](snippets/static-classes-and-static-class-members/Program.cs#2)]
-
- Static members are initialized before the static member is accessed for the first time and before the static constructor, if there's one, is called. To access a static class member, use the name of the class instead of a variable name to specify the location of the member, as shown in the following example:
-
- [!code-csharp[AccessingStaticMembers#3](snippets/static-classes-and-static-class-members/Program.cs#3)]
-
- If your class contains static fields, provide a static constructor that initializes them when the class is loaded.
-
- A call to a static method generates a call instruction in Microsoft intermediate language (MSIL), whereas a call to an instance method generates a `callvirt` instruction, which also checks for null object references. However, most of the time the performance difference between the two isn't significant.
-
-## C# Language Specification
+> To create a non-static class that allows only one instance of itself to be created, see [Implementing Singleton in C#](/previous-versions/msp-n-p/ff650316(v=pandp.10)).
+
+ The following list provides the main features of a static class:
+
+- Contains only static members.
+
+- Can't be instantiated.
+
+- Is sealed.
+
+- Can't contain [Instance Constructors](./instance-constructors.md).
+
+ Creating a static class is therefore basically the same as creating a class that contains only static members and a private constructor. A private constructor prevents the class from being instantiated. The advantage of using a static class is that the compiler can check to make sure that no instance members are accidentally added. The compiler guarantees that instances of this class can't be created.
+
+ Static classes are sealed and therefore can't be inherited. They can't inherit from any class or interface except . Static classes can't contain an instance constructor. However, they can contain a static constructor. Non-static classes should also define a static constructor if the class contains static members that require non-trivial initialization. For more information, see [Static Constructors](./static-constructors.md).
+
+## Example
+
+ Here's an example of a static class that contains two methods that convert temperature from Celsius to Fahrenheit and from Fahrenheit to Celsius:
+
+ [!code-csharp[TemperatureConverter#1](snippets/static-classes-and-static-class-members/Program.cs#1)]
+
+## Static Members
+
+ A non-static class can contain static methods, fields, properties, or events. The static member is callable on a class even when no instance of the class exists. The static member is always accessed by the class name, not the instance name. Only one copy of a static member exists, regardless of how many instances of the class are created. Static methods and properties can't access non-static fields and events in their containing type, and they can't access an instance variable of any object unless it's explicitly passed in a method parameter.
+
+ It's more typical to declare a non-static class with some static members, than to declare an entire class as static. Two common uses of static fields are to keep a count of the number of objects that are instantiated, or to store a value that must be shared among all instances.
+
+ Static methods can be overloaded but not overridden, because they belong to the class, and not to any instance of the class.
+
+ Although a field can't be declared as `static const`, a [const](../../language-reference/keywords/const.md) field is essentially static in its behavior. It belongs to the type, not to instances of the type. Therefore, `const` fields can be accessed by using the same `ClassName.MemberName` notation used for static fields. No object instance is required.
+
+ C# doesn't support static local variables (that is, variables that are declared in method scope).
+
+ You declare static class members by using the `static` keyword before the return type of the member, as shown in the following example:
+
+ [!code-csharp[AutomobileExample#2](snippets/static-classes-and-static-class-members/Program.cs#2)]
+
+ Static members are initialized before the static member is accessed for the first time and before the static constructor, if there's one, is called. To access a static class member, use the name of the class instead of a variable name to specify the location of the member, as shown in the following example:
+
+ [!code-csharp[AccessingStaticMembers#3](snippets/static-classes-and-static-class-members/Program.cs#3)]
+
+ If your class contains static fields, provide a static constructor that initializes them when the class is loaded.
+
+ A call to a static method generates a call instruction in common intermediate language (CIL), whereas a call to an instance method generates a `callvirt` instruction, which also checks for null object references. However, most of the time the performance difference between the two isn't significant.
+
+## C# Language Specification
For more information, see [Static classes](~/_csharpstandard/standard/classes.md#15224-static-classes), [Static and instance members](~/_csharpstandard/standard/classes.md#1538-static-and-instance-members) and [Static constructors](~/_csharpstandard/standard/classes.md#1512-static-constructors) in the [C# Language Specification](~/_csharpstandard/standard/README.md). The language specification is the definitive source for C# syntax and usage.
-
+
## See also
- [static](../../language-reference/keywords/static.md)
diff --git a/docs/csharp/programming-guide/concepts/iterators.md b/docs/csharp/programming-guide/concepts/iterators.md
index bacdd148a3a13..aedcdc13864ad 100644
--- a/docs/csharp/programming-guide/concepts/iterators.md
+++ b/docs/csharp/programming-guide/concepts/iterators.md
@@ -329,7 +329,7 @@ In C#, `yield` is not a reserved word and has special meaning only when it is us
Although you write an iterator as a method, the compiler translates it into a nested class that is, in effect, a state machine. This class keeps track of the position of the iterator as long the `foreach` loop in the client code continues.
-To see what the compiler does, you can use the Ildasm.exe tool to view the Microsoft intermediate language code that's generated for an iterator method.
+To see what the compiler does, you can use the Ildasm.exe tool to view the common intermediate language code that's generated for an iterator method.
When you create an iterator for a [class](../../language-reference/keywords/class.md) or [struct](../../language-reference/builtin-types/struct.md), you don't have to implement the whole interface. When the compiler detects the iterator, it automatically generates the `Current`, `MoveNext`, and `Dispose` methods of the or interface.
diff --git a/docs/csharp/programming-guide/generics/generics-in-the-run-time.md b/docs/csharp/programming-guide/generics/generics-in-the-run-time.md
index 645a0580e2695..a9e4403e77167 100644
--- a/docs/csharp/programming-guide/generics/generics-in-the-run-time.md
+++ b/docs/csharp/programming-guide/generics/generics-in-the-run-time.md
@@ -2,48 +2,48 @@
title: "Generics in the runtime - C# Programming Guide"
description: Learn about generic types in the runtime. See code examples and view additional available resources.
ms.date: 07/20/2015
-helpviewer_keywords:
+helpviewer_keywords:
- "generics [C#], at run time"
ms.assetid: 119df7e6-9ceb-49df-af36-24f8f8c0747f
---
# Generics in the runtime (C# programming guide)
-When a generic type or method is compiled into Microsoft intermediate language (MSIL), it contains metadata that identifies it as having type parameters. How the MSIL for a generic type is used differs based on whether the supplied type parameter is a value type or reference type.
-
- When a generic type is first constructed with a value type as a parameter, the runtime creates a specialized generic type with the supplied parameter or parameters substituted in the appropriate locations in the MSIL. Specialized generic types are created one time for each unique value type that is used as a parameter.
-
- For example, suppose your program code declared a stack that's constructed of integers:
-
+When a generic type or method is compiled into common intermediate language (CIL), it contains metadata that identifies it as having type parameters. How the CIL for a generic type is used differs based on whether the supplied type parameter is a value type or reference type.
+
+ When a generic type is first constructed with a value type as a parameter, the runtime creates a specialized generic type with the supplied parameter or parameters substituted in the appropriate locations in the CIL. Specialized generic types are created one time for each unique value type that is used as a parameter.
+
+ For example, suppose your program code declared a stack that's constructed of integers:
+
```csharp
Stack? stack;
-```
-
- At this point, the runtime generates a specialized version of the class that has the integer substituted appropriately for its parameter. Now, whenever your program code uses a stack of integers, the runtime reuses the generated specialized class. In the following example, two instances of a stack of integers are created, and they share a single instance of the `Stack` code:
-
- [!code-csharp[csProgGuideGenerics#43](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#43)]
-
- However, suppose that another class with a different value type such as a `long` or a user-defined structure as its parameter is created at another point in your code. As a result, the runtime generates another version of the generic type and substitutes a `long` in the appropriate locations in MSIL. Conversions are no longer necessary because each specialized generic class natively contains the value type.
-
- Generics work somewhat differently for reference types. The first time a generic type is constructed with any reference type, the runtime creates a specialized generic type with object references substituted for the parameters in the MSIL. Then, every time that a constructed type is instantiated with a reference type as its parameter, regardless of what type it is, the runtime reuses the previously created specialized version of the generic type. This is possible because all references are the same size.
-
- For example, suppose you had two reference types, a `Customer` class and an `Order` class, and also suppose that you created a stack of `Customer` types:
-
- [!code-csharp[csProgGuideGenerics#47](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#47)]
-
- [!code-csharp[csProgGuideGenerics#44](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#44)]
-
- At this point, the runtime generates a specialized version of the class that stores object references that will be filled in later instead of storing data. Suppose the next line of code creates a stack of another reference type, which is named `Order`:
-
- [!code-csharp[csProgGuideGenerics#45](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#45)]
-
- Unlike with value types, another specialized version of the class is not created for the `Order` type. Instead, an instance of the specialized version of the class is created and the `orders` variable is set to reference it. Suppose that you then encountered a line of code to create a stack of a `Customer` type:
-
- [!code-csharp[csProgGuideGenerics#46](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#46)]
-
- As with the previous use of the class created by using the `Order` type, another instance of the specialized class is created. The pointers that are contained therein are set to reference an area of memory the size of a `Customer` type. Because the number of reference types can vary wildly from program to program, the C# implementation of generics greatly reduces the amount of code by reducing to one the number of specialized classes created by the compiler for generic classes of reference types.
-
- Moreover, when a generic C# class is instantiated by using a value type or reference type parameter, reflection can query it at run time and both its actual type and its type parameter can be ascertained.
-
+```
+
+ At this point, the runtime generates a specialized version of the class that has the integer substituted appropriately for its parameter. Now, whenever your program code uses a stack of integers, the runtime reuses the generated specialized class. In the following example, two instances of a stack of integers are created, and they share a single instance of the `Stack` code:
+
+ [!code-csharp[csProgGuideGenerics#43](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#43)]
+
+ However, suppose that another class with a different value type such as a `long` or a user-defined structure as its parameter is created at another point in your code. As a result, the runtime generates another version of the generic type and substitutes a `long` in the appropriate locations in CIL. Conversions are no longer necessary because each specialized generic class natively contains the value type.
+
+ Generics work somewhat differently for reference types. The first time a generic type is constructed with any reference type, the runtime creates a specialized generic type with object references substituted for the parameters in the CIL. Then, every time that a constructed type is instantiated with a reference type as its parameter, regardless of what type it is, the runtime reuses the previously created specialized version of the generic type. This is possible because all references are the same size.
+
+ For example, suppose you had two reference types, a `Customer` class and an `Order` class, and also suppose that you created a stack of `Customer` types:
+
+ [!code-csharp[csProgGuideGenerics#47](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#47)]
+
+ [!code-csharp[csProgGuideGenerics#44](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#44)]
+
+ At this point, the runtime generates a specialized version of the class that stores object references that will be filled in later instead of storing data. Suppose the next line of code creates a stack of another reference type, which is named `Order`:
+
+ [!code-csharp[csProgGuideGenerics#45](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#45)]
+
+ Unlike with value types, another specialized version of the class is not created for the `Order` type. Instead, an instance of the specialized version of the class is created and the `orders` variable is set to reference it. Suppose that you then encountered a line of code to create a stack of a `Customer` type:
+
+ [!code-csharp[csProgGuideGenerics#46](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#46)]
+
+ As with the previous use of the class created by using the `Order` type, another instance of the specialized class is created. The pointers that are contained therein are set to reference an area of memory the size of a `Customer` type. Because the number of reference types can vary wildly from program to program, the C# implementation of generics greatly reduces the amount of code by reducing to one the number of specialized classes created by the compiler for generic classes of reference types.
+
+ Moreover, when a generic C# class is instantiated by using a value type or reference type parameter, reflection can query it at run time and both its actual type and its type parameter can be ascertained.
+
## See also
-
diff --git a/docs/framework/64-bit-apps.md b/docs/framework/64-bit-apps.md
index 8aeffa7258639..e56c6674bd1c5 100644
--- a/docs/framework/64-bit-apps.md
+++ b/docs/framework/64-bit-apps.md
@@ -2,7 +2,7 @@
title: "64-bit Applications"
description: Get information about configuring applications on a Windows 64-bit OS, as either a native 64-bit application or under WOW64 (Windows 32-bit on Windows 64-bit).
ms.date: "03/30/2017"
-helpviewer_keywords:
+helpviewer_keywords:
- "applications [C++], 64-bit"
- "64-bit applications [C++]"
- "64-bit programming [C++]"
@@ -10,51 +10,51 @@ ms.assetid: fd4026bc-2c3d-4b27-86dc-ec5e96018181
---
# 64-bit Applications
-When you compile an application, you can specify that it should run on a Windows 64-bit operating system either as a native application or under WOW64 (Windows 32-bit on Windows 64-bit). WOW64 is a compatibility environment that enables a 32-bit application to run on a 64-bit system. WOW64 is included in all 64-bit versions of the Windows operating system.
-
-## Running 32-bit vs. 64-bit Applications on Windows
+When you compile an application, you can specify that it should run on a Windows 64-bit operating system either as a native application or under WOW64 (Windows 32-bit on Windows 64-bit). WOW64 is a compatibility environment that enables a 32-bit application to run on a 64-bit system. WOW64 is included in all 64-bit versions of the Windows operating system.
+
+## Running 32-bit vs. 64-bit Applications on Windows
+
+ All applications that are built on the .NET Framework 1.0 or 1.1 are treated as 32-bit applications on a 64-bit operating system and are always executed under WOW64 and the 32-bit common language runtime (CLR). 32-bit applications that are built on the .NET Framework 4 or later versions also run under WOW64 on 64-bit systems.
+
+ Visual Studio installs the 32-bit version of the CLR on an x86 computer, and both the 32-bit version and the appropriate 64-bit version of the CLR on a 64-bit Windows computer. (Because Visual Studio is a 32-bit application, when it is installed on a 64-bit system, it runs under WOW64.)
- All applications that are built on the .NET Framework 1.0 or 1.1 are treated as 32-bit applications on a 64-bit operating system and are always executed under WOW64 and the 32-bit common language runtime (CLR). 32-bit applications that are built on the .NET Framework 4 or later versions also run under WOW64 on 64-bit systems.
-
- Visual Studio installs the 32-bit version of the CLR on an x86 computer, and both the 32-bit version and the appropriate 64-bit version of the CLR on a 64-bit Windows computer. (Because Visual Studio is a 32-bit application, when it is installed on a 64-bit system, it runs under WOW64.)
-
> [!NOTE]
-> Because of the design of x86 emulation and the WOW64 subsystem for the Itanium processor family, applications are restricted to execution on one processor. These factors reduce the performance and scalability of 32-bit .NET Framework applications that run on Itanium-based systems. We recommend that you use the .NET Framework 4, which includes native 64-bit support for Itanium-based systems, for increased performance and scalability.
-
- By default, when you run a 64-bit managed application on a 64-bit Windows operating system, you can create an object of no more than 2 gigabytes (GB). However, in .NET Framework 4.5, you can increase this limit. For more information, see the [\ element](./configure-apps/file-schema/runtime/gcallowverylargeobjects-element.md).
-
- Many assemblies run identically on both the 32-bit CLR and the 64-bit CLR. However, some programs may behave differently, depending on the CLR, if they contain one or more of the following:
-
-- Structures that contain members that change size depending on the platform (for example, any pointer type).
-
-- Pointer arithmetic that includes constant sizes.
-
-- Incorrect platform invoke or COM declarations that use `Int32` for handles instead of `IntPtr`.
-
-- Code that casts `IntPtr` to `Int32`.
-
- For more information about how to port a 32-bit application to run on the 64-bit CLR, see [Migrating 32-bit Managed Code to 64-bit](/previous-versions/dotnet/articles/ms973190(v=msdn.10)).
-
-## General 64-Bit Programming Information
-
- For general information about 64-bit programming, see the following documents:
-
-- In the Windows SDK documentation, see [Programming Guide for 64-bit Windows](/windows/win32/winprog64/programming-guide-for-64-bit-windows).
-
-- For information about Visual Studio support for creating 64-bit applications, see [Visual Studio IDE 64-Bit Support](/visualstudio/ide/visual-studio-ide-64-bit-support).
-
-## Compiler Support for Creating 64-Bit Applications
-
- By default, when you use the .NET Framework to build an application on either a 32-bit or a 64-bit computer, the application will run on a 64-bit computer as a native application (that is, not under WOW64). The following table lists documents that explain how to use Visual Studio compilers to create 64-bit applications that will run as native, under WOW64, or both.
-
-|Compiler|Compiler option|
-|--------------|---------------------|
-|Visual Basic|[-platform (Visual Basic)](../visual-basic/reference/command-line-compiler/platform.md)|
-|Visual C#|[-platform (C# Compiler Options)](../csharp/language-reference/compiler-options/output.md#platformtarget)|
-|Visual C++|You can create platform-agnostic, Microsoft intermediate language (MSIL) applications by using **/clr:safe**. For more information, see [-clr (Common Language Runtime Compilation)](/cpp/build/reference/clr-common-language-runtime-compilation).
Visual C++ includes a separate compiler for each 64-bit operating system. For more information about how to use Visual C++ to create native applications that run on a 64-bit Windows operating system, see [64-bit Programming](/cpp/build/configuring-programs-for-64-bit-visual-cpp).|
-
-## Determining the Status of an .exe File or .dll File
-
- To determine whether an .exe file or .dll file is meant to run only on a specific platform or under WOW64, use [CorFlags.exe (CorFlags Conversion Tool)](./tools/corflags-exe-corflags-conversion-tool.md) with no options. You can also use CorFlags.exe to change the platform status of an .exe file or .dll file. The CLR header of a Visual Studio assembly has the major runtime version number set to 2 and the minor runtime version number set to 5. Applications that have the minor runtime version set to 0 are treated as legacy applications and are always executed under WOW64.
-
+> Because of the design of x86 emulation and the WOW64 subsystem for the Itanium processor family, applications are restricted to execution on one processor. These factors reduce the performance and scalability of 32-bit .NET Framework applications that run on Itanium-based systems. We recommend that you use the .NET Framework 4, which includes native 64-bit support for Itanium-based systems, for increased performance and scalability.
+
+ By default, when you run a 64-bit managed application on a 64-bit Windows operating system, you can create an object of no more than 2 gigabytes (GB). However, in .NET Framework 4.5, you can increase this limit. For more information, see the [\ element](./configure-apps/file-schema/runtime/gcallowverylargeobjects-element.md).
+
+ Many assemblies run identically on both the 32-bit CLR and the 64-bit CLR. However, some programs may behave differently, depending on the CLR, if they contain one or more of the following:
+
+- Structures that contain members that change size depending on the platform (for example, any pointer type).
+
+- Pointer arithmetic that includes constant sizes.
+
+- Incorrect platform invoke or COM declarations that use `Int32` for handles instead of `IntPtr`.
+
+- Code that casts `IntPtr` to `Int32`.
+
+ For more information about how to port a 32-bit application to run on the 64-bit CLR, see [Migrating 32-bit Managed Code to 64-bit](/previous-versions/dotnet/articles/ms973190(v=msdn.10)).
+
+## General 64-Bit Programming Information
+
+ For general information about 64-bit programming, see the following documents:
+
+- In the Windows SDK documentation, see [Programming Guide for 64-bit Windows](/windows/win32/winprog64/programming-guide-for-64-bit-windows).
+
+- For information about Visual Studio support for creating 64-bit applications, see [Visual Studio IDE 64-Bit Support](/visualstudio/ide/visual-studio-ide-64-bit-support).
+
+## Compiler Support for Creating 64-Bit Applications
+
+ By default, when you use the .NET Framework to build an application on either a 32-bit or a 64-bit computer, the application will run on a 64-bit computer as a native application (that is, not under WOW64). The following table lists documents that explain how to use Visual Studio compilers to create 64-bit applications that will run as native, under WOW64, or both.
+
+|Compiler|Compiler option|
+|--------------|---------------------|
+|Visual Basic|[-platform (Visual Basic)](../visual-basic/reference/command-line-compiler/platform.md)|
+|Visual C#|[-platform (C# Compiler Options)](../csharp/language-reference/compiler-options/output.md#platformtarget)|
+|Visual C++|You can create platform-agnostic, common intermediate language (CIL) applications by using **/clr:safe**. For more information, see [-clr (Common Language Runtime Compilation)](/cpp/build/reference/clr-common-language-runtime-compilation).
Visual C++ includes a separate compiler for each 64-bit operating system. For more information about how to use Visual C++ to create native applications that run on a 64-bit Windows operating system, see [64-bit Programming](/cpp/build/configuring-programs-for-64-bit-visual-cpp).|
+
+## Determining the Status of an .exe File or .dll File
+
+ To determine whether an .exe file or .dll file is meant to run only on a specific platform or under WOW64, use [CorFlags.exe (CorFlags Conversion Tool)](./tools/corflags-exe-corflags-conversion-tool.md) with no options. You can also use CorFlags.exe to change the platform status of an .exe file or .dll file. The CLR header of a Visual Studio assembly has the major runtime version number set to 2 and the minor runtime version number set to 5. Applications that have the minor runtime version set to 0 are treated as legacy applications and are always executed under WOW64.
+
To programmatically query an .exe or .dll to see whether it is meant to run only on a specific platform or under WOW64, use the method.
diff --git a/docs/framework/app-domains/build-multifile-assembly.md b/docs/framework/app-domains/build-multifile-assembly.md
index 38281dbd59713..d0168cb754e87 100644
--- a/docs/framework/app-domains/build-multifile-assembly.md
+++ b/docs/framework/app-domains/build-multifile-assembly.md
@@ -215,7 +215,7 @@ This article explains how to create a multifile assembly and provides code that
al Client.netmodule Stringer.netmodule /main:MainClientApp.Main /out:myAssembly.exe /target:exe
```
- You can use the [MSIL Disassembler (Ildasm.exe)](../tools/ildasm-exe-il-disassembler.md) to examine the contents of an assembly, or determine whether a file is an assembly or a module.
+ You can use [IL Disassembler (Ildasm.exe)](../tools/ildasm-exe-il-disassembler.md) to examine the contents of an assembly, or determine whether a file is an assembly or a module.
## See also
diff --git a/docs/framework/app-domains/working-with-assemblies-and-the-gac.md b/docs/framework/app-domains/working-with-assemblies-and-the-gac.md
index 75742240fcca1..d9b12e27bd732 100644
--- a/docs/framework/app-domains/working-with-assemblies-and-the-gac.md
+++ b/docs/framework/app-domains/working-with-assemblies-and-the-gac.md
@@ -2,7 +2,7 @@
title: "Working with Assemblies and the Global Assembly Cache"
description: Work with assemblies and the global assembly cache (GAC) in .NET. Review the reasons why you might want to install an assembly in the GAC.
ms.date: "03/30/2017"
-helpviewer_keywords:
+helpviewer_keywords:
- "assemblies [.NET Framework], global assembly cache"
- "global assembly cache, benefits"
- "ACLs [.NET Framework]"
@@ -12,60 +12,60 @@ ms.assetid: 8a18e5c2-d41d-49ef-abcb-7c27e2469433
---
# Working with Assemblies and the Global Assembly Cache
-If you intend to share an assembly among several applications, you can install it into the global assembly cache. Each computer where the common language runtime is installed has this machine-wide code cache. The global assembly cache stores assemblies specifically designated to be shared by several applications on the computer. An assembly must have a strong name to be installed in the global assembly cache.
-
+If you intend to share an assembly among several applications, you can install it into the global assembly cache. Each computer where the common language runtime is installed has this machine-wide code cache. The global assembly cache stores assemblies specifically designated to be shared by several applications on the computer. An assembly must have a strong name to be installed in the global assembly cache.
+
> [!NOTE]
-> Assemblies placed in the global assembly cache must have the same assembly name and file name (not including the file name extension). For example, an assembly with the assembly name of myAssembly must have a file name of either myAssembly.exe or myAssembly.dll.
-
-You should share assemblies by installing them into the global assembly cache only when necessary. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code.
-
-There are several reasons why you might want to install an assembly into the global assembly cache:
-
-- Shared location.
-
- Assemblies that should be used by applications can be put in the global assembly cache. For example, if all applications should use an assembly located in the global assembly cache, a version policy statement can be added to the Machine.config file that redirects references to the assembly.
-
-- File security.
-
- Administrators often protect the systemroot directory using an Access Control List (ACL) to control write and execute access. Because the global assembly cache is installed in the systemroot directory, it inherits that directory's ACL. It is recommended that only users with Administrator privileges be allowed to delete files from the global assembly cache.
-
-- Side-by-side versioning.
-
- Multiple copies of assemblies with the same name but different version information can be maintained in the global assembly cache.
-
-- Additional search location.
-
- The common language runtime checks the global assembly cache for an assembly that matches the assembly request before probing or using the codebase information in a configuration file.
-
- Note that there are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application into the global assembly cache, you can no longer replicate or install the application by using XCOPY to copy the application directory. In this case, you must also move the assembly into the global assembly cache.
-
-## In This Section
-
-[How to: Install an Assembly into the Global Assembly Cache](install-assembly-into-gac.md)
-Describes the ways to install an assembly into the global assembly cache.
-
-[How to: View the Contents of the Global Assembly Cache](how-to-view-the-contents-of-the-gac.md)
-Explains how to use the [Gacutil.exe (Global Assembly Cache Tool)](../tools/gacutil-exe-gac-tool.md) to view the contents of the global assembly cache.
-
-[How to: Remove an Assembly from the Global Assembly Cache](how-to-remove-an-assembly-from-the-gac.md)
-Explains how to use the [Gacutil.exe (Global Assembly Cache Tool)](../tools/gacutil-exe-gac-tool.md) to remove an assembly from the global assembly cache.
-
-[Using Serviced Components with the Global Assembly Cache](use-serviced-components-with-the-gac.md)
-Explains why serviced components (managed COM+ components) should be placed in the global assembly cache.
-
-## Related Sections
-
-[Creating Assemblies](../../standard/assembly/create.md)
-Provides an overview of creating assemblies.
-
-[Global Assembly Cache](gac.md)
-Describes the global assembly cache.
-
-[How to: View Assembly Contents](../../standard/assembly/view-contents.md)
-Explains how to use the [Ildasm.exe (IL Disassembler)](../tools/ildasm-exe-il-disassembler.md) to view Microsoft intermediate language (MSIL) information in an assembly.
-
-[How the Runtime Locates Assemblies](../deployment/how-the-runtime-locates-assemblies.md)
-Describes how the common language runtime locates and loads the assemblies that make up your application.
-
-[Programming with Assemblies](../../standard/assembly/index.md)
+> Assemblies placed in the global assembly cache must have the same assembly name and file name (not including the file name extension). For example, an assembly with the assembly name of myAssembly must have a file name of either myAssembly.exe or myAssembly.dll.
+
+You should share assemblies by installing them into the global assembly cache only when necessary. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code.
+
+There are several reasons why you might want to install an assembly into the global assembly cache:
+
+- Shared location.
+
+ Assemblies that should be used by applications can be put in the global assembly cache. For example, if all applications should use an assembly located in the global assembly cache, a version policy statement can be added to the Machine.config file that redirects references to the assembly.
+
+- File security.
+
+ Administrators often protect the systemroot directory using an Access Control List (ACL) to control write and execute access. Because the global assembly cache is installed in the systemroot directory, it inherits that directory's ACL. It is recommended that only users with Administrator privileges be allowed to delete files from the global assembly cache.
+
+- Side-by-side versioning.
+
+ Multiple copies of assemblies with the same name but different version information can be maintained in the global assembly cache.
+
+- Additional search location.
+
+ The common language runtime checks the global assembly cache for an assembly that matches the assembly request before probing or using the codebase information in a configuration file.
+
+ Note that there are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application into the global assembly cache, you can no longer replicate or install the application by using XCOPY to copy the application directory. In this case, you must also move the assembly into the global assembly cache.
+
+## In This Section
+
+[How to: Install an Assembly into the Global Assembly Cache](install-assembly-into-gac.md)
+Describes the ways to install an assembly into the global assembly cache.
+
+[How to: View the Contents of the Global Assembly Cache](how-to-view-the-contents-of-the-gac.md)
+Explains how to use the [Gacutil.exe (Global Assembly Cache Tool)](../tools/gacutil-exe-gac-tool.md) to view the contents of the global assembly cache.
+
+[How to: Remove an Assembly from the Global Assembly Cache](how-to-remove-an-assembly-from-the-gac.md)
+Explains how to use the [Gacutil.exe (Global Assembly Cache Tool)](../tools/gacutil-exe-gac-tool.md) to remove an assembly from the global assembly cache.
+
+[Using Serviced Components with the Global Assembly Cache](use-serviced-components-with-the-gac.md)
+Explains why serviced components (managed COM+ components) should be placed in the global assembly cache.
+
+## Related Sections
+
+[Creating Assemblies](../../standard/assembly/create.md)
+Provides an overview of creating assemblies.
+
+[Global Assembly Cache](gac.md)
+Describes the global assembly cache.
+
+[How to: View Assembly Contents](../../standard/assembly/view-contents.md)
+Explains how to use the [Ildasm.exe (IL Disassembler)](../tools/ildasm-exe-il-disassembler.md) to view common intermediate language (CIL) information in an assembly.
+
+[How the Runtime Locates Assemblies](../deployment/how-the-runtime-locates-assemblies.md)
+Describes how the common language runtime locates and loads the assemblies that make up your application.
+
+[Programming with Assemblies](../../standard/assembly/index.md)
Describes assemblies, the building blocks of managed applications.
diff --git a/docs/framework/data/adonet/protecting-connection-information.md b/docs/framework/data/adonet/protecting-connection-information.md
index 857fe79b25c1d..20370268dc431 100644
--- a/docs/framework/data/adonet/protecting-connection-information.md
+++ b/docs/framework/data/adonet/protecting-connection-information.md
@@ -6,40 +6,40 @@ ms.assetid: 1471f580-bcd4-4046-bdaf-d2541ecda2f4
---
# Protecting Connection Information
-Protecting access to your data source is one of the most important goals when securing an application. A connection string presents a potential vulnerability if it is not secured. Storing connection information in plain text or persisting it in memory risks compromising your entire system. Connection strings embedded in your source code can be read using the [Ildasm.exe (IL Disassembler)](../../tools/ildasm-exe-il-disassembler.md) to view Microsoft intermediate language (MSIL) in a compiled assembly.
-
- Security vulnerabilities involving connection strings can arise based on the type of authentication used, how connection strings are persisted in memory and on disk, and the techniques used to construct them at run time.
-
-## Use Windows Authentication
-
- To help limit access to your data source, you must secure connection information such as user ID, password, and data source name. In order to avoid exposing user information, we recommend using Windows authentication (sometimes referred to as *integrated security*) wherever possible. Windows authentication is specified in a connection string by using the `Integrated Security` or `Trusted_Connection` keywords, eliminating the need to use a user ID and password. When using Windows authentication, users are authenticated by Windows, and access to server and database resources is determined by granting permissions to Windows users and groups.
-
- For situations where it is not possible to use Windows authentication, you must use extra care because user credentials are exposed in the connection string. In an ASP.NET application, you can configure a Windows account as a fixed identity that is used to connect to databases and other network resources. You enable impersonation in the identity element in the **web.config** file and specify a user name and password.
-
-```xml
+Protecting access to your data source is one of the most important goals when securing an application. A connection string presents a potential vulnerability if it is not secured. Storing connection information in plain text or persisting it in memory risks compromising your entire system. Connection strings embedded in your source code can be read using the [Ildasm.exe (IL Disassembler)](../../tools/ildasm-exe-il-disassembler.md) to view common intermediate language (CIL) in a compiled assembly.
+
+ Security vulnerabilities involving connection strings can arise based on the type of authentication used, how connection strings are persisted in memory and on disk, and the techniques used to construct them at run time.
+
+## Use Windows Authentication
+
+ To help limit access to your data source, you must secure connection information such as user ID, password, and data source name. In order to avoid exposing user information, we recommend using Windows authentication (sometimes referred to as *integrated security*) wherever possible. Windows authentication is specified in a connection string by using the `Integrated Security` or `Trusted_Connection` keywords, eliminating the need to use a user ID and password. When using Windows authentication, users are authenticated by Windows, and access to server and database resources is determined by granting permissions to Windows users and groups.
+
+ For situations where it is not possible to use Windows authentication, you must use extra care because user credentials are exposed in the connection string. In an ASP.NET application, you can configure a Windows account as a fixed identity that is used to connect to databases and other network resources. You enable impersonation in the identity element in the **web.config** file and specify a user name and password.
+
+```xml
-```
-
- The fixed identity account should be a low-privilege account that has been granted only necessary permissions in the database. In addition, you should encrypt the configuration file so that the user name and password are not exposed in clear text.
-
-## Do Not Use Universal Data Link (UDL) files
-
- Avoid storing connection strings for an in a Universal Data Link (UDL) file. UDLs are stored in clear text and cannot be encrypted. A UDL file is an external file-based resource to your application, and it cannot be secured or encrypted using the .NET Framework.
-
-## Avoid Injection Attacks with Connection String Builders
-
- A connection string injection attack can occur when dynamic string concatenation is used to build connection strings based on user input. If the user input is not validated and malicious text or characters not escaped, an attacker can potentially access sensitive data or other resources on the server. To address this problem, ADO.NET 2.0 introduced new connection string builder classes to validate connection string syntax and ensure that additional parameters are not introduced. For more information, see [Connection String Builders](connection-string-builders.md).
-
-## Use Persist Security Info=False
-
- The default value for `Persist Security Info` is false; we recommend using this default in all connection strings. Setting `Persist Security Info` to `true` or `yes` allows security-sensitive information, including the user ID and password, to be obtained from a connection after it has been opened. When `Persist Security Info` is set to `false` or `no`, security information is discarded after it is used to open the connection, ensuring that an untrusted source does not have access to security-sensitive information.
-
-## Encrypt Configuration Files
-
- You can also store connection strings in configuration files, which eliminates the need to embed them in your application's code. Configuration files are standard XML files for which the .NET Framework has defined a common set of elements. Connection strings in configuration files are typically stored inside the **\** element in the **app.config** for a Windows application, or the **web.config** file for an ASP.NET application. For more information on the basics of storing, retrieving and encrypting connection strings from configuration files, see [Connection Strings and Configuration Files](connection-strings-and-configuration-files.md).
-
+ password="*****" />
+```
+
+ The fixed identity account should be a low-privilege account that has been granted only necessary permissions in the database. In addition, you should encrypt the configuration file so that the user name and password are not exposed in clear text.
+
+## Do Not Use Universal Data Link (UDL) files
+
+ Avoid storing connection strings for an in a Universal Data Link (UDL) file. UDLs are stored in clear text and cannot be encrypted. A UDL file is an external file-based resource to your application, and it cannot be secured or encrypted using the .NET Framework.
+
+## Avoid Injection Attacks with Connection String Builders
+
+ A connection string injection attack can occur when dynamic string concatenation is used to build connection strings based on user input. If the user input is not validated and malicious text or characters not escaped, an attacker can potentially access sensitive data or other resources on the server. To address this problem, ADO.NET 2.0 introduced new connection string builder classes to validate connection string syntax and ensure that additional parameters are not introduced. For more information, see [Connection String Builders](connection-string-builders.md).
+
+## Use Persist Security Info=False
+
+ The default value for `Persist Security Info` is false; we recommend using this default in all connection strings. Setting `Persist Security Info` to `true` or `yes` allows security-sensitive information, including the user ID and password, to be obtained from a connection after it has been opened. When `Persist Security Info` is set to `false` or `no`, security information is discarded after it is used to open the connection, ensuring that an untrusted source does not have access to security-sensitive information.
+
+## Encrypt Configuration Files
+
+ You can also store connection strings in configuration files, which eliminates the need to embed them in your application's code. Configuration files are standard XML files for which the .NET Framework has defined a common set of elements. Connection strings in configuration files are typically stored inside the **\** element in the **app.config** for a Windows application, or the **web.config** file for an ASP.NET application. For more information on the basics of storing, retrieving and encrypting connection strings from configuration files, see [Connection Strings and Configuration Files](connection-strings-and-configuration-files.md).
+
## See also
- [Securing ADO.NET Applications](securing-ado-net-applications.md)
diff --git a/docs/framework/debug-trace-profile/code-contracts.md b/docs/framework/debug-trace-profile/code-contracts.md
index d75aaa749b383..48ef0d8a7176b 100644
--- a/docs/framework/debug-trace-profile/code-contracts.md
+++ b/docs/framework/debug-trace-profile/code-contracts.md
@@ -29,7 +29,7 @@ The benefits of code contracts include the following:
- Reference documentation: The documentation generator augments existing XML documentation files with contract information. There are also style sheets that can be used with [Sandcastle](https://github.com/EWSoftware/SHFB) so that the generated documentation pages have contract sections.
-All .NET Framework languages can immediately take advantage of contracts; you do not have to write a special parser or compiler. A Visual Studio add-in lets you specify the level of code contract analysis to be performed. The analyzers can confirm that the contracts are well-formed (type checking and name resolution) and can produce a compiled form of the contracts in Microsoft intermediate language (MSIL) format. Authoring contracts in Visual Studio lets you take advantage of the standard IntelliSense provided by the tool.
+All .NET Framework languages can immediately take advantage of contracts; you do not have to write a special parser or compiler. A Visual Studio add-in lets you specify the level of code contract analysis to be performed. The analyzers can confirm that the contracts are well-formed (type checking and name resolution) and can produce a compiled form of the contracts in common intermediate language (CIL) format. Authoring contracts in Visual Studio lets you take advantage of the standard IntelliSense provided by the tool.
Most methods in the contract class are conditionally compiled; that is, the compiler emits calls to these methods only when you define a special symbol, CONTRACTS_FULL, by using the `#define` directive. CONTRACTS_FULL lets you write contracts in your code without using `#ifdef` directives; you can produce different builds, some with contracts, and some without.
diff --git a/docs/framework/debug-trace-profile/index.md b/docs/framework/debug-trace-profile/index.md
index ffb77c4711a62..85d24f3c1c6a1 100644
--- a/docs/framework/debug-trace-profile/index.md
+++ b/docs/framework/debug-trace-profile/index.md
@@ -2,7 +2,7 @@
title: "Debugging, Tracing, and Profiling"
description: Read about debugging, tracing, and profiling in .NET. See articles covering just-in-time (JIT) debugging, tracing and instrumenting applications, and more.
ms.date: "03/30/2017"
-helpviewer_keywords:
+helpviewer_keywords:
- "debugging [.NET Framework]"
- ".NET Framework application configuration, debugging"
- "debugging [.NET Framework], .NET Framework application debugging"
@@ -17,24 +17,24 @@ ms.assetid: 4a04863e-2475-46f4-bc3f-3c11510c2a4b
---
# Debugging, tracing, and profiling
-To debug a .NET Framework application, the compiler and runtime environment must be configured to enable a debugger to attach to the application and to produce both symbols and line maps, if possible, for the application and its corresponding Microsoft intermediate language (MSIL). After a managed application has been debugged, it can be profiled to boost performance. Profiling evaluates and describes the lines of source code that generate the most frequently executed code, and how much time it takes to execute them.
-
- .NET Framework applications are easily debugged by using Visual Studio, which handles many of the configuration details. If Visual Studio is not installed, you can examine and improve the performance of .NET Framework applications by using the debugging classes in the .NET Framework namespace. This namespace includes the , , and classes for tracing execution flow, and the , , and classes for profiling code.
-
-## In this section
+To debug a .NET Framework application, the compiler and runtime environment must be configured to enable a debugger to attach to the application and to produce both symbols and line maps, if possible, for the application and its corresponding common intermediate language (CIL). After a managed application has been debugged, it can be profiled to boost performance. Profiling evaluates and describes the lines of source code that generate the most frequently executed code, and how much time it takes to execute them.
+
+ .NET Framework applications are easily debugged by using Visual Studio, which handles many of the configuration details. If Visual Studio is not installed, you can examine and improve the performance of .NET Framework applications by using the debugging classes in the .NET Framework namespace. This namespace includes the , , and classes for tracing execution flow, and the , , and classes for profiling code.
+
+## In this section
[Enabling JIT-Attach Debugging](enabling-jit-attach-debugging.md)\
-Shows how to configure the registry to JIT-attach a debug engine to a .NET Framework application.
-
+Shows how to configure the registry to JIT-attach a debug engine to a .NET Framework application.
+
[Making an Image Easier to Debug](making-an-image-easier-to-debug.md)\
-Shows how to turn JIT tracking on and optimization off to make an assembly easier to debug.
-
+Shows how to turn JIT tracking on and optimization off to make an assembly easier to debug.
+
[Tracing and Instrumenting Applications](tracing-and-instrumenting-applications.md)\
-Describes how to monitor the execution of your application while it is running, and how to instrument it to display how well it is performing or whether something has gone wrong.
-
+Describes how to monitor the execution of your application while it is running, and how to instrument it to display how well it is performing or whether something has gone wrong.
+
[Diagnosing Errors with Managed Debugging Assistants](diagnosing-errors-with-managed-debugging-assistants.md)\
-Describes managed debugging assistants (MDAs), which are debugging aids that work in conjunction with the common language runtime (CLR) to provide information on runtime state.
-
+Describes managed debugging assistants (MDAs), which are debugging aids that work in conjunction with the common language runtime (CLR) to provide information on runtime state.
+
[Enhancing Debugging with the Debugger Display Attributes](enhancing-debugging-with-the-debugger-display-attributes.md)\
Describes how the developer of a type can specify what that type will look like when it is displayed in a debugger.
@@ -42,12 +42,12 @@ Describes how the developer of a type can specify what that type will look like
Learn how to gather information about application performance.
[Performance Counters](performance-counters.md)\
-Describes the counters that you can use to track the performance of an application.
-
-## Related sections
-
-[Debug ASP.NET or ASP.NET Core apps in Visual Studio](/visualstudio/debugger/how-to-enable-debugging-for-aspnet-applications)
-Provides prerequisites and instructions for how to debug an ASP.NET application during development or after deployment.
-
-[Development Guide](../development-guide.md)
+Describes the counters that you can use to track the performance of an application.
+
+## Related sections
+
+[Debug ASP.NET or ASP.NET Core apps in Visual Studio](/visualstudio/debugger/how-to-enable-debugging-for-aspnet-applications)
+Provides prerequisites and instructions for how to debug an ASP.NET application during development or after deployment.
+
+[Development Guide](../development-guide.md)
Provides a guide to all key technology areas and tasks for application development, including creating, configuring, debugging, securing, and deploying your application, and information about dynamic programming, interoperability, extensibility, memory management, and threading.
diff --git a/docs/framework/debug-trace-profile/making-an-image-easier-to-debug.md b/docs/framework/debug-trace-profile/making-an-image-easier-to-debug.md
index e2a5c3efa3b45..76480957db375 100644
--- a/docs/framework/debug-trace-profile/making-an-image-easier-to-debug.md
+++ b/docs/framework/debug-trace-profile/making-an-image-easier-to-debug.md
@@ -13,15 +13,15 @@ ms.assetid: 7d90ea7a-150f-4f97-98a7-f9c26541b9a3
When compiling unmanaged code, you can configure an executable image for debugging by setting IDE switches or command-line options. For example, you can use the /**Zi** command-line option in Visual C++ to ask it to emit debug symbol files (file extension .pdb). Similarly, the /**Od** command-line option tells the compiler to disable optimization. The resulting code runs more slowly, but it's easier to debug, should this be necessary.
-When compiling .NET Framework managed code, compilers such as Visual C++, Visual Basic, and C# compile their source program into Microsoft intermediate language (MSIL). MSIL is then JIT-compiled, just before execution, into native machine code. As with unmanaged code, you can configure an executable image for debugging by setting IDE switches or command-line options. You can also configure the JIT compilation for debugging in much the same way.
+When compiling .NET Framework managed code, compilers such as Visual C++, Visual Basic, and C# compile their source program into common intermediate language (CIL). CIL is then JIT-compiled, just before execution, into native machine code. As with unmanaged code, you can configure an executable image for debugging by setting IDE switches or command-line options. You can also configure the JIT compilation for debugging in much the same way.
This JIT configuration has two aspects:
-- You can request the JIT compiler to generate tracking information. This makes it possible for the debugger to match up a chain of MSIL with its machine code counterpart, and to track where local variables and function arguments are stored. In .NET Framework version 2.0 and later, the JIT compiler always generates tracking information, so there's no need to request it.
+- You can request the JIT compiler to generate tracking information. This makes it possible for the debugger to match up a chain of CIL with its machine code counterpart, and to track where local variables and function arguments are stored. In .NET Framework version 2.0 and later, the JIT compiler always generates tracking information, so there's no need to request it.
- You can request the JIT compiler to not optimize the resulting machine code.
-Normally, the compiler that generates the MSIL sets these JIT compiler options appropriately, based upon the IDE switches or command-line options you specify, for example, /**Od**.
+Normally, the compiler that generates the CIL sets these JIT compiler options appropriately, based upon the IDE switches or command-line options you specify, for example, /**Od**.
In some cases, you might want to change the behavior of the JIT compiler so that the machine code it generates is easier to debug. For example, you might want to generate JIT tracking information for a retail build or control optimization. You can do so with an initialization (.ini) file.
diff --git a/docs/framework/debug-trace-profile/performance-counters.md b/docs/framework/debug-trace-profile/performance-counters.md
index 3b456a7b83fb8..4ab462a627fab 100644
--- a/docs/framework/debug-trace-profile/performance-counters.md
+++ b/docs/framework/debug-trace-profile/performance-counters.md
@@ -43,12 +43,12 @@ The *.NET CLR JIT* category includes counters that provide information about cod
|Performance counter|Description|
|-------------------------|-----------------|
-|**# of IL Bytes JITted**|Displays the total number of Microsoft intermediate language (MSIL) bytes compiled by the just-in-time (JIT) compiler since the application started. This counter is equivalent to the **Total # of IL Bytes Jitted** counter.|
+|**# of IL Bytes JITted**|Displays the total number of common intermediate language (CIL) bytes compiled by the just-in-time (JIT) compiler since the application started. This counter is equivalent to the **Total # of IL Bytes Jitted** counter.|
|**# of Methods JITted**|Displays the total number of methods JIT-compiled since the application started. This counter does not include pre-JIT-compiled methods.|
|**% Time in Jit**|Displays the percentage of elapsed time spent in JIT compilation since the last JIT compilation phase. This counter is updated at the end of every JIT compilation phase. A JIT compilation phase occurs when a method and its dependencies are compiled.|
-|**IL Bytes Jitted / sec**|Displays the number of MSIL bytes that are JIT-compiled per second. This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.|
-|**Standard Jit Failures**|Displays the peak number of methods the JIT compiler has failed to compile since the application started. This failure can occur if the MSIL cannot be verified or if there is an internal error in the JIT compiler.|
-|**Total # of IL Bytes Jitted**|Displays the total MSIL bytes JIT-compiled since the application started. This counter is equivalent to the **# of IL Bytes Jitted** counter.|
+|**IL Bytes Jitted / sec**|Displays the number of CIL bytes that are JIT-compiled per second. This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.|
+|**Standard Jit Failures**|Displays the peak number of methods the JIT compiler has failed to compile since the application started. This failure can occur if the CIL cannot be verified or if there is an internal error in the JIT compiler.|
+|**Total # of IL Bytes Jitted**|Displays the total CIL bytes JIT-compiled since the application started. This counter is equivalent to the **# of IL Bytes Jitted** counter.|
## Loading performance counters
diff --git a/docs/framework/interop/default-marshalling-for-arrays.md b/docs/framework/interop/default-marshalling-for-arrays.md
index 0676ca8919027..0fc689d444efc 100644
--- a/docs/framework/interop/default-marshalling-for-arrays.md
+++ b/docs/framework/interop/default-marshalling-for-arrays.md
@@ -2,368 +2,368 @@
title: "Default Marshalling for Arrays"
description: Understand default marshalling for arrays. Review managed arrays, unmanaged arrays, passing array parameters to .NET code, and passing arrays to COM.
ms.date: "03/30/2017"
-dev_langs:
+dev_langs:
- "csharp"
- "vb"
-helpviewer_keywords:
+helpviewer_keywords:
- "interop marshalling, arrays"
- "arrays, interop marshalling"
ms.assetid: 8a3cca8b-dd94-4e3d-ad9a-9ee7590654bc
---
# Default Marshalling for Arrays
-In an application consisting entirely of managed code, the common language runtime passes array types as In/Out parameters. In contrast, the interop marshaller passes an array as In parameters by default.
-
- With [pinning optimization](copying-and-pinning.md), a blittable array can appear to operate as an In/Out parameter when interacting with objects in the same apartment. However, if you later export the code to a type library used to generate the cross-machine proxy, and that library is used to marshal your calls across apartments, the calls can revert to true In parameter behavior.
-
- Arrays are complex by nature, and the distinctions between managed and unmanaged arrays warrant more information than other non-blittable types.
-
-## Managed Arrays
-
- Managed array types can vary; however, the class is the base class of all array types. The **System.Array** class has properties for determining the rank, length, and lower and upper bounds of an array, as well as methods for accessing, sorting, searching, copying, and creating arrays.
-
- These array types are dynamic and do not have a corresponding static type defined in the base class library. It is convenient to think of each combination of element type and rank as a distinct type of array. Therefore, a one-dimensional array of integers is of a different type than a one-dimensional array of double types. Similarly a two-dimensional array of integers is different from a one-dimensional array of integers. The bounds of the array are not considered when comparing types.
-
- As the following table shows, any instance of a managed array must be of a specific element type, rank, and lower bound.
-
-|Managed array type|Element type|Rank|Lower bound|Signature notation|
-|------------------------|------------------|----------|-----------------|------------------------|
-|**ELEMENT_TYPE_ARRAY**|Specified by type.|Specified by rank.|Optionally specified by bounds.|*type* **[** *n*,*m* **]**|
-|**ELEMENT_TYPE_CLASS**|Unknown|Unknown|Unknown|**System.Array**|
-|**ELEMENT_TYPE_SZARRAY**|Specified by type.|1|0|*type* **[** *n* **]**|
-
-## Unmanaged Arrays
-
- Unmanaged arrays are either COM-style safe arrays or C-style arrays with fixed or variable length. Safe arrays are self-describing arrays that carry the type, rank, and bounds of the associated array data. C-style arrays are one-dimensional typed arrays with a fixed lower bound of 0. The marshalling service has limited support for both types of arrays.
-
-## Passing Array Parameters to .NET Code
-
- Both C-style arrays and safe arrays can be passed to .NET code from unmanaged code as either a safe array or a C-style array. The following table shows the unmanaged type value and the imported type.
-
-|Unmanaged type|Imported type|
-|--------------------|-------------------|
-|**SafeArray(** *Type* **)**|**ELEMENT_TYPE_SZARRAY** **\<** *ConvertedType* **>**
Rank = 1, lower bound = 0. Size is known only if provided in the managed signature. Safe arrays that are not rank = 1 or lower bound = 0 cannot be marshalled as **SZARRAY**.|
-|*Type* **[]**|**ELEMENT_TYPE_SZARRAY** **\<** *ConvertedType* **>**
Rank = 1, lower bound = 0. Size is known only if provided in the managed signature.|
-
-### Safe Arrays
-
- When a safe array is imported from a type library to a .NET assembly, the array is converted to a one-dimensional array of a known type (such as **int**). The same type conversion rules that apply to parameters also apply to array elements. For example, a safe array of **BSTR** types becomes a managed array of strings and a safe array of variants becomes a managed array of objects. The **SAFEARRAY** element type is captured from the type library and saved in the **SAFEARRAY** value of the enumeration.
-
- Because the rank and bounds of the safe array cannot be determined from the type library, the rank is assumed to equal 1 and the lower bound is assumed to equal 0. The rank and bounds must be defined in the managed signature produced by the [Type Library Importer (Tlbimp.exe)](../tools/tlbimp-exe-type-library-importer.md). If the rank passed to the method at run time differs, a is thrown. If the type of the array passed at run time differs, a is thrown. The following example shows safe arrays in managed and unmanaged code.
-
- **Unmanaged signature**
-
+In an application consisting entirely of managed code, the common language runtime passes array types as In/Out parameters. In contrast, the interop marshaller passes an array as In parameters by default.
+
+ With [pinning optimization](copying-and-pinning.md), a blittable array can appear to operate as an In/Out parameter when interacting with objects in the same apartment. However, if you later export the code to a type library used to generate the cross-machine proxy, and that library is used to marshal your calls across apartments, the calls can revert to true In parameter behavior.
+
+ Arrays are complex by nature, and the distinctions between managed and unmanaged arrays warrant more information than other non-blittable types.
+
+## Managed Arrays
+
+ Managed array types can vary; however, the class is the base class of all array types. The **System.Array** class has properties for determining the rank, length, and lower and upper bounds of an array, as well as methods for accessing, sorting, searching, copying, and creating arrays.
+
+ These array types are dynamic and do not have a corresponding static type defined in the base class library. It is convenient to think of each combination of element type and rank as a distinct type of array. Therefore, a one-dimensional array of integers is of a different type than a one-dimensional array of double types. Similarly a two-dimensional array of integers is different from a one-dimensional array of integers. The bounds of the array are not considered when comparing types.
+
+ As the following table shows, any instance of a managed array must be of a specific element type, rank, and lower bound.
+
+|Managed array type|Element type|Rank|Lower bound|Signature notation|
+|------------------------|------------------|----------|-----------------|------------------------|
+|**ELEMENT_TYPE_ARRAY**|Specified by type.|Specified by rank.|Optionally specified by bounds.|*type* **[** *n*,*m* **]**|
+|**ELEMENT_TYPE_CLASS**|Unknown|Unknown|Unknown|**System.Array**|
+|**ELEMENT_TYPE_SZARRAY**|Specified by type.|1|0|*type* **[** *n* **]**|
+
+## Unmanaged Arrays
+
+ Unmanaged arrays are either COM-style safe arrays or C-style arrays with fixed or variable length. Safe arrays are self-describing arrays that carry the type, rank, and bounds of the associated array data. C-style arrays are one-dimensional typed arrays with a fixed lower bound of 0. The marshalling service has limited support for both types of arrays.
+
+## Passing Array Parameters to .NET Code
+
+ Both C-style arrays and safe arrays can be passed to .NET code from unmanaged code as either a safe array or a C-style array. The following table shows the unmanaged type value and the imported type.
+
+|Unmanaged type|Imported type|
+|--------------------|-------------------|
+|**SafeArray(** *Type* **)**|**ELEMENT_TYPE_SZARRAY** **\<** *ConvertedType* **>**
Rank = 1, lower bound = 0. Size is known only if provided in the managed signature. Safe arrays that are not rank = 1 or lower bound = 0 cannot be marshalled as **SZARRAY**.|
+|*Type* **[]**|**ELEMENT_TYPE_SZARRAY** **\<** *ConvertedType* **>**
Rank = 1, lower bound = 0. Size is known only if provided in the managed signature.|
+
+### Safe Arrays
+
+ When a safe array is imported from a type library to a .NET assembly, the array is converted to a one-dimensional array of a known type (such as **int**). The same type conversion rules that apply to parameters also apply to array elements. For example, a safe array of **BSTR** types becomes a managed array of strings and a safe array of variants becomes a managed array of objects. The **SAFEARRAY** element type is captured from the type library and saved in the **SAFEARRAY** value of the enumeration.
+
+ Because the rank and bounds of the safe array cannot be determined from the type library, the rank is assumed to equal 1 and the lower bound is assumed to equal 0. The rank and bounds must be defined in the managed signature produced by the [Type Library Importer (Tlbimp.exe)](../tools/tlbimp-exe-type-library-importer.md). If the rank passed to the method at run time differs, a is thrown. If the type of the array passed at run time differs, a is thrown. The following example shows safe arrays in managed and unmanaged code.
+
+ **Unmanaged signature**
+
```cpp
-HRESULT New1([in] SAFEARRAY( int ) ar);
-HRESULT New2([in] SAFEARRAY( DATE ) ar);
-HRESULT New3([in, out] SAFEARRAY( BSTR ) *ar);
-```
-
- **Managed signature**
-
-```vb
-Sub New1( _
- ar() As Integer)
+HRESULT New1([in] SAFEARRAY( int ) ar);
+HRESULT New2([in] SAFEARRAY( DATE ) ar);
+HRESULT New3([in, out] SAFEARRAY( BSTR ) *ar);
+```
+
+ **Managed signature**
+
+```vb
+Sub New1( _
+ ar() As Integer)
Sub New2( _
- ar() As DateTime)
+ ar() As DateTime)
Sub New3(ByRef