From 80ea70227def05f9a90be134dc077e7029e6bfd3 Mon Sep 17 00:00:00 2001 From: Iliar Turdushev Date: Sat, 28 Sep 2024 15:51:12 +0200 Subject: [PATCH 01/45] Adds description of compatibility issue with App Insights (#42728) --- docs/core/resilience/http-resilience.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/core/resilience/http-resilience.md b/docs/core/resilience/http-resilience.md index 834d2e84a414f..8ec42c1d20172 100644 --- a/docs/core/resilience/http-resilience.md +++ b/docs/core/resilience/http-resilience.md @@ -264,3 +264,23 @@ There's a build time check that verifies if you're using `Grpc.Net.ClientFactory true ``` + +### Compatibility with .NET Application Insights + +If you're using .NET Application Insights, then enabling resilience functionality in your application could cause all Application Insights telemetry to be missing. The issue occurs when resilience functionality is registered before Application Insights services. Consider the following sample causing the issue: + +```csharp +// At first, we register resilience functionality. +services.AddHttpClient().AddStandardResilienceHandler(); + +// And then we register Application Insights. As a result, Application Insights doesn't work. +services.AddApplicationInsightsTelemetry(); +``` + +The issue is caused by the following [bug](https://github.com/microsoft/ApplicationInsights-dotnet/issues/2879) in Application Insights and can be fixed by registering Application Insights services before resilience functionality, as shown below: + +```csharp +// We register Application Insights first, and now it will be working correctly. +services.AddApplicationInsightsTelemetry(); +services.AddHttpClient().AddStandardResilienceHandler(); +``` From b4f1ce2dbd783d64d0f74e2ab9ce1d600b9feee6 Mon Sep 17 00:00:00 2001 From: Adeel Mujahid <3840695+am11@users.noreply.github.com> Date: Sun, 29 Sep 2024 01:18:41 +0300 Subject: [PATCH 02/45] Fix markdown syntax for pandoc --- docs/core/tools/dotnet-new-sdk-templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tools/dotnet-new-sdk-templates.md b/docs/core/tools/dotnet-new-sdk-templates.md index 87960767461a8..5e25b67bb3a90 100644 --- a/docs/core/tools/dotnet-new-sdk-templates.md +++ b/docs/core/tools/dotnet-new-sdk-templates.md @@ -13,7 +13,7 @@ When you install the [.NET SDK](https://dotnet.microsoft.com/download), you rece dotnet new list ``` -[!INCLUDE [](../../../includes/templates.md)] +[!INCLUDE [templates](../../../includes/templates.md)] ## Template options From 6d0e946d04aafe66901048438fbc72b693074d88 Mon Sep 17 00:00:00 2001 From: Adeel Mujahid <3840695+am11@users.noreply.github.com> Date: Sun, 29 Sep 2024 01:19:59 +0300 Subject: [PATCH 03/45] . --- docs/core/tools/dotnet-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tools/dotnet-new.md b/docs/core/tools/dotnet-new.md index 24346db9fa63d..205dd8a4ab574 100644 --- a/docs/core/tools/dotnet-new.md +++ b/docs/core/tools/dotnet-new.md @@ -56,7 +56,7 @@ To activate tab completion for the .NET SDK, see [Enable tab completion](enable- Starting with .NET SDK 5.0.300, the [`search` command](dotnet-new-search.md) should be used to search for templates in NuGet.org. -[!INCLUDE [](../../../includes/templates.md)] +[!INCLUDE [templates](../../../includes/templates.md)] ## Options From 033b398066c1d8008b84dd5542dd9226660287d7 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 30 Sep 2024 06:42:18 -0700 Subject: [PATCH 04/45] Update package index with latest published versions (#42733) --- docs/azure/includes/dotnet-all.md | 15 ++++++++------- docs/azure/includes/dotnet-new.md | 5 +++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index c84e76e449078..df2b93c3b14c3 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -14,7 +14,7 @@ | Communication Call Automation | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.2.0/sdk/communication/Azure.Communication.CallAutomation/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.3.0-beta.1/sdk/communication/Azure.Communication.CallAutomation/) | | Communication Chat | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Communication.Chat/1.3.1) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.3.1/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)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Email/1.1.0-beta.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/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.1.0-beta.1/sdk/communication/Azure.Communication.Email/) | +| Communication Email | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Email/1.0.1)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Communication.Email/1.1.0-beta.2) | [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/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.1.0-beta.2/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/) | | 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/) | @@ -51,7 +51,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](https://www.nuget.org/packages/Azure.Health.Insights.RadiologyInsights/1.0.0) | [docs](/dotnet/api/overview/azure/Health.Insights.RadiologyInsights-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.RadiologyInsights_1.0.0/sdk/healthinsights/Azure.Health.Insights.RadiologyInsights/) | -| Identity | NuGet [1.12.0](https://www.nuget.org/packages/Azure.Identity/1.12.0)
NuGet [1.13.0-beta.2](https://www.nuget.org/packages/Azure.Identity/1.13.0-beta.2) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.12.0/sdk/identity/Azure.Identity/)
GitHub [1.13.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.13.0-beta.2/sdk/identity/Azure.Identity/) | +| Identity | NuGet [1.12.1](https://www.nuget.org/packages/Azure.Identity/1.12.1)
NuGet [1.13.0-beta.2](https://www.nuget.org/packages/Azure.Identity/1.13.0-beta.2) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.12.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.12.1/sdk/identity/Azure.Identity/)
GitHub [1.13.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.13.0-beta.2/sdk/identity/Azure.Identity/) | | Identity Broker | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Identity.Broker/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Identity.Broker/1.2.0-beta.1) | [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/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.2.0-beta.1/sdk/identity/Azure.Identity.Broker/) | | Image Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Vision.ImageAnalysis_1.0.0-beta.3/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/) | @@ -178,6 +178,7 @@ | Resource Management - Communication | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Communication/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Communication-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Communication_1.2.0/sdk/communication/Azure.ResourceManager.Communication/) | | Resource Management - Compute | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.6.0/sdk/compute/Azure.ResourceManager.Compute/) | | Resource Management - Computefleet | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeFleet/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeFleet-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeFleet_1.0.0-beta.1/sdk/computefleet/Azure.ResourceManager.ComputeFleet/) | +| Resource Management - Computeschedule | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.0.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) | | Resource Management - Confidential Ledger | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.0.1)
NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ConfidentialLedger-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.0.1/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/)
GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.1.0-beta.4/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) | | Resource Management - Confluent | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Confluent/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Confluent-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Confluent_1.2.0/sdk/confluent/Azure.ResourceManager.Confluent/) | | Resource Management - Connected VMware vSphere | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedVMwarevSphere/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedVMwarevSphere-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedVMwarevSphere_1.1.0/sdk/connectedvmwarevsphere/Azure.ResourceManager.ConnectedVMwarevSphere/) | @@ -534,12 +535,12 @@ | Microsoft.Azure.WebJobs.Extensions.Rpc | NuGet [3.0.41](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Rpc/3.0.41) | | | | Microsoft.Azure.WebJobs.Rpc.Core | NuGet [3.0.41](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Rpc.Core/3.0.41) | | | | Service Bus - Message ID plugin | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.MessageIdPlugin/2.0.0) | | | -| SignalR | NuGet [1.27.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.27.0)
NuGet [1.25.0-preview1-11147](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.0-preview1-11147) | | GitHub [1.27.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) | -| SignalR - ASP.NET | NuGet [1.27.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.AspNet/1.27.0) | | GitHub [1.27.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.AspNet) | +| SignalR | NuGet [1.28.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.28.0)
NuGet [1.25.0-preview1-11147](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.0-preview1-11147) | | GitHub [1.28.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) | +| SignalR - ASP.NET | NuGet [1.28.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.AspNet/1.28.0) | | GitHub [1.28.0](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.27.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Protocols/1.27.0) | | GitHub [1.27.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Protocols) | +| SignalR - Protocols | NuGet [1.28.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Protocols/1.28.0) | | GitHub [1.28.0](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.27.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Management/1.27.0) | | GitHub [1.27.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Management) | +| SignalR Management | NuGet [1.28.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Management/1.28.0) | | GitHub [1.28.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Management) | | SQL Database Elastic Scale Client | NuGet [2.4.2](https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.ElasticScale.Client/2.4.2) | | GitHub [2.4.2](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) | | | @@ -552,7 +553,7 @@ | Hyak Common | NuGet [1.2.2](https://www.nuget.org/packages/Hyak.Common/1.2.2) | | | | Hyak Common - Tracing Etw | NuGet [1.0.2](https://www.nuget.org/packages/Hyak.Common.Tracing.Etw/1.0.2) | | | | Hyak Common - Tracing Log4Net | NuGet [1.0.2](https://www.nuget.org/packages/Hyak.Common.Tracing.Log4Net/1.0.2) | | | -| Microsoft.Azure.SignalR.Emulator | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.3.0)
NuGet [1.0.0-preview1-10809](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.0.0-preview1-10809) | | | +| Microsoft.Azure.SignalR.Emulator | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.4.0)
NuGet [1.0.0-preview1-10809](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.0.0-preview1-10809) | | | | MSBuild | NuGet [0.29.0](https://www.nuget.org/packages/Microsoft.TypeSpec.MSBuild/0.29.0) | | | | ProviderHub Controller | NuGet [0.15.0](https://www.nuget.org/packages/Microsoft.TypeSpec.ProviderHub.Controller/0.15.0) | | | | ProviderHub Templates | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.TypeSpec.ProviderHub.Templates/1.7.0) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 754a5296aed8e..dcf27584b98cd 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -14,7 +14,7 @@ | Communication Call Automation | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.2.0/sdk/communication/Azure.Communication.CallAutomation/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.3.0-beta.1/sdk/communication/Azure.Communication.CallAutomation/) | | Communication Chat | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Communication.Chat/1.3.1) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.3.1/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)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Email/1.1.0-beta.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/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.1.0-beta.1/sdk/communication/Azure.Communication.Email/) | +| Communication Email | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Email/1.0.1)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Communication.Email/1.1.0-beta.2) | [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/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.1.0-beta.2/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/) | | 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/) | @@ -52,7 +52,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](https://www.nuget.org/packages/Azure.Health.Insights.RadiologyInsights/1.0.0) | [docs](/dotnet/api/overview/azure/Health.Insights.RadiologyInsights-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.RadiologyInsights_1.0.0/sdk/healthinsights/Azure.Health.Insights.RadiologyInsights/) | -| Identity | NuGet [1.12.0](https://www.nuget.org/packages/Azure.Identity/1.12.0)
NuGet [1.13.0-beta.2](https://www.nuget.org/packages/Azure.Identity/1.13.0-beta.2) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.12.0/sdk/identity/Azure.Identity/)
GitHub [1.13.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.13.0-beta.2/sdk/identity/Azure.Identity/) | +| Identity | NuGet [1.12.1](https://www.nuget.org/packages/Azure.Identity/1.12.1)
NuGet [1.13.0-beta.2](https://www.nuget.org/packages/Azure.Identity/1.13.0-beta.2) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.12.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.12.1/sdk/identity/Azure.Identity/)
GitHub [1.13.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.13.0-beta.2/sdk/identity/Azure.Identity/) | | Identity Broker | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Identity.Broker/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Identity.Broker/1.2.0-beta.1) | [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/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.2.0-beta.1/sdk/identity/Azure.Identity.Broker/) | | Image Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Vision.ImageAnalysis_1.0.0-beta.3/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/) | @@ -183,6 +183,7 @@ | Resource Management - Communication | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Communication/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Communication-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Communication_1.2.0/sdk/communication/Azure.ResourceManager.Communication/) | | Resource Management - Compute | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.6.0/sdk/compute/Azure.ResourceManager.Compute/) | | Resource Management - Computefleet | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeFleet/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeFleet-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeFleet_1.0.0-beta.1/sdk/computefleet/Azure.ResourceManager.ComputeFleet/) | +| Resource Management - Computeschedule | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.0.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) | | Resource Management - Confidential Ledger | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.0.1)
NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ConfidentialLedger-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.0.1/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/)
GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.1.0-beta.4/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) | | Resource Management - Confluent | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Confluent/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Confluent-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Confluent_1.2.0/sdk/confluent/Azure.ResourceManager.Confluent/) | | Resource Management - Connected VMware vSphere | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedVMwarevSphere/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedVMwarevSphere-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedVMwarevSphere_1.1.0/sdk/connectedvmwarevsphere/Azure.ResourceManager.ConnectedVMwarevSphere/) | From 824bde04438b305cae0c550582673a7a640e9216 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 30 Sep 2024 09:16:11 -0700 Subject: [PATCH 05/45] Update package index with latest published versions (#42759) --- docs/azure/includes/dotnet-all.md | 4 ++-- docs/azure/includes/dotnet-new.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index df2b93c3b14c3..8a405075915b0 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -64,7 +64,7 @@ | Maps Geolocation | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Maps.Geolocation/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Maps.Geolocation-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Geolocation_1.0.0-beta.2/sdk/maps/Azure.Maps.Geolocation/) | | Maps Render | NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.Maps.Rendering/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Maps.Rendering-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Rendering_2.0.0-beta.1/sdk/maps/Azure.Maps.Rendering/) | | Maps Route | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Maps.Routing/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Maps.Routing-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Routing_1.0.0-beta.3/sdk/maps/Azure.Maps.Routing/) | -| Maps Search | NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Maps.Search/2.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Maps.Search-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Search_2.0.0-beta.3/sdk/maps/Azure.Maps.Search/) | +| Maps Search | NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Maps.Search/2.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Maps.Search-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Search_2.0.0-beta.4/sdk/maps/Azure.Maps.Search/) | | Media Analytics Edge | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Media.Analytics.Edge/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Media.Analytics.Edge-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.Analytics.Edge_1.0.0-beta.1/sdk/mediaservices/Azure.Media.Analytics.Edge) | | Metrics Advisor | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.MetricsAdvisor/1.1.0) | [docs](/dotnet/api/overview/azure/AI.MetricsAdvisor-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.MetricsAdvisor_1.1.0/sdk/metricsadvisor/Azure.AI.MetricsAdvisor/) | | Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents_1.0.1/sdk/entra/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/) | @@ -147,7 +147,7 @@ | WebJobs Extensions - Web PubSub | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.8.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | | Functions extension for Blob Storage | NuGet [5.3.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | GitHub [5.3.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs_5.3.2/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/) | | Functions extension for Storage Queues | NuGet [5.3.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | GitHub [5.3.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Queues_5.3.2/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/) | -| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.3/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) | +| unknown | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.4/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) | | Resource Management - Advisor | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.Advisor/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.Advisor-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.Advisor_1.0.0-beta.4/sdk/advisor/Azure.ResourceManager.Advisor/) | | Resource Management - Agrifood | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AgFoodPlatform/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AgFoodPlatform-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.AgFoodPlatform_1.0.0-beta.4/sdk/agrifood/Azure.ResourceManager.AgFoodPlatform/) | | Resource Management - Alerts Management | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.AlertsManagement/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AlertsManagement-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AlertsManagement_1.1.0/sdk/alertsmanagement/Azure.ResourceManager.AlertsManagement/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index dcf27584b98cd..527280733c889 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -65,7 +65,7 @@ | Maps Geolocation | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Maps.Geolocation/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Maps.Geolocation-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Geolocation_1.0.0-beta.2/sdk/maps/Azure.Maps.Geolocation/) | | Maps Render | NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.Maps.Rendering/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Maps.Rendering-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Rendering_2.0.0-beta.1/sdk/maps/Azure.Maps.Rendering/) | | Maps Route | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Maps.Routing/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Maps.Routing-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Routing_1.0.0-beta.3/sdk/maps/Azure.Maps.Routing/) | -| Maps Search | NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Maps.Search/2.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Maps.Search-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Search_2.0.0-beta.3/sdk/maps/Azure.Maps.Search/) | +| Maps Search | NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Maps.Search/2.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Maps.Search-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.Search_2.0.0-beta.4/sdk/maps/Azure.Maps.Search/) | | Media Analytics Edge | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Media.Analytics.Edge/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Media.Analytics.Edge-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.Analytics.Edge_1.0.0-beta.1/sdk/mediaservices/Azure.Media.Analytics.Edge) | | Metrics Advisor | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.MetricsAdvisor/1.1.0) | [docs](/dotnet/api/overview/azure/AI.MetricsAdvisor-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.MetricsAdvisor_1.1.0/sdk/metricsadvisor/Azure.AI.MetricsAdvisor/) | | Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents_1.0.1/sdk/entra/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/) | @@ -151,7 +151,7 @@ | WebJobs Extensions - Web PubSub | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.8.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | | Functions extension for Blob Storage | NuGet [5.3.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | GitHub [5.3.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs_5.3.2/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/) | | Functions extension for Storage Queues | NuGet [5.3.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | GitHub [5.3.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Queues_5.3.2/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/) | -| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.3/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) | +| unknown | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.4/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) | | Resource Management - Advisor | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.Advisor/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.Advisor-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.Advisor_1.0.0-beta.4/sdk/advisor/Azure.ResourceManager.Advisor/) | | Resource Management - Agrifood | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AgFoodPlatform/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AgFoodPlatform-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.AgFoodPlatform_1.0.0-beta.4/sdk/agrifood/Azure.ResourceManager.AgFoodPlatform/) | | Resource Management - Alerts Management | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.AlertsManagement/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.AlertsManagement-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AlertsManagement_1.1.0/sdk/alertsmanagement/Azure.ResourceManager.AlertsManagement/) | From 0f2ea1510c3c49c15bb6ecf86c79265006d3c648 Mon Sep 17 00:00:00 2001 From: alexwolfmsft <93200798+alexwolfmsft@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:50:12 -0400 Subject: [PATCH 06/45] Updates to show exception handling and more protocol method examples (#42723) Adding new exception handling documentation --------- Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com> --- .../azure/sdk/protocol-convenience-methods.md | 16 ++++++++++++- .../Convenience/AzureCoreConvenience.csproj | 2 +- .../AzureCoreConvenience.csproj | 15 ++++++++++++ .../AzureCore/ExceptionHandling/Program.cs | 24 +++++++++++++++++++ .../Protocol/AzureCoreProtocol.csproj | 2 +- .../SCM/ExceptionHandling/Program.cs | 21 ++++++++++++++++ .../ExceptionHandling/SCMConvenience.csproj | 14 +++++++++++ .../SCM/Protocol/Program.cs | 11 +++++---- .../SCM/Protocol/SCMProtocol.csproj | 2 +- 9 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/AzureCoreConvenience.csproj create mode 100644 docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/Program.cs create mode 100644 docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/Program.cs create mode 100644 docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/SCMConvenience.csproj diff --git a/docs/azure/sdk/protocol-convenience-methods.md b/docs/azure/sdk/protocol-convenience-methods.md index 3124bb39a6867..86b5500c5f9b7 100644 --- a/docs/azure/sdk/protocol-convenience-methods.md +++ b/docs/azure/sdk/protocol-convenience-methods.md @@ -95,7 +95,7 @@ The preceding code demonstrates the following `System.ClientModel` convenience m The following code uses a `ChatClient` to call the `CompleteChat` protocol method: -:::code source="snippets/protocol-convenience-methods/SCM/Protocol/Program.cs" highlight="26-31"::: +:::code source="snippets/protocol-convenience-methods/SCM/Protocol/Program.cs" highlight="31-34"::: The preceding code demonstrates the following `System.ClientModel` protocol method patterns: @@ -129,6 +129,20 @@ PipelineResponse response = result.GetRawResponse(); --- +## Handle exceptions + +When a service call fails, the service client throws an exception that exposes the HTTP status code and the details of the service response, if available. A `System.ClientModel`-dependent library throws a , while an `Azure.Core`-dependent library throws a . + +# [System.ClientModel exceptions](#tab/system-clientmodel) + +:::code source="snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/Program.cs" highlight="21-24"::: + +# [Azure.Core exceptions](#tab/azure-core) + +:::code source="snippets/protocol-convenience-methods/SCM/ExceptionHandling/Program.cs" highlight="17-20"::: + +--- + ## Protocol and convenience method usage guidance Although the Azure SDK for .NET client libraries provide the option to use either protocol or convenience methods, prioritize using convenience methods in most scenarios. Convenience methods are designed to improve the development experience and provide flexibility for authoring requests and handling responses. However, both method types can be used in your app as needed. Consider the following criteria when deciding which type of method to use. diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Convenience/AzureCoreConvenience.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Convenience/AzureCoreConvenience.csproj index 4afa8435d8c1d..502b14e17d179 100644 --- a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Convenience/AzureCoreConvenience.csproj +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Convenience/AzureCoreConvenience.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net8.0 enable enable diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/AzureCoreConvenience.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/AzureCoreConvenience.csproj new file mode 100644 index 0000000000000..502b14e17d179 --- /dev/null +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/AzureCoreConvenience.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + + diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/Program.cs b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/Program.cs new file mode 100644 index 0000000000000..00c7fb2e3596a --- /dev/null +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/ExceptionHandling/Program.cs @@ -0,0 +1,24 @@ +using Azure.AI.ContentSafety; +using Azure.Identity; +using Azure; + +// Create the client +ContentSafetyClient client = new( + new Uri("https://contentsafetyai.cognitiveservices.azure.com/"), + new DefaultAzureCredential()); + +try +{ + // Call the convenience method + AnalyzeTextResult result = client.AnalyzeText("What is Microsoft Azure?"); + + // Display the results + foreach (TextCategoriesAnalysis item in result.CategoriesAnalysis) + { + Console.WriteLine($"{item.Category}: {item.Severity}"); + } +} +catch (RequestFailedException ex) +{ + Console.WriteLine($"Error: {ex.Message}"); +} diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Protocol/AzureCoreProtocol.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Protocol/AzureCoreProtocol.csproj index 4afa8435d8c1d..502b14e17d179 100644 --- a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Protocol/AzureCoreProtocol.csproj +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCore/Protocol/AzureCoreProtocol.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net8.0 enable enable diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/Program.cs b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/Program.cs new file mode 100644 index 0000000000000..ddbcd377e9481 --- /dev/null +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/Program.cs @@ -0,0 +1,21 @@ +using OpenAI.Chat; +using System.ClientModel; + +// Create the client +ChatClient client = new( + model: "gpt-4o-mini", + credential: Environment.GetEnvironmentVariable("OPENAI_API_KEY")!); + +try +{ + // Call the convenience method + ChatCompletion completion = client.CompleteChat("What is Microsoft Azure?"); + + // Display the results + Console.WriteLine($"[{completion.Role}]: {completion}"); +} +catch (ClientResultException ex) +{ + Console.WriteLine($"Error: {ex.Message}"); +} + diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/SCMConvenience.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/SCMConvenience.csproj new file mode 100644 index 0000000000000..8fd07dc7dde67 --- /dev/null +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/ExceptionHandling/SCMConvenience.csproj @@ -0,0 +1,14 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/Program.cs b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/Program.cs index bd5a0e3bf0d2c..63f2cca9c91e0 100644 --- a/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/Program.cs +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/Program.cs @@ -22,13 +22,16 @@ """u8.ToArray()); using BinaryContent content = BinaryContent.Create(input); +var requestOptions = new RequestOptions(); + +requestOptions.AddHeader("CustomHeader", "CustomHeaderValue"); +requestOptions.ErrorOptions = ClientErrorBehaviors.NoThrow; + // Call the protocol method ClientResult result = client.CompleteChat( content, - new RequestOptions - { - ErrorOptions = ClientErrorBehaviors.NoThrow, - }); + requestOptions +); PipelineResponse response = result.GetRawResponse(); diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/SCMProtocol.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/SCMProtocol.csproj index a3b95e116d1c7..8fd07dc7dde67 100644 --- a/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/SCMProtocol.csproj +++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCM/Protocol/SCMProtocol.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net8.0 enable enable From f26ecb3404fbe264eab79c57f494eeec2e1a4d2c Mon Sep 17 00:00:00 2001 From: boldswiftsmartfiberhank Date: Mon, 30 Sep 2024 21:26:52 +0200 Subject: [PATCH 07/45] Publish .NET app some rewording (#42760) * Publish .NET app some rewording * Apply suggestions from code review --------- Co-authored-by: David Pine --- docs/core/docker/build-container.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/core/docker/build-container.md b/docs/core/docker/build-container.md index 0054d3c33ef9b..ef1132cb4f1ef 100644 --- a/docs/core/docker/build-container.md +++ b/docs/core/docker/build-container.md @@ -126,7 +126,7 @@ If you pass a number on the command line to the app, it will only count up to th ## Publish .NET app -Before adding the .NET app to the Docker image, first it must be published. It's best to have the container run the published version of the app. To publish the app, run the following command: +In order for the app to be suitable for an image creation it has to be built. The `dotnet publish` command is most apt for this, as it builds and publishes the app. For an in-depth reference, see [dotnet build](/dotnet/core/tools/dotnet-build) and [dotnet publish](/dotnet/core/tools/dotnet-publish) commands documentation. ```dotnetcli dotnet publish -c Release @@ -141,6 +141,9 @@ This command compiles your app to the *publish* folder. The path to the *publish This command compiles your app to the *publish* folder. The path to the *publish* folder from the working folder should be `.\App\bin\Release\net7.0\publish\`. +> [!NOTE] +> Application publishing is needed for image creation but this is rather orchestrated by the _Dockerfile_. See [Create the Dockerfile](#create-the-dockerfile). + :::zone-end #### [Windows](#tab/windows) From 7e3c17a6614efb6fe6d7644b32a60c3e3d1ee781 Mon Sep 17 00:00:00 2001 From: ichensky Date: Mon, 30 Sep 2024 17:13:15 -0700 Subject: [PATCH 08/45] Add note about configuration PATH environment variable in Linux OS to make installed tools globally be executable in shell from any directory. (#42746) --- docs/core/tools/dotnet-tool-install.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/core/tools/dotnet-tool-install.md b/docs/core/tools/dotnet-tool-install.md index d2d1e20407b17..c9a4075ed7c7d 100644 --- a/docs/core/tools/dotnet-tool-install.md +++ b/docs/core/tools/dotnet-tool-install.md @@ -63,6 +63,12 @@ Global tools are installed in the following directories by default when you spec Executables are generated in these folders for each globally installed tool, although the actual tool binaries are nested deep into the sibling `.store` directory. +> [!NOTE] +> On Linux after installing a command-line tool with `dotnet tool`, the tool can be executed only from the `$HOME/.dotnet/tools` path. +> To make the tool executable from any directory, update the `PATH` environment variable. +> To make the updated `PATH` environment variable permanent in your shell, update your shell settings. +> For `Bash`, this is the `$HOME/.bashrc` file. + ### `--tool-path` tools Tools with explicit tool paths are stored wherever you specified the `--tool-path` parameter to point to. They're stored in the same way as global tools: an executable binary with the actual binaries in a sibling `.store` directory. From 9fcbc3d8fa03d19ff2b1bc2f49177898001e4ac3 Mon Sep 17 00:00:00 2001 From: Noah Falk Date: Tue, 1 Oct 2024 07:54:13 -0700 Subject: [PATCH 09/45] Move metrics-collection.md to .NET 6 (#42770) Changes in dotnet-counters have made it incompatible with .NET Core 3.1. Given 3.1 is already out of support I am updating the docs to include .NET 6 as the lowest version. --- docs/core/diagnostics/metrics-collection.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/core/diagnostics/metrics-collection.md b/docs/core/diagnostics/metrics-collection.md index aa0fc75730d88..f041c4a03c223 100644 --- a/docs/core/diagnostics/metrics-collection.md +++ b/docs/core/diagnostics/metrics-collection.md @@ -7,7 +7,7 @@ ms.date: 10/27/2021 # Collect metrics -**This article applies to: ✔️** .NET Core 3.1 and later **✔️** .NET Framework 4.6.1 and later +**This article applies to: ✔️** .NET 6.0 and later **✔️** .NET Framework 4.6.1 and later Instrumented code can record numeric measurements, but the measurements usually need to be aggregated, transmitted, and stored to create useful metrics for monitoring. The process of aggregating, transmitting, and storing data is called collection. This tutorial shows several examples of collecting metrics: @@ -19,7 +19,7 @@ For more information on custom metric instrumentation and options, see [Compare ## Prerequisites -- [.NET Core 3.1 SDK](https://dotnet.microsoft.com/download/dotnet) or a later +- [.NET 6.0 SDK](https://dotnet.microsoft.com/download/dotnet) or a later ## Create an example app From 664f495e9a44baf431102eeec0862b10c18804ce Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 1 Oct 2024 07:54:26 -0700 Subject: [PATCH 10/45] Update package index with latest published versions (#42765) --- 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 8a405075915b0..65d82272af8bd 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -178,7 +178,7 @@ | Resource Management - Communication | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Communication/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Communication-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Communication_1.2.0/sdk/communication/Azure.ResourceManager.Communication/) | | Resource Management - Compute | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.6.0/sdk/compute/Azure.ResourceManager.Compute/) | | Resource Management - Computefleet | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeFleet/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeFleet-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeFleet_1.0.0-beta.1/sdk/computefleet/Azure.ResourceManager.ComputeFleet/) | -| Resource Management - Computeschedule | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.0.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) | +| Resource Management - Computeschedule | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeSchedule-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.0.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) | | Resource Management - Confidential Ledger | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.0.1)
NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ConfidentialLedger-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.0.1/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/)
GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.1.0-beta.4/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) | | Resource Management - Confluent | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Confluent/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Confluent-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Confluent_1.2.0/sdk/confluent/Azure.ResourceManager.Confluent/) | | Resource Management - Connected VMware vSphere | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedVMwarevSphere/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedVMwarevSphere-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedVMwarevSphere_1.1.0/sdk/connectedvmwarevsphere/Azure.ResourceManager.ConnectedVMwarevSphere/) | @@ -344,7 +344,7 @@ | App Configuration Extension | NuGet [8.0.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.Functions.Worker/8.0.0-preview.3) | | | | App Configuration Provider | NuGet [8.0.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.AspNetCore/8.0.0-preview.3) | | | | 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.9.0](https://www.nuget.org/packages/Azure.Communication.Calling.WindowsClient/1.9.0) | | | +| Communication Calling Windows Client | NuGet [1.9.0](https://www.nuget.org/packages/Azure.Communication.Calling.WindowsClient/1.9.0)
NuGet [1.10.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Calling.WindowsClient/1.10.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.5022](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetCore/4.0.5022) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 527280733c889..e31c6e573612c 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -183,7 +183,7 @@ | Resource Management - Communication | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Communication/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Communication-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Communication_1.2.0/sdk/communication/Azure.ResourceManager.Communication/) | | Resource Management - Compute | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.6.0/sdk/compute/Azure.ResourceManager.Compute/) | | Resource Management - Computefleet | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeFleet/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeFleet-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeFleet_1.0.0-beta.1/sdk/computefleet/Azure.ResourceManager.ComputeFleet/) | -| Resource Management - Computeschedule | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.0.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) | +| Resource Management - Computeschedule | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeSchedule-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.0.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) | | Resource Management - Confidential Ledger | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.0.1)
NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ConfidentialLedger-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.0.1/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/)
GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.1.0-beta.4/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) | | Resource Management - Confluent | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Confluent/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Confluent-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Confluent_1.2.0/sdk/confluent/Azure.ResourceManager.Confluent/) | | Resource Management - Connected VMware vSphere | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ConnectedVMwarevSphere/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ConnectedVMwarevSphere-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConnectedVMwarevSphere_1.1.0/sdk/connectedvmwarevsphere/Azure.ResourceManager.ConnectedVMwarevSphere/) | From 585de222cf7915eee0f36a6ecf6bad466421df4f Mon Sep 17 00:00:00 2001 From: Noah Falk Date: Tue, 1 Oct 2024 08:00:03 -0700 Subject: [PATCH 11/45] Add Triage DumpType description (#42771) * Add Triage DumpType description Triage DumpType was previously identical to Normal. Adding more text describing the redaction behavior that is included when using Triage. * Update docs/core/diagnostics/microsoft-diagnostics-netcore-client.md --------- Co-authored-by: Bill Wagner --- docs/core/diagnostics/microsoft-diagnostics-netcore-client.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md b/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md index f8c3f962bbd71..77a85aada47b4 100644 --- a/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md +++ b/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md @@ -343,7 +343,7 @@ Represents the type of dump that can be requested. * `Normal`: Include just the information necessary to capture stack traces for all existing traces for all existing threads in a process. Limited GC heap memory and information. * `WithHeap`: Includes the GC heaps and information necessary to capture stack traces for all existing threads in a process. -* `Triage`: Include just the information necessary to capture stack traces for all existing traces for all existing threads in a process. Limited GC heap memory and information. +* `Triage`: Include just the information necessary to capture stack traces for all existing traces for all existing threads in a process. Limited GC heap memory and information. Some content that is known to contain potentially sensitive information such as full module paths will be redacted. While this is intended to mitigate some cases of sensitive data exposure, there is no guarantee this redaction feature on its own is sufficient to comply with any particular law or standard regarding data privacy. * `Full`: Include all accessible memory in the process. The raw memory data is included at the end, so that the initial structures can be mapped directly without the raw memory information. This option can result in a very large dump file. ## Exceptions From 265cf95439f317ad5179577f733cd57694c9b0d3 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 16:15:43 +0100 Subject: [PATCH 12/45] Make a few cleanups and improvements to the STJ section of the 'What's New' article. --- docs/core/whats-new/dotnet-9/libraries.md | 90 +++++++++++++++-------- docs/core/whats-new/dotnet-9/overview.md | 2 +- 2 files changed, 61 insertions(+), 31 deletions(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index 74b430954da20..bf0cb751d7b4e 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -515,7 +515,8 @@ The generated schema is: "PublishYear": { "type": "integer" } - } + }, + "required": ["Title"] } ``` @@ -527,11 +528,14 @@ The following code shows how to set the option (the `Book` type definition is sh :::code language="csharp" source="../snippets/dotnet-9/csharp/Serialization.cs" id="RespectNullable"::: -You can also enable this setting globally using the `System.Text.Json.JsonSerializerOptions.RespectNullableAnnotations` feature switch in your project file (for example, _.csproj_ file): +> [!NOTE] +> Due to how nullability annotations are represented in IL, the feature is restricted to annotations of non-generic properties. Please refer to the relevant documentation for more details. + +You can also enable this setting globally using the `System.Text.Json.Serialization.RespectNullableAnnotationsDefault` feature switch in your project file (for example, _.csproj_ file): ```xml - + ``` @@ -549,11 +553,11 @@ The `MyPoco` type is defined as follows: :::code language="csharp" source="../snippets/dotnet-9/csharp/Serialization.cs" id="Poco"::: -You can also enable this setting globally using the `System.Text.Json.JsonSerializerOptions.RespectRequiredConstructorParameters` feature switch in your project file (for example, _.csproj_ file): +You can also enable this setting globally using the `System.Text.Json.Serialization.RespectRequiredConstructorParametersDefault` feature switch in your project file (for example, _.csproj_ file): ```xml - + ``` @@ -565,40 +569,66 @@ The type now exposes ordered dictionary–like :::code language="csharp" source="../snippets/dotnet-9/csharp/Serialization.cs" id="PropertyOrder"::: -### Additional contract metadata APIs +### Customizing enum member names -The JSON contract API now exposes additional metadata including constructor metadata information and improved attribute provider support for the case of the source generator. - -The new APIs have the following shape: +The new attribute can be used to customize the names of individual enum members for types that are serialized as strings: ```csharp -namespace System.Text.Json.Serialization.Metadata; +JsonSerializer.Serialize(MyEnum.Value1 | MyEnum.Value2); // "Value1, Custom enum value" -public partial class JsonTypeInfo +[Flags, JsonConverter(typeof(JsonStringEnumConverter))] +enum MyEnum { - // Typically the ConstructorInfo of the active deserialization constructor. - public ICustomAttributeProvider? ConstructorAttributeProvider { get; } + Value1 = 1, + [JsonStringEnumMemberName("Custom enum value")] + Value2 = 2, } +``` -public partial class JsonPropertyInfo -{ - public Type DeclaringType { get; } - // Typically the FieldInfo or PropertyInfo of the property. - public ICustomAttributeProvider? AttributeProvider { get; set; } - // The constructor parameter that has been associated with the current property. - public JsonParameterInfo? AssociatedParameter { get; } -} +### Streaming multiple JSON documents + + now supports reading multiple, whitespace-separated JSON documents from a single buffer or stream. By default, it will throw an exception if it detects any non-whitespace characters that are trailing the first top-level document. This behavior can be changed using the flag: + +```csharp +JsonReaderOptions options = new() { AllowMultipleValues = true }; +Utf8JsonReader reader = new("null {} 1 \r\n [1,2,3]"u8, options); + +reader.Read(); +Console.WriteLine(reader.TokenType); // Null + +reader.Read(); +Console.WriteLine(reader.TokenType); // StartObject +reader.Skip(); + +reader.Read(); +Console.WriteLine(reader.TokenType); // Number + +reader.Read(); +Console.WriteLine(reader.TokenType); // StartArray +reader.Skip(); + +Console.WriteLine(reader.Read()); // False +``` + +This additionally makes it possible to read JSON from payloads that may contain trailing data that is invalid JSON: + +```csharp +Utf8JsonReader reader = new("[1,2,3] "u8, new() { AllowMultipleValues = true }); + +reader.Read(); +reader.Skip(); // Success +reader.Read(); // throws JsonReaderException +``` + +When it comes to streaming deserialization, we have included a new overload that makes streaming multiple top-level values possible. By default, the method will attempt to stream elements that are contained in a top-level JSON array. This behavior can be toggled using the new `topLevelValues` flag: + +```csharp +ReadOnlySpan utf8Json = """[0] [0,1] [0,1,1] [0,1,1,2] [0,1,1,2,3]"""u8; +using var stream = new MemoryStream(utf8Json.ToArray()); -public sealed class JsonParameterInfo +await foreach (int[] item in JsonSerializer.DeserializeAsyncEnumerable(stream, topLevelValues: true)) { - public Type DeclaringType { get; } - public int Position { get; } - public Type ParameterType { get; } - public bool HasDefaultValue { get; } - public object? DefaultValue { get; } - public bool IsNullable { get; } - // Typically the ParameterInfo of the parameter. - public ICustomAttributeProvider? AttributeProvider { get; } + Console.WriteLine(item.Length); } ``` diff --git a/docs/core/whats-new/dotnet-9/overview.md b/docs/core/whats-new/dotnet-9/overview.md index ec722083d484a..671b45747e5a1 100644 --- a/docs/core/whats-new/dotnet-9/overview.md +++ b/docs/core/whats-new/dotnet-9/overview.md @@ -26,7 +26,7 @@ For more information, see [What's new in the .NET 9 runtime](runtime.md). ## .NET libraries - has new options that let you customize the indentation character and size of written JSON. It also includes a new singleton that makes it easier to serialize using web defaults. + adds support for nullable reference type annotations and exporting JSON schemas from types. It adds new options that let you customize the indentation of written JSON and reading multiple root-level JSON values from a single stream. In LINQ, the new methods and make it possible to aggregate state by key without needing to allocate intermediate groupings via . From c678f262e3189e5b0d06e3fead20177b7664eb9c Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 1 Oct 2024 11:00:32 -0700 Subject: [PATCH 13/45] Update package index with latest published versions (#42779) --- 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 65d82272af8bd..9f6287c5686cf 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -75,7 +75,7 @@ | Monitor Ingestion | NuGet [1.1.2](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.2) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.2/sdk/monitor/Azure.Monitor.Ingestion/) | | Monitor Query | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Monitor.Query/1.5.0) | [docs](/dotnet/api/overview/azure/Monitor.Query-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.5.0/sdk/monitor/Azure.Monitor.Query/) | | OpenAI Assistants | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI.Assistants/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI.Assistants-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI.Assistants_1.0.0-beta.4/sdk/openai/Azure.AI.OpenAI.Assistants/) | -| OpenAI Inference | NuGet [2.0.0-beta.6](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0-beta.6) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0-beta.6/sdk/openai/Azure.AI.OpenAI/) | +| OpenAI Inference | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/) | | OpenTelemetry AspNetCore | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.2.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.3.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | | OpenTelemetry Exporter | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.3.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.4.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | | Personalizer | NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Personalizer/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Personalizer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Personalizer_2.0.0-beta.2/sdk/personalizer/Azure.AI.Personalizer/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index e31c6e573612c..ecd0a367233a2 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -76,7 +76,7 @@ | Monitor Ingestion | NuGet [1.1.2](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.2) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.2/sdk/monitor/Azure.Monitor.Ingestion/) | | Monitor Query | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Monitor.Query/1.5.0) | [docs](/dotnet/api/overview/azure/Monitor.Query-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.5.0/sdk/monitor/Azure.Monitor.Query/) | | OpenAI Assistants | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI.Assistants/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI.Assistants-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI.Assistants_1.0.0-beta.4/sdk/openai/Azure.AI.OpenAI.Assistants/) | -| OpenAI Inference | NuGet [2.0.0-beta.6](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0-beta.6) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0-beta.6/sdk/openai/Azure.AI.OpenAI/) | +| OpenAI Inference | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/) | | OpenTelemetry AspNetCore | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.2.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.3.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | | OpenTelemetry Exporter | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.3.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.4.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | | OpenTelemetry LiveMetrics | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.LiveMetrics/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.LiveMetrics-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.LiveMetrics_1.0.0-beta.3/sdk/monitor/Azure.Monitor.OpenTelemetry.LiveMetrics/) | From 0335694d4d664cda6ad0f9bf61490fa9a71b88e7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 12:42:55 -0700 Subject: [PATCH 14/45] Monthly chores: Automated repo cleanup (#42772) --- docs/core/diagnostics/debug-stackoverflow.md | 4 ++-- ...ng => visual-studio-stackoverflow-callstack.png} | Bin ...ng => visual-studio-stackoverflow-exception.png} | Bin 3 files changed, 2 insertions(+), 2 deletions(-) rename docs/core/diagnostics/media/{visual_studio_stackoverflow_callstack.png => visual-studio-stackoverflow-callstack.png} (100%) rename docs/core/diagnostics/media/{visual_studio_stackoverflow_exception.png => visual-studio-stackoverflow-exception.png} (100%) diff --git a/docs/core/diagnostics/debug-stackoverflow.md b/docs/core/diagnostics/debug-stackoverflow.md index 759d30a958b79..d672eb694cba4 100644 --- a/docs/core/diagnostics/debug-stackoverflow.md +++ b/docs/core/diagnostics/debug-stackoverflow.md @@ -112,11 +112,11 @@ This example creates a core dump when the StackOverflowException occurs, then lo Running the application under the debugger in [Visual Studio](/visualstudio/debugger/what-is-debugging) will show a StackOverflowException in the exception helper dialog and highlight the line of code responsible for making the final call that overflows the stack. -[Visual Studio StackOverflowException dialog](media/visual_studio_stackoverflow_exception.png) +:::image type="content" source="media/visual-studio-stackoverflow-exception.png" alt-text="Visual Studio StackOverflowException dialog."::: The callstack debugger window also shows the stack. -[Visual Studio StackOverflow callstack](media/visual_studio_stackoverflow_callstack.png) +:::image type="content" source="media/visual-studio-stackoverflow-callstack.png" alt-text="Visual Studio StackOverflow callstack."::: You can use all the normal Visual Studio debugger features to investigate each frame on the callstack, its source code, and the value of local variables. diff --git a/docs/core/diagnostics/media/visual_studio_stackoverflow_callstack.png b/docs/core/diagnostics/media/visual-studio-stackoverflow-callstack.png similarity index 100% rename from docs/core/diagnostics/media/visual_studio_stackoverflow_callstack.png rename to docs/core/diagnostics/media/visual-studio-stackoverflow-callstack.png diff --git a/docs/core/diagnostics/media/visual_studio_stackoverflow_exception.png b/docs/core/diagnostics/media/visual-studio-stackoverflow-exception.png similarity index 100% rename from docs/core/diagnostics/media/visual_studio_stackoverflow_exception.png rename to docs/core/diagnostics/media/visual-studio-stackoverflow-exception.png From e53abe957bc7aaccae063595e2192fd780c9f91c Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:31:10 +0100 Subject: [PATCH 15/45] Update docs/core/whats-new/dotnet-9/libraries.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/whats-new/dotnet-9/libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index bf0cb751d7b4e..95f4da50b66d6 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -569,7 +569,7 @@ The type now exposes ordered dictionary–like :::code language="csharp" source="../snippets/dotnet-9/csharp/Serialization.cs" id="PropertyOrder"::: -### Customizing enum member names +### Customize enum member names The new attribute can be used to customize the names of individual enum members for types that are serialized as strings: From 38911c0df794b0896dbcc491a0237c8ca82fb654 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:31:24 +0100 Subject: [PATCH 16/45] Update docs/core/whats-new/dotnet-9/libraries.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/whats-new/dotnet-9/libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index 95f4da50b66d6..fa409456cf349 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -585,7 +585,7 @@ enum MyEnum } ``` -### Streaming multiple JSON documents +### Stream multiple JSON documents now supports reading multiple, whitespace-separated JSON documents from a single buffer or stream. By default, it will throw an exception if it detects any non-whitespace characters that are trailing the first top-level document. This behavior can be changed using the flag: From e1d277764666841fa5ff863f50a8cd3fdf1c1a33 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:31:33 +0100 Subject: [PATCH 17/45] Update docs/core/whats-new/dotnet-9/libraries.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/whats-new/dotnet-9/libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index fa409456cf349..79e269a271542 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -587,7 +587,7 @@ enum MyEnum ### Stream multiple JSON documents - now supports reading multiple, whitespace-separated JSON documents from a single buffer or stream. By default, it will throw an exception if it detects any non-whitespace characters that are trailing the first top-level document. This behavior can be changed using the flag: + now supports reading multiple, whitespace-separated JSON documents from a single buffer or stream. By default, the reader throws an exception if it detects any non-whitespace characters that are trailing the first top-level document. You can change this behavior using the flag: ```csharp JsonReaderOptions options = new() { AllowMultipleValues = true }; From ac9fa7d24330450cc950c04dbf6c785c22e9105d Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:31:40 +0100 Subject: [PATCH 18/45] Update docs/core/whats-new/dotnet-9/libraries.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/whats-new/dotnet-9/libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index 79e269a271542..a083573fb1dca 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -610,7 +610,7 @@ reader.Skip(); Console.WriteLine(reader.Read()); // False ``` -This additionally makes it possible to read JSON from payloads that may contain trailing data that is invalid JSON: +This flag also makes it possible to read JSON from payloads that might contain trailing data that's invalid JSON: ```csharp Utf8JsonReader reader = new("[1,2,3] "u8, new() { AllowMultipleValues = true }); From eea9fed820204ad0786c1f43275b4b71de6e1e27 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:31:47 +0100 Subject: [PATCH 19/45] Update docs/core/whats-new/dotnet-9/libraries.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/whats-new/dotnet-9/libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index a083573fb1dca..0455af2a89bfa 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -620,7 +620,7 @@ reader.Skip(); // Success reader.Read(); // throws JsonReaderException ``` -When it comes to streaming deserialization, we have included a new overload that makes streaming multiple top-level values possible. By default, the method will attempt to stream elements that are contained in a top-level JSON array. This behavior can be toggled using the new `topLevelValues` flag: +When it comes to streaming deserialization, a new overload makes streaming multiple top-level values possible. By default, the method attempts to stream elements that are contained in a top-level JSON array. You can toggle this behavior using the new `topLevelValues` flag: ```csharp ReadOnlySpan utf8Json = """[0] [0,1] [0,1,1] [0,1,1,2] [0,1,1,2,3]"""u8; From 891254e8e6546cbdf802369592bd8ceab55354b0 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:31:56 +0100 Subject: [PATCH 20/45] Update docs/core/whats-new/dotnet-9/overview.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/whats-new/dotnet-9/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-9/overview.md b/docs/core/whats-new/dotnet-9/overview.md index 671b45747e5a1..a739dc276e1b7 100644 --- a/docs/core/whats-new/dotnet-9/overview.md +++ b/docs/core/whats-new/dotnet-9/overview.md @@ -26,7 +26,7 @@ For more information, see [What's new in the .NET 9 runtime](runtime.md). ## .NET libraries - adds support for nullable reference type annotations and exporting JSON schemas from types. It adds new options that let you customize the indentation of written JSON and reading multiple root-level JSON values from a single stream. + adds support for nullable reference type annotations and exporting JSON schemas from types. It adds new options that let you customize the indentation of written JSON and read multiple root-level JSON values from a single stream. In LINQ, the new methods and make it possible to aggregate state by key without needing to allocate intermediate groupings via . From 2afae5eb82b664566129f00f00957c90675f2ff7 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:39:45 +0100 Subject: [PATCH 21/45] Fix issues and address feedback. --- docs/core/whats-new/dotnet-9/libraries.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index 0455af2a89bfa..d5acc6ae6bb23 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -474,7 +474,8 @@ The following example demonstrates `Regex.EnumerateSplits`, taking a `ReadOnlySp - [Respect nullable annotations](#respect-nullable-annotations) - [Require non-optional constructor parameters](#require-non-optional-constructor-parameters) - [Order JsonObject properties](#order-jsonobject-properties) -- [Additional contract metadata APIs](#additional-contract-metadata-apis) +- [Customize enum member names](#customize-enum-member-names) +- [Stream multiple JSON documents](#stream-multiple-json-documents) ### Indentation options @@ -529,7 +530,7 @@ The following code shows how to set the option (the `Book` type definition is sh :::code language="csharp" source="../snippets/dotnet-9/csharp/Serialization.cs" id="RespectNullable"::: > [!NOTE] -> Due to how nullability annotations are represented in IL, the feature is restricted to annotations of non-generic properties. Please refer to the relevant documentation for more details. +> Due to how nullability annotations are represented in IL, the feature is restricted to annotations of non-generic properties. You can also enable this setting globally using the `System.Text.Json.Serialization.RespectNullableAnnotationsDefault` feature switch in your project file (for example, _.csproj_ file): From 95cee64481c581c2fa20ff5dfa9a81a23963bd98 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 1 Oct 2024 21:53:39 +0100 Subject: [PATCH 22/45] Fix link to methodd --- docs/core/whats-new/dotnet-9/libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index d5acc6ae6bb23..e98fb8215b5b4 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -621,7 +621,7 @@ reader.Skip(); // Success reader.Read(); // throws JsonReaderException ``` -When it comes to streaming deserialization, a new overload makes streaming multiple top-level values possible. By default, the method attempts to stream elements that are contained in a top-level JSON array. You can toggle this behavior using the new `topLevelValues` flag: +When it comes to streaming deserialization, a new overload makes streaming multiple top-level values possible. By default, the method attempts to stream elements that are contained in a top-level JSON array. You can toggle this behavior using the new `topLevelValues` flag: ```csharp ReadOnlySpan utf8Json = """[0] [0,1] [0,1,1] [0,1,1,2] [0,1,1,2,3]"""u8; From 4950a32b44fa81bd4f1b8024c6e0585f0085d6cc Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 1 Oct 2024 17:51:50 -0400 Subject: [PATCH 23/45] add additional examples (#42763) Add additional examples where appropriate in the What's new in C# 13 article. Also, pick up some additional meta data bits that have been missing in our docfx. Fixes #42683 --- docfx.json | 4 ++ docs/csharp/whats-new/csharp-13.md | 66 +++++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 6 deletions(-) diff --git a/docfx.json b/docfx.json index 03d7c34d95d1b..950167f6b4ac7 100644 --- a/docfx.json +++ b/docfx.json @@ -309,6 +309,10 @@ "docs/visual-basic/**/**.md": "vb" }, "author": { + "_csharplang/**/*.md": "billwagner", + "_csharpstandard/**/*.md": "billwagner", + "_roslyn/docs/compilers/CSharp/*.md": "billwagner", + "_vblang/spec/*.md": "billwagner", "docs/azure/**/*.*": "alexwolfmsft", "docs/orleans/**/*.*": "IEvangelist", "docs/architecture/**/**.md": "jamesmontemagno", diff --git a/docs/csharp/whats-new/csharp-13.md b/docs/csharp/whats-new/csharp-13.md index 252a3c3b6ae48..b642a61f09857 100644 --- a/docs/csharp/whats-new/csharp-13.md +++ b/docs/csharp/whats-new/csharp-13.md @@ -1,7 +1,7 @@ --- title: What's new in C# 13 description: Get an overview of the new features in C# 13. Follow the release of new preview features as .NET 9 and C# 13 previews are released. -ms.date: 08/20/2024 +ms.date: 09/30/2024 ms.topic: whats-new --- # What's new in C# 13 @@ -35,12 +35,28 @@ The `params` modifier isn't limited to array types. You can now use `params` wit When an interface type is used, the compiler synthesizes the storage for the arguments supplied. You can learn more in the feature specification for [`params` collections](~/_csharplang/proposals/csharp-13.0/params-collections.md). +For example, method declarations can declare spans as `params` parameters: + +```csharp +public void Concat(params ReadOnlySpan items) +{ + for (int i = 0; i < items.Length; i++) + { + Console.Write(items[i]); + Console.Write(" "); + } + Console.WriteLine(); +} +``` + ## New lock object The .NET 9 runtime includes a new type for thread synchronization, the type. This type provides better thread synchronization through its API. The method enters an exclusive scope. The `ref struct` returned from that supports the `Dispose()` pattern to exit the exclusive scope. The C# [`lock`](../language-reference/statements/lock.md) statement recognizes if the target of the lock is a `Lock` object. If so, it uses the updated API, rather than the traditional API using . The compiler also recognizes if you convert a `Lock` object to another type and the `Monitor` based code would be generated. You can read more in the feature specification for the [new lock object](~/_csharplang/proposals/csharp-13.0/lock-object.md). +This feature allows you to get the benefits of the new library type by changing the type of object you `lock`. No other code needs to change. + ## New escape sequence You can use `\e` as a [character literal](~/_csharpstandard/standard/lexical-structure.md#6455-character-literals) escape sequence for the `ESCAPE` character, Unicode `U+001B`. Previously, you used `\u001b` or `\x1b`. Using `\x1b` wasn't recommended because if the next characters following `1b` were valid hexadecimal digits, those characters became part of the escape sequence. @@ -80,6 +96,8 @@ The preceding example creates an array that counts down from 9 to 0. In versions ## `ref` and `unsafe` in iterators and `async` methods +This feature and the following two features enable `ref struct` types to use new constructs. You won't use these unless you write your own `ref struct` types. More likely, you'll see an indirect benefit as and gain more functionality. + Before C# 13, iterator methods (methods that use `yield return`) and `async` methods couldn't declare local `ref` variables, nor could they have an `unsafe` context. In C# 13, `async` methods can declare `ref` local variables, or local variables of a `ref struct` type. However, those variables can't be accessed across an `await` boundary. Neither can they be accessed across a `yield return` boundary. @@ -88,19 +106,55 @@ This relaxed restriction enables the compiler to allow verifiably safe use of `r In the same fashion, C# 13 allows `unsafe` contexts in iterator methods. However, all `yield return` and `yield break` statements must be in safe contexts. -## `ref struct` interfaces - -Before C# 13, `ref struct` types weren't allowed to implement interfaces. Beginning with C# 13, they can. To ensure ref safety rules, a `ref struct` type can't be converted to an interface type. That is a boxing conversion, and could violate ref safety. Learn more in the updates on [`ref struct` types](../language-reference/builtin-types/ref-struct.md#restrictions-for-ref-struct-types-that-implement-an-interface). - ## `allows ref struct` Before C# 13, `ref struct` types couldn't be declared as the type argument for a generic type or method. Now, generic type declarations can add an anti-constraint, `allows ref struct`. This anti-constraint declares that the type argument supplied for that type parameter can be a `ref struct` type. The compiler enforces ref safety rules on all instances of that type parameter. +For example, you may declare an interface like the following code: + +```csharp +public class C where T : allows ref struct +{ + // Use T as a ref struct: + public void M(scoped T p) + { + // The parameter p must follow ref safety rules + } +} +``` + This enables types such as and to be used with generic algorithms, where applicable. You can learn more in the updates for [`where`](../language-reference/keywords/where-generic-type-constraint.md) and the programming guide article on [generic constraints](../programming-guide/generics/constraints-on-type-parameters.md). +## `ref struct` interfaces + +Before C# 13, `ref struct` types weren't allowed to implement interfaces. Beginning with C# 13, they can. You can declare that a `ref struct` type implements interfaces. However, to ensure ref safety rules, a `ref struct` type can't be converted to an interface type. That is a boxing conversion, and could violate ref safety. From that rule, `ref struct` types can't declare methods that explicitly implement an interface method. Also, `ref struct` types must implement all methods declared in an interface, including those with a default implementation. + +Learn more in the updates on [`ref struct` types](../language-reference/builtin-types/ref-struct.md#restrictions-for-ref-struct-types-that-implement-an-interface). + ## More partial members -You can declare `partial` properties and `partial` indexers in C# 13. Partial properties and indexers generally follow the same rules as `partial` methods: you create one *declaring declaration* and one *implementing declaration*. The signatures of the two declarations must match. One restriction is that you can't use an auto-property declaration for a partial property. Properties that don't declare a body are considered the *declaring declaration*. You can learn more in the article on [partial members](../language-reference/keywords/partial-member.md). +You can declare `partial` properties and `partial` indexers in C# 13. Partial properties and indexers generally follow the same rules as `partial` methods: you create one *declaring declaration* and one *implementing declaration*. The signatures of the two declarations must match. One restriction is that you can't use an auto-property declaration for a partial property. Properties that don't declare a body are considered the *declaring declaration*. + +```csharp +public partial class C +{ + // Declaring declaration + public partial string Name { get; set; } +} + +public partial class C +{ + // implementation declaration: + private string _name; + public partial string Name + { + get => _name; + set => _name = value; + } +} +``` + +You can learn more in the article on [partial members](../language-reference/keywords/partial-member.md). ## Overload resolution priority From bf3292dfe3b41203c0917c1484ab07640534b32d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 17:52:37 -0400 Subject: [PATCH 24/45] =?UTF-8?q?Bot=20=F0=9F=A4=96=20generated=20"What's?= =?UTF-8?q?=20new=20article"=20(#42773)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com> --- docs/whats-new/dotnet-docs-mod0.md | 104 ++++++++++++++++------------- docs/whats-new/index.yml | 6 +- docs/whats-new/toc.yml | 4 +- 3 files changed, 63 insertions(+), 51 deletions(-) diff --git a/docs/whats-new/dotnet-docs-mod0.md b/docs/whats-new/dotnet-docs-mod0.md index 298ed87681a3f..aeec552ae1cc6 100644 --- a/docs/whats-new/dotnet-docs-mod0.md +++ b/docs/whats-new/dotnet-docs-mod0.md @@ -1,76 +1,88 @@ --- -title: ".NET docs: What's new for June 2024" -description: "What's new in the .NET docs for June 2024." -ms.custom: June-2024 -ms.date: 07/01/2024 +title: ".NET docs: What's new for September 2024" +description: "What's new in the .NET docs for September 2024." +ms.custom: September-2024 +ms.date: 10/01/2024 --- -# .NET docs: What's new for June 2024 +# .NET docs: What's new for September 2024 -Welcome to what's new in the .NET docs for June 2024. This article lists some of the major changes to docs during this period. +Welcome to what's new in the .NET docs for September 2024. This article lists some of the major changes to docs during this period. ## .NET breaking changes ### New articles -- [Adding a ZipArchiveEntry with CompressionLevel sets ZIP central directory header general-purpose bit flags](../core/compatibility/core-libraries/9.0/compressionlevel-bits.md) -- [DateTimePicker.Text is empty string](../core/compatibility/windows-forms/8.0/datetimepicker-text.md) +- [Floating point-to-integer conversions are saturating](../core/compatibility/jit/9.0/fp-to-integer.md) +- [FromKeyedServicesAttribute no longer injects non-keyed parameter](../core/compatibility/core-libraries/9.0/non-keyed-params.md) +- [HttpClientFactory logging redacts header values by default](../core/compatibility/networking/9.0/redact-headers.md) +- [IMsoComponent support is opt-in](../core/compatibility/windows-forms/9.0/imsocomponent-support.md) +- [IncrementingPollingCounter initial callback is asynchronous](../core/compatibility/core-libraries/9.0/async-callback.md) +- [ZipArchiveEntry names and comments respect UTF8 flag](../core/compatibility/core-libraries/9.0/ziparchiveentry-encoding.md) ## .NET fundamentals ### New articles -- [dotnet nuget config get](../core/tools/dotnet-nuget-config-get.md) -- [dotnet nuget config paths](../core/tools/dotnet-nuget-config-paths.md) -- [dotnet nuget config set](../core/tools/dotnet-nuget-config-set.md) -- [dotnet nuget config unset](../core/tools/dotnet-nuget-config-unset.md) -- [dotnet nuget why](../core/tools/dotnet-nuget-why.md) -- [Fakes extension](../core/testing/unit-testing-platform-extensions-fakes.md) -- [MSTEST0029: Public method should be test method](../core/testing/mstest-analyzers/mstest0029.md) +- [Common `IHttpClientFactory` usage issues](../core/extensions/httpclient-factory-troubleshooting.md) +- [HttpWebRequest to HttpClient Migration Guide](../fundamentals/networking/http/httpclient-migrate-from-httpwebrequest.md) +- [Intrinsic APIs marked RequiresDynamicCode](../core/deploying/native-aot/intrinsic-requiresdynamiccode-apis.md) +- [Security features](../core/deploying/native-aot/security.md) ### Updated articles -- [Code quality rule configuration options](../fundamentals/code-analysis/code-quality-rule-options.md) - Add missed documentation for CA's options. -- [Install .NET on Windows](../core/install/windows.md) - Initial rewrite of windows install -- [The regular expression object model](../standard/base-types/the-regular-expression-object-model.md) - Update regex docs with more info about source gen -- [What's new in .NET libraries for .NET 9](../core/whats-new/dotnet-9/libraries.md) - Update what's new for .NET 9 Preview 5 +- [How to customize property names and values with System.Text.Json](../standard/serialization/system-text-json/customize-properties.md) - Add Copilot use case +- [How to write .NET objects as JSON (serialize)](../standard/serialization/system-text-json/how-to.md) - Add GitHub Copilot use case to serialize JSON +- [MSBuild reference for .NET SDK projects](../core/project-sdk/msbuild-props.md) - Add MSBuild test-related properties +- [What's new in .NET libraries for .NET 9](../core/whats-new/dotnet-9/libraries.md) - What's new for .NET 9 RC 1 -## Architecture guides +## C# language -### Updated articles +### New articles -- [Authentication and authorization](../architecture/maui/authentication-and-authorization.md) - Updated IdentityServer references and authentication flow +- [Resolve errors and warnings that affect overload resolution.](../csharp/language-reference/compiler-messages/overload-resolution.md) -## AI in .NET +## Azure SDK for .NET ### New articles -- [Chat with a local AI model using .NET and Semantic Kernel](../ai/quickstarts/quickstart-local-ai.md) -- [Semantic Kernel overview for .NET](../ai/semantic-kernel-dotnet-overview.md) +- [Frequently asked questions](../azure/migration/appcat/faq.md) + +## .NET Framework + +### Updated articles + +- [Migrating WSE 3.0 Web Services to WCF](../framework/wcf/feature-details/migrating-wse-3-0-web-services-to-wcf.md) - SFI: ROPC - another chunk ## Community contributors The following people contributed to the .NET docs during this period. Thank you! Learn how to contribute by following the links under "Get involved" in the [what's new landing page](index.yml). -- [sammychinedu2ky](https://github.com/sammychinedu2ky) - Samson Amaugo ![5 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-5-green) -- [Kissaki](https://github.com/Kissaki) - Jan Klass ![4 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-4-green) - [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski ![3 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-3-green) -- [Alexanderbtw](https://github.com/Alexanderbtw) - Alexander ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [ali50m](https://github.com/ali50m) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [azarboon](https://github.com/azarboon) - Mahdi Azarboon ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [bigboybamo](https://github.com/bigboybamo) - Olabamiji Oyetubo ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [FrediKats](https://github.com/FrediKats) - Fredi Kats ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [joprice](https://github.com/joprice) - Joseph Price ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [kimsey0](https://github.com/kimsey0) - Jacob Bundgaard ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [longbuibao](https://github.com/longbuibao) - bui bao long ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [m3nax](https://github.com/m3nax) - Manuel Menegazzo ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [matt-gribben](https://github.com/matt-gribben) - Matthew Gribben ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [michaelstonis](https://github.com/michaelstonis) - Michael Stonis ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [mrpowe07](https://github.com/mrpowe07) - Matt Powers ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [paramamue](https://github.com/paramamue) - Martin Müller ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [RadicalErin](https://github.com/RadicalErin) - Erin Scanlon ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [rbleattler](https://github.com/rbleattler) - Robert Bleattler ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [TBence98](https://github.com/TBence98) - Tullner Bence ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [ThorstenReichert](https://github.com/ThorstenReichert) - Thorsten Reichert ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [valchetski](https://github.com/valchetski) - Aliaksandr Valchetski ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [vernou](https://github.com/vernou) - VERNOU Cédric ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [hakenr](https://github.com/hakenr) - Robert Haken ![3 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-3-green) +- [mpostol](https://github.com/mpostol) - Mariusz Postol ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) +- [Roshni-Gandhi](https://github.com/Roshni-Gandhi) - ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) +- [AptiviCEO](https://github.com/AptiviCEO) - Aptivi CEO ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [bb-froggy](https://github.com/bb-froggy) - Christoph Hannebauer ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [bravequickcleverfibreyarn](https://github.com/bravequickcleverfibreyarn) - boldswiftsmartfiberhank ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [ChinoUkaegbu](https://github.com/ChinoUkaegbu) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [colejohnson66](https://github.com/colejohnson66) - Cole Tobin ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [da1910](https://github.com/da1910) - Doug Addy ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [geniuszxy](https://github.com/geniuszxy) - Shingo ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [Haidar0096](https://github.com/Haidar0096) - Haidar Mehsen ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [HEJOK254](https://github.com/HEJOK254) - Jakub Dębski ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [jairbubbles](https://github.com/jairbubbles) - Julien Richard ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [koenigst](https://github.com/koenigst) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [Legend4it](https://github.com/Legend4it) - Ali Abdulhussein ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [luizfls](https://github.com/luizfls) - Luiz Felipe Silva ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [melbasiouny](https://github.com/melbasiouny) - Mostafa ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [normandev92](https://github.com/normandev92) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [ousiax](https://github.com/ousiax) - Jon X ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [sammychinedu2ky](https://github.com/sammychinedu2ky) - Samson Amaugo ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [samwherever](https://github.com/samwherever) - Sam Allen ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [Smaug123](https://github.com/Smaug123) - Patrick Stevens ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [stashut](https://github.com/stashut) - Stanislav Hut ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [timdeschryver](https://github.com/timdeschryver) - Tim Deschryver ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [udidahan](https://github.com/udidahan) - Udi Dahan ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [xlxdxy](https://github.com/xlxdxy) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [xparadoxical](https://github.com/xparadoxical) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) diff --git a/docs/whats-new/index.yml b/docs/whats-new/index.yml index 870fb232134b0..949e2e8a2fab3 100644 --- a/docs/whats-new/index.yml +++ b/docs/whats-new/index.yml @@ -5,7 +5,7 @@ summary: Welcome to what's new in .NET and .NET docs. Use this page to navigate metadata: title: .NET what's new? description: Learn about new .NET features and new and updated content in .NET docs. - ms.date: 09/01/2024 + ms.date: 10/01/2024 ms.topic: landing-page landingContent: - title: .NET 9 release updates @@ -40,12 +40,12 @@ landingContent: linkLists: - linkListType: whats-new links: + - text: September 2024 + url: dotnet-docs-mod0.md - text: August 2024 url: dotnet-docs-mod2.md - text: July 2024 url: dotnet-docs-mod1.md - - text: June 2024 - url: dotnet-docs-mod0.md - title: Language updates linkLists: - linkListType: whats-new diff --git a/docs/whats-new/toc.yml b/docs/whats-new/toc.yml index 9d9dbf5bff8b7..905d3f67c81be 100644 --- a/docs/whats-new/toc.yml +++ b/docs/whats-new/toc.yml @@ -6,12 +6,12 @@ items: - name: Latest documentation updates expanded: true items: + - name: September 2024 + href: dotnet-docs-mod0.md - name: August 2024 href: dotnet-docs-mod2.md - name: July 2024 href: dotnet-docs-mod1.md - - name: June 2024 - href: dotnet-docs-mod0.md - name: Product updates items: - name: .NET 9 From 7be8d279cb23a244a182a046e2f47aa7a6daa146 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 1 Oct 2024 18:10:36 -0400 Subject: [PATCH 25/45] fix two quest parent nodes (#42782) --- quest-config.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/quest-config.json b/quest-config.json index e493fc31108eb..25dd9b97f3181 100644 --- a/quest-config.json +++ b/quest-config.json @@ -32,9 +32,14 @@ "Label": "doc-bug", "ParentNodeId": 286039 }, + { + "Semester": "Dilithium", + "Label": "dotnet-csharp/svc", + "ParentNodeId": 308201 + }, { "Semester": "Selenium", - "ParentNodeId": 286016 + "ParentNodeId": 308199 }, { "Semester": "Dilithium", @@ -86,7 +91,7 @@ "ParentNodeId": 227485 } ], - "DefaultParentNode": 286016, + "DefaultParentNode": 308199, "WorkItemTags": [ { "Label": ":checkered_flag: Release: .NET 9", From 9955e02d7a6ff2fb6c45c6c6de12ddf68d1d69e1 Mon Sep 17 00:00:00 2001 From: Tanya Solyanik Date: Tue, 1 Oct 2024 19:20:43 -0700 Subject: [PATCH 26/45] We didn't document a removed class - https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridcolumnstyle.compmodswitches?view=netframework-4.8.1&viewFallbackFrom=net-5.0 (#42786) --- includes/core-changes/windowsforms/3.1/remove-controls-3.1.md | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/core-changes/windowsforms/3.1/remove-controls-3.1.md b/includes/core-changes/windowsforms/3.1/remove-controls-3.1.md index 205e11308710e..31cfc85322dc8 100644 --- a/includes/core-changes/windowsforms/3.1/remove-controls-3.1.md +++ b/includes/core-changes/windowsforms/3.1/remove-controls-3.1.md @@ -15,6 +15,7 @@ The following types are no longer available: - - - +- - - - From f75417b97d3ff5ec21de89be77761bcdcde5ce04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:07:39 +0000 Subject: [PATCH 27/45] Bump Microsoft.SemanticKernel (#42791) Bumps the dotnet group in /docs/ai/tutorials/snippets/llm-eval with 1 update: [Microsoft.SemanticKernel](https://github.com/microsoft/semantic-kernel). Updates `Microsoft.SemanticKernel` from 1.20.0 to 1.21.1 - [Release notes](https://github.com/microsoft/semantic-kernel/releases) - [Commits](https://github.com/microsoft/semantic-kernel/compare/dotnet-1.20.0...dotnet-1.21.1) --- updated-dependencies: - dependency-name: Microsoft.SemanticKernel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj b/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj index ff89596539bc4..2abc76cb042ca 100644 --- a/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj +++ b/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj @@ -12,7 +12,7 @@ - + From 9c0438c8c0f402f284cc2ca69e40ce7b9f2a4d62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:33:31 +0000 Subject: [PATCH 28/45] Bump xunit in /docs/azure/sdk/snippets/unit-testing in the dotnet group (#42796) Bumps the dotnet group in /docs/azure/sdk/snippets/unit-testing with 1 update: [xunit](https://github.com/xunit/xunit). Updates `xunit` from 2.9.1 to 2.9.2 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2) --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj index deab1a3bb5401..363be37b3a19d 100644 --- a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj +++ b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj @@ -15,7 +15,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all From a62e5a70602eb4cf5e521d2586c3434b409f36b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:37:14 +0000 Subject: [PATCH 29/45] Bump xunit (#42797) Bumps the dotnet group in /samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp with 1 update: [xunit](https://github.com/xunit/xunit). Updates `xunit` from 2.9.1 to 2.9.2 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2) --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../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 b34efd8243b68..12959286c0d25 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 b61f2f649c2c08078f41383fdd680298037c4375 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:44:19 +0000 Subject: [PATCH 30/45] Bump xunit (#42798) Bumps the dotnet group in /docs/fundamentals/networking/telemetry/snippets/metrics with 1 update: [xunit](https://github.com/xunit/xunit). Updates `xunit` from 2.9.1 to 2.9.2 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2) --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../telemetry/snippets/metrics/HelloBuiltinMetrics.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/networking/telemetry/snippets/metrics/HelloBuiltinMetrics.csproj b/docs/fundamentals/networking/telemetry/snippets/metrics/HelloBuiltinMetrics.csproj index 47477bc076097..57b4e791a81d1 100644 --- a/docs/fundamentals/networking/telemetry/snippets/metrics/HelloBuiltinMetrics.csproj +++ b/docs/fundamentals/networking/telemetry/snippets/metrics/HelloBuiltinMetrics.csproj @@ -10,7 +10,7 @@ - + From 99e408941e3f679e8c12b9d7fb088eea8b2e05e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:50:32 +0000 Subject: [PATCH 31/45] Bump xunit (#42799) Bumps the dotnet group in /samples/snippets/core/testing/unit-testing-best-practices/csharp with 1 update: [xunit](https://github.com/xunit/xunit). Updates `xunit` from 2.9.1 to 2.9.2 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2) --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/after/unit-testing-best-practices-after.csproj | 2 +- .../csharp/before/unit-testing-best-practices-before.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 5f2408b91b03a..0fad0182bb852 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 @@ - + 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 5f2408b91b03a..0fad0182bb852 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 996f55b0d6cc74525b95ad1e520a9c58ae1b77d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:51:17 +0000 Subject: [PATCH 32/45] Bump github/codeql-action from 3.26.9 to 3.26.10 (#42800) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.9 to 3.26.10. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/461ef6c76dfe95d5c364de2f431ddbd31a417628...e2b3eafc8d227b0241d48be5f425d47c2d750a13) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/scorecards.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 7e34ce18d5c8d..79744abbeca14 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@461ef6c76dfe95d5c364de2f431ddbd31a417628 # v3.26.9 + uses: github/codeql-action/upload-sarif@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 with: sarif_file: results.sarif From 83f88aa52fae17234bfdad94af5f84fab6917801 Mon Sep 17 00:00:00 2001 From: Olabamiji Oyetubo <60369677+bigboybamo@users.noreply.github.com> Date: Wed, 2 Oct 2024 05:52:48 -0700 Subject: [PATCH 33/45] Bigboybamo patch 5 (#42783) * Update access-modifiers.md Added description for file access type modifier * Update cs1526.md --- docs/csharp/misc/cs1526.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/csharp/misc/cs1526.md b/docs/csharp/misc/cs1526.md index 856529a770179..f261a251b0924 100644 --- a/docs/csharp/misc/cs1526.md +++ b/docs/csharp/misc/cs1526.md @@ -20,21 +20,21 @@ A new expression requires (), [], or {} after type ```csharp // CS1526.cs -public class y -{ - public static int i = 0; - public int myi = 0; -} - -public class z -{ - public static void Main() - { - y py = new y; // CS1526 - y[] aoys = new y[10]; // Array of Ys - - for (int i = 0; i < aoys.Length; i++) - aoys[i] = new y(); // an object of type y - } -} +public class y +{ + public static int globalCounter = 0; + public int instanceCounter = 0; +} + +public class z +{ + public static void Main() + { + y yInstance = new y; // CS1526 + y[] yArray = new y[10]; // Array of Ys + + for (int i = 0; i < yArray.Length; i++) + yArray[i] = new y(); // an object of type y + } +} ``` From e5ea9714cf1089b95e124669d88a47f90bdd9265 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:56:40 -0400 Subject: [PATCH 34/45] Bump actions/checkout from 4.1.7 to 4.2.0 (#42801) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/clean-repo.yml | 2 +- .github/workflows/dependabot-bot.yml | 2 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/docs-verifier.yml | 2 +- .github/workflows/markdownlint.yml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/snippets5000.yml | 2 +- .github/workflows/whats-new.yml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/clean-repo.yml b/.github/workflows/clean-repo.yml index 044480039d618..b8c7a373cc71a 100644 --- a/.github/workflows/clean-repo.yml +++ b/.github/workflows/clean-repo.yml @@ -21,7 +21,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 # Call clean repo - name: Clean repo diff --git a/.github/workflows/dependabot-bot.yml b/.github/workflows/dependabot-bot.yml index e6dd58246f881..f29046852a669 100644 --- a/.github/workflows/dependabot-bot.yml +++ b/.github/workflows/dependabot-bot.yml @@ -30,7 +30,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 # - name: Setup .NET # uses: actions/setup-dotnet@4d4a70f4a5b2a5a5329f13be4ac933f2c9206ac0 # with: diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index c1209291aab75..5c03af260a6c2 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -22,6 +22,6 @@ jobs: egress-policy: audit - name: 'Checkout Repository' - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: 'Dependency Review' uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4 diff --git a/.github/workflows/docs-verifier.yml b/.github/workflows/docs-verifier.yml index f705c6c60fb97..fc8916d27c4d9 100644 --- a/.github/workflows/docs-verifier.yml +++ b/.github/workflows/docs-verifier.yml @@ -19,7 +19,7 @@ jobs: egress-policy: audit - name: Checkout the repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: Validate uses: dotnet/docs-actions/actions/docs-verifier@5e8bcc78465d45a7544bba56509a1a69922b6a5a # main diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml index 98f6c1a895a5b..003461b1caf2c 100644 --- a/.github/workflows/markdownlint.yml +++ b/.github/workflows/markdownlint.yml @@ -26,7 +26,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: DavidAnson/markdownlint-cli2-action@b4c9feab76d8025d1e83c653fa3990936df0e6c8 # v16.0.0 with: config: ".markdownlint-cli2.jsonc" diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 79744abbeca14..9de2fea855dff 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -36,7 +36,7 @@ jobs: egress-policy: audit - name: "Checkout code" - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: persist-credentials: false diff --git a/.github/workflows/snippets5000.yml b/.github/workflows/snippets5000.yml index 02b96477509f9..2d6e1680d72b6 100644 --- a/.github/workflows/snippets5000.yml +++ b/.github/workflows/snippets5000.yml @@ -36,7 +36,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #@v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 #@v4.2.0 # Get the latest preview SDK (or sdk not installed by the runner) - name: Setup .NET diff --git a/.github/workflows/whats-new.yml b/.github/workflows/whats-new.yml index 057e6770ba7e2..d59d8cc140587 100644 --- a/.github/workflows/whats-new.yml +++ b/.github/workflows/whats-new.yml @@ -27,7 +27,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: "Print manual run reason" if: ${{ github.event_name == 'workflow_dispatch' }} From 6b16b934be7a86f41f660b0f58b5a6c5b22cd672 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:58:41 +0000 Subject: [PATCH 35/45] Bump Azure.Identity (#42802) Bumps the dotnet group in /docs/azure/sdk/snippets/logging with 1 update: [Azure.Identity](https://github.com/Azure/azure-sdk-for-net). Updates `Azure.Identity` from 1.12.0 to 1.12.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.12.0...Azure.Identity_1.12.1) --- updated-dependencies: - dependency-name: Azure.Identity dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- 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 bb39ba9cbb4da..a8ec5113750a3 100644 --- a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj +++ b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj @@ -9,7 +9,7 @@ - + From 7d8d83730f7224d56400da8142b1742ae2fedd83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:00:24 +0000 Subject: [PATCH 36/45] Bump xunit (#42803) Bumps the dotnet group in /docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject with 1 update: [xunit](https://github.com/xunit/xunit). Updates `xunit` from 2.9.1 to 2.9.2 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2) --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../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 77be94b040b1b..eb969df041dfe 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 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From c0f54c6b93dc2074ad98976cf1681dd03df9455a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:04:09 +0000 Subject: [PATCH 37/45] Bump xunit (#42804) Bumps the dotnet group in /docs/core/testing/snippets/order-unit-tests/csharp with 1 update: [xunit](https://github.com/xunit/xunit). Updates `xunit` from 2.9.1 to 2.9.2 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2) --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dotnet ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From eecc5da51fd9a94eec5f6bf989632411df731392 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:17:28 -0700 Subject: [PATCH 38/45] Fix build suggestions (#42787) --- docs/ai/conceptual/understanding-tokens.md | 2 +- docs/ai/how-to/app-service-db-auth.md | 10 +- docs/ai/how-to/use-redis-for-memory.md | 2 +- docs/ai/semantic-kernel-dotnet-overview.md | 20 +- docs/azure/includes/dotnet-all.md | 14 +- ...unit-testing-platform-extensions-output.md | 2 +- .../security-protocols-version-1-0.md | 70 ++++--- ...rvices-protocols-interoperability-guide.md | 2 +- .../httpclient-migrate-from-httpwebrequest.md | 192 +++++++++--------- 9 files changed, 156 insertions(+), 158 deletions(-) diff --git a/docs/ai/conceptual/understanding-tokens.md b/docs/ai/conceptual/understanding-tokens.md index 5bd95ed09b88c..910d5ccd93206 100644 --- a/docs/ai/conceptual/understanding-tokens.md +++ b/docs/ai/conceptual/understanding-tokens.md @@ -81,7 +81,7 @@ As training continues, the model adds any new tokens in the training text to its The semantic relationships between the tokens can be analyzed by using these token ID sequences. Multi-valued numeric vectors, known as [embeddings](embeddings.md), are used to represent these relationships. An embedding is assigned to each token based on how commonly it's used together with, or in similar contexts to, the other tokens. -After it's trained, a model can calculate an embedding for text that contains multiple tokens. The model tokenizes the text, then calculates an overall embeddings value based on the learned embeddings of the individual tokens. This technique can be used for semantic document searches or adding [memories](/semantic-kernel/memories/) to an AI. +After it's trained, a model can calculate an embedding for text that contains multiple tokens. The model tokenizes the text, then calculates an overall embeddings value based on the learned embeddings of the individual tokens. This technique can be used for semantic document searches or adding [vector stores](/semantic-kernel/concepts/vector-store-connectors/) to an AI. During output generation, the model predicts a vector value for the next token in the sequence. The model then selects the next token from it's vocabulary based on this vector value. In practice, the model calculates multiple vectors by using various elements of the previous tokens' embeddings. The model then evaluates all potential tokens from these vectors and selects the most probable one to continue the sequence. diff --git a/docs/ai/how-to/app-service-db-auth.md b/docs/ai/how-to/app-service-db-auth.md index e516d2b5d812e..0fe3c2996b55a 100644 --- a/docs/ai/how-to/app-service-db-auth.md +++ b/docs/ai/how-to/app-service-db-auth.md @@ -13,7 +13,7 @@ zone_pivot_groups: azure-interface This article demonstrates how to manage the connection between your App Service .NET application and a [vector database solution](../conceptual/vector-databases.md). It covers using Microsoft Entra managed identities for supported services and securely storing connection strings for others. -By adding a vector database to your application, you can enable [semantic memories](/semantic-kernel/memories/) for your AI. The [Semantic Kernel SDK](/semantic-kernel/overview) for .NET enables you to easily implement memory storage and recall using your preferred vector database solution. +By adding a vector database to your application, you can enable [semantic memories or *vector stores*]([vector stores](/semantic-kernel/concepts/vector-store-connectors/)) for your AI. The [Semantic Kernel SDK](/semantic-kernel/overview) for .NET enables you to easily implement memory storage and recall using your preferred vector database solution. ## Prerequisites @@ -22,7 +22,7 @@ By adding a vector database to your application, you can enable [semantic memori * [`Microsoft.SemanticKernel` NuGet package](https://www.nuget.org/packages/Microsoft.SemanticKernel) * [`Microsoft.SemanticKernel.Plugins.Memory` NuGet package](https://www.nuget.org/packages/Microsoft.SemanticKernel.Plugins.Memory) * [Create and deploy a .NET application to App Service](/azure/app-service/quickstart-dotnetcore) -* [Create and deploy a vector database solution](/semantic-kernel/memories/vector-db) +* [Create and deploy a vector database solution](/semantic-kernel/concepts/ai-services/integrations#vector-database-solutions) ## Use Microsoft Entra managed identity for authentication @@ -190,7 +190,7 @@ Before following these steps, retrieve a connection string for your vector datab > [!IMPORTANT] > Before following these steps, ensure you have [created a Key Vault using the Azure CLI](/azure/key-vault/general/quick-create-cli). -1. Grant your user account permissions to your key vault through Role-Based Access Control (RBAC), assign a role using the Azure CLI command [`az role assignment create`](/cli/azure/role/assignment?view=azure-cli-latest#az-role-assignment-create): +1. Grant your user account permissions to your key vault through Role-Based Access Control (RBAC), assign a role using the Azure CLI command [`az role assignment create`](/cli/azure/role/assignment#az-role-assignment-create): ```azurecli az role assignment create \ @@ -199,7 +199,7 @@ Before following these steps, retrieve a connection string for your vector datab --scope "/subscriptions//resourceGroups//providers/Microsoft.KeyVault/vaults/" ``` -1. Add the connection string to Key Vault using the Azure CLI command [`az keyvault secret set`](/cli/azure/keyvault/secret?view=azure-cli-latest#az-keyvault-secret-set): +1. Add the connection string to Key Vault using the Azure CLI command [`az keyvault secret set`](/cli/azure/keyvault/secret#az-keyvault-secret-set): ```azurecli az keyvault secret set \ @@ -271,7 +271,7 @@ Before following these steps, retrieve a connection string for your vector datab :::zone target="docs" pivot="azure-cli" -Add or edit an app setting with the Azure CLI command [`az webapp config connection-string set`](/cli/azure/webapp/config/connection-string?view=azure-cli-latest#az-webapp-config-connection-string-set): +Add or edit an app setting with the Azure CLI command [`az webapp config connection-string set`](/cli/azure/webapp/config/connection-string#az-webapp-config-connection-string-set): ```azurecli az webapp config connection-string set \ diff --git a/docs/ai/how-to/use-redis-for-memory.md b/docs/ai/how-to/use-redis-for-memory.md index f8208cd01da00..fd1956caa838d 100644 --- a/docs/ai/how-to/use-redis-for-memory.md +++ b/docs/ai/how-to/use-redis-for-memory.md @@ -13,7 +13,7 @@ ms.date: 04/17/2024 This article demonstrates how to integrate a Redis database with the RediSearch module into the [Semantic Kernel SDK](/semantic-kernel/overview) and use it for memory storage and retrieval. -[Memories](/semantic-kernel/memories/) represent text information that has been stored alongside a precomputed embedding vector for the whole text. When an LLM is prompted to recall a memory, it uses these precomputed embeddings to efficiently evaluate whether a memory is relevant to the prompt. After the LLM finds a matching memory, it uses the memory's text information as context for the next steps in the prompt completion. +[Vector stores](/semantic-kernel/concepts/vector-store-connectors/) represent text information that has been stored alongside a precomputed embedding vector for the whole text. When an LLM is prompted to recall a memory, it uses these precomputed embeddings to efficiently evaluate whether a memory is relevant to the prompt. After the LLM finds a matching memory, it uses the memory's text information as context for the next steps in the prompt completion. Memory storage that's added to the Semantic Kernel SDK provides a broader context for your requests. It also enables you to store data in the same manner as you store a traditional database, but query it by using natural language. diff --git a/docs/ai/semantic-kernel-dotnet-overview.md b/docs/ai/semantic-kernel-dotnet-overview.md index 0e1cdd6c8e669..b0e25dfc6200a 100644 --- a/docs/ai/semantic-kernel-dotnet-overview.md +++ b/docs/ai/semantic-kernel-dotnet-overview.md @@ -15,7 +15,7 @@ In this article, you explore [Semantic Kernel](/semantic-kernel/overview) core c - How to add semantic kernel to your project - Semantic Kernel core concepts -The sections ahead serve as an introductory overview of Semantic Kernel specifically in the context of .NET. For more comprehensive information and training about Semantic Kernel, see the following resources: +This article serves as an introductory overview of Semantic Kernel specifically in the context of .NET. For more comprehensive information and training about Semantic Kernel, see the following resources: - [Semantic Kernel documentation](/semantic-kernel/overview) - [Semantic Kernel training](/training/paths/develop-ai-agents-azure-open-ai-semantic-kernel-sdk/) @@ -115,7 +115,7 @@ string skPrompt = @"Summarize the provided unstructured text in a sentence that // Register the function kernel.CreateSemanticFunction( - promptTemplate: skPrompt, + promptTemplate: skPrompt, functionName: "SummarizeText", pluginName: "SemanticFunctions" ); @@ -132,9 +132,9 @@ The following code snippet defines and registers a native function: public class NativeFunctions { [SKFunction, Description("Retrieve content from local file")] - public async Task RetrieveLocalFile(string fileName, int maxSize = 5000) + public async Task RetrieveLocalFile(string fileName, int maxSize = 5000) { - string content = await File.ReadAllTextAsync(fileName); + string content = await File.ReadAllTextAsync(fileName); if (content.Length <= maxSize) return content; return content.Substring(0, maxSize); } @@ -159,7 +159,7 @@ Consider the following pseudo-code snippet: // Configure and create the plan string planDefinition = "Read content from a local file and summarize the content."; -SequentialPlanner sequentialPlanner = new SequentialPlanner(kernel); +SequentialPlanner sequentialPlanner = new SequentialPlanner(kernel); string assetsFolder = @"../../assets"; string fileName = Path.Combine(assetsFolder,"docs","06_SemanticKernel", "aci_documentation.txt"); @@ -178,21 +178,21 @@ The preceding code creates an executable, sequential plan to read content from a ### Memory -Semantic Kernel's [Memory](/semantic-kernel/memories) provides abstractions over embedding models, vector databases, and other data to simplify context management for AI applications. Memory is agnostic to the underlying LLM or Vector DB, offering a uniform developer experience. You can configure memory features to store data in a variety of sources or service, including Azure AI Search, Azure Cache for Redis, and more. +Semantic Kernel's [Vector stores](/semantic-kernel/concepts/vector-store-connectors/) provide abstractions over embedding models, vector databases, and other data to simplify context management for AI applications. Vector stores are agnostic to the underlying LLM or Vector database, offering a uniform developer experience. You can configure memory features to store data in a variety of sources or service, including Azure AI Search and Azure Cache for Redis. Consider the following code snippet: ```csharp var facts = new Dictionary(); facts.Add( - "Azure Machine Learning; https://docs.microsoft.com/en-us/azure/machine-learning/", - @"Azure Machine Learning is a cloud service for accelerating and - managing the machine learning project lifecycle. Machine learning professionals, + "Azure Machine Learning; https://learn.microsoft.com/en-us/azure/machine-learning/", + @"Azure Machine Learning is a cloud service for accelerating and + managing the machine learning project lifecycle. Machine learning professionals, data scientists, and engineers can use it in their day-to-day workflows" ); facts.Add( - "Azure SQL Service; https://docs.microsoft.com/en-us/azure/azure-sql/", + "Azure SQL Service; https://learn.microsoft.com/en-us/azure/azure-sql/", @"Azure SQL is a family of managed, secure, and intelligent products that use the SQL Server database engine in the Azure cloud." ); diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 9f6287c5686cf..7ab3976fcaa71 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -378,7 +378,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.42.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.42.0)
NuGet [3.44.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.44.0-preview.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.42.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | +| Cosmos DB | NuGet [3.42.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.42.0)
NuGet [3.44.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.44.0-preview.1) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.42.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) | @@ -394,15 +394,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) | @@ -430,7 +430,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/) | @@ -441,7 +441,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.1-alpha.1](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.1-alpha.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.1-alpha.1](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) | +| Storage - Files Data Lake | NuGet [2.0.1-alpha.1](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.1-alpha.1) | [docs](/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.1-alpha.1](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) | @@ -466,7 +466,7 @@ | 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)
NuGet [3.1.169-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/3.1.169-preview) | | | | Functions extension for Cosmos DB | NuGet [4.8.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.8.1) | | GitHub [4.8.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.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.2) | [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.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.2) | [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.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.2.0-rc.2) | | | | 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/core/testing/unit-testing-platform-extensions-output.md b/docs/core/testing/unit-testing-platform-extensions-output.md index 096113d7761ff..17934b9c383b5 100644 --- a/docs/core/testing/unit-testing-platform-extensions-output.md +++ b/docs/core/testing/unit-testing-platform-extensions-output.md @@ -28,7 +28,7 @@ There are two output modes available: ### ANSI -Internally there are 2 different output formatters that are auto-detecting the terminal capability to handle [ANSI escape codes](https://learn.microsoft.com/windows/console/console-virtual-terminal-sequences). +Internally there are 2 different output formatters that are auto-detecting the terminal capability to handle [ANSI escape codes](/windows/console/console-virtual-terminal-sequences). - The ANSI formatter is used when the terminal is capable of rendering the escape codes. - The non-ANSI formatter is used when the terminal cannot handle the escape codes, or when `--no-ansi` is used, or when output is redirected. diff --git a/docs/framework/wcf/feature-details/security-protocols-version-1-0.md b/docs/framework/wcf/feature-details/security-protocols-version-1-0.md index 121a98e509b39..1e09370877931 100644 --- a/docs/framework/wcf/feature-details/security-protocols-version-1-0.md +++ b/docs/framework/wcf/feature-details/security-protocols-version-1-0.md @@ -24,35 +24,33 @@ The Web Services Security Protocols provide Web services security mechanisms tha |Application Note:

