diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d7a1c16781994..796ec6ca25e36 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -811,39 +811,6 @@ updates: dotnet: patterns: - "*" # Prefer a single PR per project update. - - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/additional-auth/interactive" #InteractiveBrokeredAuthSample.csproj - schedule: - interval: "weekly" - day: "wednesday" - open-pull-requests-limit: 5 - groups: - # Group .NET updates together for projects. - dotnet: - patterns: - - "*" # Prefer a single PR per project update. - - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/additional-auth/username-password" #UsernamePassword.csproj - schedule: - interval: "weekly" - day: "wednesday" - open-pull-requests-limit: 5 - groups: - # Group .NET updates together for projects. - dotnet: - patterns: - - "*" # Prefer a single PR per project update. - - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/authentication/credential-chains" #AuthenticationSampleApp.csproj - schedule: - interval: "weekly" - day: "wednesday" - open-pull-requests-limit: 5 - groups: - # Group .NET updates together for projects. - dotnet: - patterns: - - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" directory: "/docs/azure/sdk/snippets/logging" #LoggingSampleApp.csproj schedule: @@ -867,40 +834,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreConvenience" #AzureCoreConvenience.csproj - schedule: - interval: "weekly" - day: "wednesday" - open-pull-requests-limit: 5 - groups: - # Group .NET updates together for projects. - dotnet: - patterns: - - "*" # Prefer a single PR per project update. - - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreProtocol" #AzureCoreProtocol.csproj - schedule: - interval: "weekly" - day: "wednesday" - open-pull-requests-limit: 5 - groups: - # Group .NET updates together for projects. - dotnet: - patterns: - - "*" # Prefer a single PR per project update. - - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/protocol-convenience-methods/SCMConvenience" #SCMConvenience.csproj - schedule: - interval: "weekly" - day: "wednesday" - open-pull-requests-limit: 5 - groups: - # Group .NET updates together for projects. - dotnet: - patterns: - - "*" # Prefer a single PR per project update. - - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/protocol-convenience-methods/SCMProtocol" #SCMProtocol.csproj + directory: "/docs/azure/sdk/snippets/unit-testing" #UnitTestingSampleApp.csproj schedule: interval: "weekly" day: "wednesday" @@ -911,7 +845,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/azure/sdk/snippets/unit-testing" #UnitTestingSampleApp.csproj + directory: "/docs/core/diagnostics/snippets/exception-summary" #exception-summary.csproj schedule: interval: "weekly" day: "wednesday" @@ -922,7 +856,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/core/diagnostics/snippets/exception-summary" #exception-summary.csproj + directory: "/docs/core/diagnostics/snippets/health-checks" #health-checks.csproj schedule: interval: "weekly" day: "wednesday" @@ -933,7 +867,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/core/diagnostics/snippets/health-checks" #health-checks.csproj + directory: "/docs/core/diagnostics/snippets/lifetime-health-checks" #lifetime-health-checks.csproj schedule: interval: "weekly" day: "wednesday" @@ -944,7 +878,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/core/diagnostics/snippets/lifetime-health-checks" #lifetime-health-checks.csproj + directory: "/docs/core/diagnostics/snippets/Metrics" #metric-instr.csproj schedule: interval: "weekly" day: "wednesday" @@ -955,7 +889,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/core/diagnostics/snippets/Metrics" #metric-instr.csproj + directory: "/docs/core/diagnostics/snippets/Microsoft.Diagnostics.NETCore.Client/csharp" #Microsoft.Diagnostics.NETCore.Client.Samples.csproj schedule: interval: "weekly" day: "wednesday" @@ -966,7 +900,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/core/diagnostics/snippets/Microsoft.Diagnostics.NETCore.Client/csharp" #Microsoft.Diagnostics.NETCore.Client.Samples.csproj + directory: "/docs/core/diagnostics/snippets/OTel-Prometheus-Grafana-Jaeger/csharp" #OTel-Prometheus-Grafana-Jaeger.csproj schedule: interval: "weekly" day: "wednesday" @@ -977,7 +911,7 @@ updates: patterns: - "*" # Prefer a single PR per project update. - package-ecosystem: "nuget" - directory: "/docs/core/diagnostics/snippets/OTel-Prometheus-Grafana-Jaeger/csharp" #OTel-Prometheus-Grafana-Jaeger.csproj + directory: "/docs/core/diagnostics/snippets/OTLP-Example/csharp" #OTLP-Example.csproj schedule: interval: "weekly" day: "wednesday" @@ -2197,3 +2131,69 @@ updates: dotnet: patterns: - "*" # Prefer a single PR per project update. + - package-ecosystem: "nuget" + directory: "/docs/machine-learning/tutorials/snippets/phone-calls-anomaly-detection/csharp" #PhoneCallsAnomalyDetection.csproj + schedule: + interval: "weekly" + day: "wednesday" + open-pull-requests-limit: 5 + groups: + # Group .NET updates together for projects. + dotnet: + patterns: + - "*" # Prefer a single PR per project update. + - package-ecosystem: "nuget" + directory: "/docs/machine-learning/tutorials/snippets/predict-prices/csharp" #TaxiFarePrediction.csproj + schedule: + interval: "weekly" + day: "wednesday" + open-pull-requests-limit: 5 + groups: + # Group .NET updates together for projects. + dotnet: + patterns: + - "*" # Prefer a single PR per project update. + - package-ecosystem: "nuget" + directory: "/docs/machine-learning/tutorials/snippets/sales-anomaly-detection/csharp" #ProductSalesAnomalyDetection.csproj + schedule: + interval: "weekly" + day: "wednesday" + open-pull-requests-limit: 5 + groups: + # Group .NET updates together for projects. + dotnet: + patterns: + - "*" # Prefer a single PR per project update. + - package-ecosystem: "nuget" + directory: "/docs/machine-learning/tutorials/snippets/sentiment-analysis/csharp" #SentimentAnalysis.csproj + schedule: + interval: "weekly" + day: "wednesday" + open-pull-requests-limit: 5 + groups: + # Group .NET updates together for projects. + dotnet: + patterns: + - "*" # Prefer a single PR per project update. + - package-ecosystem: "nuget" + directory: "/docs/machine-learning/tutorials/snippets/text-classification-tf/csharp" #TextClassificationTF.csproj + schedule: + interval: "weekly" + day: "wednesday" + open-pull-requests-limit: 5 + groups: + # Group .NET updates together for projects. + dotnet: + patterns: + - "*" # Prefer a single PR per project update. + - package-ecosystem: "nuget" + directory: "/docs/orleans/deployment/snippets/consul/Silo" #Silo.csproj + schedule: + interval: "weekly" + day: "wednesday" + open-pull-requests-limit: 5 + groups: + # Group .NET updates together for projects. + dotnet: + patterns: + - "*" # Prefer a single PR per project update. diff --git a/.github/workflows/clean-repo.yml b/.github/workflows/clean-repo.yml index b9f4ef095002f..290c0d96b44ea 100644 --- a/.github/workflows/clean-repo.yml +++ b/.github/workflows/clean-repo.yml @@ -46,7 +46,7 @@ jobs: # Create the PR for the work done by the "clean repo" tool - name: create-pull-request - uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c + uses: peter-evans/create-pull-request@4320041ed380b20e97d388d56a7fb4f9b8c20e79 with: branch: create-cleanrepo-pull-request/patch title: "Monthly chores: Automated repo cleanup" diff --git a/.github/workflows/dependabot-bot.yml b/.github/workflows/dependabot-bot.yml index 1a126cf552195..e480c4136ca5c 100644 --- a/.github/workflows/dependabot-bot.yml +++ b/.github/workflows/dependabot-bot.yml @@ -52,7 +52,7 @@ jobs: dependabot-yml-path: ".github/dependabot.yml" - name: Create pull request if: github.event_name == 'workflow_dispatch' || github.repository_owner == 'dotnet' - uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c + uses: peter-evans/create-pull-request@4320041ed380b20e97d388d56a7fb4f9b8c20e79 with: branch: create-dependabotconfig-pull-request/patch title: "Update dependabot.yml - automatically." diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index d874e68e1a16f..64d77b18f388c 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -63,7 +63,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: SARIF file path: results.sarif @@ -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@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 + uses: github/codeql-action/upload-sarif@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 with: sarif_file: results.sarif diff --git a/.github/workflows/whats-new.yml b/.github/workflows/whats-new.yml index 9601c4f83446c..76c97fb4a43a8 100644 --- a/.github/workflows/whats-new.yml +++ b/.github/workflows/whats-new.yml @@ -52,7 +52,7 @@ jobs: savedir: './docs/whats-new' - name: create-pull-request - uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c + uses: peter-evans/create-pull-request@4320041ed380b20e97d388d56a7fb4f9b8c20e79 with: branch: create-whatsnew-pull-request/patch title: "What's new article" diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index a45fd2b4450f5..0e2c765892f87 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -73,7 +73,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.3](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0-beta.3/sdk/openai/Azure.AI.OpenAI/) | +| OpenAI Inference | NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0-beta.4/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/) | @@ -145,7 +145,7 @@ | WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | | Functions extension for Blob Storage | NuGet [5.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | GitHub [5.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs_5.3.1/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/) | | Functions extension for Storage Queues | NuGet [5.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | GitHub [5.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Queues_5.3.1/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/) | -| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.1/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) | +| unknown | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.2/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/) | @@ -175,6 +175,7 @@ | Resource Management - Cognitive Services | NuGet [1.3.3](https://www.nuget.org/packages/Azure.ResourceManager.CognitiveServices/1.3.3) | [docs](/dotnet/api/overview/azure/ResourceManager.CognitiveServices-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CognitiveServices_1.3.3/sdk/cognitiveservices/Azure.ResourceManager.CognitiveServices/) | | 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 - 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/) | @@ -265,7 +266,8 @@ | Resource Management - Migration Discovery SAP | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.MigrationDiscoverySap/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.MigrationDiscoverySap-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.MigrationDiscoverySap_1.0.0-beta.1/sdk/migrationdiscoverysap/Azure.ResourceManager.MigrationDiscoverySap/) | | Resource Management - Mixed Reality | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.MixedReality/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.MixedReality-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MixedReality_1.1.0/sdk/mixedreality/Azure.ResourceManager.MixedReality/) | | Resource Management - Mobile Network | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.MobileNetwork/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.MobileNetwork-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MobileNetwork_1.2.0/sdk/mobilenetwork/Azure.ResourceManager.MobileNetwork/) | -| Resource Management - Monitor | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.Monitor/1.3.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Monitor-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Monitor_1.3.1/sdk/monitor/Azure.ResourceManager.Monitor/) | +| Resource Management - Mongocluster | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.MongoCluster/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.MongoCluster-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.MongoCluster_1.0.0-beta.1/sdk/mongocluster/Azure.ResourceManager.MongoCluster/) | +| Resource Management - Monitor | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.Monitor/1.3.1)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Monitor/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Monitor-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Monitor_1.3.1/sdk/monitor/Azure.ResourceManager.Monitor/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Monitor_1.4.0-beta.1/sdk/monitor/Azure.ResourceManager.Monitor/) | | Resource Management - MySQL | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.MySql/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.MySql-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MySql_1.1.0/sdk/mysql/Azure.ResourceManager.MySql/) | | Resource Management - NetApp Files | NuGet [1.7.0](https://www.nuget.org/packages/Azure.ResourceManager.NetApp/1.7.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NetApp-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetApp_1.7.0/sdk/netapp/Azure.ResourceManager.NetApp/) | | Resource Management - Network | NuGet [1.8.0](https://www.nuget.org/packages/Azure.ResourceManager.Network/1.8.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Network-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Network_1.8.0/sdk/network/Azure.ResourceManager.Network/) | @@ -301,7 +303,7 @@ | Resource Management - Resource Connector | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ResourceConnector/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceConnector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceConnector_1.0.0-beta.2/sdk/resourceconnector/Azure.ResourceManager.ResourceConnector/) | | Resource Management - Resource Graph | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ResourceGraph/1.0.1)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ResourceGraph/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceGraph-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceGraph_1.0.1/sdk/resourcegraph/Azure.ResourceManager.ResourceGraph/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceGraph_1.1.0-beta.2/sdk/resourcegraph/Azure.ResourceManager.ResourceGraph/) | | Resource Management - Resource Health | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.ResourceHealth/1.0.0)
NuGet [1.1.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.ResourceHealth/1.1.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceHealth-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceHealth_1.0.0/sdk/resourcehealth/Azure.ResourceManager.ResourceHealth/)
GitHub [1.1.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceHealth_1.1.0-beta.3/sdk/resourcehealth/Azure.ResourceManager.ResourceHealth/) | -| Resource Management - Resource Manager | NuGet [1.12.0](https://www.nuget.org/packages/Azure.ResourceManager/1.12.0) | [docs](/dotnet/api/overview/azure/ResourceManager-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager_1.12.0/sdk/resourcemanager/Azure.ResourceManager/) | +| Resource Management - Resource Manager | NuGet [1.13.0](https://www.nuget.org/packages/Azure.ResourceManager/1.13.0) | [docs](/dotnet/api/overview/azure/ResourceManager-readme) | GitHub [1.13.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager_1.13.0/sdk/resourcemanager/Azure.ResourceManager/) | | Resource Management - Resource Mover | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ResourceMover/1.1.1)
NuGet [1.1.2-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ResourceMover/1.1.2-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceMover-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceMover_1.1.1/sdk/resourcemover/Azure.ResourceManager.ResourceMover/)
GitHub [1.1.2-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceMover_1.1.2-beta.1/sdk/resourcemover/Azure.ResourceManager.ResourceMover/) | | Resource Management - Resources | NuGet [1.8.0](https://www.nuget.org/packages/Azure.ResourceManager.Resources/1.8.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Resources-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Resources_1.8.0/sdk/resources/Azure.ResourceManager.Resources/) | | Resource Management - ScVmm | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.ScVmm/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.ScVmm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ScVmm_1.0.0-beta.5/sdk/arc-scvmm/Azure.ResourceManager.ScVmm/) | @@ -453,7 +455,7 @@ | Cosmos DB - Direct | NuGet [3.35.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.35.1) | | GitHub [3.35.1](https://github.com/Azure/azure-cosmos-dotnet-v3) | | Cosmos DB - Encryption | NuGet [2.0.3](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/2.0.3)
NuGet [2.1.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/2.1.0-preview4) | | GitHub [2.0.3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/encryption/1.0.0-preview4/Microsoft.Azure.Cosmos.Encryption) | | Cosmos DB - Encryption | NuGet [1.0.0-preview07](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption.Custom/1.0.0-preview07) | | | -| Extensions - Caching Cosmos | NuGet [1.6.1](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Cosmos/1.6.1) | | GitHub [1.6.1](https://github.com/Azure/Microsoft.Extensions.Caching.Cosmos/tree/v1.0.0-preview4) | +| Extensions - Caching Cosmos | NuGet [1.6.2](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Cosmos/1.6.2) | | GitHub [1.6.2](https://github.com/Azure/Microsoft.Extensions.Caching.Cosmos/tree/v1.0.0-preview4) | | Functions - Extensions | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Extensions/1.1.0) | | GitHub [1.1.0](https://github.com/Azure/azure-functions-dotnet-extensions) | | Functions extension for Application Insights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApplicationInsights/1.0.0-preview4) | | | | Functions extension for Azure Mobile Apps | NuGet [3.0.0-beta8](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MobileApps/3.0.0-beta8) | | GitHub [3.0.0-beta8](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0-beta8/src/WebJobs.Extensions.MobileApps) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 4b6aef58c3177..b95ff9d65f20a 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -74,7 +74,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.3](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0-beta.3/sdk/openai/Azure.AI.OpenAI/) | +| OpenAI Inference | NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI/2.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.0.0-beta.4/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/) | @@ -149,7 +149,7 @@ | WebJobs Extensions - Web PubSub | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.7.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.7.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | | Functions extension for Blob Storage | NuGet [5.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | GitHub [5.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs_5.3.1/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/) | | Functions extension for Storage Queues | NuGet [5.3.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | GitHub [5.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Queues_5.3.1/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/) | -| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.1/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) | +| unknown | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.2/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/) | @@ -180,6 +180,7 @@ | Resource Management - Cognitive Services | NuGet [1.3.3](https://www.nuget.org/packages/Azure.ResourceManager.CognitiveServices/1.3.3) | [docs](/dotnet/api/overview/azure/ResourceManager.CognitiveServices-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CognitiveServices_1.3.3/sdk/cognitiveservices/Azure.ResourceManager.CognitiveServices/) | | 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 - 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/) | @@ -271,7 +272,8 @@ | Resource Management - Migration Discovery SAP | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.MigrationDiscoverySap/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.MigrationDiscoverySap-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.MigrationDiscoverySap_1.0.0-beta.1/sdk/migrationdiscoverysap/Azure.ResourceManager.MigrationDiscoverySap/) | | Resource Management - Mixed Reality | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.MixedReality/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.MixedReality-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MixedReality_1.1.0/sdk/mixedreality/Azure.ResourceManager.MixedReality/) | | Resource Management - Mobile Network | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.MobileNetwork/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.MobileNetwork-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MobileNetwork_1.2.0/sdk/mobilenetwork/Azure.ResourceManager.MobileNetwork/) | -| Resource Management - Monitor | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.Monitor/1.3.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Monitor-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Monitor_1.3.1/sdk/monitor/Azure.ResourceManager.Monitor/) | +| Resource Management - Mongocluster | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.MongoCluster/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.MongoCluster-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.MongoCluster_1.0.0-beta.1/sdk/mongocluster/Azure.ResourceManager.MongoCluster/) | +| Resource Management - Monitor | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.Monitor/1.3.1)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Monitor/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Monitor-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Monitor_1.3.1/sdk/monitor/Azure.ResourceManager.Monitor/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Monitor_1.4.0-beta.1/sdk/monitor/Azure.ResourceManager.Monitor/) | | Resource Management - MySQL | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.MySql/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.MySql-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MySql_1.1.0/sdk/mysql/Azure.ResourceManager.MySql/) | | Resource Management - NetApp Files | NuGet [1.7.0](https://www.nuget.org/packages/Azure.ResourceManager.NetApp/1.7.0) | [docs](/dotnet/api/overview/azure/ResourceManager.NetApp-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.NetApp_1.7.0/sdk/netapp/Azure.ResourceManager.NetApp/) | | Resource Management - Network | NuGet [1.8.0](https://www.nuget.org/packages/Azure.ResourceManager.Network/1.8.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Network-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Network_1.8.0/sdk/network/Azure.ResourceManager.Network/) | @@ -307,7 +309,7 @@ | Resource Management - Resource Connector | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ResourceConnector/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceConnector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceConnector_1.0.0-beta.2/sdk/resourceconnector/Azure.ResourceManager.ResourceConnector/) | | Resource Management - Resource Graph | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ResourceGraph/1.0.1)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ResourceGraph/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceGraph-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceGraph_1.0.1/sdk/resourcegraph/Azure.ResourceManager.ResourceGraph/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceGraph_1.1.0-beta.2/sdk/resourcegraph/Azure.ResourceManager.ResourceGraph/) | | Resource Management - Resource Health | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.ResourceHealth/1.0.0)
NuGet [1.1.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.ResourceHealth/1.1.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceHealth-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceHealth_1.0.0/sdk/resourcehealth/Azure.ResourceManager.ResourceHealth/)
GitHub [1.1.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceHealth_1.1.0-beta.3/sdk/resourcehealth/Azure.ResourceManager.ResourceHealth/) | -| Resource Management - Resource Manager | NuGet [1.12.0](https://www.nuget.org/packages/Azure.ResourceManager/1.12.0) | [docs](/dotnet/api/overview/azure/ResourceManager-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager_1.12.0/sdk/resourcemanager/Azure.ResourceManager/) | +| Resource Management - Resource Manager | NuGet [1.13.0](https://www.nuget.org/packages/Azure.ResourceManager/1.13.0) | [docs](/dotnet/api/overview/azure/ResourceManager-readme) | GitHub [1.13.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager_1.13.0/sdk/resourcemanager/Azure.ResourceManager/) | | Resource Management - Resource Mover | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ResourceMover/1.1.1)
NuGet [1.1.2-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ResourceMover/1.1.2-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ResourceMover-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceMover_1.1.1/sdk/resourcemover/Azure.ResourceManager.ResourceMover/)
GitHub [1.1.2-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ResourceMover_1.1.2-beta.1/sdk/resourcemover/Azure.ResourceManager.ResourceMover/) | | Resource Management - Resources | NuGet [1.8.0](https://www.nuget.org/packages/Azure.ResourceManager.Resources/1.8.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Resources-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Resources_1.8.0/sdk/resources/Azure.ResourceManager.Resources/) | | Resource Management - ScVmm | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.ScVmm/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.ScVmm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ScVmm_1.0.0-beta.5/sdk/arc-scvmm/Azure.ResourceManager.ScVmm/) | diff --git a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj index 317429c1de855..6f4e9ff04dc3a 100644 --- a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj +++ b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj @@ -13,7 +13,7 @@ - + diff --git a/docs/core/deploying/native-aot/optimizing.md b/docs/core/deploying/native-aot/optimizing.md index f144bf63c55b0..524f4abd6d5a1 100644 --- a/docs/core/deploying/native-aot/optimizing.md +++ b/docs/core/deploying/native-aot/optimizing.md @@ -29,4 +29,4 @@ Setting `OptimizationPreference` to `Speed` instructs the publishing process to ## Further size optimization options -Since Native AOT deployments imply the use of trimming, it's possible to further improve the size of the application by specifying more [trimming options](../trimming/trimming-options.md). For example, the [Trimming framework library features section](../trimming/trimming-options.md#trimming-framework-library-features) discusses how to disable library features such as globalization. +Since Native AOT deployments imply the use of trimming, it's possible to further improve the size of the application by specifying more [trimming options](../trimming/trimming-options.md). For example, the [Trim framework library features section](../trimming/trimming-options.md#trim-framework-library-features) discusses how to disable library features such as globalization. diff --git a/docs/core/deploying/trimming/trimming-options.md b/docs/core/deploying/trimming/trimming-options.md index f8eefb63a7d4a..29d633f17131a 100644 --- a/docs/core/deploying/trimming/trimming-options.md +++ b/docs/core/deploying/trimming/trimming-options.md @@ -1,18 +1,18 @@ --- title: Trimming options -description: Learn how to control trimming of self-contained apps. +description: Learn how to control trimming of self-contained apps using MSBuild properties. For example, set trimming granularity or suppress trim analysis warnings. author: sbomer ms.author: svbomer -ms.date: 06/26/2024 +ms.date: 08/29/2024 ms.topic: reference zone_pivot_groups: dotnet-version --- # Trimming options -The following MSBuild properties and items influence the behavior of [trimmed self-contained deployments](trim-self-contained.md). Some of the options mention `ILLink`, which is the name of the underlying tool that implements trimming. For more information about the underlying tool, see the [Trimmer documentation](https://github.com/dotnet/runtime/tree/main/docs/tools/illink). +The MSBuild properties and items described in this article influence the behavior of [trimmed, self-contained deployments](trim-self-contained.md). Some of the options mention `ILLink`, which is the name of the underlying tool that implements trimming. For more information about the underlying tool, see the [Trimmer documentation](https://github.com/dotnet/runtime/tree/main/docs/tools/illink). -Trimming with `PublishTrimmed` was introduced in .NET Core 3.0. The other options are available only in .NET 5 and later versions. +Trimming with `PublishTrimmed` was introduced in .NET Core 3.0. The other options are available in .NET 5 and later versions. ## Enable trimming @@ -198,59 +198,27 @@ Symbols are usually trimmed to match the trimmed assemblies. You can also remove The SDK also makes it possible to disable debugger support using the property `DebuggerSupport`. When debugger support is disabled, trimming removes symbols automatically (`TrimmerRemoveSymbols` will default to true). -## Trimming framework library features +## Trim framework library features Several feature areas of the framework libraries come with trimmer directives that make it possible to remove the code for disabled features. -- `false` (default) - - Remove code that creates autorelease pools on supported platforms. See [AutoreleasePool for managed threads](../../runtime-config/threading.md#autoreleasepool-for-managed-threads). This is the default for the .NET SDK. - -- `false` - - Remove code that enables better debugging experiences. This setting also [removes symbols](#remove-symbols). - -- `false` - - Remove BinaryFormatter serialization support. For more information, see [BinaryFormatter serialization methods are obsolete](../../compatibility/serialization/5.0/binaryformatter-serialization-obsolete.md). - -- `false` - - Remove insecure UTF-7 encoding code. For more information, see [UTF-7 code paths are obsolete](../../compatibility/core-libraries/5.0/utf-7-code-paths-obsolete.md). - -- `false` - - Remove EventSource related code or logic. - -- `false` - - Remove code related to diagnostics support for System.Net.Http. - -- `true` - - Remove globalization-specific code and data. For more information, see [Invariant mode](../../runtime-config/globalization.md#invariant-mode). - -- `false` - - Remove metadata update-specific logic related to hot reload. - -- `false` - - Removes support for System.Diagnostics.Metrics instrumentation. - -- `false` (.NET 8+) - - Remove support for generating stack traces (for example, , or ) by the runtime. The amount of information that will be removed from stack trace strings may depend on other deployment options. This option does not affect stack traces generated by debuggers. - -- `true` - - Use the default platform implementation of HttpMessageHandler for Android/iOS and remove the managed implementation. - -- `true` - - Strip exception messages for `System.*` assemblies. When an exception is thrown from a `System.*` assembly, the message is a simplified resource ID instead of the full message. - -These properties cause the related code to be trimmed and also disable features via the [runtimeconfig](../../runtime-config/index.md) file. For more information about these properties, including the corresponding *runtimeconfig* options, see [feature switches](https://github.com/dotnet/runtime/blob/main/docs/workflow/trimming/feature-switches.md). Some SDKs might have default values for these properties. +| MSBuild property | Description | +| - | - | +| `AutoreleasePoolSupport` | When set to `false`, removes code that creates [autorelease pools](../../runtime-config/threading.md#autoreleasepool-for-managed-threads) on supported platforms. `false` is the default for the .NET SDK. | +| `DebuggerSupport` | When set to `false`, removes code that enables better debugging experiences. This setting also [removes symbols](#remove-symbols). | +| `EnableUnsafeBinaryFormatterSerialization` | When set to `false`, removes BinaryFormatter serialization support. For more information, see [BinaryFormatter serialization methods are obsolete](../../compatibility/serialization/5.0/binaryformatter-serialization-obsolete.md) and [In-box BinaryFormatter implementation removed and always throws](../../compatibility/serialization/9.0/binaryformatter-removal.md). | +| `EnableUnsafeUTF7Encoding` | When set to `false`, removes insecure UTF-7 encoding code. For more information, see [UTF-7 code paths are obsolete](../../compatibility/core-libraries/5.0/utf-7-code-paths-obsolete.md). | +| `EventSourceSupport` | When set to `false`, removes EventSource-related code and logic. | +| `HttpActivityPropagationSupport` | When set to `false`, removes code related to diagnostics support for . | +| `InvariantGlobalization` | When set to `true`, removes globalization-specific code and data. For more information, see [Invariant mode](../../runtime-config/globalization.md#invariant-mode). | +| `MetadataUpdaterSupport` | When set to `false`, removes metadata update–specific logic related to hot reload. | +| `MetricsSupport` | When set to `false`, removes support for instrumentation. | +| `StackTraceSupport` (.NET 8+) | When set to `false`, removes support for generating stack traces (for example, or ) by the runtime. The amount of information that is removed from stack trace strings might depend on other deployment options. This option does not affect stack traces generated by debuggers. | +| `UseNativeHttpHandler` | When set to `true`, uses the default platform implementation of for Android and iOS and removes the managed implementation. | +| `UseSystemResourceKeys` | When set to `true`, strips exception messages for `System.*` assemblies. When an exception is thrown from a `System.*` assembly, the message is a simplified resource ID instead of the full message. | +| `XmlResolverIsNetworkingEnabledByDefault` (.NET 8+) | When set to `false`, removes support for resolving non-file URLs in . Only file-system resolving is supported. | + +These properties cause the related code to be trimmed and also disable features via the [runtimeconfig](../../runtime-config/index.md) file. For more information about these properties, including the corresponding _runtimeconfig_ options, see [feature switches](https://github.com/dotnet/runtime/blob/main/docs/workflow/trimming/feature-switches.md). Some SDKs might have default values for these properties. ## Framework features disabled when trimming diff --git a/docs/core/diagnostics/built-in-metrics-diagnostics.md b/docs/core/diagnostics/built-in-metrics-diagnostics.md index 3ade3dab56b30..a0ca9d89f3390 100644 --- a/docs/core/diagnostics/built-in-metrics-diagnostics.md +++ b/docs/core/diagnostics/built-in-metrics-diagnostics.md @@ -10,6 +10,9 @@ ms.date: 11/02/2023 This article describes the built-in metrics for diagnostic .NET extensions libraries that are produced using the API. For a listing of metrics based on the older [EventCounters](event-counters.md) API, see [Available counters](available-counters.md). +> [!TIP] +> For more information about how to collect and report these metrics, see [Collecting Metrics](metrics-collection.md). + ## `Microsoft.Extensions.Diagnostics.HealthChecks` The `Microsoft.Extensions.Diagnostics.HealthChecks` metrics report health check information from [.NET health checks](diagnostic-health-checks.md): diff --git a/docs/core/diagnostics/built-in-metrics-runtime.md b/docs/core/diagnostics/built-in-metrics-runtime.md index 447a7ea6c6a88..fb68ea03895a7 100644 --- a/docs/core/diagnostics/built-in-metrics-runtime.md +++ b/docs/core/diagnostics/built-in-metrics-runtime.md @@ -10,6 +10,9 @@ ms.date: 11/02/2023 This article describes the built-in metrics for .NET runtime libraries that are produced using the API. For a listing of metrics based on the older [EventCounters](event-counters.md) API, see [Available counters](available-counters.md). +> [!TIP] +> For more information about how to collect and report these metrics, see [Collecting Metrics](metrics-collection.md). + ## `System.Runtime` The `System.Runtime` Meter reports measurements from the GC, JIT, AssemblyLoader, Threadpool, and exception handling portions of the .NET runtime as well as some CPU and memory metrics from the OS. These metrics are available automatically for all .NET apps. diff --git a/docs/core/diagnostics/built-in-metrics.md b/docs/core/diagnostics/built-in-metrics.md index 7b00a007dfe06..2ec47c0259c92 100644 --- a/docs/core/diagnostics/built-in-metrics.md +++ b/docs/core/diagnostics/built-in-metrics.md @@ -8,11 +8,15 @@ ms.date: 11/02/2023 # Built-in metrics in .NET This is a reference for [metrics](metrics.md) built-in for .NET, produced using the - API. For metrics produced by [alternative metric APIs](compare-metric-apis.md) -see the [EventCounters reference](available-counters.md) and [Windows Performance Counter reference](../../framework/debug-trace-profile/performance-counters.md). + API. - [.NET runtime metrics](built-in-metrics-runtime.md) - [.NET extensions metrics](built-in-metrics-diagnostics.md) - [ASP.NET Core Metrics](built-in-metrics-aspnetcore.md) - [System.Net Metrics](built-in-metrics-system-net.md) - [Entity Framework Core Metrics](/ef/core/logging-events-diagnostics/metrics) + +## Older metric APIs + +For built-in metrics produced by [alternative metric APIs](compare-metric-apis.md) +see the [EventCounters reference](available-counters.md) and [Windows Performance Counter reference](../../framework/debug-trace-profile/performance-counters.md). diff --git a/docs/core/diagnostics/compare-metric-apis.md b/docs/core/diagnostics/compare-metric-apis.md index 5b80d1d33611d..d49e3d377c6c9 100644 --- a/docs/core/diagnostics/compare-metric-apis.md +++ b/docs/core/diagnostics/compare-metric-apis.md @@ -7,25 +7,10 @@ ms.date: 11/04/2021 # Metric APIs comparison When adding new metric instrumentation to a .NET app or library, there are various different APIs to choose from. This article -will help you understand what is available and some of the tradeoffs involved. - -There are two major categories of APIs, vendor-neutral and vendor-specific. -Vendor-specific APIs have the advantage that the vendor can iterate their designs quickly, add specialized features, and achieve -tight integration between their instrumentation APIs and their backend systems. As an example, if you instrumented your app with -metric APIs provided by [Application Insights](/azure/azure-monitor/app/app-insights-overview), then -you would expect to find well-integrated functionality and all of Application Insight's latest features when working with their -analysis tools. However the library or app would also now be coupled to this vendor and changing to a different one in the future -would require rewriting the instrumentation. For libraries, this coupling can be particularly problematic because the library -developer might use one vendor's API and the app developer that references the library wants to work with a different vendor. -To resolve this coupling issue, vendor-neutral options provide a standardized API façade and extensibility -points to route data to various vendor backend systems depending on configuration. However, vendor-neutral APIs may provide -fewer capabilities, and you're still constrained to pick a vendor that has integrated with the façade's extensibility -mechanism. +will help you understand the options. ## .NET APIs -Over .NET's 20+ year history, we've iterated a few times on the design for metric APIs, all of which are supported and vendor-neutral: - ### System.Diagnostics.Metrics [System.Diagnostics.Metrics](metrics-instrumentation.md) APIs are the newest cross-platform APIs, and were designed in close collaboration with the @@ -44,7 +29,7 @@ Although this API was designed to work well with OpenTelemetry and its growing e ### PerformanceCounter - APIs are the oldest metric APIs. They're only supported on Windows and provide + APIs are the oldest .NET metric APIs. They're only supported on Windows and provide a managed wrapper for Windows OS [Performance Counter](/windows/win32/perfctrs/performance-counters-portal) technology. They are available in all supported versions of .NET. @@ -56,9 +41,8 @@ For more information, see [Performance counters in .NET Framework](../../framewo ### EventCounters -The [EventCounters](event-counters.md) API came next after `PerformanceCounters`. This API aimed to provide a uniform -cross-platform experience. The APIs are available by targeting .NET Core 3.1+, and a small subset is available on .NET Framework 4.7.1 -and later. These APIs are fully supported and are actively used by key .NET libraries, but they +The [EventCounters](event-counters.md) were the first .NET APIs to support a cross-platform metrics experience. The APIs are available by targeting .NET Core 3.1+, and a small subset is available on .NET Framework 4.7.1 +and later. These APIs are fully supported and still used by key .NET libraries, but they have less functionality than the newer APIs. EventCounters are able to report rates of change and averages, but do not support histograms and percentiles. There is also no support for multi-dimensional metrics. Custom tooling is possible via the API, though it is not strongly typed, only gives @@ -67,8 +51,7 @@ access to the aggregated values, and has limitations when using more than one li [dotnet-counters](dotnet-counters.md), and [dotnet-monitor](https://devblogs.microsoft.com/dotnet/introducing-dotnet-monitor/). For third-party tool support, check the vendor or project documentation to see if it's available. -The .NET team doesn't expect to make substantial new investments on this API going forward, but as with `PerformanceCounters`, the API remains -actively supported for all current and future users. +The .NET team doesn't expect to make new investments on this API going forward, but as with `PerformanceCounters`, the API remains supported for all current and future users. ## Third-party APIs diff --git a/docs/core/diagnostics/debug-stackoverflow.md b/docs/core/diagnostics/debug-stackoverflow.md index 7a683db5edb31..0f613e71ea6a6 100644 --- a/docs/core/diagnostics/debug-stackoverflow.md +++ b/docs/core/diagnostics/debug-stackoverflow.md @@ -2,7 +2,7 @@ title: Debugging StackOverflow errors description: Learn how to diagnose StackOverflow exceptions ms.topic: tutorial -ms.date: 12/22/2020 +ms.date: 8/22/2024 --- # Debug StackOverflow errors @@ -30,13 +30,19 @@ The `Main` method will continuously call itself until there is no more stack spa ```` > dotnet run Stack overflow. + at temp.Program.Main(System.String[]) + at temp.Program.Main(System.String[]) + at temp.Program.Main(System.String[]) + at temp.Program.Main(System.String[]) + at temp.Program.Main(System.String[]) + at temp.Program.Main(System.String[]) + ```` -> [!NOTE] -> On .NET 5 and later, the callstack is output to the console. +Often just seeing this callstack is enough to identify the problematic repeating method and locate the source code logic that is causing the recursive calls. However if the problem is still unclear you can debug further. > [!NOTE] -> This article describes how to debug a stack overflow with lldb. If you are running on Windows, we suggest debugging the app with [Visual Studio](/visualstudio/debugger/what-is-debugging) or [Visual Studio Code](https://code.visualstudio.com/Docs/editor/debugging). +> This article describes how to debug a stack overflow with lldb on Linux. If you are running on Windows, we suggest debugging the app with [Visual Studio](/visualstudio/debugger/what-is-debugging) or [Visual Studio Code](https://code.visualstudio.com/Docs/editor/debugging). ## Example @@ -97,7 +103,7 @@ Stack overflow. Source file: /temp/Program.cs @ 9 ```` -5. Go look at the indicated method temp.Program.Main(System.String[]) and source "/temp/Program.cs @ 9" to see if you can figure out what you did wrong. If it still wasn't clear you could add logging in that area of the code. +5. Go look at the indicated method temp.Program.Main(System.String[]) and source "/temp/Program.cs @ 9" to see if you can figure out what you did wrong. If it still wasn't clear you could use further debugger commands to inspect the current state of the process or add logging in that area of the code. ## See Also diff --git a/docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md b/docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md index d631b8bceeef1..bcbcf1345b8f1 100644 --- a/docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md +++ b/docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md @@ -2,7 +2,7 @@ title: Collect a distributed trace - .NET description: Tutorials to collect distributed traces in .NET applications using OpenTelemetry, Application Insights, or ActivityListener ms.topic: tutorial -ms.date: 03/14/2021 +ms.date: 08/27/2024 --- # Collect a distributed trace @@ -27,7 +27,7 @@ configure OpenTelemetry to send information elsewhere, see the #### Prerequisites -- [.NET Core 7.0 SDK](https://dotnet.microsoft.com/download/dotnet) or a later version +- [.NET Core 8.0 SDK](https://dotnet.microsoft.com/download/dotnet) or a later version #### Create an example application @@ -45,16 +45,12 @@ if we browse the web page. To use OpenTelemetry, you need to add references to several NuGet packages. ```dotnetcli -dotnet add package OpenTelemetry --version 1.4.0-rc1 -dotnet add package OpenTelemetry.Exporter.Console --version 1.4.0-rc1 -dotnet add package OpenTelemetry.Extensions.Hosting --version 1.4.0-rc1 -dotnet add package OpenTelemetry.Instrumentation.AspNetCore --version 1.0.0-rc9.10 +dotnet add package OpenTelemetry +dotnet add package OpenTelemetry.Exporter.Console +dotnet add package OpenTelemetry.Extensions.Hosting +dotnet add package OpenTelemetry.Instrumentation.AspNetCore ``` -> [!NOTE] -> At the time of writing, the 1.4.0 Release Candidate 1 build was the latest version of OpenTelemetry available. Once a final version -> is available, use that instead. - Next, modify the source code in *Program.cs* so it looks like this: ```csharp @@ -70,7 +66,7 @@ builder.Services.AddOpenTelemetry() { builder.AddAspNetCoreInstrumentation(); builder.AddConsoleExporter(); - }).StartWithHost(); + }); var app = builder.Build(); @@ -98,26 +94,28 @@ Run the app and use a web browser to browse to the web page being hosted. Now th tracing, you should see information about the browser web requests printed to the console: ``` -Activity.TraceId: 9c4519ce65a667280daedb3808d376f0 -Activity.SpanId: 727c6a8a6cff664f +Activity.TraceId: 4510acfc49c6f8a582c6a40004df9a76 +Activity.SpanId: 65fe2c5c15f05ed8 Activity.TraceFlags: Recorded Activity.ActivitySourceName: Microsoft.AspNetCore -Activity.DisplayName: / +Activity.DisplayName: GET Activity.Kind: Server -Activity.StartTime: 2023-01-08T01:56:05.4529879Z -Activity.Duration: 00:00:00.1048255 +Activity.StartTime: 2024-08-27T23:12:58.7837908Z +Activity.Duration: 00:00:00.1297070 Activity.Tags: - net.host.name: localhost - net.host.port: 5163 - http.method: GET - http.scheme: http - http.target: / - http.url: http://localhost:5163/ - http.flavor: 1.1 - http.user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.76 - http.status_code: 200 + server.address: localhost + server.port: 5005 + http.request.method: GET + url.scheme: http + url.path: / + network.protocol.version: 1.1 + user_agent.original: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0 + http.response.status_code: 200 Resource associated with Activity: - service.name: unknown_service:demo + telemetry.sdk.name: opentelemetry + telemetry.sdk.language: dotnet + telemetry.sdk.version: 1.9.0 + service.name: unknown_service:webapp ``` All of the OpenTelemetry configuration occurs in the new source lines that start with `builder.Services.AddOpenTelemetry()`. You used @@ -131,7 +129,7 @@ another monitoring service you've chosen to use. #### Prerequisites -- [.NET Core 2.1 SDK](https://dotnet.microsoft.com/download/dotnet) or a later version +- [.NET Core 8.0 SDK](https://dotnet.microsoft.com/download/dotnet) or a later version #### Create an example application @@ -149,10 +147,6 @@ Applications that target .NET 5 and later already have the necessary distributed .NET versions, add the [System.Diagnostics.DiagnosticSource NuGet package](https://www.nuget.org/packages/System.Diagnostics.DiagnosticSource/) version 5 or greater. -```dotnetcli -dotnet add package System.Diagnostics.DiagnosticSource -``` - Replace the contents of the generated Program.cs with this example source: ```csharp @@ -174,7 +168,7 @@ namespace Sample.DistributedTracing static async Task DoSomeWork() { - using (Activity a = s_source.StartActivity("SomeWork")) + using (Activity? a = s_source.StartActivity("SomeWork")) { await StepOne(); await StepTwo(); @@ -183,7 +177,7 @@ namespace Sample.DistributedTracing static async Task StepOne() { - using (Activity a = s_source.StartActivity("StepOne")) + using (Activity? a = s_source.StartActivity("StepOne")) { await Task.Delay(500); } @@ -191,7 +185,7 @@ namespace Sample.DistributedTracing static async Task StepTwo() { - using (Activity a = s_source.StartActivity("StepTwo")) + using (Activity? a = s_source.StartActivity("StepTwo")) { await Task.Delay(1000); } @@ -246,34 +240,52 @@ Now the app collects distributed trace information and displays it to the consol ```dotnetcli > dotnet run -Activity.Id: 00-7759221f2c5599489d455b84fa0f90f4-6081a9b8041cd840-01 -Activity.ParentId: 00-7759221f2c5599489d455b84fa0f90f4-9a52f72c08a9d447-01 -Activity.DisplayName: StepOne -Activity.Kind: Internal -Activity.StartTime: 2021-03-18T10:46:46.8649754Z -Activity.Duration: 00:00:00.5069226 +Activity.TraceId: 48d7509cc4f06db6f48f2207f19c3918 +Activity.SpanId: 406a1de6b5e8192e +Activity.TraceFlags: Recorded +Activity.ParentSpanId: 345f5f98015b589a +Activity.ActivitySourceName: Sample.DistributedTracing +Activity.DisplayName: StepOne +Activity.Kind: Internal +Activity.StartTime: 2024-08-27T23:22:44.9900801Z +Activity.Duration: 00:00:00.5077426 Resource associated with Activity: service.name: MySample - service.instance.id: 909a4624-3b2e-40e4-a86b-4a2c8003219e - -Activity.Id: 00-7759221f2c5599489d455b84fa0f90f4-d2b283db91cf774c-01 -Activity.ParentId: 00-7759221f2c5599489d455b84fa0f90f4-9a52f72c08a9d447-01 -Activity.DisplayName: StepTwo -Activity.Kind: Internal -Activity.StartTime: 2021-03-18T10:46:47.3838737Z -Activity.Duration: 00:00:01.0142278 + service.instance.id: a87f9e7d-d28c-4a91-9bb3-939a50cac7db + telemetry.sdk.name: opentelemetry + telemetry.sdk.language: dotnet + telemetry.sdk.version: 1.9.0 + +Activity.TraceId: 48d7509cc4f06db6f48f2207f19c3918 +Activity.SpanId: 458fb58342ca127a +Activity.TraceFlags: Recorded +Activity.ParentSpanId: 345f5f98015b589a +Activity.ActivitySourceName: Sample.DistributedTracing +Activity.DisplayName: StepTwo +Activity.Kind: Internal +Activity.StartTime: 2024-08-27T23:22:45.5906581Z +Activity.Duration: 00:00:01.0023729 Resource associated with Activity: service.name: MySample - service.instance.id: 909a4624-3b2e-40e4-a86b-4a2c8003219e + service.instance.id: a87f9e7d-d28c-4a91-9bb3-939a50cac7db + telemetry.sdk.name: opentelemetry + telemetry.sdk.language: dotnet + telemetry.sdk.version: 1.9.0 -Activity.Id: 00-7759221f2c5599489d455b84fa0f90f4-9a52f72c08a9d447-01 -Activity.DisplayName: SomeWork -Activity.Kind: Internal -Activity.StartTime: 2021-03-18T10:46:46.8634510Z -Activity.Duration: 00:00:01.5402045 +Activity.TraceId: 48d7509cc4f06db6f48f2207f19c3918 +Activity.SpanId: 345f5f98015b589a +Activity.TraceFlags: Recorded +Activity.ActivitySourceName: Sample.DistributedTracing +Activity.DisplayName: SomeWork +Activity.Kind: Internal +Activity.StartTime: 2024-08-27T23:22:44.9894135Z +Activity.Duration: 00:00:01.6059128 Resource associated with Activity: service.name: MySample - service.instance.id: 909a4624-3b2e-40e4-a86b-4a2c8003219e + service.instance.id: a87f9e7d-d28c-4a91-9bb3-939a50cac7db + telemetry.sdk.name: opentelemetry + telemetry.sdk.language: dotnet + telemetry.sdk.version: 1.9.0 Example work done ``` @@ -316,7 +328,7 @@ it to the console. ### Prerequisites -- [.NET Core 2.1 SDK](https://dotnet.microsoft.com/download/dotnet) or a later version +- [.NET Core 8.0 SDK](https://dotnet.microsoft.com/download/dotnet) or a later version ### Create an example application @@ -330,10 +342,6 @@ Applications that target .NET 5 and later already have the necessary distributed .NET versions, add the [System.Diagnostics.DiagnosticSource NuGet package](https://www.nuget.org/packages/System.Diagnostics.DiagnosticSource/) version 5 or greater. -```dotnetcli -dotnet add package System.Diagnostics.DiagnosticSource -``` - Replace the contents of the generated Program.cs with this example source: ```csharp @@ -355,7 +363,7 @@ namespace Sample.DistributedTracing static async Task DoSomeWork() { - using (Activity a = s_source.StartActivity("SomeWork")) + using (Activity? a = s_source.StartActivity("SomeWork")) { await StepOne(); await StepTwo(); @@ -364,7 +372,7 @@ namespace Sample.DistributedTracing static async Task StepOne() { - using (Activity a = s_source.StartActivity("StepOne")) + using (Activity? a = s_source.StartActivity("StepOne")) { await Task.Delay(500); } @@ -372,7 +380,7 @@ namespace Sample.DistributedTracing static async Task StepTwo() { - using (Activity a = s_source.StartActivity("StepTwo")) + using (Activity? a = s_source.StartActivity("StepTwo")) { await Task.Delay(1000); } diff --git a/docs/core/diagnostics/dotnet-trace.md b/docs/core/diagnostics/dotnet-trace.md index 6f9eb564ef20c..2da008d9f459e 100644 --- a/docs/core/diagnostics/dotnet-trace.md +++ b/docs/core/diagnostics/dotnet-trace.md @@ -1,7 +1,7 @@ --- title: dotnet-trace diagnostic tool - .NET CLI description: Learn how to install and use the dotnet-trace CLI tool to collect .NET traces of a running process without the native profiler, by using the .NET EventPipe. -ms.date: 11/17/2020 +ms.date: 08/22/2024 ms.topic: reference --- # dotnet-trace performance analysis utility @@ -29,9 +29,6 @@ There are two ways to download and install `dotnet-trace`: | Windows | [x86](https://aka.ms/dotnet-trace/win-x86) \| [x64](https://aka.ms/dotnet-trace/win-x64) \| [Arm](https://aka.ms/dotnet-trace/win-arm) \| [Arm-x64](https://aka.ms/dotnet-trace/win-arm64) | | Linux | [x64](https://aka.ms/dotnet-trace/linux-x64) \| [Arm](https://aka.ms/dotnet-trace/linux-arm) \| [Arm64](https://aka.ms/dotnet-trace/linux-arm64) \| [musl-x64](https://aka.ms/dotnet-trace/linux-musl-x64) \| [musl-Arm64](https://aka.ms/dotnet-trace/linux-musl-arm64) | -> [!NOTE] -> To use `dotnet-trace` on an x86 app, you need a corresponding x86 version of the tool. - ## Synopsis ```dotnetcli @@ -207,7 +204,7 @@ dotnet-trace collect [--buffersize ] [--clreventlevel ] [-- After the collection configuration parameters, the user can append `--` followed by a command to start a .NET application with at least a 5.0 runtime. This may be helpful when diagnosing issues that happen early in the process, such as startup performance issue or assembly loader and binder errors. > [!NOTE] - > Using this option monitors the first .NET 5 process that communicates back to the tool, which means if your command launches multiple .NET applications, it will only collect the first app. Therefore, it is recommended you use this option on self-contained applications, or using the `dotnet exec ` option. + > Using this option monitors the first .NET process that communicates back to the tool, which means if your command launches multiple .NET applications, it will only collect the first app. Therefore, it is recommended you use this option on self-contained applications, or using the `dotnet exec ` option. - **`--show-child-io`** @@ -237,8 +234,6 @@ dotnet-trace collect [--buffersize ] [--clreventlevel ] [-- > - To collect a trace using `dotnet-trace`, it needs to be run as the same user as the user running the target process or as root. Otherwise, the tool will fail to establish a connection with the target process. -> - If you see an error message similar to: `[ERROR] System.ComponentModel.Win32Exception (299): A 32 bit processes cannot access modules of a 64 bit process.`, you are trying to use a version of `dotnet-trace` that has mismatched bitness against the target process. Make sure to download the correct bitness of the tool in the [install](#install) link. - > - If you experience an unhandled exception while running `dotnet-trace collect`, this results in an incomplete trace. If finding the root cause of the exception is your priority, navigate to [Collect dumps on crash](collect-dumps-crash.md). As a result of the unhandled exception, the trace is truncated when the runtime shuts down to prevent other undesired behavior such as a hang or data corruption. Even though the trace is incomplete, you can still open it to see what happened leading up to the failure. However, it will be missing Rundown information (this happens at the end of a trace) so stacks might be unresolved (depending on what providers were turned on). Open the trace by executing PerfView with the `/ContinueOnError` flag at the command line. The logs will also contain the location the exception was fired. > - When specifying a stopping event through the `--stopping-event-*` options, as the EventStream is being parsed asynchronously, there will be some events that pass through between the time a trace event matching the specified stopping event options is parsed and the EventPipeSession is stopped. @@ -277,6 +272,9 @@ dotnet-trace convert [] [--format Lists the dotnet processes that traces can be collected from. `dotnet-trace` 6.0.320703 and later, also display the command-line arguments that each process was started with, if available. +> [!NOTE] +> To get full information for enumerated 64 bit processes, you need to use a 64-bit version of the `dotnet-trace` tool. + ### Synopsis ```dotnetcli @@ -376,9 +374,6 @@ To collect traces using `dotnet-trace`: ## Launch a child application and collect a trace from its startup using dotnet-trace -> [!IMPORTANT] -> This works for apps running .NET 5 or later only. - Sometimes it may be useful to collect a trace of a process from its startup. For apps running .NET 5 or later, it is possible to do this by using dotnet-trace. This will launch `hello.exe` with `arg1` and `arg2` as its command-line arguments and collect a trace from its runtime startup: @@ -413,9 +408,6 @@ You can stop collecting the trace by pressing `` or `` key. Doi ## Use diagnostic port to collect a trace from app startup - > [!IMPORTANT] - > This works for apps running .NET 5 or later only. - [Diagnostic port](./diagnostic-port.md) is a runtime feature added in .NET 5 that allows you to start tracing from app startup. To do this using `dotnet-trace`, you can either use `dotnet-trace collect -- ` as described in the examples above, or use the `--diagnostic-port` option. Using `dotnet-trace -- ` to launch the application as a child process is the simplest way to quickly trace the application from its startup. @@ -464,29 +456,6 @@ For traces collected on non-Windows platforms, you can also move the trace file > [!NOTE] > The .NET Core runtime generates traces in the `nettrace` format. The traces are converted to speedscope (if specified) after the trace is completed. Since some conversions may result in loss of data, the original `nettrace` file is preserved next to the converted file. -## Use dotnet-trace to collect counter values over time - -`dotnet-trace` can: - -* Use `EventCounter` for basic health monitoring in performance-sensitive environments. For example, in production. -* Collect traces so they don't need to be viewed in real time. - -For example, to collect runtime performance counter values, use the following command: - -```dotnetcli -dotnet-trace collect --process-id --providers System.Runtime:0:1:EventCounterIntervalSec=1 -``` - -The preceding command tells the runtime counters to report once every second for lightweight health monitoring. Replacing `EventCounterIntervalSec=1` with a higher value (for example, 60) allows collection of a smaller trace with less granularity in the counter data. - -The following command reduces overhead and trace size more than the preceding one: - -```dotnetcli -dotnet-trace collect --process-id --providers System.Runtime:0:1:EventCounterIntervalSec=1,Microsoft-Windows-DotNETRuntime:0:1,Microsoft-DotNETCore-SampleProfiler:0:1 -``` - -The preceding command disables runtime events and the managed stack profiler. - ## Use .rsp file to avoid typing long commands You can launch `dotnet-trace` with an `.rsp` file that contains the arguments to pass. This can be useful when enabling providers that expect lengthy arguments or when using a shell environment that strips characters. diff --git a/docs/core/diagnostics/event-counters.md b/docs/core/diagnostics/event-counters.md index 1a0adda81e953..38996eee4d747 100644 --- a/docs/core/diagnostics/event-counters.md +++ b/docs/core/diagnostics/event-counters.md @@ -1,13 +1,16 @@ --- title: EventCounters in .NET Core description: In this article, you'll learn what EventCounters are, how to implement them, and how to consume them. -ms.date: 08/07/2020 +ms.date: 08/27/2024 --- # EventCounters in .NET **This article applies to: ✔️** .NET Core 3.0 SDK and later versions + > [!NOTE] + > For developing new .NET projects Microsoft recommends using the newer [System.Diagnostics.Metrics](metrics-instrumentation.md) APIs instead. The System.Diagnostics.Metrics APIs offer increased functionality, standardization and integration with a broader ecosystem of tools. See [the metrics API comparison](compare-metric-apis.md) for more information. + EventCounters are .NET APIs used for lightweight, cross-platform, and near real-time performance metric collection. EventCounters were added as a cross-platform alternative to the "performance counters" of .NET Framework on Windows. In this article, you'll learn what EventCounters are, how to implement them, and how to consume them. The .NET runtime and a few .NET libraries publish basic diagnostics information using EventCounters starting in .NET Core 3.0. Apart from the EventCounters that are provided by the .NET runtime, you may choose to implement your own EventCounters. EventCounters can be used to track various metrics. Learn more about them in [well-known EventCounters in .NET](available-counters.md) @@ -169,16 +172,6 @@ There are two primary ways of consuming EventCounters: in-proc and out-of-proc. Consuming EventCounters out-of-proc is a common approach. You can use [dotnet-counters](dotnet-counters.md) to consume them in a cross-platform manner via an EventPipe. The `dotnet-counters` tool is a cross-platform dotnet CLI global tool that can be used to monitor the counter values. To find out how to use `dotnet-counters` to monitor your counters, see [dotnet-counters](dotnet-counters.md), or work through the [Measure performance using EventCounters](event-counter-perf.md) tutorial. -#### dotnet-trace - -The `dotnet-trace` tool can be used to consume the counter data through an EventPipe. Here is an example using `dotnet-trace` to collect counter data. - -```console -dotnet-trace collect --process-id Sample.EventCounter.Minimal:0:0:EventCounterIntervalSec=1 -``` - -For more information on how to collect counter values over time, see the [dotnet-trace](dotnet-trace.md#use-dotnet-trace-to-collect-counter-values-over-time) documentation. - #### Azure Application Insights EventCounters can be consumed by Azure Monitor, specifically Azure Application Insights. Counters can be added and removed, and you're free to specify custom counters, or well-known counters. For more information, see [Customizing counters to be collected](/azure/azure-monitor/app/eventcounters#customizing-counters-to-be-collected). diff --git a/docs/core/diagnostics/logging-tracing.md b/docs/core/diagnostics/logging-tracing.md index cd5a13aca2b69..f89b81b352383 100644 --- a/docs/core/diagnostics/logging-tracing.md +++ b/docs/core/diagnostics/logging-tracing.md @@ -5,52 +5,32 @@ ms.date: 4/29/2022 --- # .NET logging and tracing -Code can be instrumented to produce a log, which serves as a record of interesting events that occurred while the program was running. To understand the application's behavior, logs can be reviewed. Logging and tracing both encapsulate this technique. .NET has accumulated several different logging APIs over its history and this article will help you understand what options are available. +Code can be instrumented to produce a log, which serves as a record of interesting events that occurred while the program was running. To understand the application's behavior, logs can be reviewed. .NET has accumulated several different logging APIs over its history and this article will help you understand what options are available. -The terms "logging" and "tracing" are commonly synonymous. The distinction is that logging output is expected to be collected all the time, and so it should have a low overhead. Tracing is typically more invasive and collects more information from deeper parts of the application and .NET runtime. It's either used when diagnosing specific problems, or automatically for short periods of time as part of deeper performance-analysis systems. - -Another pivot on the tracing term is [Distributed tracing](./distributed-tracing.md). Distributed tracing collects high-level activity and timing data for request-based systems and correlates the requests across services to give a view of how each request is processed by the complete system. - -## Key distinctions in logging APIs - -### Structured logging - -Logging APIs can either be structured or unstructured: - -- Unstructured: Log entries have free-form text content that is intended to be viewed by humans. -- Structured: Log entries have a well defined schema and can be encoded in different binary and textual formats. These logs are designed to be machine translatable and queryable so that both humans and automated systems can work with them easily. - -APIs that support structured logging are preferable for non-trivial usage. They offer more functionality, flexibility, and performance with little difference in usability. - -### Configuration - -For simple use cases, you might want to use APIs that directly write messages to the console or a file. But most software projects will find it useful to configure which log events get recorded and how they are persisted. For example, when running in a local dev environment, you might want to output plain text to the console for easy readability. Then when the application is deployed to a production environment, you might switch to have the logs stored in a dedicated database or a set of rolling files. APIs with good configuration options will make these transitions easy, whereas less configurable options would require updating the instrumentation code everywhere to make changes. - -### Sinks - -Most logging APIs allow log messages to be sent to different destinations called sinks. Some APIs have a large number of pre-made sinks, whereas others only have a few. If no pre-made sink exists, there's usually an extensibility API that will let you author a custom sink, although this requires writing a bit more code. +> [!NOTE] +> Sometimes logging is also referred to as 'tracing', including in some of the older Windows and .NET APIs. In recent years, 'tracing' is more commonly used as an abbreviation for [Distributed tracing](./distributed-tracing.md), but that isn't the meaning in this article. ## .NET logging APIs ### ILogger -For most cases, whether adding logging to an existing project or creating a new project, the [ILogger infrastructure](../extensions/logging.md) is a good default choice. `ILogger` supports fast structured logging, flexible configuration, and a collection of [common sinks](../extensions/logging-providers.md#built-in-logging-providers) including the console, which is what you see when running an ASP.NET app. Additionally, the `ILogger` interface can also serve as a facade over many [third party logging implementations](../extensions/logging-providers.md#third-party-logging-providers) that offer rich functionality and extensibility. +For most cases, whether adding logging to an existing project or creating a new project, the [ILogger infrastructure](../extensions/logging.md) is a good default choice. `ILogger` supports fast [structured logging](#structured-and-unstructured-logging), flexible configuration, and a collection of [common sinks](../extensions/logging-providers.md#built-in-logging-providers) including the console, which is what you see when running an ASP.NET app. Additionally, the `ILogger` interface can also serve as a facade over many [third party logging implementations](../extensions/logging-providers.md#third-party-logging-providers) that offer rich functionality and extensibility. ILogger provides the logging story for the OpenTelemetry implementation for .NET, which enables egress of logs from your application to a variety of APM systems for further analysis. ### EventSource -[EventSource](./eventsource.md) is an older, high-performance tracing API with structured logging. It was originally designed to integrate well with [Event Tracing for Windows (ETW)](/windows/win32/etw/event-tracing-portal), but was later extended to support [EventPipe](./eventpipe.md) cross-platform tracing and for custom sinks. In comparison to `ILogger`, `EventSource` has relatively few premade logging sinks and there's no built-in support to configure via separate configuration files. `EventSource` is excellent if you want tighter control over [ETW](/windows/win32/etw/event-tracing-portal) or [EventPipe](./eventpipe.md) integration, but for general purpose logging, `ILogger` is more flexible and easier to use. +[EventSource](./eventsource.md) is an older, high-performance API with [structured logging](#structured-and-unstructured-logging). It was originally designed to integrate well with [Event Tracing for Windows (ETW)](/windows/win32/etw/event-tracing-portal), but was later extended to support [EventPipe](./eventpipe.md) cross-platform tracing and for custom sinks. In comparison to `ILogger`, `EventSource` has relatively few premade [logging sinks](#sinks) and there's no built-in support to configure via separate configuration files. `EventSource` is excellent if you want tighter control over [ETW](/windows/win32/etw/event-tracing-portal) or [EventPipe](./eventpipe.md) integration, but for general purpose logging, `ILogger` is more flexible and easier to use. ### Trace - and are .NET's oldest logging APIs. These classes have flexible configuration APIs and a large ecosystem of sinks, but only support unstructured logging. On .NET Framework they can be configured via an app.config file, but in .NET Core, there's no built-in, file-based configuration mechanism. They are typically used to produce diagnostics output for the developer while running under the debugger. The .NET team continues to support these APIs for backward-compatibility purposes, but no new functionality will be added. These APIs are a fine choice for applications that are already using them. For newer apps that haven't already committed to a logging API, `ILogger` may offer better functionality. + and are .NET's oldest logging APIs. These classes have flexible configuration APIs and a large ecosystem of [sinks](#sinks), but only support [unstructured logging](#structured-and-unstructured-logging). On .NET Framework they can be configured via an app.config file, but in .NET Core, there's no built-in, file-based configuration mechanism. They are typically used to produce diagnostics output for the developer while running under the debugger. The .NET team continues to support these APIs for backward-compatibility purposes, but no new functionality will be added. These APIs are a fine choice for applications that are already using them. For newer apps that haven't already committed to a logging API, `ILogger` may offer better functionality. ## Specialized logging APIs ### Console -The class has the and methods that can be used in simple logging scenarios. These APIs are very easy to get started with but the solution won't be as flexible as a general purpose logging API. Console only allows unstructured logging and there is no configuration support to select which log messages are enabled or to retarget to a different sink. Using the ILogger or Trace APIs with a console sink doesn't take much additional effort and keeps the logging configurable. +The class has the and methods that can be used in simple logging scenarios. These APIs are very easy to get started with but the solution won't be as flexible as a general purpose logging API. Console only allows [unstructured logging](#structured-and-unstructured-logging) and there is no configuration support to select which log messages are enabled or to retarget to a different [sink](#sinks). Using the ILogger or Trace APIs with a console sink doesn't take much additional effort and keeps the logging configurable. ### DiagnosticSource @@ -58,4 +38,19 @@ The class has the is a Windows only API that writes messages to the Windows EventLog. In many cases using ILogger with an optional EventLog sink when running on Windows may give similar functionality without coupling the app tightly to the Windows OS. + is a Windows only API that writes messages to the Windows EventLog. In many cases using ILogger with an optional EventLog [sink](#sinks) when running on Windows may give similar functionality without coupling the app tightly to the Windows OS. + +## Logging terminology + +### Structured and unstructured logging + +Logging can either be structured or unstructured: + +- Unstructured: Log entries are encoded as free-form text that humans can read but it is difficult to programatically parse and query. +- Structured: Log entries have a well defined schema and can be encoded in different binary and textual formats. These logs are designed to be machine translatable and queryable so that both humans and automated systems can work with them easily. + +Good structured logging APIs can offer more functionality and performance with only a small increase in usage complexity. + +### Sinks + +Most logging APIs allow log messages to be sent to different destinations called sinks. Some APIs have a large number of pre-made sinks, whereas others only have a few. If no pre-made sink exists, there's usually an extensibility API that will let you author a custom sink, although this requires writing a bit more code. diff --git a/docs/core/diagnostics/metrics-instrumentation.md b/docs/core/diagnostics/metrics-instrumentation.md index f94352b137928..f739e46be0ebc 100644 --- a/docs/core/diagnostics/metrics-instrumentation.md +++ b/docs/core/diagnostics/metrics-instrumentation.md @@ -2,7 +2,7 @@ title: Creating Metrics description: How to add new metrics to a .NET library or application ms.topic: tutorial -ms.date: 10/31/2023 +ms.date: 08/27/2024 --- # Creating metrics @@ -213,6 +213,8 @@ Types of instruments currently available: the current total. For example, if a collection tool updates every three seconds, then the callback function will also be invoked every three seconds. Whatever value is returned by the callback will be shown in the collection tool unchanged as the total. +- **Gauge** () - This instrument allows the caller to set the current value of the metric using the method. The value can be updated at any time by invoking the method again and a metric collection tool will display whatever value was most recently set. + - **ObservableGauge** () - This instrument allows the caller to provide a callback where the measured value is passed through directly as the metric. Each time the collection tool updates, the callback is invoked, and whatever value is returned by the callback is displayed in the tool. @@ -280,7 +282,7 @@ class Program s_ordersPending = s_rand.Next(0, 20); // Last we pretend that we measured how long it took to do the transaction (for example we could time it with Stopwatch) - s_orderProcessingTime.Record(s_rand.Next(0.005, 0.015)); + s_orderProcessingTime.Record(s_rand.Next(5, 15)/1000.0); } } } @@ -293,20 +295,19 @@ Run the new process and use dotnet-counters as before in a second shell to view Press p to pause, r to resume, q to quit. Status: Running +Name Current Value [HatCo.Store] - hatco.store.coats_sold (Count / 1 sec) 27 - hatco.store.hats_sold (Count / 1 sec) 36 + hatco.store.coats_sold (Count) 8,181 + hatco.store.hats_sold (Count) 548 hatco.store.order_processing_time - Percentile=50 0.012 - Percentile=95 0.014 - Percentile=99 0.014 - hatco.store.orders_pending 5 + Percentile + 50 0.012 + 95 0.013 + 99 0.013 + hatco.store.orders_pending 9 ``` -This example uses some randomly generated numbers so your values will vary a bit. You can see that `hatco.store.hats_sold` (the Counter) and -`hatco.store.coats_sold` (the ObservableCounter) both show up as a rate. The ObservableGauge, `hatco.store.orders_pending`, appears -as an absolute value. Dotnet-counters renders Histogram instruments as three percentile statistics (50th, 95th, and 99th) but other tools may -summarize the distribution differently or offer more configuration options. +This example uses some randomly generated numbers so your values will vary a bit. Dotnet-counters renders Histogram instruments as three percentile statistics (50th, 95th, and 99th) but other tools might summarize the distribution differently or offer more configuration options. ### Best practices @@ -380,8 +381,9 @@ Run the new process and use dotnet-counters as before in a second shell to view Press p to pause, r to resume, q to quit. Status: Running +Name Current Value [HatCo.Store] - hatco.store.hats_sold ({hats} / 1 sec) 40 + hatco.store.hats_sold ({hats}) 40 ``` dotnet-counters doesn't currently use the description text in the UI, but it does show the unit when it is provided. In this case, you see "{hats}" @@ -392,7 +394,7 @@ has replaced the generic term "Count" that is visible in previous descriptions. - .NET APIs allow any string to be used as the unit, but we recommend using [UCUM](https://ucum.org/), an international standard for unit names. The curly braces around "{hats}" is part of the UCUM standard, indicating that it is a descriptive annotation rather than a unit name with a standardized meaning like seconds or bytes. -- The unit specified in the constructor should describe the units appropriate for an individual measurement. This will sometimes differ from the units on the final metric. In this example, each measurement is a number of hats, so "{hats}" is the appropriate unit to pass in the constructor. The collection tool calculated a rate and derived on its own that the appropriate unit for the calculated metric is {hats}/sec. +- The unit specified in the constructor should describe the units appropriate for an individual measurement. This will sometimes differ from the units on the final reported metric. In this example, each measurement is a number of hats, so "{hats}" is the appropriate unit to pass in the constructor. The collection tool could have calculated the rate of change and derived on its own that the appropriate unit for the calculated rate metric is {hats}/sec. - When recording measurements of time, prefer units of seconds recorded as a floating point or double value. @@ -407,8 +409,8 @@ Counter and Histogram tags can be specified in overloads of the ("product.color", "red"), - new KeyValuePair("product.size", 12)); + new KeyValuePair("product.color", "red"), + new KeyValuePair("product.size", 12)); ``` Replace the code of `Program.cs` and rerun the app and dotnet-counters as before: @@ -432,11 +434,11 @@ class Program // Pretend our store has a transaction, every 100ms, that sells two size 12 red hats, and one size 19 blue hat. Thread.Sleep(100); s_hatsSold.Add(2, - new KeyValuePair("product.color", "red"), - new KeyValuePair("product.size", 12)); + new KeyValuePair("product.color", "red"), + new KeyValuePair("product.size", 12)); s_hatsSold.Add(1, - new KeyValuePair("product.color", "blue"), - new KeyValuePair("product.size", 19)); + new KeyValuePair("product.color", "blue"), + new KeyValuePair("product.size", 19)); } } } @@ -448,11 +450,12 @@ Dotnet-counters now shows a basic categorization: Press p to pause, r to resume, q to quit. Status: Running +Name Current Value [HatCo.Store] - hatco.store.hats_sold (Count / 1 sec) - product.color=blue,product.size=19 9 - product.color=red,product.size=12 18 - + hatco.store.hats_sold (Count) + product.color product.size + blue 19 73 + red 12 146 ``` For ObservableCounter and ObservableGauge, tagged measurements can be provided in the callback passed to the constructor: @@ -479,9 +482,9 @@ class Program return new Measurement[] { // pretend these measurements were read from a real queue somewhere - new Measurement(6, new KeyValuePair("customer.country", "Italy")), - new Measurement(3, new KeyValuePair("customer.country", "Spain")), - new Measurement(1, new KeyValuePair("customer.country", "Mexico")), + new Measurement(6, new KeyValuePair("customer.country", "Italy")), + new Measurement(3, new KeyValuePair("customer.country", "Spain")), + new Measurement(1, new KeyValuePair("customer.country", "Mexico")), }; } } @@ -493,11 +496,13 @@ When run with dotnet-counters as before, the result is: Press p to pause, r to resume, q to quit. Status: Running +Name Current Value [HatCo.Store] hatco.store.orders_pending - customer.country=Italy 6 - customer.country=Mexico 1 - customer.country=Spain 3 + customer.country + Italy 6 + Mexico 1 + Spain 3 ``` ### Best practices diff --git a/docs/core/diagnostics/observability-applicationinsights.md b/docs/core/diagnostics/observability-applicationinsights.md index 197392042da82..d57cd8b9d6efb 100644 --- a/docs/core/diagnostics/observability-applicationinsights.md +++ b/docs/core/diagnostics/observability-applicationinsights.md @@ -13,9 +13,9 @@ There are many commercial Application Performance Management (APM) systems avail To make the ASP.NET experience with Azure Monitor easier, a wrapper package (called a Distro in OTel parlance) is provided that does most of the heavy lifting of configuring OpenTelemetry. -This example is based off the [OTLP walkthrough](./observability-OTLP-example.md). Follow the steps 1-5 to create the application code using the OTLP exporter. In this example, we will extend the code to send data to Application Insights. +This example is based off the [OTLP walkthrough](./observability-otlp-example.md). Follow the steps 1-5 to create the application code using the OTLP exporter. In this example, we will extend the code to send data to Application Insights. -Take the same project from [Step 5](./observability-OTLP-example.md#5-configure-opentelemetry-with-the-correct-providers) and add the following NuGet package: +Take the same project from [Step 5](./observability-otlp-example.md#5-configure-opentelemetry-with-the-correct-providers) and add the following NuGet package: ``` xml diff --git a/docs/core/diagnostics/observability-OTLP-example.md b/docs/core/diagnostics/observability-otlp-example.md similarity index 99% rename from docs/core/diagnostics/observability-OTLP-example.md rename to docs/core/diagnostics/observability-otlp-example.md index 1612e22f37dfc..801ac07878580 100644 --- a/docs/core/diagnostics/observability-OTLP-example.md +++ b/docs/core/diagnostics/observability-otlp-example.md @@ -11,7 +11,7 @@ This is one of a series of examples to illustrate [.NET observability with OpenT In addition to being a standard part of .NET Aspire, the Aspire Dashboard is available as a [standalone docker container](/dotnet/aspire/fundamentals/dashboard/standalone?tabs=powershell), which provides an OTLP endpoint telemetry can be sent to, and it will visualize the logs, metrics and traces. Using the dashboard in this way has no dependency on .NET Aspire, it will visualize telemetry from any application sending it telemetry via OTLP. It works equally well for applications written in Java, GoLang, Python etc. provided that they can send their telemetry to an OTLP endpoint. -Using the Aspire Dashboard has less configuration and setup steps than using Open Source solutions such as [Prometheus, Grafana and Jaeger](./observability-PrGrJa-example.md), but unlike those tools, the Aspire Dashboard is intended as a developer visualization tool, and not for production monitoring. +Using the Aspire Dashboard has less configuration and setup steps than using Open Source solutions such as [Prometheus, Grafana and Jaeger](./observability-prgrja-example.md), but unlike those tools, the Aspire Dashboard is intended as a developer visualization tool, and not for production monitoring. ## 1. Create the project diff --git a/docs/core/diagnostics/observability-PrGrJa-example.md b/docs/core/diagnostics/observability-prgrja-example.md similarity index 100% rename from docs/core/diagnostics/observability-PrGrJa-example.md rename to docs/core/diagnostics/observability-prgrja-example.md diff --git a/docs/core/diagnostics/observability-with-otel.md b/docs/core/diagnostics/observability-with-otel.md index 89475d0dd2682..f921f29d99fcf 100644 --- a/docs/core/diagnostics/observability-with-otel.md +++ b/docs/core/diagnostics/observability-with-otel.md @@ -88,9 +88,9 @@ The following table describes the main packages. This topic is continued with a couple of example walkthroughs for using OpenTelemetry in .NET: -- [Example: Use OTLP and the standalone Aspire Dashboard](./observability-OTLP-example.md) +- [Example: Use OTLP and the standalone Aspire Dashboard](./observability-otlp-example.md) - [Example: Use OpenTelemetry with Azure Monitor and Application Insights](./observability-applicationinsights.md) -- [Example: Use OpenTelemetry with Prometheus, Grafana, and Jaeger](./observability-PrGrJa-example.md) +- [Example: Use OpenTelemetry with Prometheus, Grafana, and Jaeger](./observability-prgrja-example.md) ## OpenTelemetry in .NET Aspire @@ -112,10 +112,10 @@ For more details on .NET Aspire see: Probably the easiest way to configure OTel for ASP.NET projects is to use the Aspire Service Defaults project, even if not using the rest of .NET Aspire such as the AppHost for orchestration. The Service Defaults project is available as a project template via Visual Studio or `dotnet new`. It configures OTel and sets up the OTLP exporter. You can then use the [OTel environment variables](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Exporter.OpenTelemetryProtocol#exporter-configuration) to configure the OTLP endpoint to send telemetry to, and provide the resource properties for the application. -The steps to use _ServiceDefaults_ outside .NET Aspire are: +The steps to use *ServiceDefaults* outside .NET Aspire are: -- Add the _ServiceDefaults_ project to the solution using Add New Project in Visual Studio, or use `dotnet new aspire-servicedefaults --output ServiceDefaults` -- Reference the _ServiceDefaults_ project from your ASP.NET application. In Visual Studio use "Add -> Project Reference" and select the _ServiceDefaults_ project" +- Add the *ServiceDefaults* project to the solution using Add New Project in Visual Studio, or use `dotnet new aspire-servicedefaults --output ServiceDefaults` +- Reference the *ServiceDefaults* project from your ASP.NET application. In Visual Studio use "Add -> Project Reference" and select the *ServiceDefaults* project" - Call its OpenTelemetry setup function as part of your application builder initialization. ``` csharp diff --git a/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj b/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj index e994169e6c630..0edc3306fa98c 100644 --- a/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj +++ b/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/core/tools/dotnet-format.md b/docs/core/tools/dotnet-format.md index 6e78575124d83..6dbffdda791ac 100644 --- a/docs/core/tools/dotnet-format.md +++ b/docs/core/tools/dotnet-format.md @@ -105,7 +105,7 @@ The `dotnet format style` subcommand only runs formatting rules associated with * **`--diagnostics `** - A space-separated list of diagnostic IDs to use as a filter when fixing code style or third-party issues. Default value is whichever IDs are listed in the *.editorconfig* file. For a list of built-in analyzer rule IDs that you can specify, see the [list of IDs for code-analysis style rules](../../fundamentals/code-analysis/style-rules/index.md). + A space-separated list of diagnostic IDs to use as a filter when fixing code style issues. Default value is whichever IDs are listed in the *.editorconfig* file. For a list of built-in code style analyzer rule IDs that you can specify, see the [list of IDs for code-analysis style rules](../../fundamentals/code-analysis/style-rules/index.md). * **`--severity`** @@ -113,17 +113,17 @@ The `dotnet format style` subcommand only runs formatting rules associated with ### Analyzers -`dotnet format analyzers` - Formats code to match `editorconfig` settings for analyzers. +`dotnet format analyzers` - Formats code to match `editorconfig` settings for analyzers (excluding code style rules). #### Description -The `dotnet format analyzers` subcommand only runs formatting rules associated with analyzers. For a list of analyzer rules that you can specify in your `editorconfig` file, see [Code style rules](../../fundamentals/code-analysis/style-rules/index.md). +The `dotnet format analyzers` subcommand only runs formatting rules associated with analyzers. For a list of analyzer rules that you can specify in your `editorconfig` file, see [Quality rules](../../fundamentals/code-analysis/quality-rules/index.md). ##### Options * **`--diagnostics `** - A space-separated list of diagnostic IDs to use as a filter when fixing code style or third-party issues. Default value is whichever IDs are listed in the *.editorconfig* file. For a list of built-in analyzer rule IDs that you can specify, see the [list of IDs for code-analysis style rules](../../fundamentals/code-analysis/style-rules/index.md). + A space-separated list of diagnostic IDs to use as a filter when fixing non code style issues. Default value is whichever IDs are listed in the *.editorconfig* file. For a list of built-in analyzer rule IDs that you can specify, see the [list of IDs for quality rules](../../fundamentals/code-analysis/quality-rules/index.md). For third-party analyzers refer to their documentation. * **`--severity`** @@ -154,3 +154,27 @@ The `dotnet format analyzers` subcommand only runs formatting rules associated w ```dotnetcli dotnet format --include ./src/ ./tests/ --exclude ./src/submodule-a/ ``` + +* Fix a specific **code style** issue: + + ```dotnetcli + dotnet format style --diagnostics IDE0005 --severity info + ``` + +* Fix all **code style** issues that have severity `info`, `warning` or `error`: + + ```dotnetcli + dotnet format style --severity info + ``` + +* Fix a specific (non code style) analyzer issue: + + ```dotnetcli + dotnet format analyzers --diagnostics CA1831 --severity warn + ``` + +* Fix all non code style issues that have severity `info`, `warning` or `error`: + + ```dotnetcli + dotnet format analyzers --severity info + ``` diff --git a/docs/core/tutorials/publishing-with-visual-studio-code.md b/docs/core/tutorials/publishing-with-visual-studio-code.md index bc76b5042e0c6..750ec8827b04b 100644 --- a/docs/core/tutorials/publishing-with-visual-studio-code.md +++ b/docs/core/tutorials/publishing-with-visual-studio-code.md @@ -29,10 +29,10 @@ The .NET CLI is used to publish the app, so you can follow this tutorial with a 1. Run the following command: ```dotnetcli - dotnet publish --configuration Release + dotnet publish ``` - The default build configuration is *Debug*, so this command specifies the *Release* build configuration. The output from the Release build configuration has minimal symbolic debug information and is fully optimized. + The default build configuration is *Release*, which is appropriate for a deployed site running in producction. The output from the Release build configuration has minimal symbolic debug information and is fully optimized. The command output is similar to the following example: diff --git a/docs/core/whats-new/dotnet-9/libraries.md b/docs/core/whats-new/dotnet-9/libraries.md index 3a7985e5cbba9..12e984fc3f0d5 100644 --- a/docs/core/whats-new/dotnet-9/libraries.md +++ b/docs/core/whats-new/dotnet-9/libraries.md @@ -503,7 +503,7 @@ As with earlier versions of , you can configure whether i ### Order JsonObject properties -The type now exposes ordered dictionary–like APIs that enable explicit property order manipulation. +The type now exposes ordered dictionary–like APIs that enable explicit property order manipulation. :::code language="csharp" source="../snippets/dotnet-9/csharp/Serialization.cs" id="PropertyOrder"::: diff --git a/docs/core/whats-new/dotnet-9/sdk.md b/docs/core/whats-new/dotnet-9/sdk.md index f5cfa5f46250a..b9774009a9d3a 100644 --- a/docs/core/whats-new/dotnet-9/sdk.md +++ b/docs/core/whats-new/dotnet-9/sdk.md @@ -136,7 +136,7 @@ This kind of version mismatch between the .NET SDK and MSBuild is referred to as ## Workload sets -*Workload sets* is an SDK feature intended to give users more control over the workloads they install and the cadence of change of those workloads. In previous versions, workloads would periodically be updated as new versions of individual workloads were released onto any configured NuGet feeds. Now, *all* of your workloads will stay at a specific, single version until you make an explicit update gesture. +*Workload sets* is an SDK feature intended to give users more control over the workloads they install and the cadence of change of those workloads. In previous versions, workloads were periodically updated as new versions of individual workloads were released onto any configured NuGet feeds. Now, *all* of your workloads stay at a specific, single version until you make an explicit update gesture. You can see what mode your SDK installation is in by running `dotnet workload --info`: @@ -160,7 +160,7 @@ Successfully updated workload install mode to use workload-set. If you need to change back for any reason, you can run the same command with `manifests` instead of `workload-set`. You can also use `dotnet workload config --update-mode` to check the current mode of operation. - +For more information, see [.NET SDK workload sets](../../tools/dotnet-workload-sets.md). ## Containers diff --git a/docs/core/whats-new/snippets/dotnet-9/csharp/Collections.cs b/docs/core/whats-new/snippets/dotnet-9/csharp/Collections.cs index 8e292101837ea..ac49b9977b9fc 100644 --- a/docs/core/whats-new/snippets/dotnet-9/csharp/Collections.cs +++ b/docs/core/whats-new/snippets/dotnet-9/csharp/Collections.cs @@ -58,8 +58,6 @@ internal partial class ReadOnlyCollections // // - private readonly Dictionary _wordCounts = new(StringComparer.OrdinalIgnoreCase); - private static Dictionary CountWords(ReadOnlySpan input) { Dictionary wordCounts = new(StringComparer.OrdinalIgnoreCase); diff --git a/docs/core/whats-new/snippets/dotnet-9/csharp/Runtime.cs b/docs/core/whats-new/snippets/dotnet-9/csharp/Runtime.cs index 89a479aac4dd1..9da000f07457b 100644 --- a/docs/core/whats-new/snippets/dotnet-9/csharp/Runtime.cs +++ b/docs/core/whats-new/snippets/dotnet-9/csharp/Runtime.cs @@ -7,12 +7,12 @@ class Runtime { // - static int Sum(int[] arr) + static int Sum(int[] nums) { int sum = 0; - for (int i = 0; i < arr.Length; i++) + for (int i = 0; i < nums.Length; i++) { - sum += arr[i]; + sum += nums[i]; } return sum; diff --git a/docs/csharp/language-reference/builtin-types/value-tuples.md b/docs/csharp/language-reference/builtin-types/value-tuples.md index 68b0d49205eae..d6bbfad2536c6 100644 --- a/docs/csharp/language-reference/builtin-types/value-tuples.md +++ b/docs/csharp/language-reference/builtin-types/value-tuples.md @@ -160,7 +160,7 @@ C# tuples, which are backed by >`, and `>>>`, the type of the right-hand operand must be `int` or a type that has a [predefined implicit numeric conversion](../builtin-types/numeric-conversions.md#implicit-numeric-conversions) to `int`. - For the `x << count`, `x >> count`, and `x >>> count` expressions, the actual shift count depends on the type of `x` as follows: - If the type of `x` is `int` or `uint`, the shift count is defined by the low-order *five* bits of the right-hand operand. That is, the shift count is computed from `count & 0x1F` (or `count & 0b_1_1111`). diff --git a/docs/navigate/tools-diagnostics/toc.yml b/docs/navigate/tools-diagnostics/toc.yml index 6477caee0c03c..205a5a79a7208 100644 --- a/docs/navigate/tools-diagnostics/toc.yml +++ b/docs/navigate/tools-diagnostics/toc.yml @@ -23,74 +23,74 @@ items: items: - name: NETSDK errors items: - - name: List of NETSDK errors - href: ../../core/tools/sdk-errors/index.md - - name: NETSDK1004 - href: ../../core/tools/sdk-errors/netsdk1004.md - - name: NETSDK1005 and NETSDK1047 - href: ../../core/tools/sdk-errors/netsdk1005.md - - name: NETSDK1013 - href: ../../core/tools/sdk-errors/netsdk1013.md - - name: NETSDK1022 - href: ../../core/tools/sdk-errors/netsdk1022.md - - name: NETSDK1045 - href: ../../core/tools/sdk-errors/netsdk1045.md - - name: NETSDK1059 - href: ../../core/tools/sdk-errors/netsdk1059.md - - name: NETSDK1064 - href: ../../core/tools/sdk-errors/netsdk1064.md - - name: NETSDK1071 - href: ../../core/tools/sdk-errors/netsdk1071.md - - name: NETSDK1073 - href: ../../core/tools/sdk-errors/netsdk1073.md - - name: NETSDK1079 - href: ../../core/tools/sdk-errors/netsdk1079.md - - name: NETSDK1080 - href: ../../core/tools/sdk-errors/netsdk1080.md - - name: NETSDK1082 - href: ../../core/tools/sdk-errors/netsdk1082.md - - name: NETSDK1083 - href: ../../core/tools/sdk-errors/netsdk1083.md - - name: NETSDK1100 - href: ../../core/tools/sdk-errors/netsdk1100.md - - name: NETSDK1112 - href: ../../core/tools/sdk-errors/netsdk1112.md - - name: NETSDK1130 - href: ../../core/tools/sdk-errors/netsdk1130.md - - name: NETSDK1135 - href: ../../core/tools/sdk-errors/netsdk1135.md - - name: NETSDK1136 - href: ../../core/tools/sdk-errors/netsdk1136.md - - name: NETSDK1137 - href: ../../core/tools/sdk-errors/netsdk1137.md - - name: NETSDK1138 - href: ../../core/tools/sdk-errors/netsdk1138.md - - name: NETSDK1141 - href: ../../core/tools/sdk-errors/netsdk1141.md - - name: NETSDK1145 - href: ../../core/tools/sdk-errors/netsdk1145.md - - name: NETSDK1147 - href: ../../core/tools/sdk-errors/netsdk1147.md - - name: NETSDK1149 - href: ../../core/tools/sdk-errors/netsdk1149.md - - name: NETSDK1174 - href: ../../core/tools/sdk-errors/netsdk1174.md - - name: NETSDK1182 - href: ../../core/tools/sdk-errors/netsdk1182.md - - name: NETSDK1195 - href: ../../core/tools/sdk-errors/netsdk1195.md - - name: NETSDK1202 - href: ../../core/tools/sdk-errors/netsdk1202.md - - name: NETSDK1206 - href: ../../core/tools/sdk-errors/netsdk1206.md + - name: List of NETSDK errors + href: ../../core/tools/sdk-errors/index.md + - name: NETSDK1004 + href: ../../core/tools/sdk-errors/netsdk1004.md + - name: NETSDK1005 and NETSDK1047 + href: ../../core/tools/sdk-errors/netsdk1005.md + - name: NETSDK1013 + href: ../../core/tools/sdk-errors/netsdk1013.md + - name: NETSDK1022 + href: ../../core/tools/sdk-errors/netsdk1022.md + - name: NETSDK1045 + href: ../../core/tools/sdk-errors/netsdk1045.md + - name: NETSDK1059 + href: ../../core/tools/sdk-errors/netsdk1059.md + - name: NETSDK1064 + href: ../../core/tools/sdk-errors/netsdk1064.md + - name: NETSDK1071 + href: ../../core/tools/sdk-errors/netsdk1071.md + - name: NETSDK1073 + href: ../../core/tools/sdk-errors/netsdk1073.md + - name: NETSDK1079 + href: ../../core/tools/sdk-errors/netsdk1079.md + - name: NETSDK1080 + href: ../../core/tools/sdk-errors/netsdk1080.md + - name: NETSDK1082 + href: ../../core/tools/sdk-errors/netsdk1082.md + - name: NETSDK1083 + href: ../../core/tools/sdk-errors/netsdk1083.md + - name: NETSDK1100 + href: ../../core/tools/sdk-errors/netsdk1100.md + - name: NETSDK1112 + href: ../../core/tools/sdk-errors/netsdk1112.md + - name: NETSDK1130 + href: ../../core/tools/sdk-errors/netsdk1130.md + - name: NETSDK1135 + href: ../../core/tools/sdk-errors/netsdk1135.md + - name: NETSDK1136 + href: ../../core/tools/sdk-errors/netsdk1136.md + - name: NETSDK1137 + href: ../../core/tools/sdk-errors/netsdk1137.md + - name: NETSDK1138 + href: ../../core/tools/sdk-errors/netsdk1138.md + - name: NETSDK1141 + href: ../../core/tools/sdk-errors/netsdk1141.md + - name: NETSDK1145 + href: ../../core/tools/sdk-errors/netsdk1145.md + - name: NETSDK1147 + href: ../../core/tools/sdk-errors/netsdk1147.md + - name: NETSDK1149 + href: ../../core/tools/sdk-errors/netsdk1149.md + - name: NETSDK1174 + href: ../../core/tools/sdk-errors/netsdk1174.md + - name: NETSDK1182 + href: ../../core/tools/sdk-errors/netsdk1182.md + - name: NETSDK1195 + href: ../../core/tools/sdk-errors/netsdk1195.md + - name: NETSDK1202 + href: ../../core/tools/sdk-errors/netsdk1202.md + - name: NETSDK1206 + href: ../../core/tools/sdk-errors/netsdk1206.md - name: BuildCheck rules items: - - name: Index of rules - href: ../../core/tools/buildcheck-rules/index.md - - name: BC0101 - href: ../../core/tools/buildcheck-rules/bc0101.md - - name: BC0102 - href: ../../core/tools/buildcheck-rules/bc0102.md + - name: Index of rules + href: ../../core/tools/buildcheck-rules/index.md + - name: BC0101 + href: ../../core/tools/buildcheck-rules/bc0101.md + - name: BC0102 + href: ../../core/tools/buildcheck-rules/bc0102.md - name: .NET CLI items: - name: Overview @@ -325,17 +325,17 @@ items: href: ../../core/additional-tools/index.md - name: .NET Uninstall Tool items: - - name: Overview - href: ../../core/additional-tools/uninstall-tool-overview.md - - name: Command reference - expanded: true - items: - - name: dotnet-core-uninstall list - href: ../../core/additional-tools/uninstall-tool-cli-list.md - - name: dotnet-core-uninstall dry-run - href: ../../core/additional-tools/uninstall-tool-cli-dry-run.md - - name: dotnet-core-uninstall remove - href: ../../core/additional-tools/uninstall-tool-cli-remove.md + - name: Overview + href: ../../core/additional-tools/uninstall-tool-overview.md + - name: Command reference + expanded: true + items: + - name: dotnet-core-uninstall list + href: ../../core/additional-tools/uninstall-tool-cli-list.md + - name: dotnet-core-uninstall dry-run + href: ../../core/additional-tools/uninstall-tool-cli-dry-run.md + - name: dotnet-core-uninstall remove + href: ../../core/additional-tools/uninstall-tool-cli-remove.md - name: .NET install tool for extension authors href: ../../core/additional-tools/vscode-dotnet-runtime.md - name: Generate self-signed certificates @@ -353,364 +353,364 @@ items: href: ../../core/additional-tools/xml-serializer-generator.md - name: Diagnostics and instrumentation items: - - name: Overview - displayName: diagnostics, instrumentation - href: ../../core/diagnostics/index.md - - name: Managed debuggers - href: ../../core/diagnostics/managed-debuggers.md - - name: Logging & tracing options - href: ../../core/diagnostics/logging-tracing.md - - name: ILogger Logging - href: ../../core/extensions/logging.md - - name: Observability with OpenTelemetry - items: - - name: Overview - href: ../../core/diagnostics/observability-with-otel.md - - name: "Example: Use OpenTelemetry with OTLP and the standalone Aspire Dashboard" - href: ../../core/diagnostics/observability-OTLP-example.md - - name: "Example: Use OpenTelemetry with Prometheus, Grafana, and Jaeger" - href: ../../core/diagnostics/observability-PrGrJa-example.md - - name: "Example: Use OpenTelemetry with Azure Monitor and Application Insights" - href: ../../core/diagnostics/observability-applicationinsights.md - - name: Resource monitoring - href: ../../core/diagnostics/diagnostic-resource-monitoring.md - displayName: resource monitoring, - - name: App health checks - href: ../../core/diagnostics/diagnostic-health-checks.md - displayName: health check,healthcheck,degraded,healthy,unhealthy,resource monitoring,resource health,app lifecycle monitoring - - name: Metrics - items: - - name: Overview - displayName: metrics - href: ../../core/diagnostics/metrics.md - - name: Instrumentation - href: ../../core/diagnostics/metrics-instrumentation.md - - name: Exception summarization - href: ../../core/diagnostics/diagnostic-exception-summary.md - displayName: exception summarization,exception summary,exception summarizer,ExceptionSummary - - name: Collection - href: ../../core/diagnostics/metrics-collection.md - - name: Built-in metrics - items: - - name: Overview - href: ../../core/diagnostics/built-in-metrics.md - - name: .NET runtime metrics - href: ../../core/diagnostics/built-in-metrics-runtime.md - - name: .NET extensions metrics - href: ../../core/diagnostics/built-in-metrics-diagnostics.md - - name: ASP.NET Core metrics - href: ../../core/diagnostics/built-in-metrics-aspnetcore.md - - name: System.Net metrics - href: ../../core/diagnostics/built-in-metrics-system-net.md - - name: EventCounters - items: - - name: Overview - displayName: eventcounter - href: ../../core/diagnostics/event-counters.md - - name: Well-known counters - href: ../../core/diagnostics/available-counters.md - - name: "Tutorial: Measure performance with EventCounters" - href: ../../core/diagnostics/event-counter-perf.md - - name: Compare metric APIs - href: ../../core/diagnostics/compare-metric-apis.md - - name: Distributed tracing - items: - name: Overview - href: ../../core/diagnostics/distributed-tracing.md - displayName: distributed tracing - - name: Concepts - href: ../../core/diagnostics/distributed-tracing-concepts.md - - name: Instrumentation - href: ../../core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md - - name: Collection - href: ../../core/diagnostics/distributed-tracing-collection-walkthroughs.md - - name: Specialized diagnostics - items: - - name: Overview - href: ../../core/diagnostics/specialized-diagnostics-overview.md - - name: Event Source + displayName: diagnostics, instrumentation + href: ../../core/diagnostics/index.md + - name: Managed debuggers + href: ../../core/diagnostics/managed-debuggers.md + - name: Logging & tracing options + href: ../../core/diagnostics/logging-tracing.md + - name: ILogger Logging + href: ../../core/extensions/logging.md + - name: Observability with OpenTelemetry items: - - name: Overview - href: ../../core/diagnostics/eventsource.md - displayName: event source, eventsource - - name: Get started - href: ../../core/diagnostics/eventsource-getting-started.md - - name: Instrumentation - href: ../../core/diagnostics/eventsource-instrumentation.md - - name: Collection - href: ../../core/diagnostics/eventsource-collect-and-view-traces.md - - name: Activity IDs - href: ../../core/diagnostics/eventsource-activity-ids.md - - name: Well-known event providers - href: ../../core/diagnostics/well-known-event-providers.md - - name: Runtime event reference - items: - name: Overview - href: ../../fundamentals/diagnostics/runtime-events.md - - name: Contention events - href: ../../fundamentals/diagnostics/runtime-contention-events.md - - name: Exception events - href: ../../fundamentals/diagnostics/runtime-exception-events.md - - name: Garbage collection events - href: ../../fundamentals/diagnostics/runtime-garbage-collection-events.md - - name: Interop events - href: ../../fundamentals/diagnostics/runtime-interop-events.md - - name: Loader and binder events - href: ../../fundamentals/diagnostics/runtime-loader-binder-events.md - - name: Method events - href: ../../fundamentals/diagnostics/runtime-method-events.md - - name: ThreadPool events - href: ../../fundamentals/diagnostics/runtime-thread-events.md - - name: Type-system events - href: ../../fundamentals/diagnostics/runtime-type-events.md - - name: Tiered compilation events - href: ../../fundamentals/diagnostics/runtime-tiered-compilation-events.md - - name: Collect diagnostics in containers - href: ../../core/diagnostics/diagnostics-in-containers.md - - name: Dumps - items: - - name: Overview - displayName: dumps - href: ../../core/diagnostics/dumps.md - - name: Linux dumps - href: ../../core/diagnostics/debug-linux-dumps.md - - name: SOS debugger extension - href: ../../core/diagnostics/sos-debugging-extension.md - - name: Debug Windows dumps - href: ../../core/diagnostics/debug-windows-dumps.md - - name: Collect dumps on crash - href: ../../core/diagnostics/collect-dumps-crash.md - - name: Symbols - href: ../../core/diagnostics/symbols.md - - name: EventPipe - href: ../../core/diagnostics/eventpipe.md - - name: Diagnostic port + href: ../../core/diagnostics/observability-with-otel.md + - name: "Example: Use OpenTelemetry with OTLP and the standalone Aspire Dashboard" + href: ../../core/diagnostics/observability-otlp-example.md + - name: "Example: Use OpenTelemetry with Prometheus, Grafana, and Jaeger" + href: ../../core/diagnostics/observability-prgrja-example.md + - name: "Example: Use OpenTelemetry with Azure Monitor and Application Insights" + href: ../../core/diagnostics/observability-applicationinsights.md + - name: Resource monitoring + href: ../../core/diagnostics/diagnostic-resource-monitoring.md + displayName: resource monitoring, + - name: App health checks + href: ../../core/diagnostics/diagnostic-health-checks.md + displayName: health check,healthcheck,degraded,healthy,unhealthy,resource monitoring,resource health,app lifecycle monitoring + - name: Metrics items: - - name: Overview - href: ../../core/diagnostics/diagnostic-port.md - - name: Microsoft.Diagnostics.NETCore.Client library - items: - - name: Overview and examples - displayName: diagnostics client library - href: ../../core/diagnostics/diagnostics-client-library.md - - name: API reference - href: ../../core/diagnostics/microsoft-diagnostics-netcore-client.md - - name: DiagnosticSource and DiagnosticListener - items: - - name: Get started - href: ../../core/diagnostics/diagnosticsource-diagnosticlistener.md - - name: Supplemental API remarks - items: - - name: The EventSource class - href: ../../fundamentals/runtime-libraries/system-diagnostics-tracing-eventsource.md - - name: The EventWrittenEventArgs class - href: ../../fundamentals/runtime-libraries/system-diagnostics-tracing-eventwritteneventargs.md - - name: The PerformanceCounterType enum - href: ../../fundamentals/runtime-libraries/system-diagnostics-performancecountertype.md - - name: .NET CLI global tools - items: - - name: Overview - href: ../../core/diagnostics/tools-overview.md - - name: dotnet-counters - href: ../../core/diagnostics/dotnet-counters.md - - name: dotnet-coverage - href: ../../core/additional-tools/dotnet-coverage.md - - name: dotnet-dump - href: ../../core/diagnostics/dotnet-dump.md - - name: dotnet-gcdump - href: ../../core/diagnostics/dotnet-gcdump.md - - name: dotnet-monitor - href: ../../core/diagnostics/dotnet-monitor.md - - name: dotnet-trace - href: ../../core/diagnostics/dotnet-trace.md - - name: dotnet-stack - href: ../../core/diagnostics/dotnet-stack.md - - name: dotnet-symbol - href: ../../core/diagnostics/dotnet-symbol.md - - name: dotnet-sos - href: ../../core/diagnostics/dotnet-sos.md - - name: dotnet-dsrouter - href: ../../core/diagnostics/dotnet-dsrouter.md - - name: .NET diagnostics tutorials - items: - - name: Collect performance trace in Linux with PerfCollect - href: ../../core/diagnostics/trace-perfcollect-lttng.md - - name: Debug a memory leak - href: ../../core/diagnostics/debug-memory-leak.md - - name: Debug high CPU usage - href: ../../core/diagnostics/debug-highcpu.md - - name: Debug deadlock - href: ../../core/diagnostics/debug-deadlock.md - - name: Debug ThreadPool starvation - href: ../../core/diagnostics/debug-threadpool-starvation.md - - name: Debug a stack overflow - href: ../../core/diagnostics/debug-stackoverflow.md - - name: Unmanaged API reference - items: - - name: Debugging - items: - - name: Overview - href: ../../core/unmanaged-api/debugging/index.md - - name: Functions - items: - - name: CLRCreateInstance function - href: ../../core/unmanaged-api/debugging/clrcreateinstance-function.md - - name: CloseCLREnumeration function - href: ../../core/unmanaged-api/debugging/closeclrenumeration-function.md - - name: CloseResumeHandle function - href: ../../core/unmanaged-api/debugging/closeresumehandle-function.md - - name: CreateVersionStringFromModule function - href: ../../core/unmanaged-api/debugging/createversionstringfrommodule-function.md - - name: CreateDebuggingInterfaceFromVersion function - href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md - - name: CreateDebuggingInterfaceFromVersionEx function - href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md - - name: CreateDebuggingInterfaceFromVersion2 function - href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md - - name: CreateDebuggingInterfaceFromVersion3 function - href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md - - name: CreateProcessForLaunch function - href: ../../core/unmanaged-api/debugging/createprocessforlaunch-function.md - - name: EnumerateCLRs function - href: ../../core/unmanaged-api/debugging/enumerateclrs-function.md - - name: GetStartupNotificationEvent function - href: ../../core/unmanaged-api/debugging/getstartupnotificationevent-function.md - - name: RegisterForRuntimeStartup function - href: ../../core/unmanaged-api/debugging/registerforruntimestartup-function.md - - name: RegisterForRuntimeStartupEx function - href: ../../core/unmanaged-api/debugging/registerforruntimestartupex-function.md - - name: RegisterForRuntimeStartup3 function - href: ../../core/unmanaged-api/debugging/registerforruntimestartup3-function.md - - name: ResumeProcess function - href: ../../core/unmanaged-api/debugging/resumeprocess-function.md - - name: UnregisterForRuntimeStartup function - href: ../../core/unmanaged-api/debugging/unregisterforruntimestartup-function.md - - name: Interfaces - items: - - name: ICLRDebuggingLibraryProvider2 interface + - name: Overview + displayName: metrics + href: ../../core/diagnostics/metrics.md + - name: Instrumentation + href: ../../core/diagnostics/metrics-instrumentation.md + - name: Exception summarization + href: ../../core/diagnostics/diagnostic-exception-summary.md + displayName: exception summarization,exception summary,exception summarizer,ExceptionSummary + - name: Collection + href: ../../core/diagnostics/metrics-collection.md + - name: Built-in metrics items: - - name: Overview - href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md - displayName: ICLRDebuggingLibraryProvider2 - - name: ProvideLibrary2 method - href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md - - name: ICLRDebuggingLibraryProvider3 interface + - name: Overview + href: ../../core/diagnostics/built-in-metrics.md + - name: .NET runtime metrics + href: ../../core/diagnostics/built-in-metrics-runtime.md + - name: .NET extensions metrics + href: ../../core/diagnostics/built-in-metrics-diagnostics.md + - name: ASP.NET Core metrics + href: ../../core/diagnostics/built-in-metrics-aspnetcore.md + - name: System.Net metrics + href: ../../core/diagnostics/built-in-metrics-system-net.md + - name: EventCounters items: - - name: Overview - href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md - displayName: ICLRDebuggingLibraryProvider3 - - name: ProvideWindowsLibrary method - href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md - - name: ProvideUnixLibrary method - href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md - - name: Enumerations - items: - - name: LIBRARY_PROVIDER_INDEX_TYPE enumeration - href: ../../core/unmanaged-api/debugging/libraryproviderindextype-enumeration.md - - name: Function pointers - items: - - name: PSTARTUP_CALLBACK function pointer - href: ../../core/unmanaged-api/debugging/pstartup_callback-function-pointer.md - - name: Profiling + - name: Overview + displayName: eventcounter + href: ../../core/diagnostics/event-counters.md + - name: Well-known counters + href: ../../core/diagnostics/available-counters.md + - name: "Tutorial: Measure performance with EventCounters" + href: ../../core/diagnostics/event-counter-perf.md + - name: Compare metric APIs + href: ../../core/diagnostics/compare-metric-apis.md + - name: Distributed tracing items: - - name: Overview - href: ../../core/unmanaged-api/profiling/index.md - - name: Structures - items: - - name: COR_PRF_EVENT_DATA structure - href: ../../core/unmanaged-api/profiling/cor-prf-event-data-structure.md - - name: COR_PRF_EVENTPIPE_PARAM_DESC structure - href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-param-desc-structure.md - - name: COR_PRF_EVENTPIPE_PROVIDER_CONFIG structure - href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-provider-config-structure.md - - name: Enumerations - items: - - name: COR_PRF_EVENTPIPE_LEVEL enumeration - href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-level-enumeration.md - - name: COR_PRF_EVENTPIPE_PARAM_TYPE enumeration - href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-param-type-enumeration.md - - name: COR_PRF_HANDLE_TYPE enumeration - href: ../../core/unmanaged-api/profiling/cor-prf-handle-type-enumeration.md - - name: COR_PRF_REJIT_FLAGS enumeration - href: ../../core/unmanaged-api/profiling/cor-prf-rejit-flags-enumeration.md - - name: Interfaces - items: - - name: ICorProfilerCallback10 interface + - name: Overview + href: ../../core/diagnostics/distributed-tracing.md + displayName: distributed tracing + - name: Concepts + href: ../../core/diagnostics/distributed-tracing-concepts.md + - name: Instrumentation + href: ../../core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md + - name: Collection + href: ../../core/diagnostics/distributed-tracing-collection-walkthroughs.md + - name: Specialized diagnostics + items: + - name: Overview + href: ../../core/diagnostics/specialized-diagnostics-overview.md + - name: Event Source items: - - name: Overview - href: ../../core/unmanaged-api/profiling/icorprofilercallback10-interface.md - displayName: ICorProfilerCallback10 - - name: EventPipeEventDelivered method - href: ../../core/unmanaged-api/profiling/icorprofilercallback10-eventpipeeventdelivered-method.md - - name: EventPipeProviderCreated method - href: ../../core/unmanaged-api/profiling/icorprofilercallback10-eventpipeprovidercreated-method.md - - name: ICorProfilerInfo9 interface + - name: Overview + href: ../../core/diagnostics/eventsource.md + displayName: event source, eventsource + - name: Get started + href: ../../core/diagnostics/eventsource-getting-started.md + - name: Instrumentation + href: ../../core/diagnostics/eventsource-instrumentation.md + - name: Collection + href: ../../core/diagnostics/eventsource-collect-and-view-traces.md + - name: Activity IDs + href: ../../core/diagnostics/eventsource-activity-ids.md + - name: Well-known event providers + href: ../../core/diagnostics/well-known-event-providers.md + - name: Runtime event reference + items: + - name: Overview + href: ../../fundamentals/diagnostics/runtime-events.md + - name: Contention events + href: ../../fundamentals/diagnostics/runtime-contention-events.md + - name: Exception events + href: ../../fundamentals/diagnostics/runtime-exception-events.md + - name: Garbage collection events + href: ../../fundamentals/diagnostics/runtime-garbage-collection-events.md + - name: Interop events + href: ../../fundamentals/diagnostics/runtime-interop-events.md + - name: Loader and binder events + href: ../../fundamentals/diagnostics/runtime-loader-binder-events.md + - name: Method events + href: ../../fundamentals/diagnostics/runtime-method-events.md + - name: ThreadPool events + href: ../../fundamentals/diagnostics/runtime-thread-events.md + - name: Type-system events + href: ../../fundamentals/diagnostics/runtime-type-events.md + - name: Tiered compilation events + href: ../../fundamentals/diagnostics/runtime-tiered-compilation-events.md + - name: Collect diagnostics in containers + href: ../../core/diagnostics/diagnostics-in-containers.md + - name: Dumps items: - - name: Overview - href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-interface.md - displayName: ICorProfilerInfo9 - - name: GetCodeInfo4 method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-getcodeinfo4-method.md - - name: GetILToNativeMapping3 method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-getiltonativemapping3-method.md - - name: GetNativeCodeStartAddresses method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-getnativecodestartaddresses-method.md - - name: ICorProfilerInfo10 interface + - name: Overview + displayName: dumps + href: ../../core/diagnostics/dumps.md + - name: Linux dumps + href: ../../core/diagnostics/debug-linux-dumps.md + - name: SOS debugger extension + href: ../../core/diagnostics/sos-debugging-extension.md + - name: Debug Windows dumps + href: ../../core/diagnostics/debug-windows-dumps.md + - name: Collect dumps on crash + href: ../../core/diagnostics/collect-dumps-crash.md + - name: Symbols + href: ../../core/diagnostics/symbols.md + - name: EventPipe + href: ../../core/diagnostics/eventpipe.md + - name: Diagnostic port items: - - name: Overview - href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-interface.md - displayName: ICorProfilerInfo10 - - name: EnumerateObjectReferences method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-enumerateobjectreferences-method.md - - name: IsFrozenObject method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-isfrozenobject-method.md - - name: GetLOHObjectSizeThreshold method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-getlohobjectsizethreshold-method.md - - name: RequestReJITWithInliners method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-requestrejitwithinliners-method.md - - name: ResumeRuntime method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-resumeruntime-method.md - - name: SuspendRuntime method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-suspendruntime-method.md - - name: ICorProfilerInfo11 interface + - name: Overview + href: ../../core/diagnostics/diagnostic-port.md + - name: Microsoft.Diagnostics.NETCore.Client library + items: + - name: Overview and examples + displayName: diagnostics client library + href: ../../core/diagnostics/diagnostics-client-library.md + - name: API reference + href: ../../core/diagnostics/microsoft-diagnostics-netcore-client.md + - name: DiagnosticSource and DiagnosticListener items: - - name: Overview - href: ../../core/unmanaged-api/profiling/icorprofilerinfo11-interface.md - displayName: ICorProfilerInfo11 - - name: GetEnvironmentVariable method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo11-getenvironmentvariable-method.md - - name: SetEnvironmentVariable method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo11-setenvironmentvariable-method.md - - name: ICorProfilerInfo12 interface + - name: Get started + href: ../../core/diagnostics/diagnosticsource-diagnosticlistener.md + - name: Supplemental API remarks items: - - name: Overview - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-interface.md - displayName: ICorProfilerInfo12 - - name: EventPipeAddProviderToSession method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipeaddprovidertosession-method.md - - name: EventPipeCreateProvider method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipecreateprovider-method.md - - name: EventPipeDefineEvent method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipedefineevent-method.md - - name: EventPipeGetProviderInfo method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipegetproviderinfo-method.md - - name: EventPipeStartSession method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipestartsession-method.md - - name: EventPipeStopSession method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipestopsession-method.md - - name: EventPipeWriteEvent method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipewriteevent-method.md - - name: ICorProfilerInfo13 interface + - name: The EventSource class + href: ../../fundamentals/runtime-libraries/system-diagnostics-tracing-eventsource.md + - name: The EventWrittenEventArgs class + href: ../../fundamentals/runtime-libraries/system-diagnostics-tracing-eventwritteneventargs.md + - name: The PerformanceCounterType enum + href: ../../fundamentals/runtime-libraries/system-diagnostics-performancecountertype.md + - name: .NET CLI global tools + items: + - name: Overview + href: ../../core/diagnostics/tools-overview.md + - name: dotnet-counters + href: ../../core/diagnostics/dotnet-counters.md + - name: dotnet-coverage + href: ../../core/additional-tools/dotnet-coverage.md + - name: dotnet-dump + href: ../../core/diagnostics/dotnet-dump.md + - name: dotnet-gcdump + href: ../../core/diagnostics/dotnet-gcdump.md + - name: dotnet-monitor + href: ../../core/diagnostics/dotnet-monitor.md + - name: dotnet-trace + href: ../../core/diagnostics/dotnet-trace.md + - name: dotnet-stack + href: ../../core/diagnostics/dotnet-stack.md + - name: dotnet-symbol + href: ../../core/diagnostics/dotnet-symbol.md + - name: dotnet-sos + href: ../../core/diagnostics/dotnet-sos.md + - name: dotnet-dsrouter + href: ../../core/diagnostics/dotnet-dsrouter.md + - name: .NET diagnostics tutorials + items: + - name: Collect performance trace in Linux with PerfCollect + href: ../../core/diagnostics/trace-perfcollect-lttng.md + - name: Debug a memory leak + href: ../../core/diagnostics/debug-memory-leak.md + - name: Debug high CPU usage + href: ../../core/diagnostics/debug-highcpu.md + - name: Debug deadlock + href: ../../core/diagnostics/debug-deadlock.md + - name: Debug ThreadPool starvation + href: ../../core/diagnostics/debug-threadpool-starvation.md + - name: Debug a stack overflow + href: ../../core/diagnostics/debug-stackoverflow.md + - name: Unmanaged API reference + items: + - name: Debugging items: - - name: Overview - href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-interface.md - displayName: ICorProfilerInfo13 - - name: CreateHandle method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-createhandle-method.md - - name: DestroyHandle method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-destroyhandle-method.md - - name: GetObjectIDFromHandle method - href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-getobjectidfromhandle-method.md + - name: Overview + href: ../../core/unmanaged-api/debugging/index.md + - name: Functions + items: + - name: CLRCreateInstance function + href: ../../core/unmanaged-api/debugging/clrcreateinstance-function.md + - name: CloseCLREnumeration function + href: ../../core/unmanaged-api/debugging/closeclrenumeration-function.md + - name: CloseResumeHandle function + href: ../../core/unmanaged-api/debugging/closeresumehandle-function.md + - name: CreateVersionStringFromModule function + href: ../../core/unmanaged-api/debugging/createversionstringfrommodule-function.md + - name: CreateDebuggingInterfaceFromVersion function + href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md + - name: CreateDebuggingInterfaceFromVersionEx function + href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md + - name: CreateDebuggingInterfaceFromVersion2 function + href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md + - name: CreateDebuggingInterfaceFromVersion3 function + href: ../../core/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md + - name: CreateProcessForLaunch function + href: ../../core/unmanaged-api/debugging/createprocessforlaunch-function.md + - name: EnumerateCLRs function + href: ../../core/unmanaged-api/debugging/enumerateclrs-function.md + - name: GetStartupNotificationEvent function + href: ../../core/unmanaged-api/debugging/getstartupnotificationevent-function.md + - name: RegisterForRuntimeStartup function + href: ../../core/unmanaged-api/debugging/registerforruntimestartup-function.md + - name: RegisterForRuntimeStartupEx function + href: ../../core/unmanaged-api/debugging/registerforruntimestartupex-function.md + - name: RegisterForRuntimeStartup3 function + href: ../../core/unmanaged-api/debugging/registerforruntimestartup3-function.md + - name: ResumeProcess function + href: ../../core/unmanaged-api/debugging/resumeprocess-function.md + - name: UnregisterForRuntimeStartup function + href: ../../core/unmanaged-api/debugging/unregisterforruntimestartup-function.md + - name: Interfaces + items: + - name: ICLRDebuggingLibraryProvider2 interface + items: + - name: Overview + href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md + displayName: ICLRDebuggingLibraryProvider2 + - name: ProvideLibrary2 method + href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md + - name: ICLRDebuggingLibraryProvider3 interface + items: + - name: Overview + href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md + displayName: ICLRDebuggingLibraryProvider3 + - name: ProvideWindowsLibrary method + href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md + - name: ProvideUnixLibrary method + href: ../../core/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md + - name: Enumerations + items: + - name: LIBRARY_PROVIDER_INDEX_TYPE enumeration + href: ../../core/unmanaged-api/debugging/libraryproviderindextype-enumeration.md + - name: Function pointers + items: + - name: PSTARTUP_CALLBACK function pointer + href: ../../core/unmanaged-api/debugging/pstartup_callback-function-pointer.md + - name: Profiling + items: + - name: Overview + href: ../../core/unmanaged-api/profiling/index.md + - name: Structures + items: + - name: COR_PRF_EVENT_DATA structure + href: ../../core/unmanaged-api/profiling/cor-prf-event-data-structure.md + - name: COR_PRF_EVENTPIPE_PARAM_DESC structure + href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-param-desc-structure.md + - name: COR_PRF_EVENTPIPE_PROVIDER_CONFIG structure + href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-provider-config-structure.md + - name: Enumerations + items: + - name: COR_PRF_EVENTPIPE_LEVEL enumeration + href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-level-enumeration.md + - name: COR_PRF_EVENTPIPE_PARAM_TYPE enumeration + href: ../../core/unmanaged-api/profiling/cor-prf-eventpipe-param-type-enumeration.md + - name: COR_PRF_HANDLE_TYPE enumeration + href: ../../core/unmanaged-api/profiling/cor-prf-handle-type-enumeration.md + - name: COR_PRF_REJIT_FLAGS enumeration + href: ../../core/unmanaged-api/profiling/cor-prf-rejit-flags-enumeration.md + - name: Interfaces + items: + - name: ICorProfilerCallback10 interface + items: + - name: Overview + href: ../../core/unmanaged-api/profiling/icorprofilercallback10-interface.md + displayName: ICorProfilerCallback10 + - name: EventPipeEventDelivered method + href: ../../core/unmanaged-api/profiling/icorprofilercallback10-eventpipeeventdelivered-method.md + - name: EventPipeProviderCreated method + href: ../../core/unmanaged-api/profiling/icorprofilercallback10-eventpipeprovidercreated-method.md + - name: ICorProfilerInfo9 interface + items: + - name: Overview + href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-interface.md + displayName: ICorProfilerInfo9 + - name: GetCodeInfo4 method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-getcodeinfo4-method.md + - name: GetILToNativeMapping3 method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-getiltonativemapping3-method.md + - name: GetNativeCodeStartAddresses method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo9-getnativecodestartaddresses-method.md + - name: ICorProfilerInfo10 interface + items: + - name: Overview + href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-interface.md + displayName: ICorProfilerInfo10 + - name: EnumerateObjectReferences method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-enumerateobjectreferences-method.md + - name: IsFrozenObject method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-isfrozenobject-method.md + - name: GetLOHObjectSizeThreshold method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-getlohobjectsizethreshold-method.md + - name: RequestReJITWithInliners method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-requestrejitwithinliners-method.md + - name: ResumeRuntime method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-resumeruntime-method.md + - name: SuspendRuntime method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo10-suspendruntime-method.md + - name: ICorProfilerInfo11 interface + items: + - name: Overview + href: ../../core/unmanaged-api/profiling/icorprofilerinfo11-interface.md + displayName: ICorProfilerInfo11 + - name: GetEnvironmentVariable method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo11-getenvironmentvariable-method.md + - name: SetEnvironmentVariable method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo11-setenvironmentvariable-method.md + - name: ICorProfilerInfo12 interface + items: + - name: Overview + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-interface.md + displayName: ICorProfilerInfo12 + - name: EventPipeAddProviderToSession method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipeaddprovidertosession-method.md + - name: EventPipeCreateProvider method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipecreateprovider-method.md + - name: EventPipeDefineEvent method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipedefineevent-method.md + - name: EventPipeGetProviderInfo method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipegetproviderinfo-method.md + - name: EventPipeStartSession method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipestartsession-method.md + - name: EventPipeStopSession method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipestopsession-method.md + - name: EventPipeWriteEvent method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo12-eventpipewriteevent-method.md + - name: ICorProfilerInfo13 interface + items: + - name: Overview + href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-interface.md + displayName: ICorProfilerInfo13 + - name: CreateHandle method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-createhandle-method.md + - name: DestroyHandle method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-destroyhandle-method.md + - name: GetObjectIDFromHandle method + href: ../../core/unmanaged-api/profiling/icorprofilerinfo13-getobjectidfromhandle-method.md - name: Code analysis items: - name: Overview @@ -1895,28 +1895,28 @@ items: displayProperty: syslib1220, syslib1221, syslib1222, syslib1223, syslib1224, syslib1225, syslib1226, syslib1227, syslib1228, syslib1229 - name: API compatibility items: - - name: Overview - href: ../../fundamentals/apicompat/overview.md - displayName: api compatibility,apicompat - - name: Preview APIs - href: ../../fundamentals/apicompat/preview-apis.md - - name: Diagnostic IDs - href: ../../fundamentals/apicompat/diagnostic-ids.md - - name: Assembly validation - items: - - name: Overview - displayName: assembly validation - href: ../../fundamentals/apicompat/assembly-validation.md - - name: Package validation - items: - - name: Overview - displayName: package validation - href: ../../fundamentals/apicompat/package-validation/overview.md - - name: Baseline package validator - href: ../../fundamentals/apicompat/package-validation/baseline-version-validator.md - - name: Compatible framework in package validator - href: ../../fundamentals/apicompat/package-validation/compatible-framework-in-package-validator.md - - name: Compatible framework validator - href: ../../fundamentals/apicompat/package-validation/compatible-framework-validator.md - - name: Microsoft.DotNet.ApiCompat.Tool global tool - href: ../../fundamentals/apicompat/global-tool.md + - name: Overview + href: ../../fundamentals/apicompat/overview.md + displayName: api compatibility,apicompat + - name: Preview APIs + href: ../../fundamentals/apicompat/preview-apis.md + - name: Diagnostic IDs + href: ../../fundamentals/apicompat/diagnostic-ids.md + - name: Assembly validation + items: + - name: Overview + displayName: assembly validation + href: ../../fundamentals/apicompat/assembly-validation.md + - name: Package validation + items: + - name: Overview + displayName: package validation + href: ../../fundamentals/apicompat/package-validation/overview.md + - name: Baseline package validator + href: ../../fundamentals/apicompat/package-validation/baseline-version-validator.md + - name: Compatible framework in package validator + href: ../../fundamentals/apicompat/package-validation/compatible-framework-in-package-validator.md + - name: Compatible framework validator + href: ../../fundamentals/apicompat/package-validation/compatible-framework-validator.md + - name: Microsoft.DotNet.ApiCompat.Tool global tool + href: ../../fundamentals/apicompat/global-tool.md diff --git a/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md b/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md index efa5d93db56c7..ba8a9e9df0713 100644 --- a/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md +++ b/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md @@ -11,6 +11,7 @@ helpviewer_keywords: - "objects, serializing" ms.topic: how-to ms.collection: ce-skilling-ai-copilot +ms.custom: vs-copilot-horizontal --- # Migrate from Newtonsoft.Json to System.Text.Json @@ -58,7 +59,7 @@ string output = JsonConvert.SerializeObject(product); Console.WriteLine(output); ``` -**Sample Copilot Chat response** +**Example Copilot Chat response** ```output To convert the code to use System.Text.Json, you can use the JsonSerializer class. Here's the updated code: @@ -91,7 +92,7 @@ public class Program This code uses System.Text.Json.JsonSerializer.Serialize to convert the Product object to a JSON string. ``` -Note that your results might be different from what is shown in these sample responses. AI models are non-deterministic, which means that they can return different responses when asked the same question. This might be due to additional learning and adaption over time, language variation, changes in context, such as your chat history, and more. +Note that your results might be different from what is shown in these example responses. AI models are non-deterministic, which means that they can return different responses when asked the same question. This might be due to additional learning and adaption over time, language variation, changes in context, such as your chat history, and more. :::image type="content" source="./media/migrate-newtonsoft-json-using-github-copilot.gif" alt-text="Animated screenshot that shows using GitHub Copilot Chat in Visual Studio to migrate from newtonsoft" lightbox="./media/migrate-newtonsoft-json-using-github-copilot.gif"::: diff --git a/docs/visual-basic/misc/bc30760.md b/docs/visual-basic/misc/bc30760.md index 3d1398941b5af..eb2a4a0051aa5 100644 --- a/docs/visual-basic/misc/bc30760.md +++ b/docs/visual-basic/misc/bc30760.md @@ -22,7 +22,7 @@ The object being used has the value `Nothing`, but a usable value is expected. ` 2. Verify that the value of the object is being set. > [!NOTE] - > The value `Nothing` is not the same as zero or an empty string. You can use `IsNothing` to check to see if an object contains the value `Nothing`. + > The value `Nothing` is not the same as zero or an empty string. You can use to check to see if an object contains the value `Nothing`. ## See also diff --git a/docs/whats-new/dotnet-docs-mod2.md b/docs/whats-new/dotnet-docs-mod2.md index 8d3ded00293ae..4b3d4a3f8bd6a 100644 --- a/docs/whats-new/dotnet-docs-mod2.md +++ b/docs/whats-new/dotnet-docs-mod2.md @@ -1,115 +1,179 @@ --- -title: ".NET docs: What's new for May 2024" -description: "What's new in the .NET docs for May 2024." -ms.custom: May-2024 -ms.date: 06/01/2024 +title: ".NET docs: What's new for August 2024" +description: "What's new in the .NET docs for August 2024." +ms.custom: August-2024 +ms.date: 09/01/2024 --- -# .NET docs: What's new for May 2024 +# .NET docs: What's new for August 2024 -Welcome to what's new in the .NET docs for May 2024. This article lists some of the major changes to docs during this period. +Welcome to what's new in the .NET docs for August 2024. This article lists some of the major changes to docs during this period. + +## .NET breaking changes + +### New articles + +- [.NET 9 container images no longer install zlib](../core/compatibility/containers/9.0/no-zlib.md) +- [BigInteger maximum length](../core/compatibility/core-libraries/9.0/biginteger-limit.md) +- [Complex.ToString format changed to ``](../core/compatibility/core-libraries/8.0/complex-format.md) +- [Deprecated desktop Windows/macOS/Linux MonoVM runtime packages](../core/compatibility/deployment/9.0/monovm-packages.md) +- [HostBuilder enables ValidateOnBuild/ValidateScopes in development environment](../core/compatibility/aspnet-core/9.0/hostbuilder-validation.md) +- [In-box BinaryFormatter implementation removed and always throws](../core/compatibility/serialization/9.0/binaryformatter-removal.md) +- [SafeEvpPKeyHandle.DuplicateHandle up-refs the handle](../core/compatibility/cryptography/9.0/evp-pkey-handle.md) +- [Some X509Certificate2 and X509Certificate constructors are obsolete](../core/compatibility/cryptography/9.0/x509-certificates.md) ## .NET fundamentals ### New articles -- [Building native libraries](../core/deploying/native-aot/libraries.md) -- [Install .NET Runtime with Snap](../core/install/linux-snap-runtime.md) -- [Install .NET SDK with Snap](../core/install/linux-snap-sdk.md) -- [Microsoft Testing Platform diagnostics overview](../core/testing/unit-testing-platform-diagnostics.md) -- [MSTEST0025: Use 'Assert.Fail' instead of an always-failing assert](../core/testing/mstest-analyzers/mstest0025.md) -- [MSTEST0026: Avoid conditional access in assertions](../core/testing/mstest-analyzers/mstest0026.md) -- [NUnit runner overview](../core/testing/unit-testing-nunit-runner-intro.md) -- [Persisted dynamic assemblies in .NET](../fundamentals/runtime-libraries/system-reflection-emit-persistedassemblybuilder.md) -- [SYSLIB0054: Thread.VolatileRead and Thread.VolatileWrite are obsolete](../fundamentals/syslib-diagnostics/syslib0054.md) -- [SYSLIB0055: AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate\* methods with signed parameters are obsolete](../fundamentals/syslib-diagnostics/syslib0055.md) +- [.NET Runtime metrics](../core/diagnostics/built-in-metrics-runtime.md) +- [.NET SDK workload sets](../core/tools/dotnet-workload-sets.md) +- [.NET uninstall tool overview](../core/additional-tools/uninstall-tool-overview.md) +- [BinaryFormatter compatibility package](../standard/serialization/binaryformatter-migration-guide/compatibility-package.md) +- [BinaryFormatter functionality reference](../standard/serialization/binaryformatter-migration-guide/functionality-reference.md) +- [BinaryFormatter migration guide](../standard/serialization/binaryformatter-migration-guide/index.md) +- [Choose a serializer](../standard/serialization/binaryformatter-migration-guide/choose-a-serializer.md) +- [dotnet workload config](../core/tools/dotnet-workload-config.md) +- [dotnet-core-uninstall dry-run](../core/additional-tools/uninstall-tool-cli-dry-run.md) +- [dotnet-core-uninstall list](../core/additional-tools/uninstall-tool-cli-list.md) +- [dotnet-core-uninstall remove](../core/additional-tools/uninstall-tool-cli-remove.md) +- [Dynamic adaptation to application sizes (DATAS)](../standard/garbage-collection/datas.md) +- [Example: Use OpenTelemetry with Azure Monitor and Application Insights](../core/diagnostics/observability-applicationinsights.md) +- [Example: Use OpenTelemetry with OTLP and the standalone Aspire Dashboard](../core/diagnostics/observability-otlp-example.md) +- [Example: Use OpenTelemetry with Prometheus, Grafana, and Jaeger](../core/diagnostics/observability-prgrja-example.md) +- [IL2071: 'target generic parameter' generic argument does not satisfy 'DynamicallyAccessedMembersAttribute' in 'target method or type'. The parameter 'source parameter' of method 'source method' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to](../core/deploying/trimming/trim-warnings/il2071.md) +- [IL2076: 'target generic parameter' generic argument does not satisfy 'DynamicallyAccessedMembersAttribute' in 'target method or type'. The return value of method 'source method' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to](../core/deploying/trimming/trim-warnings/il2076.md) +- [IL2081: 'target generic parameter' generic argument does not satisfy 'DynamicallyAccessedMembersAttribute' in 'target method or type'. The field 'source field' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to](../core/deploying/trimming/trim-warnings/il2081.md) +- [IL2122: Type 'type' is not assembly qualified. Type name strings used for dynamically accessing a type should be assembly qualified](../core/deploying/trimming/trim-warnings/il2122.md) +- [Microsoft.Testing.Platform configuration settings](../core/testing/unit-testing-platform-config.md) +- [Migrate to DataContractSerializer (XML)](../standard/serialization/binaryformatter-migration-guide/migrate-to-datacontractserializer.md) +- [Migrate to MessagePack (binary)](../standard/serialization/binaryformatter-migration-guide/migrate-to-messagepack.md) +- [Migrate to protobuf-net (binary)](../standard/serialization/binaryformatter-migration-guide/migrate-to-protobuf-net.md) +- [Migrate to System.Text.Json (JSON)](../standard/serialization/binaryformatter-migration-guide/migrate-to-system-text-json.md) +- [MSTest suppression rules](../core/testing/mstest-analyzers/suppression-rules.md) +- [MSTEST0018: DynamicData should be valid](../core/testing/mstest-analyzers/mstest0018.md) +- [MSTEST0027: Non-nullable reference not initialized suppressor](../core/testing/mstest-analyzers/mstest0027.md) +- [MSTEST0028: Non-nullable reference not initialized suppressor](../core/testing/mstest-analyzers/mstest0028.md) +- [MSTEST0033: Non-nullable reference not initialized suppressor](../core/testing/mstest-analyzers/mstest0033.md) +- [MSTEST0034: Use `ClassCleanupBehavior.EndOfClass` with the `[ClassCleanup]`.](../core/testing/mstest-analyzers/mstest0034.md) +- [MSTEST0035: `[DeploymentItem]` can be specified only on test class or test method.](../core/testing/mstest-analyzers/mstest0035.md) +- [MSTEST0036: Do not use shadowing inside test class.](../core/testing/mstest-analyzers/mstest0036.md) +- [Output extensions](../core/testing/unit-testing-platform-extensions-output.md) +- [Read BinaryFormatter (NRBF) payloads](../standard/serialization/binaryformatter-migration-guide/read-nrbf-payloads.md) +- [SYSLIB0056: Assembly.LoadFrom that takes an AssemblyHashAlgorithm is obsolete](../fundamentals/syslib-diagnostics/syslib0056.md) +- [SYSLIB0057: X509Certificate2 and X509Certificate constructors for binary and file content are obsolete](../fundamentals/syslib-diagnostics/syslib0057.md) +- [Windows Forms and Windows Presentation Foundation BinaryFormatter OLE guidance](../standard/serialization/binaryformatter-migration-guide/winforms-wpf-ole-guidance.md) +- [Windows Forms migration guide for BinaryFormatter](../standard/serialization/binaryformatter-migration-guide/winforms-applications.md) +- [Windows Presentation Foundation(WPF) migration guide for BinaryFormatter](../standard/serialization/binaryformatter-migration-guide/wpf-applications.md) ### Updated articles -- [Best practices for exceptions](../standard/exceptions/best-practices-for-exceptions.md) - Refresh exceptions best practices +- [What's new in .NET libraries for .NET 9](../core/whats-new/dotnet-9/libraries.md) - Update What's new in .NET 9 for Preview 7 +- [What's new in the .NET 9 runtime](../core/whats-new/dotnet-9/runtime.md) - Update What's new in .NET 9 for Preview 7 ## C# language ### New articles -- [C# docs - get started, tutorials, reference.](../csharp/tour-of-csharp/index.yml) -- [C# language versioning](../csharp/language-reference/language-versioning.md) -- [Errors and warnings related to the `lock` statement and thread synchronization](../csharp/language-reference/compiler-messages/lock-semantics.md) -- [Errors and warnings related to the `params` modifier on method parameters](../csharp/language-reference/compiler-messages/params-arrays.md) -- [Feature specifications](../csharp/specification/feature-spec-overview.md) +- [Errors and warnings related to `partial` type and `partial` member declarations](../csharp/language-reference/compiler-messages/partial-declarations.md) +- [Partial member (C# Reference)](../csharp/language-reference/keywords/partial-member.md) -## AI in .NET +## Azure SDK for .NET ### New articles -- [AI for .NET Developers](../ai/index.yml) -- [Authenticate and authorize App Service to a vector database](../ai/how-to/app-service-db-auth.md) -- [Authenticate and authorize App Service to Azure OpenAI using Microsoft Entra and the Semantic Kernel SDK](../ai/how-to/app-service-aoai-auth.md) -- [Chain of thought prompting](../ai/conceptual/chain-of-thought-prompting.md) -- [Develop .NET applications with AI features](../ai/get-started/dotnet-ai-overview.md) -- [Embeddings in .NET](../ai/conceptual/embeddings.md) -- [How agents and copilots work with LLMs](../ai/conceptual/agents.md) -- [How generative AI and LLMs work](../ai/conceptual/how-genai-and-llms-work.md) -- [Implement Azure OpenAI with RAG using vector search in a .NET app](../ai/tutorials/tutorial-ai-vector-search.md) -- [Prompt engineering in .NET](../ai/conceptual/prompt-engineering-dotnet.md) -- [Retrieval-augmented generation (RAG) provides LLM knowledge](../ai/conceptual/rag.md) -- [Tutorial: Evaluate an LLM's prompt completions](../ai/tutorials/llm-eval.md) -- [Understand OpenAI function calling](../ai/conceptual/understanding-openai-functions.md) -- [Understanding tokens](../ai/conceptual/understanding-tokens.md) -- [Use custom and local AI models with the Semantic Kernel SDK](../ai/how-to/work-with-local-models.md) -- [Use Redis for memory storage with the Semantic Kernel SDK](../ai/how-to/use-redis-for-memory.md) -- [Vector databases for .NET + AI](../ai/conceptual/vector-databases.md) -- [Work with OpenAI content filtering in a .NET app](../ai/how-to/content-filtering.md) -- [Zero-shot and few-shot learning](../ai/conceptual/zero-shot-learning.md) +- [Credential chains in the Azure Identity library for .NET](../azure/sdk/authentication/credential-chains.md) +- [How to customize analysis with run config](../azure/migration/appcat/custom-configuration.md) + +### Updated articles + +- [Additional methods to authenticate to Azure resources from .NET apps](../azure/sdk/authentication/additional-methods.md) - Add Interactive brokered authentication and wam content ## ML.NET -### New articles +### Updated articles -- [Tutorial: Categorize an image in ML.NET from Custom Vision ONNX model](../machine-learning/tutorials/object-detection-custom-vision-onnx.md) +- [Tutorial: Automated visual inspection using transfer learning with the ML.NET Image Classification API](../machine-learning/tutorials/image-classification-api-transfer-learning.md) - Update image classification tutorial ## .NET Framework ### New articles -- [April 2024 cumulative update preview](../framework/release-notes/2024/04-23-april-preview-cumulative-update.md) -- [Install .NET Framework on Windows Server 2019](../framework/install/on-server-2019.md) -- [May 2024 security and quality rollup](../framework/release-notes/2024/05-14-may-security-and-quality-rollup.md) +- [August 2024 security and quality rollup](../framework/release-notes/2024/08-13-august-security-and-quality-rollup.md) +- [July 2024 cumulative update preview](../framework/release-notes/2024/07-25-july-preview-cumulative-update.md) + +### Updated articles + +- [.NET Framework data providers](../framework/data/adonet/data-providers.md) - SFI - ROPC: Clean up adonet files +- [\ of workflow](../framework/configure-apps/file-schema/windows-workflow-foundation/system-servicemodel-of-workflow.md) - SFI - ROPC: First group of updates +- [Caching support for WCF web HTTP services](../framework/wcf/feature-details/caching-support-for-wcf-web-http-services.md) - SFI: ROPC - Fix up WCF docs +- [Code access security and ADO.NET](../framework/data/adonet/code-access-security.md) - SFI - ROPC: Clean up adonet files +- [Code generation in LINQ to SQL](../framework/data/adonet/sql/linq/code-generation-in-linq-to-sql.md) - SFI - ROPC: Clean up adonet/sql files +- [Configuring Discovery in a Configuration File](../framework/wcf/feature-details/configuring-discovery-in-a-configuration-file.md) - Code fence entire element (WCF docs) +- [Configuring Services Using Configuration Files](../framework/wcf/configuring-services-using-configuration-files.md) - Code fence entire element (WCF docs) +- [Connection string syntax](../framework/data/adonet/connection-string-syntax.md) - SFI - ROPC: Clean up adonet files +- [Connection strings and configuration files](../framework/data/adonet/connection-strings-and-configuration-files.md) - SFI - ROPC: Clean up adonet files +- [Create a DataTable from a DataView](../framework/data/adonet/dataset-datatable-dataview/creating-a-datatable-from-a-dataview.md) - SFI - ROPC: Clean up adonet files +- [Data retrieval and CUD operations in n-tier applications (LINQ to SQL)](../framework/data/adonet/sql/linq/data-retrieval-and-cud-operations-in-n-tier-applications.md) - SFI - ROPC: Clean up adonet/sql files +- [Date and time data](../framework/data/adonet/sql/date-and-time-data.md) - SFI - ROPC: Clean up adonet/sql files +- [Enable multiple active result sets](../framework/data/adonet/sql/enabling-multiple-active-result-sets.md) - SFI - ROPC: Clean up adonet/sql files +- [GetSchema and Schema Collections](../framework/data/adonet/getschema-and-schema-collections.md) - SFI - ROPC: Clean up adonet files +- [How to: Create a Federated Client](../framework/wcf/feature-details/how-to-create-a-federated-client.md) - Code fence entire element (WCF docs) +- [How to: Deserialize instance data properties](../framework/windows-workflow-foundation/how-to-deserialize-instance-data-properties.md) - SFI - ROPC: First group of updates +- [How to: Use Transport Security and Message Credentials](../framework/wcf/feature-details/how-to-use-transport-security-and-message-credentials.md) - Code fence entire element (WCF docs) +- [Insert an image from a file](../framework/data/adonet/sql/inserting-an-image-from-a-file.md) - SFI - ROPC: Clean up adonet/sql files +- [Integrating with COM+ Applications Overview](../framework/wcf/feature-details/integrating-with-com-plus-applications-overview.md) - Code fence entire element (WCF docs) +- [Large UDTs](../framework/data/adonet/sql/large-udts.md) - SFI - ROPC: Clean up adonet/sql files +- [Manipulate data](../framework/data/adonet/sql/manipulating-data.md) - SFI - ROPC: Clean up adonet/sql files +- [Message Security with a Certificate Client](../framework/wcf/feature-details/message-security-with-a-certificate-client.md) - Code fence entire element (WCF docs) +- [Message Security with Mutual Certificates](../framework/wcf/feature-details/message-security-with-mutual-certificates.md) - SFI: ROPC - Fix up WCF docs +- [Obtaining a DbProviderFactory](../framework/data/adonet/obtaining-a-dbproviderfactory.md) - SFI - ROPC: Clean up adonet files +- [Oracle Sequences](../framework/data/adonet/oracle-sequences.md) - SFI - ROPC: Clean up adonet files +- [OracleTypes](../framework/data/adonet/oracletypes.md) - SFI - ROPC: Clean up adonet files +- [Partial Trust Feature Compatibility](../framework/wcf/feature-details/partial-trust-feature-compatibility.md) - Code fence entire element (WCF docs) +- [Pause and Resume a workflow](../framework/windows-workflow-foundation/pausing-and-resuming-a-workflow.md) - SFI - ROPC: First group of updates +- [Perform batch operations using DataAdapters](../framework/data/adonet/performing-batch-operations-using-dataadapters.md) - SFI - ROPC: Clean up adonet files +- [Polling in console applications](../framework/data/adonet/sql/polling-in-console-applications.md) - SFI - ROPC: Clean up adonet/sql files +- [Provider statistics for SQL Server](../framework/data/adonet/sql/provider-statistics-for-sql-server.md) - SFI - ROPC: Clean up adonet/sql files +- [Required arguments and overload groups](../framework/windows-workflow-foundation/required-arguments-and-overload-groups.md) - SFI - ROPC: First group of updates +- [Schema restrictions](../framework/data/adonet/schema-restrictions.md) - SFI - ROPC: Clean up adonet files +- [Security Behaviors in WCF](../framework/wcf/feature-details/security-behaviors-in-wcf.md) - SFI: ROPC - Fix up WCF docs +- [SecurityBindingElement Authentication Modes](../framework/wcf/feature-details/securitybindingelement-authentication-modes.md) - Code fence entire element (WCF docs) +- [Specify XML values as parameters](../framework/data/adonet/sql/specifying-xml-values-as-parameters.md) - SFI - ROPC: Clean up adonet/sql files +- [Specifying a Custom Crypto Algorithm](../framework/wcf/extending/specifying-a-custom-crypto-algorithm.md) - Code fence entire element (WCF docs) +- [SQL Server Connection Pooling (ADO.NET)](../framework/data/adonet/sql-server-connection-pooling.md) - SFI - ROPC: Clean up adonet files +- [SQL Server Express user instances](../framework/data/adonet/sql/sql-server-express-user-instances.md) - SFI - ROPC: Clean up adonet/sql files +- [SqlClient streaming support](../framework/data/adonet/sqlclient-streaming-support.md) - SFI - ROPC: Clean up adonet files +- [SqlClient Support for high availability and disaster recovery](../framework/data/adonet/sql/sqlclient-support-for-high-availability-disaster-recovery.md) - SFI - ROPC: Clean up adonet/sql files +- [Standard Endpoints](../framework/wcf/feature-details/standard-endpoints.md) - Code fence entire element (WCF docs) +- [Synchronous and Asynchronous Operations](../framework/wcf/synchronous-and-asynchronous-operations.md) - Code fence entire element (WCF docs) +- [System.Transactions integration with SQL Server](../framework/data/adonet/system-transactions-integration-with-sql-server.md) - SFI - ROPC: Clean up adonet files +- [Tracking Events Reference](../framework/windows-workflow-foundation/tracking-events-reference.md) - SFI - ROPC: First group of updates +- [Tracking Participants](../framework/windows-workflow-foundation/tracking-participants.md) - SFI - ROPC: First group of updates +- [Using the Message Class](../framework/wcf/feature-details/using-the-message-class.md) - Code fence entire element (WCF docs) +- [Windows applications using callbacks](../framework/data/adonet/sql/windows-applications-using-callbacks.md) - SFI - ROPC: Clean up adonet/sql files ## 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). -- [benjsmyth](https://github.com/benjsmyth) - Ben ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) -- [bigboybamo](https://github.com/bigboybamo) - Olabamiji Oyetubo ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) -- [gabbersepp](https://github.com/gabbersepp) - Josef Biehler ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) -- [jwood803](https://github.com/jwood803) - Jon Wood ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) -- [rextor92](https://github.com/rextor92) - Daniel Tsvetkov ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) -- [timdeschryver](https://github.com/timdeschryver) - Tim Deschryver ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) -- [angelobelchior](https://github.com/angelobelchior) - Angelo Belchior ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [Asivaprasadam](https://github.com/Asivaprasadam) - Arjun Sivaprasadam ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [azhar1999](https://github.com/azhar1999) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [bmitc](https://github.com/bmitc) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [dipendrakshah](https://github.com/dipendrakshah) - Dipendra Shah ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [EngincanV](https://github.com/EngincanV) - Engincan VESKE ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [eskimotherapy](https://github.com/eskimotherapy) - Kimo ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [Flash0ver](https://github.com/Flash0ver) - Stefan Pölz ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [goswinr](https://github.com/goswinr) - Goswin Rothenthal ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [hakenr](https://github.com/hakenr) - Robert Haken ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [iainelder](https://github.com/iainelder) - Iain Samuel McLean Elder ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [ledjon-behluli](https://github.com/ledjon-behluli) - Ledjon Behluli ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [lplath](https://github.com/lplath) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [LukasLic](https://github.com/LukasLic) - Lukáš Licek ![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) -- [mrudat](https://github.com/mrudat) - Martin Rudat ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [mulu-ken](https://github.com/mulu-ken) - Muluken Mamo ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [paulloz](https://github.com/paulloz) - Paul Joannon ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [rhires](https://github.com/rhires) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [RyanThomas73](https://github.com/RyanThomas73) - Ryan Thomas ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [serpent5](https://github.com/serpent5) - Kirk Larkin ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [Suchiman](https://github.com/Suchiman) - Robin Sue ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [teo-tsirpanis](https://github.com/teo-tsirpanis) - Theodore Tsirpanis ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [tkmsaaaam](https://github.com/tkmsaaaam) - Takamasa Matsui ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [yochie](https://github.com/yochie) - yochie ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) -- [Youssef1313](https://github.com/Youssef1313) - Youssef Victor ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski ![4 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-4-green) +- [samwherever](https://github.com/samwherever) - Sam Allen ![4 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-4-green) +- [Rageking8](https://github.com/Rageking8) - ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) +- [udidahan](https://github.com/udidahan) - Udi Dahan ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green) +- [8chan-co](https://github.com/8chan-co) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [alkampfergit](https://github.com/alkampfergit) - Gian Maria ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [baonguyen2310](https://github.com/baonguyen2310) - Bao Nguyen Chi ![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) +- [boggye](https://github.com/boggye) - ![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) +- [daverayment](https://github.com/daverayment) - Dave Rayment ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [dkroderos](https://github.com/dkroderos) - David King Roderos ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [GeRRy1337](https://github.com/GeRRy1337) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [jbrekle](https://github.com/jbrekle) - Jonas Brekle ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [Progman2002](https://github.com/Progman2002) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [rmunn](https://github.com/rmunn) - Robin Munn ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [samibinsami](https://github.com/samibinsami) - Saad Bin Sami ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [warrenZY](https://github.com/warrenZY) - Xiao.ZY ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [xtqqczze](https://github.com/xtqqczze) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green) +- [YoshiRulz](https://github.com/YoshiRulz) - James Groom ![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 1e8be75113019..870fb232134b0 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: 08/01/2024 + ms.date: 09/01/2024 ms.topic: landing-page landingContent: - title: .NET 9 release updates @@ -40,12 +40,12 @@ landingContent: linkLists: - linkListType: whats-new links: + - text: August 2024 + url: dotnet-docs-mod2.md - text: July 2024 url: dotnet-docs-mod1.md - text: June 2024 url: dotnet-docs-mod0.md - - text: May 2024 - url: dotnet-docs-mod2.md - title: Language updates linkLists: - linkListType: whats-new diff --git a/docs/whats-new/toc.yml b/docs/whats-new/toc.yml index be421d9827bf6..9d9dbf5bff8b7 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: August 2024 + href: dotnet-docs-mod2.md - name: July 2024 href: dotnet-docs-mod1.md - name: June 2024 href: dotnet-docs-mod0.md - - name: May 2024 - href: dotnet-docs-mod2.md - name: Product updates items: - name: .NET 9 diff --git a/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj index 549c959b6678c..47ed30941db5d 100644 --- a/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj +++ b/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj b/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj index d950c0f16cfed..4eecc0df4b832 100644 --- a/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj +++ b/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj @@ -8,7 +8,7 @@ - +