diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index fac02198fc347..232f5cd1db060 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -1,6 +1,6 @@ | Name | Package | Docs | Source | | ---- | ------- | ---- | ------ | -| AI Foundry | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Projects/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Projects-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.0.0-beta.2/sdk/ai/Azure.AI.Projects/) | +| AI Foundry | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Projects/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Projects-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.Projects_1.0.0-beta.3/sdk/ai/Azure.AI.Projects/) | | AI Model Inference | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Inference/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Inference-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Inference_1.0.0-beta.2/sdk/ai/Azure.AI.Inference/) | | Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) | | App Configuration | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.5.0) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.5.0/sdk/appconfiguration/Azure.Data.AppConfiguration/) | @@ -556,12 +556,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.29.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.29.0)
NuGet [1.25.0-preview1-11147](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.0-preview1-11147) | | GitHub [1.29.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) | -| SignalR - ASP.NET | NuGet [1.29.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.AspNet/1.29.0) | | GitHub [1.29.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.AspNet) | +| SignalR | NuGet [1.30.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.30.0)
NuGet [1.25.0-preview1-11147](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.25.0-preview1-11147) | | GitHub [1.30.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) | +| SignalR - ASP.NET | NuGet [1.30.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.AspNet/1.30.0) | | GitHub [1.30.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.29.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Protocols/1.29.0) | | GitHub [1.29.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.29.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Management/1.29.0) | | GitHub [1.29.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Management) | +| SignalR - Protocols | NuGet [1.30.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Protocols/1.30.0) | | GitHub [1.30.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR.Protocols) | +| SignalR - Serverless Protocols | NuGet [1.11.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Serverless.Protocols/1.11.0) | | GitHub [1.11.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/Microsoft.Azure.SignalR.Serverless.Protocols) | +| SignalR Management | NuGet [1.30.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Management/1.30.0) | | GitHub [1.30.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) | | | @@ -574,7 +574,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.6.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.6.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.6.1](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.6.1)
NuGet [1.0.0-preview1-10809](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.0.0-preview1-10809) | | | | MSBuild | NuGet [0.32.0](https://www.nuget.org/packages/Microsoft.TypeSpec.MSBuild/0.32.0) | | | | ProviderHub Controller | NuGet [0.18.0](https://www.nuget.org/packages/Microsoft.TypeSpec.ProviderHub.Controller/0.18.0) | | | | ProviderHub Templates | NuGet [1.10.0](https://www.nuget.org/packages/Microsoft.TypeSpec.ProviderHub.Templates/1.10.0) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 255e183cff914..87b815adc6dcb 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -1,6 +1,6 @@ | Name | Package | Docs | Source | | ---- | ------- | ---- | ------ | -| AI Foundry | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Projects/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Projects-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.0.0-beta.2/sdk/ai/Azure.AI.Projects/) | +| AI Foundry | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Projects/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Projects-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.Projects_1.0.0-beta.3/sdk/ai/Azure.AI.Projects/) | | AI Model Inference | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Inference/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Inference-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Inference_1.0.0-beta.2/sdk/ai/Azure.AI.Inference/) | | Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) | | App Configuration | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.5.0) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.5.0/sdk/appconfiguration/Azure.Data.AppConfiguration/) | diff --git a/docs/core/extensions/dependency-injection-basics.md b/docs/core/extensions/dependency-injection-basics.md index 57dccafa9b8e4..b485753d8f692 100644 --- a/docs/core/extensions/dependency-injection-basics.md +++ b/docs/core/extensions/dependency-injection-basics.md @@ -3,7 +3,7 @@ title: Dependency injection basics description: Learn how to use dependency injection (DI) in your .NET apps with this simple example. Follow along with this pragmatic guide to understand DI basics in C#. author: IEvangelist ms.author: dapine -ms.date: 07/30/2024 +ms.date: 01/22/2025 no-loc: [Transient, Scoped, Singleton, Example] --- @@ -87,7 +87,7 @@ The preceding updated code demonstrates the how-to: - Create a new `ServiceCollection` instance. - Register and configure services in the `ServiceCollection`: - - The `IConsole` using the implementation factory overload, return a `DefaultConsole` type with the `IsEnabled` set to `true. + - The `IConsole` using the implementation factory overload, return a `DefaultConsole` type with the `IsEnabled` set to `true`. - The `IGreetingService` is added with a corresponding implementation type of `DefaultGreetingService` type. - The `FarewellService` is added as a concrete type. - Build the `ServiceProvider` from the `ServiceCollection`. diff --git a/docs/core/install/includes/verify-download-macos-linux.md b/docs/core/install/includes/verify-download-macos-linux.md index 76f02844d5140..4283bdd0afb52 100644 --- a/docs/core/install/includes/verify-download-macos-linux.md +++ b/docs/core/install/includes/verify-download-macos-linux.md @@ -43,7 +43,7 @@ The .NET release notes contain a link to a checksum file you can use to validate Replace the link in the following command with the link you copied. ```bash - curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt + curl -O https://builds.dotnet.microsoft.com/dotnet/checksums/8.0.0-sha.txt ``` 01. With both the checksum file and the .NET release file downloaded to the same directory, use the `sha512sum -c {file} --ignore-missing` command to validate the downloaded file. diff --git a/docs/core/install/includes/verify-download-windows.md b/docs/core/install/includes/verify-download-windows.md index b33ee0d8c9224..770de9692cc7b 100644 --- a/docs/core/install/includes/verify-download-windows.md +++ b/docs/core/install/includes/verify-download-windows.md @@ -43,7 +43,7 @@ The .NET release notes contain a link to a checksum file you can use to validate 01. Use the following script, but replace the link to download the appropriate checksum file: ```powershell - Invoke-WebRequest https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt + Invoke-WebRequest https://builds.dotnet.microsoft.com/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt ``` 01. With both the checksum file and the .NET release file downloaded to the same directory, search the checksum file for the checksum of the .NET download: diff --git a/docs/core/resilience/http-resilience.md b/docs/core/resilience/http-resilience.md index 8ec42c1d20172..79e64b5097d25 100644 --- a/docs/core/resilience/http-resilience.md +++ b/docs/core/resilience/http-resilience.md @@ -102,6 +102,16 @@ Additionally, these strategies handle the following exceptions: - `HttpRequestException` - `TimeoutRejectedException` +#### Disable retries for a given list of HTTP methods + +By default, the standard resilience handler is configured to make retries for all HTTP methods. For some applications, such behavior could be undesirable or even harmful. For example, if a POST request inserts a new record to a database, then making retries for such a request could lead to data duplication. If you need to disable retries for a given list of HTTP methods you can use the method: + +:::code language="csharp" source="snippets/http-resilience/Program.RetryOptions.cs" id="disable_for"::: + +Alternatively, you can use the method, which disables retries for `POST`, `PATCH`, `PUT`, `DELETE`, and `CONNECT` requests. According to [RFC](https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1), these methods are considered unsafe; meaning their semantics are not read-only: + +:::code language="csharp" source="snippets/http-resilience/Program.RetryOptions.cs" id="disable_for_unsafe_http_methods"::: + ## Add standard hedging handler The standard hedging handler wraps the execution of the request with a standard hedging mechanism. Hedging retries slow requests in parallel. diff --git a/docs/core/resilience/snippets/http-resilience/Program.RetryOptions.cs b/docs/core/resilience/snippets/http-resilience/Program.RetryOptions.cs index f49b9d68c829e..080682b91b862 100644 --- a/docs/core/resilience/snippets/http-resilience/Program.RetryOptions.cs +++ b/docs/core/resilience/snippets/http-resilience/Program.RetryOptions.cs @@ -13,4 +13,24 @@ private static void ConfigureRetryOptions(HostApplicationBuilder builder) builder.Services.Configure(section); // } + + private static void DisableRetriesFor(IHttpClientBuilder httpClientBuilder) + { + // + httpClientBuilder.AddStandardResilienceHandler(options => + { + options.Retry.DisableFor(HttpMethod.Post, HttpMethod.Delete); + }); + // + } + + private static void DisableRetriesForUnsafeHttpMethods(IHttpClientBuilder httpClientBuilder) + { + // + httpClientBuilder.AddStandardResilienceHandler(options => + { + options.Retry.DisableForUnsafeHttpMethods(); + }); + // + } } diff --git a/docs/fundamentals/code-analysis/style-rules/ide0033.md b/docs/fundamentals/code-analysis/style-rules/ide0033.md index 162130d46a2b2..381fe03ee1529 100644 --- a/docs/fundamentals/code-analysis/style-rules/ide0033.md +++ b/docs/fundamentals/code-analysis/style-rules/ide0033.md @@ -48,7 +48,7 @@ Options specify the behavior that you want the rule to enforce. For information var name = customer.name; // dotnet_style_explicit_tuple_names = false -(string name, int age) customer = GetCustomer(); +(string, int) customer = GetCustomer(); var name = customer.Item1; ``` @@ -58,7 +58,7 @@ Dim customer As (name As String, age As Integer) = GetCustomer() Dim name = customer.name ' dotnet_style_explicit_tuple_names = false -Dim customer As (name As String, age As Integer) = GetCustomer() +Dim customer As (String, Integer) = GetCustomer() Dim name = customer.Item1 ``` diff --git a/docs/index.yml b/docs/index.yml index 2199bf156c660..d0e6fc68cc250 100644 --- a/docs/index.yml +++ b/docs/index.yml @@ -372,9 +372,9 @@ additionalContent: summary: API reference documentation for ML.NET url: ../api/index.md?view=ml-dotnet&preserve-view=true # Card - - title: ".NET Package-provided API reference" - summary: Reference documentation for package-provided .NET APIs - url: ../api/index.md?view=dotnet-9.0-pp&preserve-view=true + - title: ".NET Aspire API reference" + summary: Reference documentation for .NET Aspire + url: ../api/index.md?view=dotnet-aspire-9.0&preserve-view=true # Card - title: "C# language reference" summary: C# language reference and specification