Using WS-Trust for TLS Handshake|To be published| |Application Note:

Using WS-Trust for SPNEGO|To be published| |Application Note:

Web Services Addressing Endpoint References And Identity|To be published| -|WS-SecurityPolicy 1.1

(2005/07)|

as amended by [errata](https://lists.oasis-open.org/archives/ws-sx/200512/msg00017.html) submitted to OASIS WS-SX Technical Committee | +|WS-SecurityPolicy 1.1

(2005/07)|

as amended by errata submitted to OASIS WS-SX Technical Committee | WCF, version 1, provides 17 authentication modes that can be used as the basis for Web services security configuration. Each mode is optimized for a common set of deployment requirements, such as: - Credentials used to authenticate client and service. - - Message or transport security protection mechanisms. - - Message exchange patterns. -|Authentication Mode|Client Authentication|Server Authentication|Mode| -|-------------------------|---------------------------|---------------------------|----------| -|UserNameOverTransport|User name/password|X509|Transport| -|CertificateOverTransport|X509|X509|Transport| -|KerberosOverTransport|Windows|X509|Transport| -|IssuedTokenOverTransport|Federated|X509|Transport| -|SspiNegotiatedOverTransport|Windows Sspi Negotiated|Windows Sspi Negotiated|Transport| -|AnonymousForCertificate|None|X509|Message| -|UserNameForCertificate|User name/password|X509|Message| -|MutualCertificate|X509|X509|Message| -|MutualCertificateDuplex|X509|X509|Message| -|IssuedTokenForCertificate|Federated|X509|Message| -|Kerberos|Windows|Windows|Message| -|IssuedToken|Federated|Federated|Message| -|SspiNegotiated|Windows Sspi Negotiated|Windows Sspi Negotiated|Message| -|AnonymousForSslNegotiated|None|X509, TLS-Nego|Message| -|UserNameForSslNegotiated|User name/password|X509, TLS-Nego|Message| -|MutualSslNegotiated|X509|X509, TLS-Nego|Message| -|IssuedTokenForSslNegotiated|Federated|X509, TLS-Nego|Message| +| Authentication Mode | Client Authentication | Server Authentication | Mode | +|-----------------------------|-------------------------|-------------------------|-----------| +| UserNameOverTransport | User name/password | X509 | Transport | +| CertificateOverTransport | X509 | X509 | Transport | +| KerberosOverTransport | Windows | X509 | Transport | +| IssuedTokenOverTransport | Federated | X509 | Transport | +| SspiNegotiatedOverTransport | Windows Sspi Negotiated | Windows Sspi Negotiated | Transport | +| AnonymousForCertificate | None | X509 | Message | +| UserNameForCertificate | User name/password | X509 | Message | +| MutualCertificate | X509 | X509 | Message | +| MutualCertificateDuplex | X509 | X509 | Message | +| IssuedTokenForCertificate | Federated | X509 | Message | +| Kerberos | Windows | Windows | Message | +| IssuedToken | Federated | Federated | Message | +| SspiNegotiated | Windows Sspi Negotiated | Windows Sspi Negotiated | Message | +| AnonymousForSslNegotiated | None | X509, TLS-Nego | Message | +| UserNameForSslNegotiated | User name/password | X509, TLS-Nego | Message | +| MutualSslNegotiated | X509 | X509, TLS-Nego | Message | +| IssuedTokenForSslNegotiated | Federated | X509, TLS-Nego | Message | Endpoints using such authentication modes can express their security requirements using WS-SecurityPolicy (WS-SP). This document describes the structure of security header and infrastructure messages for each authentication mode and provides examples of policies and messages. @@ -62,20 +60,20 @@ The Web Services Security Protocols provide Web services security mechanisms tha The following prefixes and namespaces are used in this document. -|Prefix|Namespace| -|------------|---------------| -|s|| -|sp|`https://schemas.xmlsoap.org/ws/2005/07/securitypolicy/`| -|a|| -|wsse|TBD – OASIS WSS 1.0 URI| -|wsse11|TBD – OASIS WSS 1.1 URI| -|wsu|TBD – OASIS WSS 1.0 Utility URI| -|ds|TBD – W3C XMLDSig URI| -|wst|TBD – WS-Trust 2005/02 URI| -|wssc|TBD – WS-SecureConversation 2005/02 URI| -|wsaw|TBD - WS-Addressing policy namespace| -|wsp|`https://schemas.xmlsoap.org/ws/2004/09/policy`| -|mssp|`https://schemas.xmlsoap.org/ws/2005/07/securitypolicy`| +| Prefix | Namespace | +|--------|----------------------------------------------------------| +| s | | +| sp | `https://schemas.xmlsoap.org/ws/2005/07/securitypolicy/` | +| a | | +| wsse | TBD – OASIS WSS 1.0 URI | +| wsse11 | TBD – OASIS WSS 1.1 URI | +| wsu | TBD – OASIS WSS 1.0 Utility URI | +| ds | TBD – W3C XMLDSig URI | +| wst | TBD – WS-Trust 2005/02 URI | +| wssc | TBD – WS-SecureConversation 2005/02 URI | +| wsaw | TBD - WS-Addressing policy namespace | +| wsp | `https://schemas.xmlsoap.org/ws/2004/09/policy` | +| mssp | `https://schemas.xmlsoap.org/ws/2005/07/securitypolicy` | ## 1. Token Profiles diff --git a/docs/framework/wcf/feature-details/web-services-protocols-interoperability-guide.md b/docs/framework/wcf/feature-details/web-services-protocols-interoperability-guide.md index 7a83989a0e856..4798841eddeaa 100644 --- a/docs/framework/wcf/feature-details/web-services-protocols-interoperability-guide.md +++ b/docs/framework/wcf/feature-details/web-services-protocols-interoperability-guide.md @@ -61,7 +61,7 @@ Infrastructure protocols interoperability is provided by the WS-* specifications |WSS: SAML 1.1 Token Profile 1.1|[Web Services Security SAML Token Profile 1.1](http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-os-SAMLTokenProfile.pdf)| |WS-Secure Conversation|[Web Services Secure Conversation Language](http://specs.xmlsoap.org/ws/2005/02/sc/ws-secureconversation.pdf)| |WS-Trust 1.4|[Web Services Trust Language](https://docs.oasis-open.org/ws-sx/ws-trust/200802)| -|WS-SecurityPolicy 2005/07|[Web Services Secure Conversation Language](http://specs.xmlsoap.org/ws/2005/02/sc/ws-secureconversation.pdf)

As amended by errata submitted to OASIS WS-SX Technical Committee.

[ws-sx message](https://lists.oasis-open.org/archives/ws-sx/200512/msg00017.html)| +|WS-SecurityPolicy 2005/07|[Web Services Secure Conversation Language](http://specs.xmlsoap.org/ws/2005/02/sc/ws-secureconversation.pdf)

As amended by errata submitted to OASIS WS-SX Technical Committee.| |WS-ReliableMessaging 1.1|[Reliable Messaging Protocol version 1.1](reliable-messaging-protocol-version-1-1.md)| supports the specifications in the following table. diff --git a/docs/fundamentals/networking/http/httpclient-migrate-from-httpwebrequest.md b/docs/fundamentals/networking/http/httpclient-migrate-from-httpwebrequest.md index 7fde64ea5ee86..7a4d88185b689 100644 --- a/docs/fundamentals/networking/http/httpclient-migrate-from-httpwebrequest.md +++ b/docs/fundamentals/networking/http/httpclient-migrate-from-httpwebrequest.md @@ -1,10 +1,10 @@ --- title: Migrate from HttpWebRequest -description: Guidance document for migrating from HttpWebRequest to HttpClient. +description: Learn how to migrate from HttpWebRequest to HttpClient. author: liveans ms.author: aaksoy ms.date: 07/25/2024 -helpviewer_keywords: +helpviewer_keywords: - "protocols, HTTP" - "migration, HTTP" - "HTTP" @@ -15,14 +15,14 @@ helpviewer_keywords: - "Internet, HTTP" --- -# HttpWebRequest to HttpClient Migration Guide +# HttpWebRequest to HttpClient migration guide -This document aims to guide developers through the process of migrating from , , and to . The migration is necessary due to the obsolescence of the older APIs and the numerous benefits offered by , including improved performance, better resource management, and a more modern and flexible API design. By following the steps outlined in this document, developers will be able to transition their codebases smoothly and take full advantage of the features provided by . +This article aims to guide developers through the process of migrating from , , and to . The migration is necessary due to the obsolescence of the older APIs and the numerous benefits offered by , including improved performance, better resource management, and a more modern and flexible API design. By following the steps outlined in this document, developers will be able to transition their codebases smoothly and take full advantage of the features provided by . > [!WARNING] -> Migrating from `HttpWebRequest`, `ServicePoint`, and `ServicePointManager` to `HttpClient` is not just a "nice to have" performance improvement. It's crucial to understand that the existing `WebRequest` logic's performance is likely to degrade significantly once you move to .NET Core. This is because `WebRequest` is maintained as a minimal compatibility layer, which means it lacks many optimizations, such as connection reuse in numerous cases. Therefore, transitioning to `HttpClient` is essential to ensure your application's performance and resource management are up to modern standards. +> Migrating from `HttpWebRequest`, `ServicePoint`, and `ServicePointManager` to `HttpClient` is not just a "nice to have" performance improvement. It's crucial to understand that the existing `WebRequest` logic's performance is likely to degrade significantly once you move to .NET (Core). That's because `WebRequest` is maintained as a minimal compatibility layer, which means it lacks many optimizations, such as connection reuse in numerous cases. Therefore, transitioning to `HttpClient` is essential to ensure your application's performance and resource management are up to modern standards. -## Migrating from to +## Migrate from to Let's start with some examples: @@ -66,122 +66,122 @@ HttpClient client = new(); using HttpResponseMessage responseMessage = await client.PostAsync(uri, new StringContent("Hello World!")); ``` -## HttpWebRequest to HttpClient, SocketsHttpHandler Migration Guide +## HttpWebRequest to HttpClient, SocketsHttpHandler migration guide | Old API | New API | Notes | -|---------|----------------------|-------| -| `Accept` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | -| `Address` | | See: [Example: Fetch Redirected URI](#example-fetch-redirected-uri). | -| `AllowAutoRedirect` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `AllowReadStreamBuffering` | No direct equivalent API | See: [Usage of Buffering Properties](#usage-of-buffering-properties). | -| `AllowWriteStreamBuffering` | No direct equivalent API | See: [Usage of Buffering Properties](#usage-of-buffering-properties). | -| `AuthenticationLevel` | No direct equivalent API | See: [Example: Enabling Mutual Authentication](#example-enabling-mutual-authentication). | -| `AutomaticDecompression` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `CachePolicy` | No direct equivalent API | See: [Example: Apply CachePolicy Headers](#example-apply-cachepolicy-headers). | -| `ClientCertificates` | . | See: [Usage of Certificate Related Properties in HttpClient](#usage-of-certificate-and-tls-related-properties-in-httpclient). | -| `Connection` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | +|------------------------------------------|---------|-------| +| `Accept` | | [Example: Set Request Headers](#example-set-common-request-headers). | +| `Address` | | [Example: Fetch Redirected URI](#example-fetch-redirected-uri). | +| `AllowAutoRedirect` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `AllowReadStreamBuffering` | No direct equivalent API | [Usage of Buffering Properties](#usage-of-buffering-properties). | +| `AllowWriteStreamBuffering` | No direct equivalent API | [Usage of Buffering Properties](#usage-of-buffering-properties). | +| `AuthenticationLevel` | No direct equivalent API | [Example: Enabling Mutual Authentication](#example-enable-mutual-authentication). | +| `AutomaticDecompression` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `CachePolicy` | No direct equivalent API | [Example: Apply CachePolicy Headers](#example-apply-cachepolicy-headers). | +| `ClientCertificates` | . | [Usage of Certificate Related Properties in HttpClient](#usage-of-certificate-and-tls-related-properties-in-httpclient). | +| `Connection` | | [Example: Set Request Headers](#example-set-common-request-headers). | | `ConnectionGroupName` | No equivalent API | No workaround | -| `ContentLength` | | See: [Example: Set Content Headers](#example-set-content-headers). | -| `ContentType` | | See: [Example: Set Content Headers](#example-set-content-headers). | +| `ContentLength` | | [Example: Set Content Headers](#example-set-content-headers). | +| `ContentType` | | [Example: Set Content Headers](#example-set-content-headers). | | `ContinueDelegate` | No equivalent API | No workaround. | -| `ContinueTimeout` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `CookieContainer` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `Credentials` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `Date` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | -| `DefaultCachePolicy` | No direct equivalent API | See: [Example: Apply CachePolicy Headers](#example-apply-cachepolicy-headers). | -| `DefaultMaximumErrorResponseLength` | No direct equivalent API | See: [Example: Set MaximumErrorResponseLength in HttpClient](#example-set-maximumerrorresponselength-in-httpclient). | +| `ContinueTimeout` | | [Example: Set SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `CookieContainer` | | [Example: Set SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `Credentials` | | [Example: Set SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `Date` | | [Example: Set Request Headers](#example-set-common-request-headers). | +| `DefaultCachePolicy` | No direct equivalent API | [Example: Apply CachePolicy Headers](#example-apply-cachepolicy-headers). | +| `DefaultMaximumErrorResponseLength` | No direct equivalent API | [Example: Set MaximumErrorResponseLength in HttpClient](#example-set-maximumerrorresponselength-in-httpclient). | | `DefaultMaximumResponseHeadersLength` | No equivalent API | can be used instead. | | `DefaultWebProxy` | No equivalent API | can be used instead. | -| `Expect` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | +| `Expect` | | [Example: Set Request Headers](#example-set-common-request-headers). | | `HaveResponse` | No equivalent API | Implied by having an `HttpResponseMessage` instance. | -| `Headers` | | See: [Example: Set Request Headers](#example-set-custom-request-headers). | -| `Host` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | -| `IfModifiedSince` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | -| `ImpersonationLevel` | No direct equivalent API | See: [Example: Change ImpersonationLevel](#example-change-impersonationlevel). | -| `KeepAlive` | No direct equivalent API | See: [Example: Set Request Headers](#example-set-custom-request-headers). | -| `MaximumAutomaticRedirections` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `MaximumResponseHeadersLength` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `MediaType` | No direct equivalent API | See: [Example: Set Content Headers](#example-set-content-headers). | -| `Method` | | See: [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | +| `Headers` | | [Example: Set Request Headers](#example-set-custom-request-headers). | +| `Host` | | [Example: Set Request Headers](#example-set-common-request-headers). | +| `IfModifiedSince` | | [Example: Set Request Headers](#example-set-common-request-headers). | +| `ImpersonationLevel` | No direct equivalent API | [Example: Change ImpersonationLevel](#example-change-impersonationlevel). | +| `KeepAlive` | No direct equivalent API | [Example: Set Request Headers](#example-set-custom-request-headers). | +| `MaximumAutomaticRedirections` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `MaximumResponseHeadersLength` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `MediaType` | No direct equivalent API | [Example: Set Content Headers](#example-set-content-headers). | +| `Method` | | [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | | `Pipelined` | No equivalent API | `HttpClient` doesn't support pipelining. | | `PreAuthenticate` | | | -| `ProtocolVersion` | `HttpRequestMessage.Version` | See: [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | -| `Proxy` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `ReadWriteTimeout` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | -| `Referer` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | -| `RequestUri` | | See: [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | -| `SendChunked` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | -| `ServerCertificateValidationCallback` | . | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | +| `ProtocolVersion` | `HttpRequestMessage.Version` | [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | +| `Proxy` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `ReadWriteTimeout` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| `Referer` | | [Example: Set Request Headers](#example-set-common-request-headers). | +| `RequestUri` | | [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | +| `SendChunked` | | [Example: Set Request Headers](#example-set-common-request-headers). | +| `ServerCertificateValidationCallback` | . | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | | `ServicePoint` | No equivalent API | `ServicePoint` is not part of `HttpClient`. | | `SupportsCookieContainer` | No equivalent API | This is always `true` for `HttpClient`. | | `Timeout` | | | -| `TransferEncoding` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | +| `TransferEncoding` | | [Example: Set Request Headers](#example-set-common-request-headers). | | `UnsafeAuthenticatedConnectionSharing` | No equivalent API | No workaround | -| `UseDefaultCredentials` | No direct equivalent API | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `UserAgent` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | +| `UseDefaultCredentials` | No direct equivalent API | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `UserAgent` | | [Example: Set Request Headers](#example-set-common-request-headers). | -## Migrating ServicePoint(Manager) usage +## Migrate ServicePoint(Manager) usage -Developers should be aware that `ServicePointManager` is a static class, meaning that any changes made to its properties will have a global effect on all newly created `ServicePoint` objects within the application. For example, modifying a property like `ConnectionLimit` or `Expect100Continue` will impact every new ServicePoint instance. +You should be aware that `ServicePointManager` is a static class, meaning that any changes made to its properties will have a global effect on all newly created `ServicePoint` objects within the application. For example, when you modify a property like `ConnectionLimit` or `Expect100Continue`, it impacts every new ServicePoint instance. > [!WARNING] > In modern .NET, `HttpClient` does not take into account any configurations set on `ServicePointManager`. -### Properties Mapping +### properties mapping | Old API | New API | Notes | -|---------|----------------------|-------| -| `CheckCertificateRevocationList` | . | See: [Example: Enabling CRL Check with SocketsHttpHandler](#example-check-certificate-revocation-list-with-socketshttphandler). | -| `DefaultConnectionLimit` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `DnsRefreshTimeout` | No equivalent API | See: [Example: Enabling Dns Round Robin](#example-enabling-dns-round-robin). | -| `EnableDnsRoundRobin` | No equivalent API | See: [Example: Enabling Dns Round Robin](#example-enabling-dns-round-robin). | -| `EncryptionPolicy` | . | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `Expect100Continue` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | -| `MaxServicePointIdleTime` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | +|-----------------------------------------------|---------|-------| +| `CheckCertificateRevocationList` | . | [Example: Enabling CRL Check with SocketsHttpHandler](#example-check-certificate-revocation-list-with-socketshttphandler). | +| `DefaultConnectionLimit` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `DnsRefreshTimeout` | No equivalent API | [Example: Enabling Dns Round Robin](#example-enable-dns-round-robin). | +| `EnableDnsRoundRobin` | No equivalent API | [Example: Enabling Dns Round Robin](#example-enable-dns-round-robin). | +| `EncryptionPolicy` | . | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `Expect100Continue` | | [Example: Set Request Headers](#example-set-common-request-headers). | +| `MaxServicePointIdleTime` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | | `MaxServicePoints` | No equivalent API | `ServicePoint` is not part of `HttpClient`. | -| `ReusePort` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | -| `SecurityProtocol` | . | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | +| `ReusePort` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| `SecurityProtocol` | . | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | | `ServerCertificateValidationCallback` | . | Both of them are | -| `UseNagleAlgorithm` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| `UseNagleAlgorithm` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | > [!WARNING] > In modern .NET, the default values for the `UseNagleAlgorithm` and `Expect100Continue` properties are set to `false`. These values were `true` by default in .NET Framework. -### Method Mapping +### method mapping -| Old API | New API | Notes | -|---------|----------------------|-------| -| `FindServicePoint` | No equivalent API | No workaround | -| `SetTcpKeepAlive` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| Old API | New API | Notes | +|-----------------------------------------------|-------------------|---------------| +| `FindServicePoint` | No equivalent API | No workaround | +| `SetTcpKeepAlive` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | -### Properties Mapping +### properties mapping | Old API | New API | Notes | -|---------|----------------------|-------| +|----------------------------------------|---------|-------| | `Address` | `HttpRequestMessage.RequestUri` | This is request uri, this information can be found under `HttpRequestMessage`. | -| `BindIPEndPointDelegate` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | -| `Certificate` | No direct equivalent API | This information can be fetched from `RemoteCertificateValidationCallback`. See: [Example: Fetch Certificate](#example-fetch-certificate). | -| `ClientCertificate` | No equivalent API | See: [Example: Enabling Mutual Authentication](#example-enabling-mutual-authentication). | +| `BindIPEndPointDelegate` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| `Certificate` | No direct equivalent API | This information can be fetched from `RemoteCertificateValidationCallback`. [Example: Fetch Certificate](#example-fetch-certificate). | +| `ClientCertificate` | No equivalent API | [Example: Enabling Mutual Authentication](#example-enable-mutual-authentication). | | `ConnectionLeaseTimeout` | `SocketsHttpHandler.PooledConnectionLifetime` | Equivalent setting in | -| `ConnectionLimit` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | +| `ConnectionLimit` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | | `ConnectionName` | No equivalent API | No workaround | -| `CurrentConnections` | No equivalent API | See [Networking telemetry in .NET docs](https://learn.microsoft.com/dotnet/fundamentals/networking/telemetry/overview). | -| `Expect100Continue` | | See: [Example: Set Request Headers](#example-set-common-request-headers). | +| `CurrentConnections` | No equivalent API | See [Networking telemetry in .NET](../telemetry/overview.md). | +| `Expect100Continue` | | [Example: Set Request Headers](#example-set-common-request-headers). | | `IdleSince` | No equivalent API | No workaround | -| `MaxIdleTime` | | See: [Example: Setting SocketsHttpHandler Properties](#example-setting-socketshttphandler-properties). | -| `ProtocolVersion` | `HttpRequestMessage.Version` | See: [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | -| `ReceiveBufferSize` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| `MaxIdleTime` | | [Example: Setting SocketsHttpHandler Properties](#example-set-socketshttphandler-properties). | +| `ProtocolVersion` | `HttpRequestMessage.Version` | [Example: Usage of HttpRequestMessage properties](#example-usage-of-httprequestmessage-properties). | +| `ReceiveBufferSize` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | | `SupportsPipelining` | No equivalent API | `HttpClient` doesn't support pipelining. | -| `UseNagleAlgorithm` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| `UseNagleAlgorithm` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | -### Method Mapping +### method mapping | Old API | New API | Notes | |---------|----------------------|-------| | `CloseConnectionGroup` | No equivalent | No workaround | -| `SetTcpKeepAlive` | No direct equivalent API | See: [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | +| `SetTcpKeepAlive` | No direct equivalent API | [Usage of SocketsHttpHandler and ConnectCallback](#usage-of-socketshttphandler-and-connectcallback). | -## Usage of HttpClient and HttpRequestMessage Properties +## Usage of HttpClient and HttpRequestMessage properties When working with HttpClient in .NET, you have access to a variety of properties that allow you to configure and customize HTTP requests and responses. Understanding these properties can help you make the most of HttpClient and ensure that your application communicates efficiently and securely with web services. @@ -205,7 +205,7 @@ using var response = await client.SendAsync(request); var protocolVersion = response.RequestMessage.Version; // Fetch `ProtocolVersion`. ``` -### Example: Fetch Redirected URI +### Example: Fetch redirected URI Here's an example of how to fetch redirected URI (Same as `HttpWebRequest.Address`): @@ -219,7 +219,7 @@ var redirectedUri = response.RequestMessage.RequestUri; The `ConnectCallback` property in `SocketsHttpHandler` allows developers to customize the process of establishing a TCP connection. This can be useful for scenarios where you need to control DNS resolution or apply specific socket options on the connection. By using `ConnectCallback`, you can intercept and modify the connection process before it is used by `HttpClient`. -### Example: Binding IP Address to Socket +### Example: Bind IP address to socket In the old approach using `HttpWebRequest`, you might have used custom logic to bind a specific IP address to a socket. Here's how you can achieve similar functionality using `HttpClient` and `ConnectCallback`: @@ -263,7 +263,7 @@ var client = new HttpClient(handler); using var response = await client.GetAsync(uri); ``` -### Example: Applying Specific Socket Options +### Example: Apply specific socket options If you need to apply specific socket options, such as enabling TCP keep-alive, you can use `ConnectCallback` to configure the socket before it is used by `HttpClient`. In fact, `ConnectCallback` is more flexible to configure socket options. @@ -316,7 +316,7 @@ var client = new HttpClient(handler); using var response = await client.GetAsync(uri); ``` -### Example: Enabling Dns Round Robin +### Example: Enable DNS round robin DNS Round Robin is a technique used to distribute network traffic across multiple servers by rotating through a list of IP addresses associated with a single domain name. This helps in load balancing and improving the availability of services. When using HttpClient, you can implement DNS Round Robin by manually handling the DNS resolution and rotating through the IP addresses using the ConnectCallback property of SocketsHttpHandler. @@ -342,7 +342,7 @@ You can find implementation of `DnsRoundRobinConnector` [here](https://raw.githu `DnsRoundRobinConnector` Usage: :::code source="../snippets/httpclient/Program.DnsRoundRobin.cs" id="DnsRoundRobinConnect"::: -### Example: Setting SocketsHttpHandler Properties +### Example: Set SocketsHttpHandler properties SocketsHttpHandler is a powerful and flexible handler in .NET that provides advanced configuration options for managing HTTP connections. By setting various properties of SocketsHttpHandler, you can fine-tune the behavior of your HTTP client to meet specific requirements, such as performance optimization, security enhancements, and custom connection handling. @@ -373,7 +373,7 @@ using var response = await client.GetAsync(uri); This functionality is specific to certain platforms and is somewhat outdated. If you need a workaround, you can refer to [this section of the code](https://github.com/dotnet/runtime/blob/171f1a73a9f0fa77464995bcb893a59b9b98bc3d/src/libraries/System.Net.Requests/src/System/Net/HttpWebRequest.cs#L1678-L1684). -## Usage of Certificate and TLS Related Properties in HttpClient +## Usage of Certificate and TLS-related properties in HttpClient When working with `HttpClient`, you may need to handle client certificates for various purposes, such as custom validation of server certificates or fetching the server certificate. `HttpClient` provides several properties and options to manage certificates effectively. @@ -404,7 +404,7 @@ var client = new HttpClient(handler); using var response = await client.GetAsync(uri); ``` -### Example: Fetch Certificate +### Example: Fetch certificate To fetch the certificate from the `RemoteCertificateValidationCallback` in `HttpClient`, you can use the `ServerCertificateCustomValidationCallback` property of `HttpClientHandler` or `SocketsHttpHandler.SslOptions`. This callback allows you to inspect the server's certificate during the SSL/TLS handshake. @@ -437,7 +437,7 @@ var client = new HttpClient(handler); using var response = await client.GetAsync("https://example.com"); ``` -### Example: Enabling Mutual Authentication +### Example: Enable mutual authentication Mutual authentication, also known as two-way SSL or client certificate authentication, is a security process in which both the client and the server authenticate each other. This ensures that both parties are who they claim to be, providing an additional layer of security for sensitive communications. In `HttpClient`, you can enable mutual authentication by configuring the `HttpClientHandler` or `SocketsHttpHandler` to include the client certificate and validate the server's certificate. @@ -475,11 +475,11 @@ using var response = await client.GetAsync(uri); Headers play a crucial role in HTTP communication, providing essential metadata about the request and response. When working with `HttpClient` in .NET, you can set and manage various header properties to control the behavior of your HTTP requests and responses. Understanding how to use these header properties effectively can help you ensure that your application communicates efficiently and securely with web services. -### Set Request Headers +### Set request headers Request headers are used to provide additional information to the server about the request being made. Common use cases include specifying the content type, setting authentication tokens, and adding custom headers. You can set request headers using the `DefaultRequestHeaders` property of `HttpClient` or the Headers property of `HttpRequestMessage`. -#### Example: Set Custom Request Headers +#### Example: Set custom request headers **Setting Default Custom Request Headers in HttpClient** @@ -495,10 +495,10 @@ var request = new HttpRequestMessage(HttpMethod.Get, uri); request.Headers.Add("Custom-Header", "value"); ``` -#### Example: Set Common Request Headers +#### Example: Set common request headers When working with `HttpRequestMessage` in .NET, setting common request headers is essential for providing additional information to the server about the request being made. These headers can include authentication tokens and more. Properly configuring these headers ensures that your HTTP requests are processed correctly by the server. -For a comprehensive list of common properties available in HttpRequestHeaders, you can refer to the [official documentation](https://learn.microsoft.com/dotnet/api/system.net.http.headers.httprequestheaders#properties). +For a comprehensive list of common properties available in , see [Properties](xref:System.Net.Http.Headers.HttpRequestHeaders#Properties). To set common request headers in `HttpRequestMessage`, you can use the `Headers` property of the `HttpRequestMessage` object. This property provides access to the `HttpRequestHeaders` collection, where you can add or modify headers as needed. @@ -520,7 +520,7 @@ var request = new HttpRequestMessage(HttpMethod.Get, uri); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "token"); ``` -### Example: Set Content Headers +### Example: Set content headers Content headers are used to provide additional information about the body of an HTTP request or response. When working with `HttpClient` in .NET, you can set content headers to specify the media type, encoding, and other metadata related to the content being sent or received. Properly configuring content headers ensures that the server and client can correctly interpret and process the content. @@ -554,10 +554,10 @@ And usage example of `TruncatedReadStream`: :::code source="../snippets/httpclient/Program.TruncatedReadStream.cs" id="TruncatedReadStreamUsage"::: -### Example: Apply CachePolicy Headers +### Example: Apply CachePolicy headers > [!WARNING] -> HttpClient does not have built-in logic to cache responses. There is no workaround other than implementing all the caching yourself. Simply setting the headers will not achieve caching. +> `HttpClient` does not have built-in logic to cache responses. There is no workaround other than implementing all the caching yourself. Simply setting the headers will not achieve caching. When migrating from `HttpWebRequest` to `HttpClient`, it's important to correctly handle cache-related headers such as `pragma` and `cache-control`. These headers control how responses are cached and retrieved, ensuring that your application behaves as expected in terms of performance and data freshness. @@ -582,7 +582,7 @@ You can find implementation of `AddCacheControlHeaders` [here](https://raw.githu `AddCacheControlHeaders` Usage: :::code source="../snippets/httpclient/Program.CacheControlHeaders.cs" id="CacheControlProgram"::: -## Usage of Buffering Properties +## Usage of buffering properties When migrating from HttpWebRequest to `HttpClient`, it's important to understand the differences in how these two APIs handle buffering. From 6673ac7e2c97471a11f776621049fca44f53e620 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:43:43 -0700 Subject: [PATCH 39/45] Update package index with latest published versions (#42806) --- docs/azure/includes/dotnet-all.md | 16 ++++++++-------- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 7ab3976fcaa71..d9a7b46846fe7 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -75,7 +75,7 @@ | Monitor Ingestion | NuGet [1.1.2](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.2) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.2/sdk/monitor/Azure.Monitor.Ingestion/) | | Monitor Query | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Monitor.Query/1.5.0) | [docs](/dotnet/api/overview/azure/Monitor.Query-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.5.0/sdk/monitor/Azure.Monitor.Query/) | | OpenAI Assistants | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI.Assistants/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI.Assistants-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI.Assistants_1.0.0-beta.4/sdk/openai/Azure.AI.OpenAI.Assistants/) | -| OpenAI Inference | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/) | +| OpenAI Inference | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0)
NuGet [2.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.OpenAI/2.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/)
GitHub [2.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.1.0-beta.1/sdk/openai/Azure.AI.OpenAI/) | | OpenTelemetry AspNetCore | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.2.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.3.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | | OpenTelemetry Exporter | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.3.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.4.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | | Personalizer | NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Personalizer/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Personalizer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Personalizer_2.0.0-beta.2/sdk/personalizer/Azure.AI.Personalizer/) | @@ -378,7 +378,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.42.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.42.0)
NuGet [3.44.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.44.0-preview.1) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.42.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | +| Cosmos DB | NuGet [3.42.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.42.0)
NuGet [3.44.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.44.0-preview.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.42.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) | @@ -394,15 +394,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) | @@ -430,7 +430,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/) | @@ -441,7 +441,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.1-alpha.1](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.1-alpha.1) | [docs](/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.1-alpha.1](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) | +| Storage - Files Data Lake | NuGet [2.0.1-alpha.1](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.1-alpha.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.1-alpha.1](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) | @@ -466,7 +466,7 @@ | 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)
NuGet [3.1.169-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/3.1.169-preview) | | | | Functions extension for Cosmos DB | NuGet [4.8.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.8.1) | | GitHub [4.8.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.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.2) | [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.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.0.0-rc.2) | [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.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.2.0-rc.2) | | | | 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 ecd0a367233a2..4e61df4c9653b 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -76,7 +76,7 @@ | Monitor Ingestion | NuGet [1.1.2](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.2) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.2/sdk/monitor/Azure.Monitor.Ingestion/) | | Monitor Query | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Monitor.Query/1.5.0) | [docs](/dotnet/api/overview/azure/Monitor.Query-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.5.0/sdk/monitor/Azure.Monitor.Query/) | | OpenAI Assistants | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI.Assistants/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI.Assistants-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI.Assistants_1.0.0-beta.4/sdk/openai/Azure.AI.OpenAI.Assistants/) | -| OpenAI Inference | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/) | +| OpenAI Inference | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0)
NuGet [2.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.OpenAI/2.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/)
GitHub [2.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.1.0-beta.1/sdk/openai/Azure.AI.OpenAI/) | | OpenTelemetry AspNetCore | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.2.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.3.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | | OpenTelemetry Exporter | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.3.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.4.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | | OpenTelemetry LiveMetrics | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.LiveMetrics/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.LiveMetrics-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.LiveMetrics_1.0.0-beta.3/sdk/monitor/Azure.Monitor.OpenTelemetry.LiveMetrics/) | From 3ce2e97b8f06a0d44aec4e4a16c89e310337febb Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 2 Oct 2024 13:13:14 -0400 Subject: [PATCH 40/45] Clarify extension method access (#42808) * Clarify extension method declaration Extension methods can only be declared in top-level type. They can't be declared in nested types. * quick formatting fix * fix a snippet issue * one more time --- ...ment-and-call-a-custom-extension-method.md | 51 +++++----- .../Program.cs | 25 +++++ ...-and-call-a-custom-extension-method.csproj | 10 ++ .../cs/extensionmethods.cs | 92 ++++++------------- .../cs/extensionmethods.csproj | 2 +- 5 files changed, 86 insertions(+), 94 deletions(-) create mode 100644 docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/Program.cs create mode 100644 docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/how-to-implement-and-call-a-custom-extension-method.csproj diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md b/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md index 78a214a868496..837a1a2376c4a 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md @@ -1,42 +1,33 @@ --- title: "How to implement and call a custom extension method" description: Learn how to implement extension methods for any .NET type. Client code can use your methods by adding a reference to a DLL and adding a using directive. -ms.date: 07/20/2015 +ms.date: 10/02/2024 helpviewer_keywords: - "extension methods [C#], implementing and calling" ms.topic: how-to -ms.assetid: 7dab2a56-cf8e-4a47-a444-fe610a02772a --- # How to implement and call a custom extension method (C# Programming Guide) -This topic shows how to implement your own extension methods for any .NET type. Client code can use your extension methods by adding a reference to the DLL that contains them, and adding a [using](../../language-reference/keywords/using-directive.md) directive that specifies the namespace in which the extension methods are defined. - -## To define and call the extension method - -1. Define a static [class](./static-classes-and-static-class-members.md) to contain the extension method. - - The class must be visible to client code. For more information about accessibility rules, see [Access Modifiers](./access-modifiers.md). - -2. Implement the extension method as a static method with at least the same visibility as the containing class. - -3. The first parameter of the method specifies the type that the method operates on; it must be preceded with the [this](../../language-reference/keywords/this.md) modifier. - -4. In the calling code, add a `using` directive to specify the [namespace](../../language-reference/keywords/namespace.md) that contains the extension method class. - -5. Call the methods as if they were instance methods on the type. - - Note that the first parameter is not specified by calling code because it represents the type on which the operator is being applied, and the compiler already knows the type of your object. You only have to provide arguments for parameters 2 through `n`. - -## Example - - The following example implements an extension method named `WordCount` in the `CustomExtensions.StringExtension` class. The method operates on the class, which is specified as the first method parameter. The `CustomExtensions` namespace is imported into the application namespace, and the method is called inside the `Main` method. - - [!code-csharp[csProgGuideExtensionMethods#1](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.cs#1)] - -## .NET Security - - Extension methods present no specific security vulnerabilities. They can never be used to impersonate existing methods on a type, because all name collisions are resolved in favor of the instance or static method defined by the type itself. Extension methods cannot access any private data in the extended class. - +This article shows how to implement your own extension methods for any .NET type. Client code can use your extension methods. Client projects must reference the assembly that contains them. Client projects must add a [using](../../language-reference/keywords/using-directive.md) directive that specifies the namespace in which the extension methods are defined. + +To define and call the extension method: + +1. Define a static [class](./static-classes-and-static-class-members.md) to contain the extension method. The class can't be nested inside another type and must be visible to client code. For more information about accessibility rules, see [Access Modifiers](./access-modifiers.md). +1. Implement the extension method as a static method with at least the same visibility as the containing class. +1. The first parameter of the method specifies the type that the method operates on; it must be preceded with the [this](../../language-reference/keywords/this.md) modifier. +1. In the calling code, add a `using` directive to specify the [namespace](../../language-reference/keywords/namespace.md) that contains the extension method class. +1. Call the methods as instance methods on the type. + +> [!NOTE] +> +> The first parameter is not specified by calling code because it represents the type on which the operator is being applied, and the compiler already knows the type of your object. You only have to provide arguments for parameters 2 through `n`. + +The following example implements an extension method named `WordCount` in the `CustomExtensions.StringExtension` class. The method operates on the class, which is specified as the first method parameter. The `CustomExtensions` namespace is imported into the application namespace, and the method is called inside the `Main` method. + +:::code language="csharp" source="./snippets/how-to-implement-and-call-a-custom-extension-method/Program.cs" ::: + +Overload resolution prefers instance or static method defined by the type itself to extension methods. Extension methods can't access any private data in the extended class. + ## See also - [Extension Methods](./extension-methods.md) diff --git a/docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/Program.cs b/docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/Program.cs new file mode 100644 index 0000000000000..000548409e47b --- /dev/null +++ b/docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/Program.cs @@ -0,0 +1,25 @@ +using CustomExtensions; + +string s = "The quick brown fox jumped over the lazy dog."; +// Call the method as if it were an +// instance method on the type. Note that the first +// parameter is not specified by the calling code. +int i = s.WordCount(); +System.Console.WriteLine("Word count of s is {0}", i); + + +namespace CustomExtensions +{ + // Extension methods must be defined in a static class. + public static class StringExtension + { + // This is the extension method. + // The first parameter takes the "this" modifier + // and specifies the type for which the method is defined. + public static int WordCount(this string str) + { + return str.Split(new char[] {' ', '.','?'}, StringSplitOptions.RemoveEmptyEntries).Length; + } + } +} + diff --git a/docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/how-to-implement-and-call-a-custom-extension-method.csproj b/docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/how-to-implement-and-call-a-custom-extension-method.csproj new file mode 100644 index 0000000000000..fd4bd08da2987 --- /dev/null +++ b/docs/csharp/programming-guide/classes-and-structs/snippets/how-to-implement-and-call-a-custom-extension-method/how-to-implement-and-call-a-custom-extension-method.csproj @@ -0,0 +1,10 @@ + + + + Exe + net9.0 + enable + enable + + + diff --git a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.cs b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.cs index d7a7bf5e4f11b..05e59f4a32c11 100644 --- a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.cs +++ b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.cs @@ -1,38 +1,4 @@ -// -namespace CustomExtensions -{ - // Extension methods must be defined in a static class. - public static class StringExtension - { - // This is the extension method. - // The first parameter takes the "this" modifier - // and specifies the type for which the method is defined. - public static int WordCount(this string str) - { - return str.Split(new char[] {' ', '.','?'}, StringSplitOptions.RemoveEmptyEntries).Length; - } - } -} -namespace Extension_Methods_Simple -{ - // Import the extension method namespace. - using CustomExtensions; - class Program - { - static void Main(string[] args) - { - string s = "The quick brown fox jumped over the lazy dog."; - // Call the method as if it were an - // instance method on the type. Note that the first - // parameter is not specified by the calling code. - int i = s.WordCount(); - System.Console.WriteLine("Word count of s is {0}", i); - } - } -} -// - -namespace Extension2 +namespace Extension2 { // @@ -42,40 +8,40 @@ namespace EnumExtension { // Define an extension method in a non-nested static class. public static class Extensions - { - public static Grades minPassing = Grades.D; - public static bool Passing(this Grades grade) { - return grade >= minPassing; + public static Grades minPassing = Grades.D; + public static bool Passing(this Grades grade) + { + return grade >= minPassing; + } } - } - public enum Grades { F = 0, D=1, C=2, B=3, A=4 }; - class Program - { - static void Main(string[] args) + public enum Grades { F = 0, D=1, C=2, B=3, A=4 }; + class Program { - Grades g1 = Grades.D; - Grades g2 = Grades.F; - Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not"); - Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not"); - - Extensions.minPassing = Grades.C; - Console.WriteLine("\r\nRaising the bar!\r\n"); - Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not"); - Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not"); - } - } - } -/* Output: - First is a passing grade. - Second is not a passing grade. + static void Main(string[] args) + { + Grades g1 = Grades.D; + Grades g2 = Grades.F; + Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not"); + Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not"); + + Extensions.minPassing = Grades.C; + Console.WriteLine("\r\nRaising the bar!\r\n"); + Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not"); + Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not"); + } + /* Output: + First is a passing grade. + Second is not a passing grade. - Raising the bar! + Raising the bar! - First is not a passing grade. - Second is not a passing grade. - */ + First is not a passing grade. + Second is not a passing grade. + */ + } + } // } //namespace Extension2 diff --git a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.csproj b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.csproj index b58af6e9c2578..226a169c25be2 100644 --- a/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.csproj +++ b/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideExtensionMethods/cs/extensionmethods.csproj @@ -6,7 +6,7 @@ enable enable ExtensionMethods - Extension_Methods_Simple.Program + Extension2.EnumExtension.Program From 8a1b3207557ce20a8353fa1a5d44ead84f486848 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 2 Oct 2024 10:59:02 -0700 Subject: [PATCH 41/45] Breaking change - APIs removed (#42809) --- docs/core/compatibility/9.0.md | 7 +-- docs/core/compatibility/jit/9.0/sve-apis.md | 47 +++++++++++++++++++++ docs/core/compatibility/toc.yml | 4 ++ 3 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 docs/core/compatibility/jit/9.0/sve-apis.md diff --git a/docs/core/compatibility/9.0.md b/docs/core/compatibility/9.0.md index e649796818b88..7b52fe2f7c208 100644 --- a/docs/core/compatibility/9.0.md +++ b/docs/core/compatibility/9.0.md @@ -61,9 +61,10 @@ If you're migrating an app to .NET 9, the breaking changes listed here might aff ## JIT compiler -| Title | Type of change | Introduced version | -|----------------------------------------------------------------------------------|-------------------|--------------------| -| [Floating point to integer conversions are saturating](jit/9.0/fp-to-integer.md) | Behavioral change | Preview 4 | +| Title | Type of change | Introduced version | +|----------------------------------------------------------------------------------|---------------------|--------------------| +| [Floating point to integer conversions are saturating](jit/9.0/fp-to-integer.md) | Behavioral change | Preview 4 | +| [Some SVE APIs removed](jit/9.0/sve-apis.md) | Source incompatible | RC 2 | ## Networking diff --git a/docs/core/compatibility/jit/9.0/sve-apis.md b/docs/core/compatibility/jit/9.0/sve-apis.md new file mode 100644 index 0000000000000..6e68ff5fcfa77 --- /dev/null +++ b/docs/core/compatibility/jit/9.0/sve-apis.md @@ -0,0 +1,47 @@ +--- +title: "Breaking change: Some SVE APIs removed" +description: Learn about the breaking change in .NET 9 where some SVE APIs that take 32-bit address have been removed. +ms.date: 10/02/2024 +--- +# Some SVE APIs removed + +Several APIs that take a 32-bit address as an input parameter have been removed because of lack of testing with such addresses. These APIs might be re-enabled in the future when relevant test coverage is added. + +## Previous behavior + +In previous versions, these APIs were available. + +## New behavior + +Starting in .NET 9, these APIs aren't available. + +## Version introduced + +.NET 9 RC 2 + +## Type of breaking change + +This change can affect [source compatibility](../../categories.md#source-compatibility). + +## Reason for change + +The affected APIs were removed because of lack of testing of 32-bit addresses. The affected APIs might be re-enabled in the future when relevant test coverage is added. + +## Recommended action + +Stop using the removed APIs and instead use the overloads that take 64-bit addresses as input. + +## Affected APIs + +- +- +- +- +- +- +- +- +- +- +- +- diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index aba5e1bba1ae5..4f2b75d9a4586 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -60,6 +60,8 @@ items: items: - name: Floating point to integer conversions are saturating href: jit/9.0/fp-to-integer.md + - name: Some SVE APIs removed + href: jit/9.0/sve-apis.md - name: Networking items: - name: HttpClientFactory logging redacts header values by default @@ -1636,6 +1638,8 @@ items: items: - name: Floating point to integer conversions are saturating href: jit/9.0/fp-to-integer.md + - name: Some SVE APIs removed + href: jit/9.0/sve-apis.md - name: .NET 6 items: - name: Call argument coercion From fb7a497b9e9412b9ba3770a552807cec1eff992f Mon Sep 17 00:00:00 2001 From: Miha Zupan Date: Thu, 3 Oct 2024 18:02:58 +0200 Subject: [PATCH 42/45] Fix CA2262 example (#42818) --- docs/fundamentals/code-analysis/quality-rules/ca2262.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2262.md b/docs/fundamentals/code-analysis/quality-rules/ca2262.md index ef233fdc9ce5d..6fe76b9e71264 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca2262.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca2262.md @@ -40,8 +40,8 @@ HttpClientHandler handler = new() // Violation MaxResponseHeadersLength = 512 - // Fix - MaxResponseHeadersLength = 0.512 + // Fix (it is not possible to specify a limit lower than 1 KB) + MaxResponseHeadersLength = 1 }; ``` @@ -51,8 +51,8 @@ Dim handler As New HttpClientHandler With { ' Violation .MaxResponseHeadersLength = 512 - ' Fix - .MaxResponseHeadersLength = 0.512 + ' Fix (it is not possible to specify a limit lower than 1 KB) + .MaxResponseHeadersLength = 1 } ``` From 983c282beaca890d81f86662679d38420c3fe471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Janus=20T=C3=B8ndering?= Date: Thu, 3 Oct 2024 18:11:36 +0200 Subject: [PATCH 43/45] Fix typo in processstartinfo-windowstyle.md (#42817) Fix typo in headline "WindowsStyle" -> "WindowStyle" --- .../core-libraries/8.0/processstartinfo-windowstyle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/compatibility/core-libraries/8.0/processstartinfo-windowstyle.md b/docs/core/compatibility/core-libraries/8.0/processstartinfo-windowstyle.md index 3efa27a53c268..0a99e6cf461bc 100644 --- a/docs/core/compatibility/core-libraries/8.0/processstartinfo-windowstyle.md +++ b/docs/core/compatibility/core-libraries/8.0/processstartinfo-windowstyle.md @@ -3,7 +3,7 @@ title: ".NET 8 breaking change: ProcessStartInfo.WindowStyle honored when UseShe description: Learn about the .NET 8 breaking change in core .NET libraries where ProcessStartInfo.WindowStyle is now honored even when UseShellExecute is false. ms.date: 11/08/2023 --- -# ProcessStartInfo.WindowsStyle honored when UseShellExecute is false +# ProcessStartInfo.WindowStyle honored when UseShellExecute is false Previously, was only honored when was `true`. This change honors even when is `false`. From 1eea03896ab76a13f79272be4c94a9dd959ed57d Mon Sep 17 00:00:00 2001 From: Reuben Bond <203839+ReubenBond@users.noreply.github.com> Date: Thu, 3 Oct 2024 12:37:13 -0700 Subject: [PATCH 44/45] Update Orleans on Azure App Services guide (#42781) * Update Orleans on Azure App Services guide * Delete .vscode/settings.json * Update deploy-to-azure-app-service.md * Update docs/orleans/deployment/deploy-to-azure-app-service.md * Update docs/orleans/deployment/deploy-to-azure-app-service.md * Update docs/orleans/deployment/deploy-to-azure-app-service.md --- .../deployment/deploy-to-azure-app-service.md | 55 ++++++++++++++++--- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/docs/orleans/deployment/deploy-to-azure-app-service.md b/docs/orleans/deployment/deploy-to-azure-app-service.md index da67b75635b0f..99b78f443bcfd 100644 --- a/docs/orleans/deployment/deploy-to-azure-app-service.md +++ b/docs/orleans/deployment/deploy-to-azure-app-service.md @@ -1,7 +1,7 @@ --- title: Deploy Orleans to Azure App Service description: Learn how to deploy an Orleans shopping cart app to Azure App Service. -ms.date: 07/03/2024 +ms.date: 10/01/2024 ms.topic: tutorial ms.custom: devx-track-bicep --- @@ -30,7 +30,7 @@ In this tutorial, you learn how to: - A [GitHub account](https://github.com/join) - [Read an introduction to Orleans](../overview.md) -- The [.NET 7 SDK](https://dotnet.microsoft.com/download/dotnet) +- The [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet) - The [Azure CLI](/cli/azure/install-azure-cli) - A .NET integrated development environment (IDE) - Feel free to use [Visual Studio](https://visualstudio.microsoft.com) or [Visual Studio Code](https://code.visualstudio.com) @@ -112,6 +112,47 @@ When items are in your cart, you can view them and change their quantity, and ev > [!IMPORTANT] > When this app runs locally, in a development environment, the app will use localhost clustering, in-memory storage, and a local silo. It also seeds the inventory with fake data that is automatically generated using the [Bogus NuGet](https://www.nuget.org/packages/bogus) package. This is all intentional to demonstrate the functionality. +## Deployment overview + +Orleans applications are designed to scale up and scale out efficiently. To accomplish this, instances of your application communicate directly with each other via TCP sockets and therefore Orleans requires network connectivity between silos. Azure App Service supports this requirement via [virtual network integration](https://learn.microsoft.com/azure/app-service/overview-vnet-integration) and additional configuration instructing App Service to allocate private network ports for your app instances. + +When deploying Orleans to Azure App Service, we need to take the following actions to ensure that hosts can communicate with eachother: + +- Enable virtual network integration by following the [Enable integration with an Azure virtual network](https://learn.microsoft.com/azure/app-service/configure-vnet-integration-enable) guide. +- Configure your app with private ports using the Azure CLI as described in the [Configure private port count using Azure CLI](#configure-private-port-count-using-azure-cli) section. The Bicep template in the [Explore the Bicep templates](#explore-the-bicep-templates) section below shows how to configure the setting via Bicep. +- If deploying to Linux, ensure that your hosts are listening on all IP addresses as described in the [Configure host networking](#configure-host-networking) section. + +### Configure private port count using Azure CLI + +```azurecli +az webapp config set -g '' --subscription '' -n '' --generic-configurations '{\"vnetPrivatePortsCount\": "2"}' +``` + +### Configure host networking + +Once Azure App Service has been configured with virtual network (VNet) integration and configured to provide application instances with at least 2 private ports each, two additional environment variables will be provided to your app processes: `WEBSITE_PRIVATE_IP` and `WEBSITE_PRIVATE_PORTS`. These variables provide two important pieces of information: + +- Which IP address other hosts in your virtual network can use to contact a given app instance; and +- Which ports on that IP address will be routed to that app instance + +The `WEBSITE_PRIVATE_IP` variable specifies an IP which is routable from the VNet, but not necessarily an IP address which your app instance can directly bind to. For this reason, you should instruct your host to bind to all internal addresses by passing `listenOnAnyHostAddress: true` to the `ConfigureEndpoints` method call, as in the following example which configures an `ISiloBuilder` instance to consume the injected environment variables and to listen on the correct interfaces: + +```csharp +var endpointAddress = IPAddress.Parse(builder.Configuration["WEBSITE_PRIVATE_IP"]!); +var strPorts = builder.Configuration["WEBSITE_PRIVATE_PORTS"]!.Split(','); +if (strPorts.Length < 2) +{ + throw new Exception("Insufficient private ports configured."); +} + +var (siloPort, gatewayPort) = (int.Parse(strPorts[0]), int.Parse(strPorts[1])); + +siloBuilder + .ConfigureEndpoints(endpointAddress, siloPort, gatewayPort, listenOnAnyHostAddress: true) +``` + +The above code is present in the [Azure Samples: Orleans Cluster on Azure App Service](https://github.com/Azure-Samples/Orleans-Cluster-on-Azure-App-Service) repository, too, so you can see it in the context of the rest of the host configuration. + ## Deploy to Azure App Service A typical Orleans application consists of a cluster of server processes (silos) where grains live, and a set of client processes, usually web servers, that receive external requests, turn them into grain method calls and return results. Hence, the first thing one needs to do to run an Orleans application is to start a cluster of silos. For testing purposes, a cluster can consist of a single silo. @@ -157,10 +198,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Setup .NET 7.0 + - name: Setup .NET 8.0 uses: actions/setup-dotnet@v3 with: - dotnet-version: 7.0.x + dotnet-version: 8.0.x - name: .NET publish shopping cart app run: dotnet publish ./Silo/Orleans.ShoppingCart.Silo.csproj --configuration Release @@ -417,7 +458,7 @@ resource appService 'Microsoft.Web/sites@2021-03-01' = { siteConfig: { vnetPrivatePortsCount: 2 webSocketsEnabled: true - netFrameworkVersion: 'v6.0' + netFrameworkVersion: 'v8.0' appSettings: [ { name: 'APPINSIGHTS_INSTRUMENTATIONKEY' @@ -451,7 +492,7 @@ resource stagingSlot 'Microsoft.Web/sites/slots@2022-03-01' = { http20Enabled: true vnetPrivatePortsCount: 2 webSocketsEnabled: true - netFrameworkVersion: 'v7.0' + netFrameworkVersion: 'v8.0' appSettings: [ { name: 'APPINSIGHTS_INSTRUMENTATIONKEY' @@ -494,7 +535,7 @@ resource appServiceConfig 'Microsoft.Web/sites/config@2021-03-01' = { } ``` -This bicep file configures the Azure App Service as a .NET 7 application. Both the `appServicePlan` resource and the `appService` resource are provisioned in the resource group's location. The `appService` resource is configured to use the `S1` SKU, with a capacity of `1`. Additionally, the resource is configured to use the `vnetSubnetId` subnet and to use HTTPS. It also configures the `appInsightsInstrumentationKey` instrumentation key, the `appInsightsConnectionString` connection string, and the `storageConnectionString` connection string. These are used by the shopping cart app. +This bicep file configures the Azure App Service as a .NET 8 application. Both the `appServicePlan` resource and the `appService` resource are provisioned in the resource group's location. The `appService` resource is configured to use the `S1` SKU, with a capacity of `1`. Additionally, the resource is configured to use the `vnetSubnetId` subnet and to use HTTPS. It also configures the `appInsightsInstrumentationKey` instrumentation key, the `appInsightsConnectionString` connection string, and the `storageConnectionString` connection string. These are used by the shopping cart app. The aforementioned Visual Studio Code extension for Bicep includes a visualizer. All of these bicep files are visualized as follows: From a3b91a6d0db701526dfcfcb8f67db24430620b2f Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Thu, 3 Oct 2024 16:47:54 -0400 Subject: [PATCH 45/45] Don't imply partial members are optional (#42823) Fixes #42442 Only a small subset of partial members are optional. Don't imply that they are. --- docs/csharp/language-reference/keywords/partial-member.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/keywords/partial-member.md b/docs/csharp/language-reference/keywords/partial-member.md index 529282098f67e..2d9a607039824 100644 --- a/docs/csharp/language-reference/keywords/partial-member.md +++ b/docs/csharp/language-reference/keywords/partial-member.md @@ -9,7 +9,7 @@ helpviewer_keywords: --- # Partial member (C# Reference) -A partial member has one *declaring declaration* and often one *implementing declaration*. The *declaring declaration* doesn't include a body. The *implementing declaration* provides the body of the member. Partial members enable class designers to provide member hooks, similar to event handlers, that developers can decide to implement or not. Partial types and members provide a way for human developers to write part of a type while tools write other parts of the type. If the developer doesn't supply an optional implementing declaration, the compiler can remove the declaring declaration at compile time. The following conditions apply to partial members: +A partial member has one *declaring declaration* and often one *implementing declaration*. The *declaring declaration* doesn't include a body. The *implementing declaration* provides the body of the member. Partial members enable class designers to provide member hooks that can be implemented by tooling such as source generators. Partial types and members provide a way for human developers to write part of a type while tools write other parts of the type. If the developer doesn't supply an optional implementing declaration, the compiler can remove the declaring declaration at compile time. The following conditions apply to partial members: - Declarations must begin with the contextual keyword [partial](../../language-reference/keywords/partial-type.md). - Signatures in both parts of the partial type must match.