From 5b8179683767f9ee9d7dde61b06b81ce1329edc8 Mon Sep 17 00:00:00 2001 From: David Pine Date: Tue, 13 Aug 2024 13:09:55 -0500 Subject: [PATCH 01/10] Rephrase, rename, and reposition all component refs as integrations (#1482) * WIP: Rephrase, rename, and reposition all component refs as integrations * Address build warings/issues * Fix last warnings * try this fix * Add clarifying text --- .openpublishing.redirection.json | 176 +++++++++++++- ...k-component.md => keycloak-integration.md} | 14 +- ...onent.md => azureai-openai-integration.md} | 39 ++-- ...=> azureai-search-document-integration.md} | 22 +- ....md => caching-integrations-deployment.md} | 12 +- ...-components.md => caching-integrations.md} | 20 +- .../stackexchange-redis-caching-overview.md | 24 +- ...-redis-distributed-caching-integration.md} | 32 +-- ....md => stackexchange-redis-integration.md} | 32 +-- ...hange-redis-output-caching-integration.md} | 30 +-- ...cosmos-db-entity-framework-integration.md} | 34 +-- ...nent.md => azure-cosmos-db-integration.md} | 32 +-- docs/database/includes/postgresql-app-host.md | 2 +- ...vus-component.md => milvus-integration.md} | 30 +-- ...db-component.md => mongodb-integration.md} | 32 +-- ... => mysql-entity-framework-integration.md} | 26 +-- ...ysql-component.md => mysql-integration.md} | 24 +- ...=> oracle-entity-framework-integration.md} | 26 +-- ...ostgresql-entity-framework-integration.md} | 34 +-- ...component.md => postgresql-integration.md} | 30 +-- ...ant-component.md => qdrant-integration.md} | 24 +- docs/database/seed-database-data.md | 8 +- ...ql-server-entity-framework-integration.md} | 32 +-- ...d => sql-server-integration-deployment.md} | 12 +- ...component.md => sql-server-integration.md} | 30 +-- ...mponents.md => sql-server-integrations.md} | 20 +- .../includes/aca-configure-post-deployment.md | 2 +- .../azure/includes/test-deployed-app.md | 2 +- docs/deployment/manifest-format.md | 4 +- ...tom-component.md => custom-integration.md} | 40 ++-- docs/extensibility/custom-resources.md | 16 +- ...ment-auth-from-resource-to-integration.md} | 26 +-- docs/frameworks/dapr.md | 12 +- docs/frameworks/orleans.md | 10 +- docs/fundamentals/app-host-overview.md | 9 +- docs/fundamentals/components-overview.md | 215 ------------------ docs/fundamentals/dashboard/explore.md | 2 +- docs/fundamentals/dashboard/overview.md | 2 +- .../dashboard/security-considerations.md | 2 +- docs/fundamentals/external-parameters.md | 2 +- docs/fundamentals/health-checks.md | 8 +- docs/fundamentals/integrations-overview.md | 215 ++++++++++++++++++ docs/fundamentals/networking-overview.md | 2 +- docs/fundamentals/persist-data-volumes.md | 4 +- docs/fundamentals/setup-tooling.md | 22 +- .../AspireApp.AppHost.csproj | 0 .../AspireApp/AspireApp.AppHost/Program.cs | 0 .../Properties/launchSettings.json | 0 .../appsettings.Development.json | 0 .../AspireApp.AppHost/appsettings.json | 0 .../AspireApp.ServiceDefaults.csproj | 0 .../AspireApp.ServiceDefaults/Extensions.cs | 0 .../AspireApp/AspireApp.sln | 0 .../AspireApp/WorkerService/Program.cs | 0 .../Properties/launchSettings.json | 0 .../AspireApp/WorkerService/Worker.cs | 0 .../WorkerService/WorkerService.csproj | 0 .../appsettings.Development.json | 0 .../AspireApp/WorkerService/appsettings.json | 0 docs/fundamentals/telemetry.md | 6 +- docs/get-started/add-aspire-existing-app.md | 4 +- docs/get-started/aspire-overview.md | 16 +- .../build-aspire-apps-with-nodejs.md | 10 +- .../build-your-first-aspire-app.md | 6 +- docs/includes/component-health-checks.md | 10 - .../component-observability-and-telemetry.md | 10 - docs/includes/integration-health-checks.md | 10 + ...integration-observability-and-telemetry.md | 10 + docs/index.yml | 54 ++--- .../{seq-component.md => seq-integration.md} | 27 +-- ...g => visual-studio-add-aspire-package.png} | Bin ...ent.md => azure-event-hubs-integration.md} | 24 +- ...nt.md => azure-service-bus-integration.md} | 30 +-- ...ent.md => azure-web-pubsub-integration.md} | 26 +-- ...afka-component.md => kafka-integration.md} | 30 +-- ...omponents.md => messaging-integrations.md} | 30 +-- ...{nats-component.md => nats-integration.md} | 28 +-- ...nent.md => rabbitmq-client-integration.md} | 30 +-- ...ponent.md => elasticsearch-integration.md} | 28 +-- ...> azure-security-key-vault-integration.md} | 36 +-- ....md => azure-storage-blobs-integration.md} | 34 +-- ...nents.md => azure-storage-integrations.md} | 28 +-- ...md => azure-storage-queues-integration.md} | 32 +-- ...md => azure-storage-tables-integration.md} | 34 +-- docs/toc.yml | 102 ++++----- .../connection-string-missing.md | 2 +- docs/whats-new/dotnet-docs-aspire-mod0.md | 60 ++--- docs/whats-new/dotnet-docs-aspire-mod1.md | 46 ++-- docs/whats-new/dotnet-docs-aspire-mod2.md | 66 +++--- 89 files changed, 1187 insertions(+), 1034 deletions(-) rename docs/authentication/{keycloak-component.md => keycloak-integration.md} (84%) rename docs/azureai/{azureai-openai-component.md => azureai-openai-integration.md} (69%) rename docs/azureai/{azureai-search-document-component.md => azureai-search-document-integration.md} (82%) rename docs/caching/{caching-components-deployment.md => caching-integrations-deployment.md} (90%) rename docs/caching/{caching-components.md => caching-integrations.md} (90%) rename docs/caching/{stackexchange-redis-distributed-caching-component.md => stackexchange-redis-distributed-caching-integration.md} (58%) rename docs/caching/{stackexchange-redis-component.md => stackexchange-redis-integration.md} (64%) rename docs/caching/{stackexchange-redis-output-caching-component.md => stackexchange-redis-output-caching-integration.md} (66%) rename docs/database/{azure-cosmos-db-entity-framework-component.md => azure-cosmos-db-entity-framework-integration.md} (63%) rename docs/database/{azure-cosmos-db-component.md => azure-cosmos-db-integration.md} (68%) rename docs/database/{milvus-component.md => milvus-integration.md} (64%) rename docs/database/{mongodb-component.md => mongodb-integration.md} (75%) rename docs/database/{mysql-entity-framework-component.md => mysql-entity-framework-integration.md} (65%) rename docs/database/{mysql-component.md => mysql-integration.md} (82%) rename docs/database/{oracle-entity-framework-component.md => oracle-entity-framework-integration.md} (71%) rename docs/database/{postgresql-entity-framework-component.md => postgresql-entity-framework-integration.md} (75%) rename docs/database/{postgresql-component.md => postgresql-integration.md} (65%) rename docs/database/{qdrant-component.md => qdrant-integration.md} (65%) rename docs/database/{sql-server-entity-framework-component.md => sql-server-entity-framework-integration.md} (77%) rename docs/database/{sql-server-component-deployment.md => sql-server-integration-deployment.md} (92%) rename docs/database/{sql-server-component.md => sql-server-integration.md} (80%) rename docs/database/{sql-server-components.md => sql-server-integrations.md} (85%) rename docs/extensibility/{custom-component.md => custom-integration.md} (62%) rename docs/extensibility/{implement-auth-from-resource-to-component.md => implement-auth-from-resource-to-integration.md} (72%) delete mode 100644 docs/fundamentals/components-overview.md create mode 100644 docs/fundamentals/integrations-overview.md rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.AppHost/Program.cs (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.AppHost/Properties/launchSettings.json (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.AppHost/appsettings.Development.json (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.AppHost/appsettings.json (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.ServiceDefaults/Extensions.cs (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/AspireApp.sln (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/WorkerService/Program.cs (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/WorkerService/Properties/launchSettings.json (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/WorkerService/Worker.cs (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/WorkerService/WorkerService.csproj (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/WorkerService/appsettings.Development.json (100%) rename docs/fundamentals/snippets/{components => integrations}/AspireApp/WorkerService/appsettings.json (100%) delete mode 100644 docs/includes/component-health-checks.md delete mode 100644 docs/includes/component-observability-and-telemetry.md create mode 100644 docs/includes/integration-health-checks.md create mode 100644 docs/includes/integration-observability-and-telemetry.md rename docs/logging/{seq-component.md => seq-integration.md} (69%) rename docs/media/{visual-studio-add-aspire-component.png => visual-studio-add-aspire-package.png} (100%) rename docs/messaging/{azure-event-hubs-component.md => azure-event-hubs-integration.md} (83%) rename docs/messaging/{azure-service-bus-component.md => azure-service-bus-integration.md} (80%) rename docs/messaging/{azure-web-pubsub-component.md => azure-web-pubsub-integration.md} (79%) rename docs/messaging/{kafka-component.md => kafka-integration.md} (77%) rename docs/messaging/{messaging-components.md => messaging-integrations.md} (92%) rename docs/messaging/{nats-component.md => nats-integration.md} (71%) rename docs/messaging/{rabbitmq-client-component.md => rabbitmq-client-integration.md} (73%) rename docs/search/{elasticsearch-component.md => elasticsearch-integration.md} (70%) rename docs/security/{azure-security-key-vault-component.md => azure-security-key-vault-integration.md} (72%) rename docs/storage/{azure-storage-blobs-component.md => azure-storage-blobs-integration.md} (68%) rename docs/storage/{azure-storage-components.md => azure-storage-integrations.md} (92%) rename docs/storage/{azure-storage-queues-component.md => azure-storage-queues-integration.md} (71%) rename docs/storage/{azure-storage-tables-component.md => azure-storage-tables-integration.md} (73%) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 2dfcde3599..226d0f34aa 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -6,11 +6,11 @@ }, { "source_path_from_root": "/docs/storage/azure-storage.md", - "redirect_url": "/dotnet/aspire/storage/azure-storage-components" + "redirect_url": "/dotnet/aspire/storage/azure-storage-integrations" }, { "source_path_from_root": "/docs/database/quickstart-sql-server.md", - "redirect_url": "/dotnet/aspire/database/sql-server-components" + "redirect_url": "/dotnet/aspire/database/sql-server-integrations" }, { "source_path_from_root": "/docs/get-started/quickstart-build-your-first-aspire-app.md", @@ -18,11 +18,11 @@ }, { "source_path_from_root": "/docs/messaging/quickstart-messaging.md", - "redirect_url": "/dotnet/aspire/messaging/messaging-components" + "redirect_url": "/dotnet/aspire/messaging/messaging-integrations" }, { "source_path_from_root": "/docs/caching/quickstart-caching.md", - "redirect_url": "/dotnet/aspire/caching/caching-components" + "redirect_url": "/dotnet/aspire/caching/caching-integrations" }, { "source_path_from_root": "/docs/app-host-overview.md", @@ -30,7 +30,7 @@ }, { "source_path_from_root": "/docs/components-overview.md", - "redirect_url": "/dotnet/aspire/fundamentals/components-overview" + "redirect_url": "/dotnet/aspire/fundamentals/integrations-overview" }, { "source_path_from_root": "/docs/dashboard.md", @@ -58,7 +58,11 @@ }, { "source_path_from_root": "/docs/openai/azureai-openai-component.md", - "redirect_url": "/dotnet/aspire/azureai/azureai-openai-component" + "redirect_url": "/dotnet/aspire/azureai/azureai-openai-integration" + }, + { + "source_path_from_root": "/docs/azureai/azureai-openai-component.md", + "redirect_url": "/dotnet/aspire/azureai/azureai-openai-integration" }, { "source_path_from_root": "/docs/troubleshooting/allowunsecuredtransport.md", @@ -87,6 +91,166 @@ { "source_path_from_root": "/docs/whats-new/preview-7.md", "redirect_url": "/dotnet/aspire" + }, + { + "source_path_from_root": "/docs/authentication/keycloak-component.md", + "redirect_url": "/dotnet/aspire/authentication/keycloak-integration" + }, + { + "source_path_from_root": "/docs/azureai/azureai-search-document-component.md", + "redirect_url": "/dotnet/aspire/azureai/azureai-search-document-integration" + }, + { + "source_path_from_root": "/docs/caching/caching-components-deployment.md", + "redirect_url": "/dotnet/aspire/caching/caching-integrations-deployment" + }, + { + "source_path_from_root": "/docs/caching/caching-components.md", + "redirect_url": "/dotnet/aspire/caching/caching-integrations" + }, + { + "source_path_from_root": "/docs/caching/stackexchange-redis-component.md", + "redirect_url": "/dotnet/aspire/caching/stackexchange-redis-integration" + }, + { + "source_path_from_root": "/docs/caching/stackexchange-redis-distributed-caching-component.md", + "redirect_url": "/dotnet/aspire/caching/stackexchange-redis-distributed-caching-integration" + }, + { + "source_path_from_root": "/docs/caching/stackexchange-redis-output-caching-component.md", + "redirect_url": "/dotnet/aspire/caching/stackexchange-redis-output-caching-integration" + }, + { + "source_path_from_root": "/docs/database/azure-cosmos-db-component.md", + "redirect_url": "/dotnet/aspire/database/azure-cosmos-db-integration" + }, + { + "source_path_from_root": "/docs/database/azure-cosmos-db-entity-framework-component.md", + "redirect_url": "/dotnet/aspire/database/azure-cosmos-db-entity-framework-integration" + }, + { + "source_path_from_root": "/docs/database/milvus-component.md", + "redirect_url": "/dotnet/aspire/database/milvus-integration" + }, + { + "source_path_from_root": "/docs/database/mongodb-component.md", + "redirect_url": "/dotnet/aspire/database/mongodb-integration" + }, + { + "source_path_from_root": "/docs/database/mysql-component.md", + "redirect_url": "/dotnet/aspire/database/mysql-integration" + }, + { + "source_path_from_root": "/docs/database/mysql-entity-framework-component.md", + "redirect_url": "/dotnet/aspire/database/mysql-entity-framework-integration" + }, + { + "source_path_from_root": "/docs/database/oracle-entity-framework-component.md", + "redirect_url": "/dotnet/aspire/database/oracle-entity-framework-integration" + }, + { + "source_path_from_root": "/docs/database/postgresql-component.md", + "redirect_url": "/dotnet/aspire/database/postgresql-integration" + }, + { + "source_path_from_root": "/docs/database/postgresql-entity-framework-component.md", + "redirect_url": "/dotnet/aspire/database/postgresql-entity-framework-integration" + }, + { + "source_path_from_root": "/docs/database/qdrant-component.md", + "redirect_url": "/dotnet/aspire/database/qdrant-integration" + }, + { + "source_path_from_root": "/docs/database/sql-server-component-deployment.md", + "redirect_url": "/dotnet/aspire/database/sql-server-integration-deployment" + }, + { + "source_path_from_root": "/docs/database/sql-server-component.md", + "redirect_url": "/dotnet/aspire/database/sql-server-integration" + }, + { + "source_path_from_root": "/docs/database/sql-server-components.md", + "redirect_url": "/dotnet/aspire/database/sql-server-integrations" + }, + { + "source_path_from_root": "/docs/database/sql-server-entity-framework-component.md", + "redirect_url": "/dotnet/aspire/database/sql-server-entity-framework-integration" + }, + { + "source_path_from_root": "/docs/extensibility/custom-component.md", + "redirect_url": "/dotnet/aspire/extensibility/custom-integration" + }, + { + "source_path_from_root": "/docs/extensibility/implement-auth-from-resource-to-component.md", + "redirect_url": "/dotnet/aspire/extensibility/implement-auth-from-resource-to-integration" + }, + { + "source_path_from_root": "/docs/fundamentals/components-overview.md", + "redirect_url": "/dotnet/aspire/fundamentals/integrations-overview" + }, + { + "source_path_from_root": "/docs/includes/component-health-checks.md", + "redirect_url": "/dotnet/includes/integration-health-checks" + }, + { + "source_path_from_root": "/docs/includes/component-observability-and-telemetry.md", + "redirect_url": "/dotnet/includes/integration-observability-and-telemetry" + }, + { + "source_path_from_root": "/docs/logging/seq-component.md", + "redirect_url": "/dotnet/aspire/logging/seq-integration" + }, + { + "source_path_from_root": "/docs/messaging/azure-event-hubs-component.md", + "redirect_url": "/dotnet/aspire/messaging/azure-event-hubs-integration" + }, + { + "source_path_from_root": "/docs/messaging/azure-service-bus-component.md", + "redirect_url": "/dotnet/aspire/messaging/azure-service-bus-integration" + }, + { + "source_path_from_root": "/docs/messaging/azure-web-pubsub-component.md", + "redirect_url": "/dotnet/aspire/messaging/azure-web-pubsub-integration" + }, + { + "source_path_from_root": "/docs/messaging/kafka-component.md", + "redirect_url": "/dotnet/aspire/messaging/kafka-integration" + }, + { + "source_path_from_root": "/docs/messaging/messaging-components.md", + "redirect_url": "/dotnet/aspire/messaging/messaging-integrations" + }, + { + "source_path_from_root": "/docs/messaging/nats-component.md", + "redirect_url": "/dotnet/aspire/messaging/nats-integration" + }, + { + "source_path_from_root": "/docs/messaging/rabbitmq-client-component.md ", + "redirect_url": "/dotnet/aspire/messaging/rabbitmq-client-integration" + }, + { + "source_path_from_root": "/docs/search/elasticsearch-component.md", + "redirect_url": "/dotnet/aspire/search/elasticsearch-integration" + }, + { + "source_path_from_root": "/docs/security/azure-security-key-vault-component.md", + "redirect_url": "/dotnet/aspire/security/azure-security-key-vault-integration" + }, + { + "source_path_from_root": "/docs/storage/azure-storage-components.md", + "redirect_url": "/dotnet/aspire/storage/azure-storage-integrations" + }, + { + "source_path_from_root": "/docs/storage/azure-storage-blobs-component.md", + "redirect_url": "/dotnet/aspire/storage/azure-storage-blobs-integration" + }, + { + "source_path_from_root": "/docs/storage/azure-storage-queues-component.md", + "redirect_url": "/dotnet/aspire/storage/azure-storage-queues-integration" + }, + { + "source_path_from_root": "/docs/storage/azure-storage-tables-component.md", + "redirect_url": "/dotnet/aspire/storage/azure-storage-tables-integration" } ] } \ No newline at end of file diff --git a/docs/authentication/keycloak-component.md b/docs/authentication/keycloak-integration.md similarity index 84% rename from docs/authentication/keycloak-component.md rename to docs/authentication/keycloak-integration.md index 5e0fa9e581..9616256132 100644 --- a/docs/authentication/keycloak-component.md +++ b/docs/authentication/keycloak-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire Keycloak component -description: This article describes the .NET Aspire Keycloak component. +title: .NET Aspire Keycloak integration +description: This article describes the .NET Aspire Keycloak integration. ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Keycloak component +# .NET Aspire Keycloak integration -In this article, you learn how to use the .NET Aspire Keycloak component. The `Aspire.Keycloak.Authentication` library registers JwtBearer and OpenId Connect authentication handlers in the DI container for connecting to a Keycloak server. +In this article, you learn how to use the .NET Aspire Keycloak integration. The `Aspire.Keycloak.Authentication` library registers JwtBearer and OpenId Connect authentication handlers in the DI container for connecting to a Keycloak server. ## Prerequisites @@ -18,7 +18,7 @@ In this article, you learn how to use the .NET Aspire Keycloak component. The `A ## Get started -To get started with the .NET Aspire Keycloak component, install the [Aspire.Keycloak.Authentication](https://www.nuget.org/packages/Aspire.Keycloak.Authentication) NuGet package in the consuming client project. +To get started with the .NET Aspire Keycloak integration, install the [Aspire.Keycloak.Authentication](https://www.nuget.org/packages/Aspire.Keycloak.Authentication) NuGet package in the client-consuming project, i.e., the project for the application that uses the Keycloak client. ### [.NET CLI](#tab/dotnet-cli) @@ -130,5 +130,5 @@ builder.Services.AddAuthentication(oidcScheme) ## See also - [Keycloak](https://www.keycloak.org/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/azureai/azureai-openai-component.md b/docs/azureai/azureai-openai-integration.md similarity index 69% rename from docs/azureai/azureai-openai-component.md rename to docs/azureai/azureai-openai-integration.md index d085dc073d..65c9ef0d1c 100644 --- a/docs/azureai/azureai-openai-component.md +++ b/docs/azureai/azureai-openai-integration.md @@ -1,11 +1,11 @@ --- -title: .NET Aspire Azure AI OpenAI component -description: Learn how to use the .NET Aspire Azure AI OpenAI component. +title: .NET Aspire Azure AI OpenAI integration +description: Learn how to use the .NET Aspire Azure AI OpenAI integration. ms.topic: how-to -ms.date: 08/20/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure AI OpenAI component +# .NET Aspire Azure AI OpenAI integration In this article, you learn how to use the .NET Aspire Azure AI OpenAI client. The `Aspire.Azure.AI.OpenAI` library is used to register an `OpenAIClient` in the dependency injection (DI) container for consuming Azure AI OpenAI or OpenAI functionality. It enables corresponding logging and telemetry. @@ -16,7 +16,7 @@ For more information on using the `OpenAIClient`, see [Quickstart: Get started g - Azure subscription: [create one for free](https://azure.microsoft.com/free/). - Azure AI OpenAI or OpenAI account: [create an Azure OpenAI Service resource](/azure/ai-services/openai/how-to/create-resource). -To get started with the .NET Aspire Azure AI OpenAI component, install the [Aspire.Azure.AI.OpenAI](https://www.nuget.org/packages/Aspire.Azure.AI.OpenAI) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure AI OpenAI integration, install the [Aspire.Azure.AI.OpenAI](https://www.nuget.org/packages/Aspire.Azure.AI.OpenAI) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure AI OpenAI client. ### [.NET CLI](#tab/dotnet-cli) @@ -37,7 +37,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension method to register an `OpenAIClient` for use via the dependency injection container. The method takes a connection name parameter. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method to register an `OpenAIClient` for use via the dependency injection container. The method takes a connection name parameter. ```csharp builder.AddAzureOpenAIClient("openAiConnectionName"); @@ -84,28 +84,15 @@ builder.AddProject() .WithReference(openai); ``` -The `AddAzureOpenAI` method reads connection information from the app host's configuration (for example, from "user secrets") under the `ConnectionStrings:openAiConnectionName` config key. The method passes that connection information into a connection string named `openAiConnectionName` in the `ExampleProject` project. In the _:::no-loc text="Program.cs":::_ file of ExampleProject, the connection can be consumed using: +The `AddAzureAIOpenAI` method will read connection information from the app host's configuration (for example, from "user secrets") under the `ConnectionStrings:openAiConnectionName` config key. The method passes that connection information into a connection string named `openAiConnectionName` in the `ExampleProject` project. In the _:::no-loc text="Program.cs":::_ file of ExampleProject, the connection can be consumed using: ```csharp -builder.AddAzureOpenAI("openAiConnectionName"); -``` - -To add an Azure OpenAI Deployment resource to the application model, chain a call to method: - -```csharp -builder.AddAzureOpenAI("openAiConnectionName") - .AddDeployment( - new AzureOpenAIDeployment( - name: "chatmodel", - modelName: "gpt-4o", - modelVersion: "2024-05-13", - skuName: "Standard", - skuCapacity: 1000)); +builder.AddAzureAIOpenAI("openAiConnectionName"); ``` ## Configuration -The .NET Aspire Azure AI OpenAI component provides multiple options to configure the connection based on the requirements and conventions of your project. +The .NET Aspire Azure AI OpenAI integration provides multiple options to configure the connection based on the requirements and conventions of your project. ### Use a connection string @@ -145,7 +132,7 @@ In order to connect to the non-Azure OpenAI service, drop the `Endpoint` propert ### Use configuration providers -The .NET Aspire Azure AI OpenAI component supports . It loads the `AzureOpenAISettings` from configuration by using the `Aspire:Azure:AI:OpenAI` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Azure AI OpenAI integration supports . It loads the `AzureOpenAISettings` from configuration by using the `Aspire:Azure:AI:OpenAI` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -180,11 +167,11 @@ builder.AddAzureAIOpenAI( options => options.Diagnostics.ApplicationId = "CLIENT_ID")); ``` -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure AI OpenAI component uses the following log categories: +The .NET Aspire Azure AI OpenAI integration uses the following log categories: - `Azure` - `Azure.Core` @@ -193,5 +180,5 @@ The .NET Aspire Azure AI OpenAI component uses the following log categories: ## See also - [Azure AI OpenAI docs](/azure/ai-services/openai/overview) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/azureai/azureai-search-document-component.md b/docs/azureai/azureai-search-document-integration.md similarity index 82% rename from docs/azureai/azureai-search-document-component.md rename to docs/azureai/azureai-search-document-integration.md index 365efbe449..ab47f86c4a 100644 --- a/docs/azureai/azureai-search-document-component.md +++ b/docs/azureai/azureai-search-document-integration.md @@ -1,11 +1,11 @@ --- -title: .NET Aspire Azure AI Search Documents component -description: Learn how to use the .NET Aspire Azure AI Search Documents component. +title: .NET Aspire Azure AI Search Documents integration +description: Learn how to use the .NET Aspire Azure AI Search Documents integration. ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure AI Search Documents component +# .NET Aspire Azure AI Search Documents integration In this article, you learn how to use the .NET Aspire Azure AI Search Documents client. The `Aspire.Azure.Search.Documents` library is used to register an in the dependency injection (DI) container for connecting to Azure Search. It enables corresponding health checks and logging. @@ -16,7 +16,7 @@ For more information on using the `SearchIndexClient`, see [How to use Azure.Sea - Azure subscription: [create one for free](https://azure.microsoft.com/free/). - Azure Search service: [create an Azure AI Search service resource](/azure/search/search-create-service-portal). -To get started with the .NET Aspire Azure AI Search Documents component, install the [Aspire.Azure.Search.Documents](https://www.nuget.org/packages/Aspire.Azure.Search.Documents) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure AI Search Documents integration, install the [Aspire.Azure.Search.Documents](https://www.nuget.org/packages/Aspire.Azure.Search.Documents) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure AI Search Documents client. ### [.NET CLI](#tab/dotnet-cli) @@ -37,7 +37,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension method to register an `SearchIndexClient` for use via the dependency injection container. The method takes a connection name parameter. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method to register an `SearchIndexClient` for use via the dependency injection container. The method takes a connection name parameter. ```csharp builder.AddAzureSearchClient("searchConnectionName"); @@ -186,15 +186,15 @@ builder.AddAzureSearch( static options => options.Diagnostics.ApplicationId = "CLIENT_ID")); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Azure AI Search Documents component implements a single health check, that calls the method on the `SearchIndexClient` to verify that the service is available. +The .NET Aspire Azure AI Search Documents integration implements a single health check, that calls the method on the `SearchIndexClient` to verify that the service is available. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure AI Search Documents component uses the following log categories: +The .NET Aspire Azure AI Search Documents integration uses the following log categories: - `Azure` - `Azure.Core` @@ -203,5 +203,5 @@ The .NET Aspire Azure AI Search Documents component uses the following log categ ## See also - [Azure AI OpenAI docs](/azure/ai-services/openai/overview) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/caching/caching-components-deployment.md b/docs/caching/caching-integrations-deployment.md similarity index 90% rename from docs/caching/caching-components-deployment.md rename to docs/caching/caching-integrations-deployment.md index c3d8f46671..774af5c8fe 100644 --- a/docs/caching/caching-components-deployment.md +++ b/docs/caching/caching-integrations-deployment.md @@ -1,13 +1,13 @@ --- title: Deploy a .NET Aspire project that connects to Redis Cache to Azure description: Learn how to deploy a .NET Aspire project that connects to Redis Cache to Azure -ms.date: 06/11/2024 +ms.date: 08/12/2024 ms.topic: how-to --- # Tutorial: Deploy a .NET Aspire project with a Redis Cache to Azure -In this tutorial, you learn to configure a .NET Aspire project with a Redis Cache for deployment to Azure. .NET Aspire provides multiple caching component configurations that provision different Redis services in Azure. You'll learn how to: +In this tutorial, you learn to configure a .NET Aspire project with a Redis Cache for deployment to Azure. .NET Aspire provides multiple caching integration configurations that provision different Redis services in Azure. You'll learn how to: > [!div class="checklist"] > @@ -21,7 +21,7 @@ In this tutorial, you learn to configure a .NET Aspire project with a Redis Cach ## Create the sample solution -Follow the [Tutorial: Implement caching with .NET Aspire components](./caching-components.md) to create the sample project. +Follow the [Tutorial: Implement caching with .NET Aspire integrations](./caching-integrations.md) to create the sample project. ## Configure the app for Redis cache deployment @@ -30,9 +30,9 @@ Follow the [Tutorial: Implement caching with .NET Aspire components](./caching-c - Provision a containerized Redis Cache using Azure Container Apps - Provision an Azure Cache for Redis instance -### Add the .NET Aspire component to the app +### Add the .NET Aspire integration to the app -Add the appropriate .NET Aspire component to the _AspireRedis.AppHost_ project for your desired hosting service. +Add the appropriate .NET Aspire integration to the _AspireRedis.AppHost_ project for your desired hosting service. # [Azure Cache for Redis](#tab/azure-redis) @@ -105,7 +105,7 @@ The preceding code adds a Redis Container resource to your app and configures a ## Deploy the app -Tools such as the [Azure Developer CLI](/azure/developer/azure-developer-cli/overview) (`azd`) support .NET Aspire Redis component configurations to streamline deployments. `azd` consumes these settings and provisions properly configured resources for you. +Tools such as the [Azure Developer CLI](/azure/developer/azure-developer-cli/overview) (`azd`) support .NET Aspire Redis integration configurations to streamline deployments. `azd` consumes these settings and provisions properly configured resources for you. > [!NOTE] > You can also use the [Azure CLI](/dotnet/aspire/deployment/azure/aca-deployment?pivots=azure-cli) or [Bicep](/dotnet/aspire/deployment/azure/aca-deployment?pivots=azure-bicep) to provision and deploy .NET Aspire project resources. These options require more manual steps, but provide more granular control over your deployments. .NET Aspire projects can also connect to an existing Redis instance through manual configurations. diff --git a/docs/caching/caching-components.md b/docs/caching/caching-integrations.md similarity index 90% rename from docs/caching/caching-components.md rename to docs/caching/caching-integrations.md index dd7bc4c431..51482986cd 100644 --- a/docs/caching/caching-components.md +++ b/docs/caching/caching-integrations.md @@ -1,19 +1,19 @@ --- -title: Implement caching with .NET Aspire components -description: Learn how to connect to Redis and cache data using .NET Aspire components. -ms.date: 06/11/2024 +title: Implement caching with .NET Aspire integrations +description: Learn how to connect to Redis and cache data using .NET Aspire integrations. +ms.date: 08/12/2024 ms.topic: tutorial --- -# Tutorial: Implement caching with .NET Aspire components +# Tutorial: Implement caching with .NET Aspire integrations -Cloud-native apps often require various types of scalable caching solutions to improve performance. .NET Aspire components simplify the process of connecting to popular caching services such as Redis. In this article, you'll learn how to: +Cloud-native apps often require various types of scalable caching solutions to improve performance. .NET Aspire integrations simplify the process of connecting to popular caching services such as Redis. In this article, you'll learn how to: > [!div class="checklist"] > > - Create a basic ASP.NET core app that is set up to use .NET Aspire. -> - Add .NET Aspire components to connect to Redis and implement caching. -> - Configure the .NET Aspire components to meet specific requirements. +> - Add .NET Aspire integrations to connect to Redis and implement caching. +> - Configure the .NET Aspire integrations to meet specific requirements. This article explores how to use two different types of ASP.NET Core caching using .NET Aspire and Redis: @@ -96,7 +96,7 @@ Configuring connection string with this method, while functional, requires dupli ## Configure the UI with output caching -1. Add the [.NET Aspire Stack Exchange Redis output caching](stackexchange-redis-output-caching-component.md) component packages to your `AspireRedis.Web` app: +1. Add the [.NET Aspire Stack Exchange Redis output caching](stackexchange-redis-output-caching-integration.md) integration packages to your `AspireRedis.Web` app: ```dotnetcli dotnet add package Aspire.StackExchange.Redis.OutputCaching @@ -126,11 +126,11 @@ Configuring connection string with this method, while functional, requires dupli Welcome to your new app on @DateTime.Now ``` - The component include the `[OutputCache]` attribute, which caches the entire rendered response. The page also include a call to `@DateTime.Now` to help verify that the response is cached. + The integration include the `[OutputCache]` attribute, which caches the entire rendered response. The page also include a call to `@DateTime.Now` to help verify that the response is cached. ## Configure the API with distributed caching -1. Add the [.NET Aspire Stack Exchange Redis distributed caching](stackexchange-redis-output-caching-component.md) component packages to your `AspireRedis.ApiService` app: +1. Add the [.NET Aspire Stack Exchange Redis distributed caching](stackexchange-redis-output-caching-integration.md) integration packages to your `AspireRedis.ApiService` app: ```dotnetcli dotnet add package Aspire.StackExchange.Redis.DistributedCaching diff --git a/docs/caching/stackexchange-redis-caching-overview.md b/docs/caching/stackexchange-redis-caching-overview.md index 11b859bb59..2bd29fd353 100644 --- a/docs/caching/stackexchange-redis-caching-overview.md +++ b/docs/caching/stackexchange-redis-caching-overview.md @@ -1,14 +1,14 @@ --- title: Stack Exchange Redis caching overview description: Learn about Stack Exchange Redis caching and how to use it in your applications. -ms.date: 07/23/2024 +ms.date: 08/12/2024 --- # Stack Exchange Redis caching overview With .NET Aspire, there are several ways to use caching in your applications. One popular option is to use [Stack Exchange Redis](https://stackexchange.github.io/StackExchange.Redis), which is a high-performance data store that can be used to store frequently accessed data. This article provides an overview of Stack Exchange Redis caching and links to resources that help you use it in your applications. -To use multiple Redis caching components in your application, see [Tutorial: Implement caching with .NET Aspire components](caching-components.md). If you're interested in using the Redis Cache for Azure, see [Tutorial: Deploy a .NET Aspire project with a Redis Cache to Azure](caching-components-deployment.md). +To use multiple Redis caching integrations in your application, see [Tutorial: Implement caching with .NET Aspire integrations](caching-integrations.md). If you're interested in using the Redis Cache for Azure, see [Tutorial: Deploy a .NET Aspire project with a Redis Cache to Azure](caching-integrations-deployment.md). ## Redis serialization protocol (RESP) @@ -19,46 +19,46 @@ In addition to Redis itself, there are two well-maintained implementations of RE - [Garnet](https://github.com/microsoft/Garnet): Garnet is a remote cache-store from Microsoft Research that offers strong performance (throughput and latency), scalability, storage, recovery, cluster sharding, key migration, and replication features. Garnet can work with existing Redis clients. - [Valkey](https://github.com/valkey-io/valkey): A flexible distributed key-value datastore that supports both caching and beyond caching workloads. -.NET Aspire lets you easily model either the Redis, Garnet, or Valkey RESP protocol in your applications and you can choose which one to use based on your requirements. All of the .NET Aspire Redis components can be used with either the Redis, Garnet, or Valkey RESP protocol. +.NET Aspire lets you easily model either the Redis, Garnet, or Valkey RESP protocol in your applications and you can choose which one to use based on your requirements. All of the .NET Aspire Redis integrations can be used with either the Redis, Garnet, or Valkey RESP protocol. ## Caching Caching is a technique used to store frequently accessed data in memory. This helps to reduce the time it takes to retrieve the data from the original source, such as a database or a web service. Caching can significantly improve the performance of an application by reducing the number of requests made to the original source. To access the Redis `IConnectionMultiplexer` object, you use the `Aspire.StackExchange.Redis` NuGet package: > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis component](stackexchange-redis-component.md) +> [.NET Aspire Stack Exchange Redis integration](stackexchange-redis-integration.md) > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis component (Garnet)](stackexchange-redis-component.md?pivots=garnet) +> [.NET Aspire Stack Exchange Redis integration (Garnet)](stackexchange-redis-integration.md?pivots=garnet) > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis component (Valkey)](stackexchange-redis-component.md?pivots=valkey) +> [.NET Aspire Stack Exchange Redis integration (Valkey)](stackexchange-redis-integration.md?pivots=valkey) ## Distributed caching Distributed caching is a type of caching that stores data across multiple servers. This allows the data to be shared between multiple instances of an application, which can help to improve scalability and performance. Distributed caching can be used to store a wide variety of data, such as session state, user profiles, and frequently accessed data. To use Redis distributed caching in your application (the `IDistributedCache` interface), use the `Aspire.StackExchange.Redis.DistributedCaching` NuGet package: > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis distributed caching component](stackexchange-redis-distributed-caching-component.md) +> [.NET Aspire Stack Exchange Redis distributed caching integration](stackexchange-redis-distributed-caching-integration.md) > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis distributed caching component (Garnet)](stackexchange-redis-distributed-caching-component.md?pivots=garnet) +> [.NET Aspire Stack Exchange Redis distributed caching integration (Garnet)](stackexchange-redis-distributed-caching-integration.md?pivots=garnet) > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis distributed caching component (Valkey)](stackexchange-redis-distributed-caching-component.md?pivots=valkey) +> [.NET Aspire Stack Exchange Redis distributed caching integration (Valkey)](stackexchange-redis-distributed-caching-integration.md?pivots=valkey) ## Output caching Output caching is a type of caching that stores the output of a web page or API response. This allows the response to be served directly from the cache, rather than generating it from scratch each time. Output caching can help to improve the performance of a web application by reducing the time it takes to generate a response. To use declarative Redis output caching with either the `OutputCache` attribute or the `CacheOutput` method in your application, use the `Aspire.StackExchange.Redis.OutputCaching` NuGet package: > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis output caching component](stackexchange-redis-output-caching-component.md) +> [.NET Aspire Stack Exchange Redis output caching integration](stackexchange-redis-output-caching-integration.md) > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis output caching component (Garnet)](stackexchange-redis-output-caching-component.md?pivots=garnet) +> [.NET Aspire Stack Exchange Redis output caching integration (Garnet)](stackexchange-redis-output-caching-integration.md?pivots=garnet) > [!div class="nextstepaction"] -> [.NET Aspire Stack Exchange Redis output caching component (Valkey)](stackexchange-redis-output-caching-component.md?pivots=valkey) +> [.NET Aspire Stack Exchange Redis output caching integration (Valkey)](stackexchange-redis-output-caching-integration.md?pivots=valkey) ## See also diff --git a/docs/caching/stackexchange-redis-distributed-caching-component.md b/docs/caching/stackexchange-redis-distributed-caching-integration.md similarity index 58% rename from docs/caching/stackexchange-redis-distributed-caching-component.md rename to docs/caching/stackexchange-redis-distributed-caching-integration.md index 37536bb4bd..0ad6499a73 100644 --- a/docs/caching/stackexchange-redis-distributed-caching-component.md +++ b/docs/caching/stackexchange-redis-distributed-caching-integration.md @@ -1,18 +1,18 @@ --- -title: .NET Aspire Stack Exchange Redis distributed caching component -description: This article describes the .NET Aspire Stack Exchange Redis distributed caching component features and capabilities +title: .NET Aspire Stack Exchange Redis distributed caching integration +description: This article describes the .NET Aspire Stack Exchange Redis distributed caching integration features and capabilities ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 zone_pivot_groups: resp-host --- -# .NET Aspire Stack Exchange Redis distributed caching component +# .NET Aspire Stack Exchange Redis distributed caching integration -In this article, you learn how to use the .NET Aspire Stack Exchange Redis distributed caching component. The `Aspire.StackExchange.Redis.DistributedCaching` library is used to register an [IDistributedCache](https://stackexchange.github.io/StackExchange.Redis/Basics) provider for connecting to [Redis](https://redis.io/) server. It enables corresponding health checks, logging and telemetry. +In this article, you learn how to use the .NET Aspire Stack Exchange Redis distributed caching integration. The `Aspire.StackExchange.Redis.DistributedCaching` library is used to register an [IDistributedCache](https://stackexchange.github.io/StackExchange.Redis/Basics) provider for connecting to [Redis](https://redis.io/) server. It enables corresponding health checks, logging and telemetry. ## Get started -To get started with the .NET Aspire Stack Exchange Redis distributed caching component, install the [Aspire.StackExchange.Redis.DistributedCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.DistributedCaching) NuGet package in the consuming client project. +To get started with the .NET Aspire Stack Exchange Redis distributed caching integration, install the [Aspire.StackExchange.Redis.DistributedCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.DistributedCaching) NuGet package in the client-consuming project, i.e., the project for the application that uses the Stack Exchange Redis distributed caching client. ### [.NET CLI](#tab/dotnet-cli) @@ -33,7 +33,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register the required services for distributed caching and add a for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register the required services for distributed caching and add a for use via the dependency injection container. ```csharp builder.AddRedisDistributedCache("cache"); @@ -68,7 +68,7 @@ public class ExampleService(IDistributedCache cache) ## Configuration -The .NET Aspire Stack Exchange Redis distributed caching component provides multiple options to configure the Redis connection based on the requirements and conventions of your project. +The .NET Aspire Stack Exchange Redis distributed caching integration provides multiple options to configure the Redis connection based on the requirements and conventions of your project. ### Use a connection string @@ -92,7 +92,7 @@ For more information on how to format this connection string, see the [Stack Exc ### Use configuration providers -The .NET Aspire Stack Exchange Redis distributed caching component supports . It loads the from configuration by using the `Aspire:StackExchange:Redis` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Stack Exchange Redis distributed caching integration supports . It loads the from configuration by using the `Aspire:StackExchange:Redis` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -129,34 +129,34 @@ builder.AddRedisDistributedCache( configureOptions: options => options.ConnectTimeout = 3000); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Stack Exchange Redis distributed caching component handles the following: +The .NET Aspire Stack Exchange Redis distributed caching integration handles the following: - Adds the `StackExchange.Redis` health check, tries to open the connection and throws when it fails. - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Stack Exchange Redis Distributed Caching component uses the following Log categories: +The .NET Aspire Stack Exchange Redis Distributed Caching integration uses the following Log categories: - `Aspire.StackExchange.Redis` - `Microsoft.Extensions.Caching.StackExchangeRedis` ### Tracing -The .NET Aspire Stack Exchange Redis Distributed Caching component will emit the following Tracing activities using OpenTelemetry: +The .NET Aspire Stack Exchange Redis Distributed Caching integration will emit the following Tracing activities using OpenTelemetry: - "OpenTelemetry.Instrumentation.StackExchangeRedis" ### Metrics -The .NET Aspire Stack Exchange Redis Distributed Caching component currently doesn't support metrics by default due to limitations with the `StackExchange.Redis` library. +The .NET Aspire Stack Exchange Redis Distributed Caching integration currently doesn't support metrics by default due to limitations with the `StackExchange.Redis` library. ## See also - [Stack Exchange Redis docs](https://stackexchange.github.io/StackExchange.Redis/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/caching/stackexchange-redis-component.md b/docs/caching/stackexchange-redis-integration.md similarity index 64% rename from docs/caching/stackexchange-redis-component.md rename to docs/caching/stackexchange-redis-integration.md index cd95bb8e6a..6b6ef6e036 100644 --- a/docs/caching/stackexchange-redis-component.md +++ b/docs/caching/stackexchange-redis-integration.md @@ -1,18 +1,18 @@ --- -title: .NET Aspire Stack Exchange Redis component -description: This article describes the .NET Aspire Stack Exchange Redis component features and capabilities +title: .NET Aspire Stack Exchange Redis integration +description: This article describes the .NET Aspire Stack Exchange Redis integration features and capabilities ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 zone_pivot_groups: resp-host --- -# .NET Aspire Stack Exchange Redis component +# .NET Aspire Stack Exchange Redis integration -In this article, you learn how to use the .NET Aspire Stack Exchange Redis component. The `Aspire.StackExchange.Redis` library is used to register an [IConnectionMultiplexer](https://stackexchange.github.io/StackExchange.Redis/Basics) in the DI container for connecting to a [Redis](https://redis.io/) server. It enables corresponding health checks, logging and telemetry. +In this article, you learn how to use the .NET Aspire Stack Exchange Redis integration. The `Aspire.StackExchange.Redis` library is used to register an [IConnectionMultiplexer](https://stackexchange.github.io/StackExchange.Redis/Basics) in the DI container for connecting to a [Redis](https://redis.io/) server. It enables corresponding health checks, logging and telemetry. ## Get started -To get started with the .NET Aspire Stack Exchange Redis component, install the [Aspire.StackExchange.Redis](https://www.nuget.org/packages/Aspire.StackExchange.Redis) NuGet package in the consuming client project. +To get started with the .NET Aspire Stack Exchange Redis integration, install the [Aspire.StackExchange.Redis](https://www.nuget.org/packages/Aspire.StackExchange.Redis) NuGet package in the client-consuming project, i.e., the project for the application that uses the Stack Exchange Redis client. ### [.NET CLI](#tab/dotnet-cli) @@ -33,7 +33,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a `IConnectionMultiplexer` for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register a `IConnectionMultiplexer` for use via the dependency injection container. ```csharp builder.AddRedisClient("cache"); @@ -68,7 +68,7 @@ public class ExampleService(IConnectionMultiplexer connectionMultiplexer) ## Configuration -The .NET Aspire Stack Exchange Redis component provides multiple options to configure the Redis connection based on the requirements and conventions of your project. +The .NET Aspire Stack Exchange Redis integration provides multiple options to configure the Redis connection based on the requirements and conventions of your project. ### Use a connection string @@ -116,7 +116,7 @@ For more information on how to format this connection string, see the [Stack Exc ### Use configuration providers -The .NET Aspire Stack Exchange Redis component supports . It loads the from configuration by using the `Aspire:StackExchange:Redis` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Stack Exchange Redis integration supports . It loads the from configuration by using the `Aspire:StackExchange:Redis` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -169,33 +169,33 @@ builder.AddValkey( :::zone-end -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Stack Exchange Redis component handles the following: +The .NET Aspire Stack Exchange Redis integration handles the following: - Adds the `StackExchange.Redis` health check, tries to open the connection and throws when it fails. - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Stack Exchange Redis component uses the following log categories: +The .NET Aspire Stack Exchange Redis integration uses the following log categories: - `Aspire.StackExchange.Redis` ### Tracing -The .NET Aspire Stack Exchange Redis component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Stack Exchange Redis integration will emit the following tracing activities using OpenTelemetry: - "OpenTelemetry.Instrumentation.StackExchangeRedis" ### Metrics -The .NET Aspire Stack Exchange Redis component currently doesn't support metrics by default due to limitations with the `StackExchange.Redis` library. +The .NET Aspire Stack Exchange Redis integration currently doesn't support metrics by default due to limitations with the `StackExchange.Redis` library. ## See also - [Stack Exchange Redis docs](https://stackexchange.github.io/StackExchange.Redis/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/caching/stackexchange-redis-output-caching-component.md b/docs/caching/stackexchange-redis-output-caching-integration.md similarity index 66% rename from docs/caching/stackexchange-redis-output-caching-component.md rename to docs/caching/stackexchange-redis-output-caching-integration.md index 1d43c7777a..d3eb87a253 100644 --- a/docs/caching/stackexchange-redis-output-caching-component.md +++ b/docs/caching/stackexchange-redis-output-caching-integration.md @@ -1,18 +1,18 @@ --- title: .NET Aspire Stack Exchange Redis output caching Component -description: This article describes the .NET Aspire Stack Exchange Redis output caching component features and capabilities +description: This article describes the .NET Aspire Stack Exchange Redis output caching integration features and capabilities ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 zone_pivot_groups: resp-host --- -# .NET Aspire Stack Exchange Redis output caching component +# .NET Aspire Stack Exchange Redis output caching integration -In this article, you learn how to use the .NET Aspire Stack Exchange Redis output caching component. The `Aspire.StackExchange.Redis.OutputCaching` library is used to register an [ASP.NET Core Output Caching](/aspnet/core/performance/caching/output) provider backed by a [Redis](https://redis.io/) server. It enables corresponding health check, logging, and telemetry.. +In this article, you learn how to use the .NET Aspire Stack Exchange Redis output caching integration. The `Aspire.StackExchange.Redis.OutputCaching` library is used to register an [ASP.NET Core Output Caching](/aspnet/core/performance/caching/output) provider backed by a [Redis](https://redis.io/) server. It enables corresponding health check, logging, and telemetry.. ## Get started -To get started with the .NET Aspire Stack Exchange Redis output caching component, install the [Aspire.StackExchange.Redis.OutputCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.OutputCaching) NuGet package in the consuming client project. +To get started with the .NET Aspire Stack Exchange Redis output caching integration, install the [Aspire.StackExchange.Redis.OutputCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.OutputCaching) NuGet package in the client-consuming project, i.e., the project for the application that uses the Stack Exchange Redis output caching client. ### [.NET CLI](#tab/dotnet-cli) @@ -33,7 +33,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register the required services for output caching. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register the required services for output caching. ```csharp builder.AddRedisOutputCache("cache"); @@ -75,7 +75,7 @@ For apps with controllers, apply the `[OutputCache]` attribute to the action met ## Configuration -The .NET Aspire Stack Exchange Redis output caching component provides multiple options to configure the Redis connection based on the requirements and conventions of your project. +The .NET Aspire Stack Exchange Redis output caching integration provides multiple options to configure the Redis connection based on the requirements and conventions of your project. ### Use a connection string @@ -99,7 +99,7 @@ For more information on how to format this connection string, see the [Stack Exc ### Use configuration providers -The .NET Aspire Stack Exchange Redis output caching component supports . It loads the from configuration by using the `Aspire:StackExchange:Redis` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Stack Exchange Redis output caching integration supports . It loads the from configuration by using the `Aspire:StackExchange:Redis` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -136,34 +136,34 @@ builder.AddRedisOutputCache( static configureOptions: options => options.ConnectTimeout = 3000); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Stack Exchange Redis output caching component handles the following: +The .NET Aspire Stack Exchange Redis output caching integration handles the following: - Adds the `StackExchange.Redis` health check, tries to open the connection and throws when it fails. - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Stack Exchange Redis output caching component uses the following Log categories: +The .NET Aspire Stack Exchange Redis output caching integration uses the following Log categories: - `Aspire.StackExchange.Redis` - `Microsoft.AspNetCore.OutputCaching.StackExchangeRedis` ### Tracing -The .NET Aspire Stack Exchange Redis output caching component will emit the following Tracing activities using OpenTelemetry: +The .NET Aspire Stack Exchange Redis output caching integration will emit the following Tracing activities using OpenTelemetry: - "OpenTelemetry.Instrumentation.StackExchangeRedis" ### Metrics -The .NET Aspire Stack Exchange Redis output caching component currently doesn't support metrics by default due to limitations with the `StackExchange.Redis` library. +The .NET Aspire Stack Exchange Redis output caching integration currently doesn't support metrics by default due to limitations with the `StackExchange.Redis` library. ## See also - [Stack Exchange Redis docs](https://stackexchange.github.io/StackExchange.Redis/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/database/azure-cosmos-db-entity-framework-component.md b/docs/database/azure-cosmos-db-entity-framework-integration.md similarity index 63% rename from docs/database/azure-cosmos-db-entity-framework-component.md rename to docs/database/azure-cosmos-db-entity-framework-integration.md index 5408f94628..3840f191ea 100644 --- a/docs/database/azure-cosmos-db-entity-framework-component.md +++ b/docs/database/azure-cosmos-db-entity-framework-integration.md @@ -1,17 +1,17 @@ --- -title: .NET Aspire Microsoft Entity Framework Core Cosmos DB component -description: This article describes the .NET Aspire Microsoft Entity Framework Core Cosmos DB component features and capabilities. +title: .NET Aspire Microsoft Entity Framework Core Cosmos DB integration +description: This article describes the .NET Aspire Microsoft Entity Framework Core Cosmos DB integration features and capabilities. ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Microsoft Entity Framework Core Cosmos DB component +# .NET Aspire Microsoft Entity Framework Core Cosmos DB integration -In this article, you learn how to use the .NET Aspire Microsoft Entity Framework Core Cosmos DB component. The `Aspire.Microsoft.EntityFrameworkCore.Cosmos` library is used to register a as a singleton in the DI container for connecting to Azure Cosmos DB. It also enables corresponding health checks, logging and telemetry. +In this article, you learn how to use the .NET Aspire Microsoft Entity Framework Core Cosmos DB integration. The `Aspire.Microsoft.EntityFrameworkCore.Cosmos` library is used to register a as a singleton in the DI container for connecting to Azure Cosmos DB. It also enables corresponding health checks, logging and telemetry. ## Get started -To get started with the .NET Aspire Microsoft Entity Framework Core Cosmos DB component, install the [Aspire.Microsoft.EntityFrameworkCore.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.EntityFrameworkCore.Cosmos) NuGet package in the consuming client project. +To get started with the .NET Aspire Microsoft Entity Framework Core Cosmos DB integration, install the [Aspire.Microsoft.EntityFrameworkCore.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.EntityFrameworkCore.Cosmos) NuGet package in the client-consuming project, i.e., the project for the application that uses the Microsoft Entity Framework Core Cosmos DB client. ### [.NET CLI](#tab/dotnet-cli) @@ -32,7 +32,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register a for use via the dependency injection container. ```csharp builder.AddCosmosDbContext("cosmosdb"); @@ -68,7 +68,7 @@ dotnet add package Aspire.Hosting.Azure.CosmosDB --- -In your app host project, register the .NET Aspire Microsoft Entity Framework Core Cosmos DB component and consume the service using the following methods: +In your app host project, register the .NET Aspire Microsoft Entity Framework Core Cosmos DB integration and consume the service using the following methods: ```csharp var builder = DistributedApplication.CreateBuilder(args); @@ -89,7 +89,7 @@ var exampleProject = builder.AddProject() ## Configuration -The .NET Aspire Microsoft Entity Framework Core Cosmos DB component provides multiple options to configure the Azure Cosmos DB connection based on the requirements and conventions of your project. +The .NET Aspire Microsoft Entity Framework Core Cosmos DB integration provides multiple options to configure the Azure Cosmos DB connection based on the requirements and conventions of your project. ### Use a connection string @@ -113,7 +113,7 @@ For more information, see the [ConnectionString documentation](/azure/cosmos-db/ ### Use configuration providers -The .NET Aspire Microsoft Entity Framework Core Cosmos DB component supports . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Microsoft:EntityFrameworkCore:Cosmos` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Microsoft Entity Framework Core Cosmos DB integration supports . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Microsoft:EntityFrameworkCore:Cosmos` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -139,15 +139,15 @@ builder.AddCosmosDbContext( settings => settings.DisableTracing = true); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Microsoft Entity Framework Core Cosmos DB component currently doesn't implement health checks, though this may change in future releases. +The .NET Aspire Microsoft Entity Framework Core Cosmos DB integration currently doesn't implement health checks, though this may change in future releases. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Microsoft Entity Framework Core Cosmos DB component uses the following log categories: +The .NET Aspire Microsoft Entity Framework Core Cosmos DB integration uses the following log categories: - Azure-Cosmos-Operation-Request-Diagnostics - Microsoft.EntityFrameworkCore.ChangeTracking @@ -157,14 +157,14 @@ The .NET Aspire Microsoft Entity Framework Core Cosmos DB component uses the fol ### Tracing -The .NET Aspire Microsoft Entity Framework Core Cosmos DB component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Microsoft Entity Framework Core Cosmos DB integration will emit the following tracing activities using OpenTelemetry: - Azure.Cosmos.Operation - OpenTelemetry.Instrumentation.EntityFrameworkCore ### Metrics -The .NET Aspire Microsoft Entity Framework Core Cosmos DB component currently supports the following metrics: +The .NET Aspire Microsoft Entity Framework Core Cosmos DB integration currently supports the following metrics: - Microsoft.EntityFrameworkCore" - ec_Microsoft_EntityFrameworkCore_active_db_contexts @@ -181,5 +181,5 @@ The .NET Aspire Microsoft Entity Framework Core Cosmos DB component currently su ## See also - [Azure Cosmos DB docs](/azure/cosmos-db/introduction) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/database/azure-cosmos-db-component.md b/docs/database/azure-cosmos-db-integration.md similarity index 68% rename from docs/database/azure-cosmos-db-component.md rename to docs/database/azure-cosmos-db-integration.md index e842b77600..beb6e5fcdc 100644 --- a/docs/database/azure-cosmos-db-component.md +++ b/docs/database/azure-cosmos-db-integration.md @@ -1,17 +1,17 @@ --- -title: .NET Aspire Azure Cosmos DB component -description: This article describes the .NET Aspire Azure Cosmos DB component features and capabilities. +title: .NET Aspire Azure Cosmos DB integration +description: This article describes the .NET Aspire Azure Cosmos DB integration features and capabilities. ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure Cosmos DB component +# .NET Aspire Azure Cosmos DB integration -In this article, you learn how to use the .NET Aspire Azure Cosmos DB component. The `Aspire.Microsoft.Azure.Cosmos` library is used to register a as a singleton in the DI container for connecting to Azure Cosmos DB. It also enables corresponding health checks, logging and telemetry. +In this article, you learn how to use the .NET Aspire Azure Cosmos DB integration. The `Aspire.Microsoft.Azure.Cosmos` library is used to register a as a singleton in the DI container for connecting to Azure Cosmos DB. It also enables corresponding health checks, logging and telemetry. ## Get started -To get started with the .NET Aspire Azure Cosmos DB component, install the [Aspire.Microsoft.Azure.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.Azure.Cosmos) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Cosmos DB integration, install the [Aspire.Microsoft.Azure.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.Azure.Cosmos) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Cosmos DB client. ### [.NET CLI](#tab/dotnet-cli) @@ -32,7 +32,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register a for use via the dependency injection container. ```csharp builder.AddAzureCosmosClient("cosmosdb"); @@ -68,7 +68,7 @@ dotnet add package Aspire.Hosting.Azure.CosmosDB --- -In your app host project, register the .NET Aspire Azure Cosmos DB component and consume the service using the following methods: +In your app host project, register the .NET Aspire Azure Cosmos DB integration and consume the service using the following methods: ```csharp var builder = DistributedApplication.CreateBuilder(args); @@ -131,7 +131,7 @@ Alternatively, an Azure Cosmos DB connection string can be used: ### Use configuration providers -The .NET Aspire Azure Cosmos DB component supports . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Microsoft:Azure:Cosmos` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Azure Cosmos DB integration supports . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Microsoft:Azure:Cosmos` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -166,30 +166,30 @@ builder.AddAzureCosmosDB( clientOptions => clientOptions.ApplicationName = "myapp"); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Azure Cosmos DB component currently doesn't implement health checks, though this may change in future releases. +The .NET Aspire Azure Cosmos DB integration currently doesn't implement health checks, though this may change in future releases. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure Cosmos DB component uses the following log categories: +The .NET Aspire Azure Cosmos DB integration uses the following log categories: - Azure-Cosmos-Operation-Request-Diagnostics ### Tracing -The .NET Aspire Azure Cosmos DB component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Azure Cosmos DB integration will emit the following tracing activities using OpenTelemetry: - Azure.Cosmos.Operation ### Metrics -The .NET Aspire Azure Cosmos DB component currently doesn't support metrics by default due to limitations with the Azure SDK. +The .NET Aspire Azure Cosmos DB integration currently doesn't support metrics by default due to limitations with the Azure SDK. ## See also - [Azure Cosmos DB docs](/azure/cosmos-db/introduction) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/database/includes/postgresql-app-host.md b/docs/database/includes/postgresql-app-host.md index 71f114518b..54af00e113 100644 --- a/docs/database/includes/postgresql-app-host.md +++ b/docs/database/includes/postgresql-app-host.md @@ -15,4 +15,4 @@ dotnet add package Aspire.Hosting.PostgreSQL --- -In your app host project, register and consume the PostgreSQL component using the following methods, such as : +In your app host project, register and consume the PostgreSQL integration using the following methods, such as : diff --git a/docs/database/milvus-component.md b/docs/database/milvus-integration.md similarity index 64% rename from docs/database/milvus-component.md rename to docs/database/milvus-integration.md index 1bcb83b4b2..1b1ea076fe 100644 --- a/docs/database/milvus-component.md +++ b/docs/database/milvus-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire Milvus database component -description: This article describes the .NET Aspire Milvus database component. +title: .NET Aspire Milvus database integration +description: This article describes the .NET Aspire Milvus database integration. ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Milvus database component +# .NET Aspire Milvus database integration -In this article, you learn how to use the .NET Aspire Milvus database component. The `Aspire.Milvus.Client` library registers a [MilvusClient](https://github.com/milvus-io/milvus-sdk-csharp) in the DI container for connecting to a Milvus server. +In this article, you learn how to use the .NET Aspire Milvus database integration. The `Aspire.Milvus.Client` library registers a [MilvusClient](https://github.com/milvus-io/milvus-sdk-csharp) in the DI container for connecting to a Milvus server. ## Prerequisites @@ -15,7 +15,7 @@ In this article, you learn how to use the .NET Aspire Milvus database component. ## Get started -To get started with the .NET Aspire Milvus database component, install the [Aspire.Milvus.Client](https://www.nuget.org/packages/Aspire.Milvus.Client) NuGet package in the consuming client project. +To get started with the .NET Aspire Milvus database integration, install the [Aspire.Milvus.Client](https://www.nuget.org/packages/Aspire.Milvus.Client) NuGet package in the client-consuming project, i.e., the project for the application that uses the Milvus database client. ### [.NET CLI](#tab/dotnet-cli) @@ -78,7 +78,7 @@ builder.AddMilvusClient("milvus"); ## Configuration -The .NET Aspire Milvus Client component provides multiple options to configure the server connection based on the requirements and conventions of your project. +The .NET Aspire Milvus Client integration provides multiple options to configure the server connection based on the requirements and conventions of your project. > [!TIP] > The default use is `root` and the default password is `Milvus`. Currently, Milvus doesn't support changing the superuser password at startup. It needs to be manually changed with the client. @@ -105,7 +105,7 @@ By default the `MilvusClient` uses the gRPC API endpoint. ### Use configuration providers -The .NET Aspire Milvus Client component supports [Microsoft.Extensions.Configuration](/dotnet/api/microsoft.extensions.configuration). It loads the `MilvusSettings` from configuration by using the `Aspire:Milvus:Client` key. Consider the following example _appsettings.json_ that configures some of the options: +The .NET Aspire Milvus Client integration supports [Microsoft.Extensions.Configuration](/dotnet/api/microsoft.extensions.configuration). It loads the `MilvusSettings` from configuration by using the `Aspire:Milvus:Client` key. Consider the following example _appsettings.json_ that configures some of the options: ```json { @@ -129,31 +129,31 @@ builder.AddMilvusClient( settings => settings.Key = "root:12345!@#$%"); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Milvus database component uses the configured client to perform a `HealthAsync`. If the result _is healthy_, the health check is considered healthy, otherwise it's unhealthy. Likewise, if there's an exception, the health check is considered unhealthy with the error propagating through the health check failure. +The .NET Aspire Milvus database integration uses the configured client to perform a `HealthAsync`. If the result _is healthy_, the health check is considered healthy, otherwise it's unhealthy. Likewise, if there's an exception, the health check is considered unhealthy with the error propagating through the health check failure. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Milvus database component uses standard .NET logging, and you'll see log entries from the following category: +The .NET Aspire Milvus database integration uses standard .NET logging, and you'll see log entries from the following category: - `Milvus.Client` ## See also - [Milvus .NET SDK](https://github.com/milvus-io/milvus-sdk-csharp) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) -| Component | NuGet | Description | -|--|--|--| -| [Apache Kafka](../messaging/kafka-component.md)
.NET Aspire logo. | [Aspire.Confluent.Kafka](https://www.nuget.org/packages/Aspire.Confluent.Kafka) | A library for producing and consuming messages from an [Apache Kafka](https://kafka.apache.org/) broker. | -| [Azure AI OpenAI](../azureai/azureai-openai-component.md)
Azire OpenAI logo. | [Aspire.Azure.AI.OpenAI](https://www.nuget.org/packages/Aspire.Azure.AI.OpenAI) | A library for accessing [Azure AI OpenAI](/azure/ai-services/openai/overview) or OpenAI functionality. | -| [Azure Blob Storage](../storage/azure-storage-blobs-component.md)
Azure Blog Storage logo. | [Aspire.Azure.Storage.Blobs](https://www.nuget.org/packages/Aspire.Azure.Storage.Blobs) | A library for accessing [Azure Blob Storage](/azure/storage/blobs/storage-blobs-introduction). | -| [Azure Cosmos DB Entity Framework Core](../database/azure-cosmos-db-entity-framework-component.md)
Azure Cosmos DB EF logo. | [Aspire.Microsoft.EntityFrameworkCore.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.EntityFrameworkCore.Cosmos) | A library for accessing Azure Cosmos DB databases with [Entity Framework Core](/ef/core/providers/cosmos/). | -| [Azure Cosmos DB](../database/azure-cosmos-db-component.md)
Azure Cosmos DB logo. | [Aspire.Microsoft.Azure.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.Azure.Cosmos) | A library for accessing [Azure Cosmos DB](/azure/cosmos-db/introduction) databases. | -| [Azure Event Hubs](../messaging/azure-event-hubs-component.md)
Azure Event Hubs logo. | [Aspire.Azure.Messaging.EventHubs](https://www.nuget.org/packages/Aspire.Azure.Messaging.EventHubs) | A library for accessing [Azure Event Hubs](/azure/event-hubs/event-hubs-about). | -| [Azure Key Vault](../security/azure-security-key-vault-component.md)
Azure Key Vault logo. | [Aspire.Azure.Security.KeyVault](https://www.nuget.org/packages/Aspire.Azure.Security.KeyVault) | A library for accessing [Azure Key Vault](/azure/key-vault/general/overview). | -| [Azure Search Documents](../azureai/azureai-search-document-component.md)
Azure Search Documents logo. | [Aspire.Azure.Search.Documents](https://www.nuget.org/packages/Aspire.Azure.Search.Documents) | A library for accessing [Azure AI Search](/azure/search/search-what-is-azure-search). | -| [Azure Service Bus](../messaging/azure-service-bus-component.md)
Azure Service Bus logo. | [Aspire.Azure.Messaging.ServiceBus](https://www.nuget.org/packages/Aspire.Azure.Messaging.ServiceBus) | A library for accessing [Azure Service Bus](/azure/service-bus-messaging/service-bus-messaging-overview). | -| [Azure Storage Queues](../storage/azure-storage-queues-component.md)
Azure Storage Queues logo. | [Aspire.Azure.Storage.Queues](https://www.nuget.org/packages/Aspire.Azure.Storage.Queues) | A library for accessing [Azure Storage Queues](/azure/storage/queues/storage-queues-introduction). | -| [Azure Table Storage](../storage/azure-storage-tables-component.md)
Azure Table Storage logo. | [Aspire.Azure.Data.Tables](https://www.nuget.org/packages/Aspire.Azure.Data.Tables) | A library for accessing the [Azure Table](/azure/storage/tables/table-storage-overview) service. | -| [Azure Web PubSub](../messaging/azure-web-pubsub-component.md)
Azure Web PubSub logo. | [Aspire.Azure.Messaging.WebPubSub](https://www.nuget.org/packages/Aspire.Azure.Messaging.WebPubSub) | A library for accessing the [Azure Web PubSub](/azure/azure-web-pubsub/) service. | -| [Elasticsearch](../search/elasticsearch-component.md)
Elasticsearch logo. | [Aspire.Elastic.Clients.Elasticsearch](https://www.nuget.org/packages/Aspire.Elastic.Clients.Elasticsearch) | A library for accessing [Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/client/index.html) databases. | -| [Keycloak](../authentication/keycloak-component.md)
.NET Aspire logo. | [Aspire.Keycloak.Authentication](https://www.nuget.org/packages/Aspire.Keycloak.Authentication) | A library for accessing [Keycloak](https://www.keycloak.org/docs/latest/server_admin/index.html) authentication. | -| [Milvus](../database/milvus-component.md)
Milvus logo. | [Aspire.Milvus.Client](https://www.nuget.org/packages/Aspire.Milvus.Client) | A library for accessing [Milvus](https://milvus.io/) databases. | -| [MongoDB Driver](../database/mongodb-component.md)
MongoDB logo. | [Aspire.MongoDB.Driver](https://www.nuget.org/packages/Aspire.MongoDB.Driver) | A library for accessing [MongoDB](https://www.mongodb.com/docs) databases. | -| [MySqlConnector](../database/mysql-component.md)
MySqlConnector logo. | [Aspire.MySqlConnector](https://www.nuget.org/packages/Aspire.MySqlConnector) | A library for accessing [MySqlConnector](https://mysqlconnector.net/) databases. | -| [NATS](../messaging/nats-component.md)
NATS logo. | [Aspire.NATS.Net](https://www.nuget.org/packages/Aspire.NATS.Net) | A library for accessing [NATS](https://nats.io/) messaging. | -| [Oracle Entity Framework Core](../database/oracle-entity-framework-component.md)
.NET Aspire logo. | [Aspire.Oracle.EntityFrameworkCore](https://www.nuget.org/packages/Aspire.Oracle.EntityFrameworkCore) | A library for accessing Oracle databases with [Entity Framework Core](/ef/core). | -| [Pomelo MySQL Entity Framework Core](../database/mysql-entity-framework-component.md)
.NET Aspire logo. | [Aspire.Pomelo.EntityFrameworkCore.MySql](https://www.nuget.org/packages/Aspire.Pomelo.EntityFrameworkCore.MySql) | A library for accessing MySql databases with [Entity Framework Core](/ef/core). | -| [PostgreSQL Entity Framework Core](../database/postgresql-entity-framework-component.md)
PostgreSQL logo. | [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL](https://www.nuget.org/packages/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL) | A library for accessing PostgreSQL databases using [Entity Framework Core](https://www.npgsql.org/efcore/index.html). | -| [PostgreSQL](../database/postgresql-component.md)
PostgreSQL logo. | [Aspire.Npgsql](https://www.nuget.org/packages/Aspire.Npgsql) | A library for accessing [PostgreSQL](https://www.npgsql.org/doc/index.html) databases. | -| [Qdrant](../database/qdrant-component.md)
Qdrant logo. | [Aspire.Qdrant.Client](https://www.nuget.org/packages/Aspire.Qdrant.Client) | A library for accessing [Qdrant](https://qdrant.tech/) databases. | -| [RabbitMQ](../messaging/rabbitmq-client-component.md)
.NET Aspire logo. | [Aspire.RabbitMQ.Client](https://www.nuget.org/packages/Aspire.RabbitMQ.Client) | A library for accessing [RabbitMQ](https://www.rabbitmq.com/dotnet.html). | -| [Redis Distributed Caching](../caching/stackexchange-redis-distributed-caching-component.md)
Redis logo. | [Aspire.StackExchange.Redis.DistributedCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.DistributedCaching) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches for [distributed caching](/aspnet/core/performance/caching/distributed). | -| [Redis Output Caching](../caching/stackexchange-redis-output-caching-component.md)
Redis logo. | [Aspire.StackExchange.Redis.OutputCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.OutputCaching) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches for [output caching](/aspnet/core/performance/caching/output). | -| [Redis](../caching/stackexchange-redis-component.md)
Redis logo. | [Aspire.StackExchange.Redis](https://www.nuget.org/packages/Aspire.StackExchange.Redis) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches. | -| [Seq](../logging/seq-component.md)
Seq logo. | [Aspire.Seq](https://www.nuget.org/packages/Aspire.Seq) | A library for logging to [Seq](https://datalust.co/seq). | -| [SQL Server Entity Framework Core](../database/sql-server-entity-framework-component.md)
SQL logo. | [Aspire.Microsoft.EntityFrameworkCore.SqlServer](https://www.nuget.org/packages/Aspire.Microsoft.EntityFrameworkCore.SqlServer) | A library for accessing [SQL Server databases using Entity Framework Core](/ef/core/providers/sql-server/). | -| [SQL Server](../database/sql-server-component.md)
SQL logo. | [Aspire.Microsoft.Data.SqlClient](https://www.nuget.org/packages/Aspire.Microsoft.Data.SqlClient) | A library for accessing [SQL Server](/sql/sql-server/) databases. | - - -For more information on working with .NET Aspire components in Visual Studio, see [Visual Studio tooling](setup-tooling.md#visual-studio-tooling). - -## Explore a sample component workflow - -.NET Aspire components streamline the process of consuming popular services and platforms. For example, consider the **.NET Aspire project** template. With this template, you get the [AppHost](app-host-overview.md) and [ServiceDefaults](service-defaults.md) projects. Imagine that you have a need for a worker service to perform some database processing. You could use the [.NET Aspire PostgreSQL component](../database/postgresql-component.md) to connect to and utilize a PostgreSQL database. The database could be hosted on-prem or in a cloud service such as Azure, AWS, or GCP. The following steps demonstrate how to integrate this component into your app: - -1. In the component consuming (worker service) project, install the [Aspire.Npgsql](https://www.nuget.org/packages/Aspire.Npgsql) NuGet package. - - # [.NET CLI](#tab/dotnet-cli) - - ```dotnetcli - dotnet add package Aspire.Npgsql - ``` - - # [PackageReference](#tab/package-reference) - - ```xml - - ``` - - --- - - For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies). - -1. In the _:::no-loc text="Program.cs":::_ file of your worker service project, call the extension method to register `NpgsqlDataSource` as a service. - - :::code source="snippets/components/AspireApp/WorkerService/Program.cs" highlight="5"::: - - The preceding code adds the `NpgsqlDataSource` to the dependency injection container with the connection name of `"customers"`. The connection name is later used by the orchestrator project, when expressing resource dependencies. - - > [!TIP] - > Components that are designed to connect to Azure services also support passwordless authentication and authorization using [Azure RBAC](/azure/role-based-access-control/overview), which is the recommended approach for production apps. - -1. In your app host project (the project with the _*.AppHost_ suffix), add a reference to the worker service project. If you're using Visual Studio, you can use the [**Add .NET Aspire Orchestrator Support**](setup-tooling.md#add-orchestration-projects) project context menu item to add the reference automatically. The following code snippet shows the project reference of the _AspireApp.AppHost.csproj_: - - :::code language="xml" source="snippets/components/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj" highlight="17"::: - - After the worker service is referenced by the orchestrator project, the worker service project has its _:::no-loc text="Program.cs":::_ file updated to call the `AddServiceDefaults` method. For more information on service defaults, see [Service defaults](service-defaults.md). - -1. In the orchestrator project, update the _:::no-loc text="Program.cs":::_ file with the following code: - - :::code source="snippets/components/AspireApp/AspireApp.AppHost/Program.cs" highlight="3-4,6-8"::: - - The preceding code: - - - Calls and chains a call to , adding a PostgreSQL database container to the app model with a database named `"customers"`. - - Chains calls on the result of the from the worker service project: - - Calls to add a reference to the `database`. - - Calls to set the number of replicas to `3`. - -1. Inject the `NpgsqlDataSource` object into the `Worker` to run commands against the database: - - :::code source="snippets/components/AspireApp/WorkerService/Worker.cs" highlight="7,13"::: - -You now have a fully configured PostgreSQL database component and corresponding container with connection integrated into your app! This component also configured health checks, logging, metrics, retries, and other useful capabilities for you behind the scenes. .NET Aspire components provide various options to configure each of these features. - -## Configure .NET Aspire components - -.NET Aspire components implement a consistent configuration experience via and . Configuration is schematized and part of a component's contract, ensuring backward compatibility across versions of the component. You can set up every .NET Aspire component through either JSON configuration files or directly through code using delegates. JSON files must follow a standardized naming convention based on the Component name. - -For example, add the following code to the _:::no-loc text="appsettings.json":::_ file to configure the PostgreSQL component: - -```json -{ - "Aspire": { - "Npgsql": { - "DisableHealthChecks": true, - "DisableTracing": true - } - } -} -``` - -Alternatively, you can configure the component directly in your code using a delegate: - -```csharp -builder.AddNpgsqlDataSource( - "PostgreSqlConnection", - static settings => settings.DisableHealthChecks = true); -``` - -## Dependency injection - -.NET Aspire components automatically register essential services with the .NET dependency container using the proper scope. This allows key component classes and services to be injected throughout your code. For example, the .NET Aspire PostgreSQL component makes available the `NpgsqlDataSource` to inject into your application layers and run commands against a database: - -```csharp -public class ExampleService(NpgsqlDataSource dataSource) -{ -} -``` - -For more information, see [.NET dependency injection](/dotnet/core/extensions/dependency-injection). - -### Keyed services - -.NET Aspire components also support keyed dependency injection. In this scenario, the service name for keyed dependency injection will be the same as the connection name: - -```csharp -builder.AddKeyedNpgsqlDataSource( - "PostgreSqlConnection", - static settings => settings.DisableHealthChecks = true); -``` - -You can then retrieve the registered service using the : - -```csharp -public class ExampleService( - [FromKeyedServices("PostgreSqlConnection")] NpgsqlDataSource npgContext) -{ -} -``` - -For more information, see [Dependency injection in .NET: Keyed services](/dotnet/core/extensions/dependency-injection#keyed-services). - -## Cloud-native features - -Cloud-native applications surface many unique requirements and concerns. The core features of .NET Aspire orchestration and components are designed to handle many cloud-native concerns for you with minimal configurations. Some of the key features include: - -- [Orchestration](app-host-overview.md): A lightweight, extensible, and cross-platform app host for .NET Aspire projects. The app host provides a consistent configuration and dependency injection experience for .NET Aspire components. -- [Service discovery](../service-discovery/overview.md): A technique for locating services within a distributed application. Service discovery is a key component of microservice architectures. -- [Service defaults](service-defaults.md): A set of default configurations intended for sharing amongst resources within .NET Aspire projects. These defaults are designed to work well in most scenarios and can be customized as needed. - -Some .NET Aspire components also include more capabilities for specific services or platforms, which can be found in the component specific reference docs. - -### Observability and telemetry - -.NET Aspire components automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as _the pillars of observability_. - -- **[Logging](/dotnet/core/diagnostics/logging-tracing)**: A technique where code is instrumented to produce logs of interesting events that occurred while the program was running. A baseline set of log events are enabled for .NET Aspire components by default and more extensive logging can be enabled on-demand to diagnose particular problems. - -- **[Tracing](/dotnet/core/diagnostics/distributed-tracing)**: A specialized form of logging that helps you localize failures and performance issues within applications distributed across multiple machines or processes. This technique tracks requests through an application to correlate work done by different application components and separate it from other work the application may be doing for concurrent requests. - -- **[Metrics](/dotnet/core/diagnostics/metrics)**: Numerical measurements recorded over time to monitor application performance and health. Metrics are often used to generate alerts when potential problems are detected. Metrics have low performance overhead and many services configure them as always-on telemetry. - -Together, these types of telemetry allow you to gain insights into your application's behavior and performance using various monitoring and analysis tools. Depending on the backing service, some components may only support some of these features. For example, some components support logging and tracing, but not metrics. Telemetry features can also be disabled. For more information, see [.NET Aspire service defaults](service-defaults.md). - -### Health checks - -.NET Aspire components enable health checks for services by default. Health checks are HTTP endpoints exposed by an app to provide basic availability and state information. These endpoints can be configured to report information used for various scenarios: - -- Influence decisions made by container orchestrators, load balancers, API gateways, and other management services. For instance, if the health check for a containerized app fails, it might be skipped by a load balancer routing traffic. -- Verify that underlying dependencies are available, such as a database or cache, and return an appropriate status message. -- Trigger alerts or notifications when an app isn't responding as expected. - -For example, the .NET Aspire PostgreSQL component automatically adds a health check at the `/health` URL path to verify the following: - -- A database connection could be established -- A database query could be executed successfully - -If either of these operations fail, the health check also fails. For more information, see [Health checks in .NET Aspire](health-checks.md). - -### Resiliency - -.NET Aspire components enable resiliency configurations automatically where appropriate. Resiliency is the ability of your system to react to failure and still remain functional. Resiliency extends beyond preventing failures to include recovering and reconstructing your cloud-native environment back to a healthy state. Examples of resiliency configurations include: - -- **Connection retries**: You can configure some .NET Aspire components to retry requests that initially fail. For example, failed database queries can be retried multiple times if the first request fails. This creates tolerance in environments where service dependencies may be briefly unresponsive or unavailable when the system state changes. - -- **Timeouts**: You can configure how long an .NET Aspire component waits for a request to finish before it times out. Timeout configurations can be useful for handling dependencies with variable response times. - -For more information, see [Build resilient HTTP apps](/dotnet/core/resilience/http-resilience). diff --git a/docs/fundamentals/dashboard/explore.md b/docs/fundamentals/dashboard/explore.md index ac2891628c..eca304c8b0 100644 --- a/docs/fundamentals/dashboard/explore.md +++ b/docs/fundamentals/dashboard/explore.md @@ -152,7 +152,7 @@ Consider the following screenshots showing the structured logs, filtered to disp ### Traces page -Navigate to the **Traces** page to view all of the traces for your app. .NET Aspire automatically configures tracing for the different projects in your app. Distributed tracing is a diagnostic technique that helps engineers localize failures and performance issues within applications, especially those that may be distributed across multiple machines or processes. For more information, see [.NET distributed tracing](/dotnet/core/diagnostics/distributed-tracing). This technique tracks requests through an application and correlates work done by different application components. Traces also help identify how long different stages of the request took to complete. The traces page displays the following information: +Navigate to the **Traces** page to view all of the traces for your app. .NET Aspire automatically configures tracing for the different projects in your app. Distributed tracing is a diagnostic technique that helps engineers localize failures and performance issues within applications, especially those that may be distributed across multiple machines or processes. For more information, see [.NET distributed tracing](/dotnet/core/diagnostics/distributed-tracing). This technique tracks requests through an application and correlates work done by different application integrations. Traces also help identify how long different stages of the request took to complete. The traces page displays the following information: - **Timestamp**: When the trace completed. - **Name**: The name of the trace, prefixed with the project name. diff --git a/docs/fundamentals/dashboard/overview.md b/docs/fundamentals/dashboard/overview.md index 7d80ef2d73..b09dafc27e 100644 --- a/docs/fundamentals/dashboard/overview.md +++ b/docs/fundamentals/dashboard/overview.md @@ -54,7 +54,7 @@ For more information, see [.NET Aspire dashboard configuration](configuration.md ## Architecture -The dashboard user experience is built with a variety of technologies. The frontend is built with [Microsoft's Fluent UI Blazor component library](https://github.com/microsoft/fluentui-blazor). Each app communicates to the dashboard using the [OpenTelemetry Protocol (OTLP)](https://opentelemetry.io/docs/specs/otlp/). A resource server exists within this architecture to provide information about the app's resources, such as a resource listing, console logs, and command execution. The dashboard communicates using gRPC (specifically with the [Grpc.AspNetCore](https://www.nuget.org/packages/Grpc.AspNetCore) NuGet package) to the resource server. Consider the following diagram that illustrates the architecture of the .NET Aspire dashboard: +The dashboard user experience is built with a variety of technologies. The frontend is built with [Microsoft's Fluent UI Blazor integration library](https://github.com/microsoft/fluentui-blazor). Each app communicates to the dashboard using the [OpenTelemetry Protocol (OTLP)](https://opentelemetry.io/docs/specs/otlp/). A resource server exists within this architecture to provide information about the app's resources, such as a resource listing, console logs, and command execution. The dashboard communicates using gRPC (specifically with the [Grpc.AspNetCore](https://www.nuget.org/packages/Grpc.AspNetCore) NuGet package) to the resource server. Consider the following diagram that illustrates the architecture of the .NET Aspire dashboard: :::image type="content" source="media/architecture-diagram.png" lightbox="media/architecture-diagram.png" alt-text="A diagram showing the architecture of the .NET Aspire dashboard."::: diff --git a/docs/fundamentals/dashboard/security-considerations.md b/docs/fundamentals/dashboard/security-considerations.md index 26f4c2efaf..137c6f8d7d 100644 --- a/docs/fundamentals/dashboard/security-considerations.md +++ b/docs/fundamentals/dashboard/security-considerations.md @@ -13,7 +13,7 @@ Data displayed in the dashboard can be sensitive. For example, configuration can ## Scenarios for running the dashboard -The dashboard can be run in different scenarios, such as being automatically starting by .NET Aspire tooling, or as a standalone application that is separate from other .NET Aspire components. Steps to secure the dashboard depend on how it's being run. +The dashboard can be run in different scenarios, such as being automatically starting by .NET Aspire tooling, or as a standalone application that is separate from other .NET Aspire integrations. Steps to secure the dashboard depend on how it's being run. ### .NET Aspire tooling diff --git a/docs/fundamentals/external-parameters.md b/docs/fundamentals/external-parameters.md index fd6b1b8912..2d7aa84e7d 100644 --- a/docs/fundamentals/external-parameters.md +++ b/docs/fundamentals/external-parameters.md @@ -158,4 +158,4 @@ The `Parameters_ApiService` project consumes the `insertionRows` parameter, cons ## See also - [.NET Aspire manifest format for deployment tool builders](../deployment/manifest-format.md) -- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-components.md) +- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-integrations.md) diff --git a/docs/fundamentals/health-checks.md b/docs/fundamentals/health-checks.md index 7e177d78d9..7f974c4a5c 100644 --- a/docs/fundamentals/health-checks.md +++ b/docs/fundamentals/health-checks.md @@ -1,7 +1,7 @@ --- title: .NET Aspire health checks description: Explore .NET Aspire health checks -ms.date: 06/03/2024 +ms.date: 08/12/2024 ms.topic: quickstart --- @@ -78,9 +78,9 @@ app.Run(); For more information, see [Request timeouts middleware in ASP.NET Core](/aspnet/core/performance/timeouts) and [Output caching middleware in ASP.NET Core](/aspnet/core/performance/caching/output). -## Component health checks +## Integration health checks -.NET Aspire components can also register additional health checks for your app. These health checks contribute to the returned status of the `/health` and `/alive` endpoints. For example, the .NET Aspire PostgreSQL component automatically adds a health check to verify the following conditions: +.NET Aspire integrations can also register additional health checks for your app. These health checks contribute to the returned status of the `/health` and `/alive` endpoints. For example, the .NET Aspire PostgreSQL integration automatically adds a health check to verify the following conditions: - A database connection could be established - A database query could be executed successfully @@ -89,7 +89,7 @@ If either of these operations fail, the corresponding health check also fails. ### Configure health checks -You can disable health checks for a given component using one of the available configuration options. .NET Aspire components support [Microsoft.Extensions.Configurations](/dotnet/api/microsoft.extensions.configuration) to apply settings through config files such as _:::no-loc text="appsettings.json":::_: +You can disable health checks for a given integration using one of the available configuration options. .NET Aspire integrations support [Microsoft.Extensions.Configurations](/dotnet/api/microsoft.extensions.configuration) to apply settings through config files such as _:::no-loc text="appsettings.json":::_: ```json { diff --git a/docs/fundamentals/integrations-overview.md b/docs/fundamentals/integrations-overview.md new file mode 100644 index 0000000000..09d3d65e3c --- /dev/null +++ b/docs/fundamentals/integrations-overview.md @@ -0,0 +1,215 @@ +--- +title: .NET Aspire integrations overview +description: Explore the fundamental concepts of .NET Aspire integrations and learn how to integrate them into your apps. +ms.date: 08/12/2024 +ms.topic: conceptual +--- + +# .NET Aspire integrations overview + +.NET Aspire integrations are a curated suite of NuGet packages specifically selected to facilitate the integration of cloud-native applications with prominent services and platforms, including but not limited to Redis and PostgreSQL. Each integration furnishes essential cloud-native functionalities through either automatic provisioning or standardized configuration patterns. .NET Aspire integrations can be used without an app host (orchestrator) project, but they're designed to work best with the [.NET Aspire app host](app-host-overview.md). + +.NET Aspire integrations should not be confused with .NET Aspire hosting packages, as they serve different purposes. Hosting packages are used to model and configure various resources in a .NET Aspire project, while integrations are used to map configuration to various client libraries. + +> [!TIP] +> Always strive to use the latest version of .NET Aspire integrations to take advantage of the latest features, improvements, and security updates. + +## Available integrations + +The following table lists the .NET Aspire integrations currently available for use: + + +| Component | NuGet | Description | +|--|--|--| +| [Apache Kafka](../messaging/kafka-integration.md)
.NET Aspire logo. | [Aspire.Confluent.Kafka](https://www.nuget.org/packages/Aspire.Confluent.Kafka) | A library for producing and consuming messages from an [Apache Kafka](https://kafka.apache.org/) broker. | +| [Azure AI OpenAI](../azureai/azureai-openai-integration.md)
Azire OpenAI logo. | [Aspire.Azure.AI.OpenAI](https://www.nuget.org/packages/Aspire.Azure.AI.OpenAI) | A library for accessing [Azure AI OpenAI](/azure/ai-services/openai/overview) or OpenAI functionality. | +| [Azure Blob Storage](../storage/azure-storage-blobs-integration.md)
Azure Blog Storage logo. | [Aspire.Azure.Storage.Blobs](https://www.nuget.org/packages/Aspire.Azure.Storage.Blobs) | A library for accessing [Azure Blob Storage](/azure/storage/blobs/storage-blobs-introduction). | +| [Azure Cosmos DB Entity Framework Core](../database/azure-cosmos-db-entity-framework-integration.md)
Azure Cosmos DB EF logo. | [Aspire.Microsoft.EntityFrameworkCore.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.EntityFrameworkCore.Cosmos) | A library for accessing Azure Cosmos DB databases with [Entity Framework Core](/ef/core/providers/cosmos/). | +| [Azure Cosmos DB](../database/azure-cosmos-db-integration.md)
Azure Cosmos DB logo. | [Aspire.Microsoft.Azure.Cosmos](https://www.nuget.org/packages/Aspire.Microsoft.Azure.Cosmos) | A library for accessing [Azure Cosmos DB](/azure/cosmos-db/introduction) databases. | +| [Azure Event Hubs](../messaging/azure-event-hubs-integration.md)
Azure Event Hubs logo. | [Aspire.Azure.Messaging.EventHubs](https://www.nuget.org/packages/Aspire.Azure.Messaging.EventHubs) | A library for accessing [Azure Event Hubs](/azure/event-hubs/event-hubs-about). | +| [Azure Key Vault](../security/azure-security-key-vault-integration.md)
Azure Key Vault logo. | [Aspire.Azure.Security.KeyVault](https://www.nuget.org/packages/Aspire.Azure.Security.KeyVault) | A library for accessing [Azure Key Vault](/azure/key-vault/general/overview). | +| [Azure Search Documents](../azureai/azureai-search-document-integration.md)
Azure Search Documents logo. | [Aspire.Azure.Search.Documents](https://www.nuget.org/packages/Aspire.Azure.Search.Documents) | A library for accessing [Azure AI Search](/azure/search/search-what-is-azure-search). | +| [Azure Service Bus](../messaging/azure-service-bus-integration.md)
Azure Service Bus logo. | [Aspire.Azure.Messaging.ServiceBus](https://www.nuget.org/packages/Aspire.Azure.Messaging.ServiceBus) | A library for accessing [Azure Service Bus](/azure/service-bus-messaging/service-bus-messaging-overview). | +| [Azure Storage Queues](../storage/azure-storage-queues-integration.md)
Azure Storage Queues logo. | [Aspire.Azure.Storage.Queues](https://www.nuget.org/packages/Aspire.Azure.Storage.Queues) | A library for accessing [Azure Storage Queues](/azure/storage/queues/storage-queues-introduction). | +| [Azure Table Storage](../storage/azure-storage-tables-integration.md)
Azure Table Storage logo. | [Aspire.Azure.Data.Tables](https://www.nuget.org/packages/Aspire.Azure.Data.Tables) | A library for accessing the [Azure Table](/azure/storage/tables/table-storage-overview) service. | +| [Azure Web PubSub](../messaging/azure-web-pubsub-integration.md)
Azure Web PubSub logo. | [Aspire.Azure.Messaging.WebPubSub](https://www.nuget.org/packages/Aspire.Azure.Messaging.WebPubSub) | A library for accessing the [Azure Web PubSub](/azure/azure-web-pubsub/) service. | +| [Elasticsearch](../search/elasticsearch-integration.md)
Elasticsearch logo. | [Aspire.Elastic.Clients.Elasticsearch](https://www.nuget.org/packages/Aspire.Elastic.Clients.Elasticsearch) | A library for accessing [Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/client/index.html) databases. | +| [Keycloak](../authentication/keycloak-integration.md)
.NET Aspire logo. | [Aspire.Keycloak.Authentication](https://www.nuget.org/packages/Aspire.Keycloak.Authentication) | A library for accessing [Keycloak](https://www.keycloak.org/docs/latest/server_admin/index.html) authentication. | +| [Milvus](../database/milvus-integration.md)
Milvus logo. | [Aspire.Milvus.Client](https://www.nuget.org/packages/Aspire.Milvus.Client) | A library for accessing [Milvus](https://milvus.io/) databases. | +| [MongoDB Driver](../database/mongodb-integration.md)
MongoDB logo. | [Aspire.MongoDB.Driver](https://www.nuget.org/packages/Aspire.MongoDB.Driver) | A library for accessing [MongoDB](https://www.mongodb.com/docs) databases. | +| [MySqlConnector](../database/mysql-integration.md)
MySqlConnector logo. | [Aspire.MySqlConnector](https://www.nuget.org/packages/Aspire.MySqlConnector) | A library for accessing [MySqlConnector](https://mysqlconnector.net/) databases. | +| [NATS](../messaging/nats-integration.md)
NATS logo. | [Aspire.NATS.Net](https://www.nuget.org/packages/Aspire.NATS.Net) | A library for accessing [NATS](https://nats.io/) messaging. | +| [Oracle Entity Framework Core](../database/oracle-entity-framework-integration.md)
.NET Aspire logo. | [Aspire.Oracle.EntityFrameworkCore](https://www.nuget.org/packages/Aspire.Oracle.EntityFrameworkCore) | A library for accessing Oracle databases with [Entity Framework Core](/ef/core). | +| [Pomelo MySQL Entity Framework Core](../database/mysql-entity-framework-integration.md)
.NET Aspire logo. | [Aspire.Pomelo.EntityFrameworkCore.MySql](https://www.nuget.org/packages/Aspire.Pomelo.EntityFrameworkCore.MySql) | A library for accessing MySql databases with [Entity Framework Core](/ef/core). | +| [PostgreSQL Entity Framework Core](../database/postgresql-entity-framework-integration.md)
PostgreSQL logo. | [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL](https://www.nuget.org/packages/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL) | A library for accessing PostgreSQL databases using [Entity Framework Core](https://www.npgsql.org/efcore/index.html). | +| [PostgreSQL](../database/postgresql-integration.md)
PostgreSQL logo. | [Aspire.Npgsql](https://www.nuget.org/packages/Aspire.Npgsql) | A library for accessing [PostgreSQL](https://www.npgsql.org/doc/index.html) databases. | +| [Qdrant](../database/qdrant-integration.md)
Qdrant logo. | [Aspire.Qdrant.Client](https://www.nuget.org/packages/Aspire.Qdrant.Client) | A library for accessing [Qdrant](https://qdrant.tech/) databases. | +| [RabbitMQ](../messaging/rabbitmq-client-integration.md)
.NET Aspire logo. | [Aspire.RabbitMQ.Client](https://www.nuget.org/packages/Aspire.RabbitMQ.Client) | A library for accessing [RabbitMQ](https://www.rabbitmq.com/dotnet.html). | +| [Redis Distributed Caching](../caching/stackexchange-redis-distributed-caching-integration.md)
Redis logo. | [Aspire.StackExchange.Redis.DistributedCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.DistributedCaching) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches for [distributed caching](/aspnet/core/performance/caching/distributed). | +| [Redis Output Caching](../caching/stackexchange-redis-output-caching-integration.md)
Redis logo. | [Aspire.StackExchange.Redis.OutputCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.OutputCaching) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches for [output caching](/aspnet/core/performance/caching/output). | +| [Redis](../caching/stackexchange-redis-integration.md)
Redis logo. | [Aspire.StackExchange.Redis](https://www.nuget.org/packages/Aspire.StackExchange.Redis) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches. | +| [Seq](../logging/seq-integration.md)
Seq logo. | [Aspire.Seq](https://www.nuget.org/packages/Aspire.Seq) | A library for logging to [Seq](https://datalust.co/seq). | +| [SQL Server Entity Framework Core](../database/sql-server-entity-framework-integration.md)
SQL logo. | [Aspire.Microsoft.EntityFrameworkCore.SqlServer](https://www.nuget.org/packages/Aspire.Microsoft.EntityFrameworkCore.SqlServer) | A library for accessing [SQL Server databases using Entity Framework Core](/ef/core/providers/sql-server/). | +| [SQL Server](../database/sql-server-integration.md)
SQL logo. | [Aspire.Microsoft.Data.SqlClient](https://www.nuget.org/packages/Aspire.Microsoft.Data.SqlClient) | A library for accessing [SQL Server](/sql/sql-server/) databases. | + + +For more information on working with .NET Aspire integrations in Visual Studio, see [Visual Studio tooling](setup-tooling.md#visual-studio-tooling). + +## Explore a sample integration workflow + +.NET Aspire integrations streamline the process of consuming popular services and platforms. For example, consider the **.NET Aspire project** template. With this template, you get the [AppHost](app-host-overview.md) and [ServiceDefaults](service-defaults.md) projects. Imagine that you have a need for a worker service to perform some database processing. You could use the [.NET Aspire PostgreSQL integration](../database/postgresql-integration.md) to connect to and utilize a PostgreSQL database. The database could be hosted on-prem or in a cloud service such as Azure, AWS, or GCP. The following steps demonstrate how to integrate this integration into your app: + +1. In the integration consuming (worker service) project, install the [Aspire.Npgsql](https://www.nuget.org/packages/Aspire.Npgsql) NuGet package. + + # [.NET CLI](#tab/dotnet-cli) + + ```dotnetcli + dotnet add package Aspire.Npgsql + ``` + + # [PackageReference](#tab/package-reference) + + ```xml + + ``` + + --- + + For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies). + +1. In the _:::no-loc text="Program.cs":::_ file of your worker service project, call the extension method to register `NpgsqlDataSource` as a service. + + :::code source="snippets/integrations/AspireApp/WorkerService/Program.cs" highlight="5"::: + + The preceding code adds the `NpgsqlDataSource` to the dependency injection container with the connection name of `"customers"`. The connection name is later used by the orchestrator project, when expressing resource dependencies. + + > [!TIP] + > Components that are designed to connect to Azure services also support passwordless authentication and authorization using [Azure RBAC](/azure/role-based-access-control/overview), which is the recommended approach for production apps. + +1. In your app host project (the project with the _*.AppHost_ suffix), add a reference to the worker service project. If you're using Visual Studio, you can use the [**Add .NET Aspire Orchestrator Support**](setup-tooling.md#add-orchestration-projects) project context menu item to add the reference automatically. The following code snippet shows the project reference of the _AspireApp.AppHost.csproj_: + + :::code language="xml" source="snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj" highlight="17"::: + + After the worker service is referenced by the orchestrator project, the worker service project has its _:::no-loc text="Program.cs":::_ file updated to call the `AddServiceDefaults` method. For more information on service defaults, see [Service defaults](service-defaults.md). + +1. In the orchestrator project, update the _:::no-loc text="Program.cs":::_ file with the following code: + + :::code source="snippets/integrations/AspireApp/AspireApp.AppHost/Program.cs" highlight="3-4,6-8"::: + + The preceding code: + + - Calls and chains a call to , adding a PostgreSQL database container to the app model with a database named `"customers"`. + - Chains calls on the result of the from the worker service project: + - Calls to add a reference to the `database`. + - Calls to set the number of replicas to `3`. + +1. Inject the `NpgsqlDataSource` object into the `Worker` to run commands against the database: + + :::code source="snippets/integrations/AspireApp/WorkerService/Worker.cs" highlight="7,13"::: + +You now have a fully configured PostgreSQL database integration and corresponding container with connection integrated into your app! This integration also configured health checks, logging, metrics, retries, and other useful capabilities for you behind the scenes. .NET Aspire integrations provide various options to configure each of these features. + +## Configure .NET Aspire integrations + +.NET Aspire integrations implement a consistent configuration experience via and . Configuration is schematized and part of a integration's contract, ensuring backward compatibility across versions of the integration. You can set up every .NET Aspire integration through either JSON configuration files or directly through code using delegates. JSON files must follow a standardized naming convention based on the Component name. + +For example, add the following code to the _:::no-loc text="appsettings.json":::_ file to configure the PostgreSQL integration: + +```json +{ + "Aspire": { + "Npgsql": { + "DisableHealthChecks": true, + "DisableTracing": true + } + } +} +``` + +Alternatively, you can configure the integration directly in your code using a delegate: + +```csharp +builder.AddNpgsqlDataSource( + "PostgreSqlConnection", + static settings => settings.DisableHealthChecks = true); +``` + +## Dependency injection + +.NET Aspire integrations automatically register essential services with the .NET dependency container using the proper scope. This allows key integration classes and services to be injected throughout your code. For example, the .NET Aspire PostgreSQL integration makes available the `NpgsqlDataSource` to inject into your application layers and run commands against a database: + +```csharp +public class ExampleService(NpgsqlDataSource dataSource) +{ +} +``` + +For more information, see [.NET dependency injection](/dotnet/core/extensions/dependency-injection). + +### Keyed services + +.NET Aspire integrations also support keyed dependency injection. In this scenario, the service name for keyed dependency injection will be the same as the connection name: + +```csharp +builder.AddKeyedNpgsqlDataSource( + "PostgreSqlConnection", + static settings => settings.DisableHealthChecks = true); +``` + +You can then retrieve the registered service using the : + +```csharp +public class ExampleService( + [FromKeyedServices("PostgreSqlConnection")] NpgsqlDataSource npgContext) +{ +} +``` + +For more information, see [Dependency injection in .NET: Keyed services](/dotnet/core/extensions/dependency-injection#keyed-services). + +## Cloud-native features + +Cloud-native applications surface many unique requirements and concerns. The core features of .NET Aspire orchestration and integrations are designed to handle many cloud-native concerns for you with minimal configurations. Some of the key features include: + +- [Orchestration](app-host-overview.md): A lightweight, extensible, and cross-platform app host for .NET Aspire projects. The app host provides a consistent configuration and dependency injection experience for .NET Aspire integrations. +- [Service discovery](../service-discovery/overview.md): A technique for locating services within a distributed application. Service discovery is a key integration of microservice architectures. +- [Service defaults](service-defaults.md): A set of default configurations intended for sharing amongst resources within .NET Aspire projects. These defaults are designed to work well in most scenarios and can be customized as needed. + +Some .NET Aspire integrations also include more capabilities for specific services or platforms, which can be found in the integration specific reference docs. + +### Observability and telemetry + +.NET Aspire integrations automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as _the pillars of observability_. + +- **[Logging](/dotnet/core/diagnostics/logging-tracing)**: A technique where code is instrumented to produce logs of interesting events that occurred while the program was running. A baseline set of log events are enabled for .NET Aspire integrations by default and more extensive logging can be enabled on-demand to diagnose particular problems. + +- **[Tracing](/dotnet/core/diagnostics/distributed-tracing)**: A specialized form of logging that helps you localize failures and performance issues within applications distributed across multiple machines or processes. This technique tracks requests through an application to correlate work done by different application integrations and separate it from other work the application may be doing for concurrent requests. + +- **[Metrics](/dotnet/core/diagnostics/metrics)**: Numerical measurements recorded over time to monitor application performance and health. Metrics are often used to generate alerts when potential problems are detected. Metrics have low performance overhead and many services configure them as always-on telemetry. + +Together, these types of telemetry allow you to gain insights into your application's behavior and performance using various monitoring and analysis tools. Depending on the backing service, some integrations may only support some of these features. For example, some integrations support logging and tracing, but not metrics. Telemetry features can also be disabled. For more information, see [.NET Aspire service defaults](service-defaults.md). + +### Health checks + +.NET Aspire integrations enable health checks for services by default. Health checks are HTTP endpoints exposed by an app to provide basic availability and state information. These endpoints can be configured to report information used for various scenarios: + +- Influence decisions made by container orchestrators, load balancers, API gateways, and other management services. For instance, if the health check for a containerized app fails, it might be skipped by a load balancer routing traffic. +- Verify that underlying dependencies are available, such as a database or cache, and return an appropriate status message. +- Trigger alerts or notifications when an app isn't responding as expected. + +For example, the .NET Aspire PostgreSQL integration automatically adds a health check at the `/health` URL path to verify the following: + +- A database connection could be established +- A database query could be executed successfully + +If either of these operations fail, the health check also fails. For more information, see [Health checks in .NET Aspire](health-checks.md). + +### Resiliency + +.NET Aspire integrations enable resiliency configurations automatically where appropriate. Resiliency is the ability of your system to react to failure and still remain functional. Resiliency extends beyond preventing failures to include recovering and reconstructing your cloud-native environment back to a healthy state. Examples of resiliency configurations include: + +- **Connection retries**: You can configure some .NET Aspire integrations to retry requests that initially fail. For example, failed database queries can be retried multiple times if the first request fails. This creates tolerance in environments where service dependencies may be briefly unresponsive or unavailable when the system state changes. + +- **Timeouts**: You can configure how long an .NET Aspire integration waits for a request to finish before it times out. Timeout configurations can be useful for handling dependencies with variable response times. + +For more information, see [Build resilient HTTP apps](/dotnet/core/resilience/http-resilience). diff --git a/docs/fundamentals/networking-overview.md b/docs/fundamentals/networking-overview.md index 7f3c9ba41c..15a458eee5 100644 --- a/docs/fundamentals/networking-overview.md +++ b/docs/fundamentals/networking-overview.md @@ -20,7 +20,7 @@ The inner loop is the process of developing and testing your app locally before ## How service bindings work -A service binding in .NET Aspire involves two components: a **service** representing an external resource your app requires (for example, a database, message queue, or API), and a **binding** that establishes a connection between your app and the service and provides necessary information. +A service binding in .NET Aspire involves two integrations: a **service** representing an external resource your app requires (for example, a database, message queue, or API), and a **binding** that establishes a connection between your app and the service and provides necessary information. .NET Aspire supports two service binding types: **implicit**, automatically created based on specified launch profiles defining app behavior in different environments, and **explicit**, manually created using . diff --git a/docs/fundamentals/persist-data-volumes.md b/docs/fundamentals/persist-data-volumes.md index 0d8efed0be..b8b56a51e9 100644 --- a/docs/fundamentals/persist-data-volumes.md +++ b/docs/fundamentals/persist-data-volumes.md @@ -96,6 +96,6 @@ The preceding code snippet demonstrates how to create a persistent password for You can apply the volume concepts in the preceding code to a variety of services, including seeding a database with data that will persist across app launches. Try combining these techniques with the resource implementations demonstrated in the following tutorials: -- [Tutorial: Connect an ASP.NET Core app to .NET Aspire storage components](../storage/azure-storage-components.md) -- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-components.md) +- [Tutorial: Connect an ASP.NET Core app to .NET Aspire storage integrations](../storage/azure-storage-integrations.md) +- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-integrations.md) - [.NET Aspire orchestration overview](../fundamentals/app-host-overview.md) diff --git a/docs/fundamentals/setup-tooling.md b/docs/fundamentals/setup-tooling.md index c53e00f445..63f07a7ef1 100644 --- a/docs/fundamentals/setup-tooling.md +++ b/docs/fundamentals/setup-tooling.md @@ -13,7 +13,7 @@ zone_pivot_groups: dev-environment > > - Install .NET Aspire and its dependencies > - Create starter project templates using Visual Studio, Visual Studio Code, or the .NET CLI -> - Install .NET Aspire components +> - Install .NET Aspire integrations > - Work with the .NET Aspire dashboard ## Install .NET Aspire @@ -47,7 +47,7 @@ To install the .NET Aspire workload in Visual Studio 2022, use the Visual Studio 1. Select **Modify** next to Visual Studio 2022. 1. Select the **ASP.NET and web development** workload. 1. On the **Installation details** panel, select **.NET Aspire SDK (Preview)**. -1. Select **Modify** to install the .NET Aspire component. +1. Select **Modify** to install the .NET Aspire integration. :::image type="content" loc-scope="visual-studio" source="../media/install-aspire-workload-visual-studio.png" lightbox="../media/install-aspire-workload-visual-studio.png" alt-text="A screenshot showing how to install the .NET Aspire workload with the Visual Studio installer."::: @@ -217,25 +217,25 @@ The left navigation provides links to the different parts of the dashboard, each ## Visual Studio tooling -Visual Studio provides additional features for working with .NET Aspire components and the App Host orchestrator project. Not all of these features are currently available in Visual Studio Code or through the CLI. +Visual Studio provides additional features for working with .NET Aspire integrations and the App Host orchestrator project. Not all of these features are currently available in Visual Studio Code or through the CLI. -### Add a component package +### Add a integration package -You add .NET Aspire components to your app like any other NuGet package using Visual Studio. However, Visual Studio also provides UI options to add .NET Aspire components directly. +You add .NET Aspire integrations to your app like any other NuGet package using Visual Studio. However, Visual Studio also provides UI options to add .NET Aspire integrations directly. -1. In Visual Studio, right click on the project you want to add an .NET Aspire component to and select **Add** > **.NET Aspire package...**. +1. In Visual Studio, right click on the project you want to add an .NET Aspire integration to and select **Add** > **.NET Aspire package...**. - :::image type="content" loc-scope="visual-studio" source="../media/visual-studio-add-aspire-component.png" lightbox="../media/visual-studio-add-aspire-component.png" alt-text="The Visual Studio context menu displaying the Add .NET Aspire Component option."::: + :::image type="content" loc-scope="visual-studio" source="../media/visual-studio-add-aspire-package.png" lightbox="../media/visual-studio-add-aspire-package.png" alt-text="The Visual Studio context menu displaying the Add .NET Aspire Component option."::: -1. The package manager will open with search results pre-configured (populating filter criteria) for .NET Aspire components, allowing you to easily browse and select the desired component. +1. The package manager will open with search results pre-configured (populating filter criteria) for .NET Aspire integrations, allowing you to easily browse and select the desired integration. - :::image type="content" loc-scope="visual-studio" source="../media/visual-studio-add-aspire-comp-nuget.png" lightbox="../media/visual-studio-add-aspire-comp-nuget.png" alt-text="The Visual Studio context menu displaying the Add .NET Aspire component options."::: + :::image type="content" loc-scope="visual-studio" source="../media/visual-studio-add-aspire-comp-nuget.png" lightbox="../media/visual-studio-add-aspire-comp-nuget.png" alt-text="The Visual Studio context menu displaying the Add .NET Aspire integration options."::: -For more information on .NET Aspire components, see [.NET Aspire components overview](components-overview.md). +For more information on .NET Aspire integrations, see [.NET Aspire integrations overview](integrations-overview.md). ### Add hosting packages -.NET Aspire hosting packages are used to configure various resources and dependencies an app may depend on or consume. Hosting packages are differentiated from other component packages in that they are added to the **.AppHost** project. To add a hosting package to your app, follow these steps: +.NET Aspire hosting packages are used to configure various resources and dependencies an app may depend on or consume. Hosting packages are differentiated from other integration packages in that they are added to the **.AppHost** project. To add a hosting package to your app, follow these steps: 1. In Visual Studio, right click on the **.AppHost** project and select **Add** > **.NET Aspire package...**. diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/Program.cs b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/Program.cs similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/Program.cs rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/Program.cs diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/Properties/launchSettings.json b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/Properties/launchSettings.json similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/Properties/launchSettings.json rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/Properties/launchSettings.json diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/appsettings.Development.json b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/appsettings.Development.json similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/appsettings.Development.json rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/appsettings.Development.json diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/appsettings.json b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/appsettings.json similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.AppHost/appsettings.json rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/appsettings.json diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.ServiceDefaults/Extensions.cs b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/Extensions.cs similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.ServiceDefaults/Extensions.cs rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/Extensions.cs diff --git a/docs/fundamentals/snippets/components/AspireApp/AspireApp.sln b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.sln similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/AspireApp.sln rename to docs/fundamentals/snippets/integrations/AspireApp/AspireApp.sln diff --git a/docs/fundamentals/snippets/components/AspireApp/WorkerService/Program.cs b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/Program.cs similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/WorkerService/Program.cs rename to docs/fundamentals/snippets/integrations/AspireApp/WorkerService/Program.cs diff --git a/docs/fundamentals/snippets/components/AspireApp/WorkerService/Properties/launchSettings.json b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/Properties/launchSettings.json similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/WorkerService/Properties/launchSettings.json rename to docs/fundamentals/snippets/integrations/AspireApp/WorkerService/Properties/launchSettings.json diff --git a/docs/fundamentals/snippets/components/AspireApp/WorkerService/Worker.cs b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/Worker.cs similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/WorkerService/Worker.cs rename to docs/fundamentals/snippets/integrations/AspireApp/WorkerService/Worker.cs diff --git a/docs/fundamentals/snippets/components/AspireApp/WorkerService/WorkerService.csproj b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/WorkerService/WorkerService.csproj rename to docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj diff --git a/docs/fundamentals/snippets/components/AspireApp/WorkerService/appsettings.Development.json b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/appsettings.Development.json similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/WorkerService/appsettings.Development.json rename to docs/fundamentals/snippets/integrations/AspireApp/WorkerService/appsettings.Development.json diff --git a/docs/fundamentals/snippets/components/AspireApp/WorkerService/appsettings.json b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/appsettings.json similarity index 100% rename from docs/fundamentals/snippets/components/AspireApp/WorkerService/appsettings.json rename to docs/fundamentals/snippets/integrations/AspireApp/WorkerService/appsettings.json diff --git a/docs/fundamentals/telemetry.md b/docs/fundamentals/telemetry.md index 5fc7a6a4d6..07ad7b7c44 100644 --- a/docs/fundamentals/telemetry.md +++ b/docs/fundamentals/telemetry.md @@ -6,15 +6,15 @@ ms.date: 12/08/2023 # .NET Aspire telemetry -One of the primary objectives of .NET Aspire is to ensure that apps are straightforward to debug and diagnose. .NET Aspire components automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as the pillars of observability, using the [.NET OpenTelemetry SDK](https://github.com/open-telemetry/opentelemetry-dotnet). +One of the primary objectives of .NET Aspire is to ensure that apps are straightforward to debug and diagnose. .NET Aspire integrations automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as the pillars of observability, using the [.NET OpenTelemetry SDK](https://github.com/open-telemetry/opentelemetry-dotnet). -- **[Logging](/dotnet/core/diagnostics/logging-tracing)**: Log events describe what's happening as an app runs. A baseline set is enabled for .NET Aspire components by default and more extensive logging can be enabled on-demand to diagnose particular problems. +- **[Logging](/dotnet/core/diagnostics/logging-tracing)**: Log events describe what's happening as an app runs. A baseline set is enabled for .NET Aspire integrations by default and more extensive logging can be enabled on-demand to diagnose particular problems. - **[Tracing](/dotnet/core/diagnostics/distributed-tracing)**: Traces correlate log events that are part of the same logical activity (e.g. the handling of a single request), even if they're spread across multiple machines or processes. - **[Metrics](/dotnet/core/diagnostics/metrics)**: Metrics expose the performance and health characteristics of an app as simple numerical values. As a result, they have low performance overhead and many services configure them as always-on telemetry. This also makes them suitable for triggering alerts when potential problems are detected. -Together, these types of telemetry allow you to gain insights into your application's behavior and performance using various monitoring and analysis tools. Depending on the backing service, some components may only support some of these features. +Together, these types of telemetry allow you to gain insights into your application's behavior and performance using various monitoring and analysis tools. Depending on the backing service, some integrations may only support some of these features. ## .NET Aspire OpenTelemetry integration diff --git a/docs/get-started/add-aspire-existing-app.md b/docs/get-started/add-aspire-existing-app.md index b169eeac0b..1f258894a8 100644 --- a/docs/get-started/add-aspire-existing-app.md +++ b/docs/get-started/add-aspire-existing-app.md @@ -1,6 +1,6 @@ --- title: Add .NET Aspire to an existing .NET app -description: Learn how to add .NET Aspire components, orchestration, and tooling to a microservices app that already exists. +description: Learn how to add .NET Aspire integrations, orchestration, and tooling to a microservices app that already exists. ms.date: 06/03/2024 ms.topic: how-to zone_pivot_groups: dev-environment @@ -438,4 +438,4 @@ You can delete the _launch.json_ file that you created earlier, as it's not need :::zone-end -Congratulations! You have added .NET Aspire orchestration to your pre-existing web app. You can now add .NET Aspire components and use the .NET Aspire tooling to streamline your cloud-native web app development. +Congratulations! You have added .NET Aspire orchestration to your pre-existing web app. You can now add .NET Aspire integrations and use the .NET Aspire tooling to streamline your cloud-native web app development. diff --git a/docs/get-started/aspire-overview.md b/docs/get-started/aspire-overview.md index c58658532f..4929bc53ab 100644 --- a/docs/get-started/aspire-overview.md +++ b/docs/get-started/aspire-overview.md @@ -1,7 +1,7 @@ --- title: .NET Aspire overview description: Learn about .NET Aspire, an application stack designed to improve the experience of building cloud-native applications. -ms.date: 05/23/2024 +ms.date: 08/12/2024 --- # .NET Aspire overview @@ -26,12 +26,12 @@ A _distributed application_ is one that uses computational _resources_ across mu .NET Aspire is designed to improve the experience of building .NET cloud-native apps. It provides a consistent, opinionated set of tools and patterns that help you build and run distributed apps. .NET Aspire is designed to help you with: - [**Orchestration**](#orchestration): .NET Aspire provides features for running and connecting multi-project applications and their dependencies for [local development environments](../fundamentals/networking-overview.md). -- [**Components**](#net-aspire-components): .NET Aspire components are NuGet packages for commonly used services, such as Redis or Postgres, with standardized interfaces ensuring they connect consistently and seamlessly with your app. +- [**Integrations**](#net-aspire-integrations): .NET Aspire integrations are NuGet packages for commonly used services, such as Redis or Postgres, with standardized interfaces ensuring they connect consistently and seamlessly with your app. - [**Tooling**](#project-templates-and-tooling): .NET Aspire comes with project templates and tooling experiences for Visual Studio, Visual Studio Code, and the [dotnet CLI](/dotnet/core/tools/) to help you create and interact with .NET Aspire projects. ## Orchestration -In .NET Aspire, orchestration primarily focuses on enhancing the _local development_ experience by simplifying the management of your cloud-native app's configuration and interconnections. It's important to note that .NET Aspire's orchestration isn't intended to replace the robust systems used in production environments, such as [Kubernetes](../deployment/overview.md#deploy-to-kubernetes). Instead, it provides a set of abstractions that streamline the setup of service discovery, environment variables, and container configurations, eliminating the need to deal with low-level implementation details. These abstractions ensure a consistent setup pattern across apps with numerous components and services, making it easier to manage complex applications during the development phase. +In .NET Aspire, orchestration primarily focuses on enhancing the _local development_ experience by simplifying the management of your cloud-native app's configuration and interconnections. It's important to note that .NET Aspire's orchestration isn't intended to replace the robust systems used in production environments, such as [Kubernetes](../deployment/overview.md#deploy-to-kubernetes). Instead, it provides a set of abstractions that streamline the setup of service discovery, environment variables, and container configurations, eliminating the need to deal with low-level implementation details. These abstractions ensure a consistent setup pattern across apps with numerous integrations and services, making it easier to manage complex applications during the development phase. .NET Aspire orchestration assists with the following concerns: @@ -55,13 +55,13 @@ builder.AddProject("frontend") For more information, see [.NET Aspire orchestration overview](../fundamentals/app-host-overview.md). -## .NET Aspire components +## .NET Aspire integrations -[.NET Aspire components](../fundamentals/components-overview.md) are NuGet packages designed to simplify connections to popular services and platforms, such as Redis or PostgreSQL. .NET Aspire components handle many cloud-native concerns for you through standardized configuration patterns, such as adding health checks and telemetry. +[.NET Aspire integrations](../fundamentals/integrations-overview.md) are NuGet packages designed to simplify connections to popular services and platforms, such as Redis or PostgreSQL. .NET Aspire integrations handle many cloud-native concerns for you through standardized configuration patterns, such as adding health checks and telemetry. Integrations are two-fold, in that one side represents the service you're connecting to, and the other side represents the client or consumer of that service. In other words, for each hosting package there's a corresponding client package that handles the service connection. -Each component is designed to work with .NET Aspire orchestration, and their configurations are injected automatically by simply referencing named resources. In other words, if _Example.ServiceFoo_ references _Example.ServiceBar_, _Example.ServiceFoo_ inherits the component's required configurations to allow them to communicate with each other automatically. +Each integration is designed to work with .NET Aspire orchestration, and their configurations are injected automatically by simply referencing named resources. In other words, if _Example.ServiceFoo_ references _Example.ServiceBar_, _Example.ServiceFoo_ inherits the integration's required configurations to allow them to communicate with each other automatically. -For example, consider the following code using the .NET Aspire Service Bus component: +For example, consider the following code using the .NET Aspire Service Bus integration: ```csharp builder.AddAzureServiceBusClient("servicebus"); @@ -73,7 +73,7 @@ The [!div class="checklist"] > > - Create a basic .NET app that is set up to use .NET Aspire. -> - Add and configure a .NET Aspire component to implement caching at project creation time. +> - Add and configure a .NET Aspire integration to implement caching at project creation time. > - Create an API and use service discovery to connect to it. > - Orchestrate communication between a front end UI, a back end API, and a local Redis cache. @@ -46,7 +46,7 @@ To create a new .NET Aspire Starter Application, you can use either Visual Studi The sample app is now ready for testing. You want to verify the following: - Weather data is retrieved from the API project using service discovery and displayed on the weather page. -- Subsequent requests are handled via the output caching configured by the .NET Aspire Redis component. +- Subsequent requests are handled via the output caching configured by the .NET Aspire Redis integration. :::zone pivot="visual-studio" @@ -203,7 +203,7 @@ For more information, see [Make HTTP requests with the `HttpClient`](/dotnet/fun ## See also -- [.NET Aspire components overview](../fundamentals/components-overview.md) +- [.NET Aspire integrations overview](../fundamentals/integrations-overview.md) - [Service discovery in .NET Aspire](../service-discovery/overview.md) - [.NET Aspire service defaults](../fundamentals/service-defaults.md) - [Health checks in .NET Aspire](../fundamentals/health-checks.md) diff --git a/docs/includes/component-health-checks.md b/docs/includes/component-health-checks.md deleted file mode 100644 index 15968218f6..0000000000 --- a/docs/includes/component-health-checks.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: .NET Aspire components health checks -description: Learn how to use health checks with .NET Aspire components. -ms.topic: include -ms.date: 12/08/2023 ---- - -## Health checks - -By default, .NET Aspire components enable [health checks](../fundamentals/health-checks.md) for all services. For more information, see [.NET Aspire components overview](../fundamentals/components-overview.md). diff --git a/docs/includes/component-observability-and-telemetry.md b/docs/includes/component-observability-and-telemetry.md deleted file mode 100644 index f1cb9cc6ed..0000000000 --- a/docs/includes/component-observability-and-telemetry.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: .NET Aspire components observability and telemetry -description: Learn how to use the observability and telemetry features of .NET Aspire components. -ms.topic: include -ms.date: 11/11/2023 ---- - -## Observability and telemetry - -.NET Aspire components automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as *the pillars of observability*. For more information about component observability and telemetry, see [.NET Aspire components overview](../fundamentals/components-overview.md). Depending on the backing service, some components may only support some of these features. For example, some components support logging and tracing, but not metrics. Telemetry features can also be disabled using the techniques presented in the [Configuration](#configuration) section. diff --git a/docs/includes/integration-health-checks.md b/docs/includes/integration-health-checks.md new file mode 100644 index 0000000000..ad038d7e31 --- /dev/null +++ b/docs/includes/integration-health-checks.md @@ -0,0 +1,10 @@ +--- +title: .NET Aspire integrations health checks +description: Learn how to use health checks with .NET Aspire integrations. +ms.topic: include +ms.date: 08/12/2024 +--- + +## Health checks + +By default, .NET Aspire integrations enable [health checks](../fundamentals/health-checks.md) for all services. For more information, see [.NET Aspire integrations overview](../fundamentals/integrations-overview.md). diff --git a/docs/includes/integration-observability-and-telemetry.md b/docs/includes/integration-observability-and-telemetry.md new file mode 100644 index 0000000000..656fd45558 --- /dev/null +++ b/docs/includes/integration-observability-and-telemetry.md @@ -0,0 +1,10 @@ +--- +title: .NET Aspire integrations observability and telemetry +description: Learn how to use the observability and telemetry features of .NET Aspire integrations. +ms.topic: include +ms.date: 08/12/2024 +--- + +## Observability and telemetry + +.NET Aspire integrations automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as *the pillars of observability*. For more information about integration observability and telemetry, see [.NET Aspire integrations overview](../fundamentals/integrations-overview.md). Depending on the backing service, some integrations may only support some of these features. For example, some integrations support logging and tracing, but not metrics. Telemetry features can also be disabled using the techniques presented in the [Configuration](#configuration) section. diff --git a/docs/index.yml b/docs/index.yml index bdf17a369c..a2c18ca98e 100644 --- a/docs/index.yml +++ b/docs/index.yml @@ -25,8 +25,8 @@ highlightedContent: title: Distributed app host url: fundamentals/app-host-overview.md - itemType: concept - title: .NET Aspire components - url: fundamentals/components-overview.md + title: .NET Aspire integrations + url: fundamentals/integrations-overview.md - itemType: concept title: Service discovery url: service-discovery/overview.md @@ -78,16 +78,16 @@ conceptualContent: links: - itemType: tutorial text: Connect to storage with .NET Aspire - url: storage/azure-storage-components.md + url: storage/azure-storage-integrations.md - itemType: how-to-guide text: Azure Blob Storage - url: storage/azure-storage-blobs-component.md + url: storage/azure-storage-blobs-integration.md - itemType: how-to-guide text: Azure Storage Queues - url: storage/azure-storage-queues-component.md + url: storage/azure-storage-queues-integration.md - itemType: how-to-guide text: Azure Table Storage - url: storage/azure-storage-tables-component.md + url: storage/azure-storage-tables-integration.md - itemType: sample text: Persist volume mount sample url: /samples/dotnet/aspire-samples/aspire-volume-mount/ @@ -96,76 +96,76 @@ conceptualContent: links: - itemType: tutorial text: Connect to SQL Server with EF Core - url: database/sql-server-components.md + url: database/sql-server-integrations.md - itemType: how-to-guide text: PostgreSQL database - url: database/postgresql-component.md + url: database/postgresql-integration.md - itemType: how-to-guide text: PostgreSQL with EF Core - url: database/postgresql-entity-framework-component.md + url: database/postgresql-entity-framework-integration.md - itemType: how-to-guide text: Azure Cosmos DB - url: database/azure-cosmos-db-component.md + url: database/azure-cosmos-db-integration.md - itemType: how-to-guide text: Azure Cosmos DB with EF Core - url: database/azure-cosmos-db-entity-framework-component.md + url: database/azure-cosmos-db-entity-framework-integration.md - itemType: how-to-guide text: SQL Database - url: database/sql-server-component.md + url: database/sql-server-integration.md - itemType: how-to-guide text: SQL Database with EF Core - url: database/sql-server-entity-framework-component.md + url: database/sql-server-entity-framework-integration.md - itemType: how-to-guide text: Entity Framework Core migrations url: database/ef-core-migrations.md - itemType: how-to-guide text: MySqlConnector Database - url: database/mysql-component.md + url: database/mysql-integration.md - itemType: how-to-guide text: MongoDB Database - url: database/mongodb-component.md + url: database/mongodb-integration.md - title: Messaging links: - itemType: tutorial text: Implement Messaging with .NET Aspire - url: messaging/messaging-components.md + url: messaging/messaging-integrations.md - itemType: overview text: Azure Event Hubs - url: messaging/azure-event-hubs-component.md + url: messaging/azure-event-hubs-integration.md - itemType: overview text: Azure Service Bus - url: messaging/azure-service-bus-component.md + url: messaging/azure-service-bus-integration.md - itemType: overview text: Azure Web PubSub - url: messaging/azure-web-pubsub-component.md + url: messaging/azure-web-pubsub-integration.md - itemType: how-to-guide - text: RabbitMQ client .NET Aspire component - url: messaging/rabbitmq-client-component.md + text: RabbitMQ client + url: messaging/rabbitmq-client-integration.md - itemType: how-to-guide text: Apache Kafka - url: messaging/kafka-component.md + url: messaging/kafka-integration.md - itemType: how-to-guide text: NATs - url: messaging/nats-component.md + url: messaging/nats-integration.md - title: Caching links: - itemType: tutorial text: Improve app caching with .NET Aspire - url: caching/caching-components.md + url: caching/caching-integrations.md - itemType: overview text: Stack Exchange Redis caching overview url: caching/stackexchange-redis-caching-overview.md - itemType: how-to-guide text: Redis caching - url: caching/stackexchange-redis-component.md + url: caching/stackexchange-redis-integration.md - itemType: how-to-guide text: Redis output caching - url: caching/stackexchange-redis-output-caching-component.md + url: caching/stackexchange-redis-output-caching-integration.md - itemType: how-to-guide text: Redis distributed caching - url: caching/stackexchange-redis-distributed-caching-component.md + url: caching/stackexchange-redis-distributed-caching-integration.md - title: Frameworks links: diff --git a/docs/logging/seq-component.md b/docs/logging/seq-integration.md similarity index 69% rename from docs/logging/seq-component.md rename to docs/logging/seq-integration.md index cdf4574dc1..f18e20a7d5 100644 --- a/docs/logging/seq-component.md +++ b/docs/logging/seq-integration.md @@ -1,17 +1,17 @@ --- -title: .NET Aspire Seq component -description: Learn how to use the .NET Aspire Seq component to add OpenTelemetry Protocol (OTLP) exporters that send logs and traces to a Seq Server. +title: .NET Aspire Seq integration +description: Learn how to use the .NET Aspire Seq integration to add OpenTelemetry Protocol (OTLP) exporters that send logs and traces to a Seq Server. ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Seq component +# .NET Aspire Seq integration -In this article, you learn how to use the .NET Aspire Seq component to add OpenTelemetry Protocol (OTLP) exporters that send logs and traces to a Seq Server. The component supports persistent logs and traces across application restarts via configuration. +In this article, you learn how to use the .NET Aspire Seq integration to add OpenTelemetry Protocol (OTLP) exporters that send logs and traces to a Seq Server. The integration supports persistent logs and traces across application restarts via configuration. ## Get started -To get started with the .NET Aspire Seq component, install the [Aspire.Seq](https://www.nuget.org/packages/Aspire.Seq) NuGet package in the consuming client project. +To get started with the .NET Aspire Seq integration, install the [Aspire.Seq](https://www.nuget.org/packages/Aspire.Seq) NuGet package in the client-consuming project, i.e., the project for the application that uses the Seq client. ### [.NET CLI](#tab/dotnet-cli) @@ -99,11 +99,11 @@ The directory specified must already exist. ## Configuration -The .NET Aspire Seq component provides options to configure the connection to Seq. +The .NET Aspire Seq integration provides options to configure the connection to Seq. ### Use configuration providers -The .NET Aspire Seq component supports . It loads the `SeqSettings` from configuration by using the `Aspire:Seq` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Seq integration supports . It loads the `SeqSettings` from configuration by using the `Aspire:Seq` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -128,21 +128,22 @@ builder.AddSeqEndpoint("seq", static settings => }); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Seq component handles the following: +The .NET Aspire Seq integration handles the following: - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Seq component uses the following log categories: +The .NET Aspire Seq integration uses the following log categories: - `Seq` ## See also -- [.NET Aspire Seq README](https://github.com/dotnet/aspire/tree/main/src/Components/README.md) - [SEQ Query Language](https://docs.datalust.co/docs/the-seq-query-language) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) +- [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/media/visual-studio-add-aspire-component.png b/docs/media/visual-studio-add-aspire-package.png similarity index 100% rename from docs/media/visual-studio-add-aspire-component.png rename to docs/media/visual-studio-add-aspire-package.png diff --git a/docs/messaging/azure-event-hubs-component.md b/docs/messaging/azure-event-hubs-integration.md similarity index 83% rename from docs/messaging/azure-event-hubs-component.md rename to docs/messaging/azure-event-hubs-integration.md index 9bf03865ed..ebf148990a 100644 --- a/docs/messaging/azure-event-hubs-component.md +++ b/docs/messaging/azure-event-hubs-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire Azure Event Hubs component -description: This article describes the .NET Aspire Azure Event Hubs component features and capabilities. +title: .NET Aspire Azure Event Hubs integration +description: This article describes the .NET Aspire Azure Event Hubs integration features and capabilities. ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure Event Hubs component +# .NET Aspire Azure Event Hubs integration -In this article, you learn how to use the .NET Aspire Azure Event Hubs component. The `Aspire.Azure.Messaging.EventHubs` library offers options for registering an , an , an or a in the DI container for connecting to [Azure Event Hubs](/azure/event-hubs). +In this article, you learn how to use the .NET Aspire Azure Event Hubs integration. The `Aspire.Azure.Messaging.EventHubs` library offers options for registering an , an , an or a in the DI container for connecting to [Azure Event Hubs](/azure/event-hubs). ## Prerequisites @@ -16,7 +16,7 @@ In this article, you learn how to use the .NET Aspire Azure Event Hubs component ## Get started -To get started with the .NET Aspire Azure Event Hubs component, install the [Aspire.Azure.Messaging.EventHubs](https://www.nuget.org/packages/Aspire.Azure.Messaging.EventHubs) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Event Hubs integration, install the [Aspire.Azure.Messaging.EventHubs](https://www.nuget.org/packages/Aspire.Azure.Messaging.EventHubs) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Event Hubs client. ### [.NET CLI](#tab/dotnet-cli) @@ -50,7 +50,7 @@ The following clients are supported by the library, along with their correspondi The following example assumes that you have an Azure Event Hubs namespace and an Event Hub created and wish to configure an `EventHubProducerClient` to send events to the Event Hub. The `EventHubConsumerClient`, `EventProcessorClient`, and `PartitionReceiver`are configured in a similar manner. -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the `AddAzureEventHubProducerClient` extension to register a `EventHubProducerClient` for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the `AddAzureEventHubProducerClient` extension to register a `EventHubProducerClient` for use via the dependency injection container. ```csharp builder.AddAzureEventHubProducerClient("eventHubsConnectionName"); @@ -199,27 +199,27 @@ builder.AddAzureEventProcessorClient( options => options.Identifier = "PROCESSOR_ID")); ``` -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure Event Hubs component uses the following log categories: +The .NET Aspire Azure Event Hubs integration uses the following log categories: - `Azure.Core` - `Azure.Identity` ### Tracing -The .NET Aspire Azure Event Hubs component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Azure Event Hubs integration will emit the following tracing activities using OpenTelemetry: - "Azure.Messaging.EventHubs.*" ### Metrics -The .NET Aspire Azure Event Hubs component currently doesn't support metrics by default due to limitations with the Azure SDK for .NET. If that changes in the future, this section will be updated to reflect those changes. +The .NET Aspire Azure Event Hubs integration currently doesn't support metrics by default due to limitations with the Azure SDK for .NET. If that changes in the future, this section will be updated to reflect those changes. ## See also - [Azure Event Hubs](/azure/event-hubs/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/messaging/azure-service-bus-component.md b/docs/messaging/azure-service-bus-integration.md similarity index 80% rename from docs/messaging/azure-service-bus-component.md rename to docs/messaging/azure-service-bus-integration.md index b0fa08247e..d22adba075 100644 --- a/docs/messaging/azure-service-bus-component.md +++ b/docs/messaging/azure-service-bus-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire Azure Service Bus component -description: This article describes the .NET Aspire Azure Service Bus component features and capabilities +title: .NET Aspire Azure Service Bus integration +description: This article describes the .NET Aspire Azure Service Bus integration features and capabilities ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure Service Bus component +# .NET Aspire Azure Service Bus integration -Cloud-native apps often require communication with messaging services such as [Azure Service Bus](/azure/service-bus-messaging/service-bus-messaging-overview). Messaging services help decouple applications and enable scenarios that rely on features such as queues, topics and subscriptions, atomic transactions, load balancing, and more. The .NET Aspire Service Bus component handles the following concerns to connect your app to Azure Service Bus: +Cloud-native apps often require communication with messaging services such as [Azure Service Bus](/azure/service-bus-messaging/service-bus-messaging-overview). Messaging services help decouple applications and enable scenarios that rely on features such as queues, topics and subscriptions, atomic transactions, load balancing, and more. The .NET Aspire Service Bus integration handles the following concerns to connect your app to Azure Service Bus: - A is registered in the DI container for connecting to Azure Service Bus. - Applies `ServiceBusClient` configurations either inline through code or through configuration file settings. @@ -19,7 +19,7 @@ Cloud-native apps often require communication with messaging services such as [A ## Get started -To get started with the .NET Aspire Azure Service Bus component, install the [Aspire.Azure.Messaging.ServiceBus](https://www.nuget.org/packages/Aspire.Azure.Messaging.ServiceBus) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Service Bus integration, install the [Aspire.Azure.Messaging.ServiceBus](https://www.nuget.org/packages/Aspire.Azure.Messaging.ServiceBus) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Service Bus client. ### [.NET CLI](#tab/dotnet-cli) @@ -40,7 +40,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a `ServiceBusClient` for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register a `ServiceBusClient` for use via the dependency injection container. ```csharp builder.AddAzureServiceBusClient("messaging"); @@ -74,7 +74,7 @@ dotnet add package Aspire.Hosting.Azure.ServiceBus --- -In your app host project, register the Service Bus component and consume the service using the following methods: +In your app host project, register the Service Bus integration and consume the service using the following methods: ```csharp var builder = DistributedApplication.CreateBuilder(args); @@ -89,11 +89,11 @@ builder.AddProject() ## Configuration -The .NET Aspire Service Bus component provides multiple options to configure the `ServiceBusClient` based on the requirements and conventions of your project. +The .NET Aspire Service Bus integration provides multiple options to configure the `ServiceBusClient` based on the requirements and conventions of your project. ### Use configuration providers -The Service Bus component supports . It loads the `AzureMessagingServiceBusSettings` from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Azure:Messaging:ServiceBus` key. +The Service Bus integration supports . It loads the `AzureMessagingServiceBusSettings` from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Azure:Messaging:ServiceBus` key. ```json { @@ -177,11 +177,11 @@ The following configurable options are exposed through the †** At least one of the name options are mandatory when enabling health checks._ -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure Service Bus component uses the following log categories: +The .NET Aspire Azure Service Bus integration uses the following log categories: - `Azure.Core` - `Azure.Identity` @@ -209,7 +209,7 @@ You can enable tracing in several ways: - Set the `AZURE_EXPERIMENTAL_ENABLE_ACTIVITY_SOURCE` environment variable to "true". - Can be achieved by chaining a call to `WithEnvironment("AZURE_EXPERIMENTAL_ENABLE_ACTIVITY_SOURCE", "true")` -When enabled, the .NET Aspire Azure Service Bus component will emit the following tracing activities using OpenTelemetry: +When enabled, the .NET Aspire Azure Service Bus integration will emit the following tracing activities using OpenTelemetry: - `Message` - `ServiceBusSender.Send` @@ -240,10 +240,10 @@ For more information, see: ### Metrics -The .NET Aspire Azure Service Bus component currently doesn't support metrics by default due to limitations with the Azure SDK for .NET. If that changes in the future, this section will be updated to reflect those changes. +The .NET Aspire Azure Service Bus integration currently doesn't support metrics by default due to limitations with the Azure SDK for .NET. If that changes in the future, this section will be updated to reflect those changes. ## See also - [Azure Service Bus](/azure/service-bus-messaging/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/messaging/azure-web-pubsub-component.md b/docs/messaging/azure-web-pubsub-integration.md similarity index 79% rename from docs/messaging/azure-web-pubsub-component.md rename to docs/messaging/azure-web-pubsub-integration.md index 1445fac96b..30a5b4697b 100644 --- a/docs/messaging/azure-web-pubsub-component.md +++ b/docs/messaging/azure-web-pubsub-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire Azure Web PubSub component -description: This article describes the .NET Aspire Azure Web PubSub component features and capabilities. +title: .NET Aspire Azure Web PubSub integration +description: This article describes the .NET Aspire Azure Web PubSub integration features and capabilities. ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure Web PubSub component +# .NET Aspire Azure Web PubSub integration -In this article, you learn how to use the .NET Aspire Azure Web PubSub component. The `Aspire.Azure.Messaging.WebPubSub` library offers options for registering an in the DI container for connecting to [Azure Web PubSub](/azure/azure-web-pubsub). +In this article, you learn how to use the .NET Aspire Azure Web PubSub integration. The `Aspire.Azure.Messaging.WebPubSub` library offers options for registering an in the DI container for connecting to [Azure Web PubSub](/azure/azure-web-pubsub). ## Prerequisites @@ -16,7 +16,7 @@ In this article, you learn how to use the .NET Aspire Azure Web PubSub component ## Get started -To get started with the .NET Aspire Azure Web PubSub component, install the [Aspire.Azure.Messaging.WebPubSub](https://www.nuget.org/packages/Aspire.Azure.Messaging.WebPubSub) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Web PubSub integration, install the [Aspire.Azure.Messaging.WebPubSub](https://www.nuget.org/packages/Aspire.Azure.Messaging.WebPubSub) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Web PubSub client. ### [.NET CLI](#tab/dotnet-cli) @@ -166,15 +166,15 @@ builder.AddAzureWebPubSubServiceClient( clientBuilder.ConfigureOptions(options => options.Retry.MaxRetries = 5)); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Azure Web PubSub component handles exposes a configurable health check that reports as _healthy_, when the client can successfully connect to the Azure Web PubSub service. +The .NET Aspire Azure Web PubSub integration handles exposes a configurable health check that reports as _healthy_, when the client can successfully connect to the Azure Web PubSub service. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure Web PubSub component uses the following log categories: +The .NET Aspire Azure Web PubSub integration uses the following log categories: - `Azure` - `Azure.Core` @@ -183,16 +183,16 @@ The .NET Aspire Azure Web PubSub component uses the following log categories: ### Tracing -The .NET Aspire Azure Web PubSub component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Azure Web PubSub integration will emit the following tracing activities using OpenTelemetry: - "Azure.Messaging.WebPubSub.*" ### Metrics -The .NET Aspire Azure Web PubSub component currently doesn't support metrics by default due to limitations with the Azure SDK for .NET. If that changes in the future, this section will be updated to reflect those changes. +The .NET Aspire Azure Web PubSub integration currently doesn't support metrics by default due to limitations with the Azure SDK for .NET. If that changes in the future, this section will be updated to reflect those changes. ## See also - [Azure Web PubSub](/azure/azure-web-pubsub/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/messaging/kafka-component.md b/docs/messaging/kafka-integration.md similarity index 77% rename from docs/messaging/kafka-component.md rename to docs/messaging/kafka-integration.md index 6b2bc48555..2eedd035d5 100644 --- a/docs/messaging/kafka-component.md +++ b/docs/messaging/kafka-integration.md @@ -1,17 +1,17 @@ --- -title: .NET Aspire Apache Kafka component -description: Learn how to use the .NET Aspire Apache Kafka client message-broker component. +title: .NET Aspire Apache Kafka integration +description: Learn how to use the .NET Aspire Apache Kafka client message-broker integration. ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Apache Kafka component +# .NET Aspire Apache Kafka integration In this article, you learn how to use the .NET Aspire Apache Kafka client message-broker. The `Aspire.Confluent.Kafka` library registers an [`IProducer`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.IProducer-2.html) and an [`IConsumer`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.IConsumer-2.html) in the dependency injection (DI) container for connecting to a Apache Kafka server. It enables corresponding health check, logging and telemetry. ## Get started -To get started with the .NET Aspire Apache Kafka component, install the [Aspire.Confluent.Kafka](https://www.nuget.org/packages/Aspire.Confluent.Kafka) NuGet package in the consuming client project. +To get started with the .NET Aspire Apache Kafka integration, install the [Aspire.Confluent.Kafka](https://www.nuget.org/packages/Aspire.Confluent.Kafka) NuGet package in the client-consuming project, i.e., the project for the application that uses the Apache Kafka client. ### [.NET CLI](#tab/dotnet-cli) @@ -32,7 +32,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension method to register an `IProducer` for use via the dependency injection container. The method takes two generic parameters corresponding to the type of the key and the type of the message to send to the broker. These generic parameters will be used to new an instance of `ProducerBuilder`. This method also take connection name parameter. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method to register an `IProducer` for use via the dependency injection container. The method takes two generic parameters corresponding to the type of the key and the type of the message to send to the broker. These generic parameters will be used to new an instance of `ProducerBuilder`. This method also take connection name parameter. ```csharp builder.AddKafkaProducer("messaging"); @@ -92,7 +92,7 @@ builder.AddKafkaConsumer("messaging"); ## Configuration -The .NET Aspire Apache Kafka component provides multiple options to configure the connection based on the requirements and conventions of your project. +The .NET Aspire Apache Kafka integration provides multiple options to configure the connection based on the requirements and conventions of your project. ### Use a connection string @@ -116,7 +116,7 @@ The value provided as connection string will be set to the `BootstrapServers` p ### Use configuration providers -The .NET Aspire Apache Kafka component supports . It loads the `KafkaProducerSettings` or `KafkaConsumerSettings` from configuration by respectively using the `Aspire:Confluent:Kafka:Producer` and `Aspire.Confluent:Kafka:Consumer` keys. This example _:::no-loc text="appsettings.json":::_ configures some of the options: +The .NET Aspire Apache Kafka integration supports . It loads the `KafkaProducerSettings` or `KafkaConsumerSettings` from configuration by respectively using the `Aspire:Confluent:Kafka:Producer` and `Aspire.Confluent:Kafka:Consumer` keys. This example _:::no-loc text="appsettings.json":::_ configures some of the options: ```json { @@ -167,31 +167,31 @@ builder.AddKafkaProducer("messaging", producerBuilder => { Refer to [`ProducerBuilder`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ProducerBuilder-2.html) and [`ConsumerBuilder`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ConsumerBuilder-2.html) API documentation for more information. -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Apache Kafka component handles the following: +The .NET Aspire Apache Kafka integration handles the following: - Adds the `Aspire.Confluent.Kafka.Producer` health check when is `false`. - Adds the `Aspire.Confluent.Kafka.Consumer` health check when is `false`. - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Apache Kafka component uses the following log categories: +The .NET Aspire Apache Kafka integration uses the following log categories: - `Aspire.Confluent.Kafka` ### Tracing -The .NET Aspire Apache Kafka component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Apache Kafka integration will emit the following tracing activities using OpenTelemetry: - `Aspire.Confluent.Kafka` ### Metrics -The .NET Aspire Apache Kafka component will emit the following metrics using OpenTelemetry: +The .NET Aspire Apache Kafka integration will emit the following metrics using OpenTelemetry: - `messaging.kafka.network.tx` - `messaging.kafka.network.transmitted` @@ -207,5 +207,5 @@ The .NET Aspire Apache Kafka component will emit the following metrics using Ope - [Apache Kafka](https://kafka.apache.org/) - [Confluent](https://www.confluent.io/) - [Confluent Kafka .NET client docs](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.html) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/messaging/messaging-components.md b/docs/messaging/messaging-integrations.md similarity index 92% rename from docs/messaging/messaging-components.md rename to docs/messaging/messaging-integrations.md index 817fa73870..92a12ee527 100644 --- a/docs/messaging/messaging-components.md +++ b/docs/messaging/messaging-integrations.md @@ -1,20 +1,20 @@ --- -title: Use .NET Aspire messaging components in ASP.NET Core -description: Learn how to connect an ASP.NET Core app to messaging services using .NET Aspire components. -ms.date: 06/05/2024 +title: Use .NET Aspire messaging integrations in ASP.NET Core +description: Learn how to connect an ASP.NET Core app to messaging services using .NET Aspire integrations. +ms.date: 08/12/2024 ms.topic: tutorial zone_pivot_groups: dev-environment --- -# Tutorial: Use .NET Aspire messaging components in ASP.NET Core +# Tutorial: Use .NET Aspire messaging integrations in ASP.NET Core -Cloud-native apps often require scalable messaging solutions that provide capabilities such as messaging queues and topics and subscriptions. .NET Aspire components simplify the process of connecting to various messaging providers, such as Azure Service Bus. In this tutorial, you'll create an ASP.NET Core app that uses .NET Aspire components to connect to Azure Service Bus to create a notification system. Submitted messages will be sent to a Service Bus topic for consumption by subscribers. You'll learn how to: +Cloud-native apps often require scalable messaging solutions that provide capabilities such as messaging queues and topics and subscriptions. .NET Aspire integrations simplify the process of connecting to various messaging providers, such as Azure Service Bus. In this tutorial, you'll create an ASP.NET Core app that uses .NET Aspire integrations to connect to Azure Service Bus to create a notification system. Submitted messages will be sent to a Service Bus topic for consumption by subscribers. You'll learn how to: > [!div class="checklist"] > -> - Create a basic .NET app that is set up to use .NET Aspire components -> - Add an .NET Aspire component to connect to Azure Service Bus -> - Configure and use .NET Aspire component features to send and receive data +> - Create a basic .NET app that is set up to use .NET Aspire integrations +> - Add an .NET Aspire integration to connect to Azure Service Bus +> - Configure and use .NET Aspire integration features to send and receive data [!INCLUDE [aspire-prereqs](../includes/aspire-prereqs.md)] @@ -218,9 +218,9 @@ The completed solution structure should resemble the following, assuming the top └─── AspireSample.sln ``` -## Add the .NET Aspire component to the API +## Add the .NET Aspire integration to the API -Add the [.NET Aspire Azure Service Bus](azure-service-bus-component.md) component to your **AspireSample.ApiService** app: +Add the [.NET Aspire Azure Service Bus](azure-service-bus-integration.md) integration to your **AspireSample.ApiService** app: :::zone pivot="visual-studio" @@ -256,7 +256,7 @@ dotnet add package Aspire.Azure.Messaging.ServiceBus In the _:::no-loc text="Program.cs":::_ file of the **AspireSample.ApiService** project, add a call to the `AddAzureServiceBusClient` extension method—replacing the existing call to `AddServiceDefaults`: ```csharp -// Add service defaults & Aspire components. +// Add service defaults & Aspire integrations. builder.AddServiceDefaults(); builder.AddAzureServiceBusClient("serviceBusConnection"); ``` @@ -307,7 +307,7 @@ using Azure.Messaging.ServiceBus; var builder = WebApplication.CreateBuilder(args); -// Add service defaults & Aspire components. +// Add service defaults & Aspire integrations. builder.AddServiceDefaults(); builder.AddAzureServiceBusClient("serviceBusConnection"); @@ -347,9 +347,9 @@ app.MapDefaultEndpoints(); app.Run(); ``` -## Add the .NET Aspire component to the Worker Service +## Add the .NET Aspire integration to the Worker Service -Add the [.NET Aspire Azure Service Bus](azure-service-bus-component.md) component to your **AspireSample.WorkerService** project. Follow the same steps as you did before when you added the [Aspire.Azure.Messaging.ServiceBus](https://nuget.org/packages/Aspire.Azure.Messaging.ServiceBus) NuGet package to the **AspireSample.ApiService** project. Once it's been added, you can configure the worker service to process messages from the Service Bus topic. +Add the [.NET Aspire Azure Service Bus](azure-service-bus-integration.md) integration to your **AspireSample.WorkerService** project. Follow the same steps as you did before when you added the [Aspire.Azure.Messaging.ServiceBus](https://nuget.org/packages/Aspire.Azure.Messaging.ServiceBus) NuGet package to the **AspireSample.ApiService** project. Once it's been added, you can configure the worker service to process messages from the Service Bus topic. In the _:::no-loc text="Program.cs":::_ file of the **AspireSample.WorkerService** project, repace the existing code with the following: @@ -506,6 +506,6 @@ The sample app is now ready for testing. Verify that the data submitted to the A -Congratulations! You created and configured an ASP.NET Core API that connects to Azure Service Bus using Aspire components. +Congratulations! You created and configured an ASP.NET Core API that connects to Azure Service Bus using Aspire integrations. [!INCLUDE [clean-up-resources](../includes/clean-up-resources.md)] diff --git a/docs/messaging/nats-component.md b/docs/messaging/nats-integration.md similarity index 71% rename from docs/messaging/nats-component.md rename to docs/messaging/nats-integration.md index 0ed9c8ac0f..34c9f93c1e 100644 --- a/docs/messaging/nats-component.md +++ b/docs/messaging/nats-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire NATS component -description: Learn how to use the .NET Aspire NATS component to send logs and traces to a NATS Server. +title: .NET Aspire NATS integration +description: Learn how to use the .NET Aspire NATS integration to send logs and traces to a NATS Server. ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire NATS component +# .NET Aspire NATS integration -In this article, you learn how to use the .NET Aspire NATS component to send logs and traces to a NATS Server. The component supports persistent logs and traces across application restarts via configuration. +In this article, you learn how to use the .NET Aspire NATS integration to send logs and traces to a NATS Server. The integration supports persistent logs and traces across application restarts via configuration. ## Prerequisites @@ -16,7 +16,7 @@ In this article, you learn how to use the .NET Aspire NATS component to send log ## Get started -To get started with the .NET Aspire NATS component, install the [Aspire.NATS.Net](https://www.nuget.org/packages/Aspire.NATS.Net) NuGet package in the consuming client project. +To get started with the .NET Aspire NATS integration, install the [Aspire.NATS.Net](https://www.nuget.org/packages/Aspire.NATS.Net) NuGet package in the client-consuming project, i.e., the project for the application that uses the NATS client. ### [.NET CLI](#tab/dotnet-cli) @@ -90,7 +90,7 @@ builder.AddNatsClient("nats"); ## Configuration -The .NET Aspire NATS component provides multiple options to configure the NATS connection based on the requirements and conventions of your project. +The .NET Aspire NATS integration provides multiple options to configure the NATS connection based on the requirements and conventions of your project. ### Use a connection string @@ -114,7 +114,7 @@ See the [ConnectionString documentation](https://docs.nats.io/using-nats/develop ### Use configuration providers -The .NET Aspire NATS component supports [Microsoft.Extensions.Configuration](/dotnet/api/microsoft.extensions.configuration). It loads the `NatsClientSettings` from configuration using the `Aspire:Nats:Client` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire NATS integration supports [Microsoft.Extensions.Configuration](/dotnet/api/microsoft.extensions.configuration). It loads the `NatsClientSettings` from configuration using the `Aspire:Nats:Client` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -150,27 +150,27 @@ The directory specified must already exist. NATS isn't part of the .NET Aspire deployment manifest. It's recommended you set up a secure production NATS server outside of .NET Aspire. -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire NATS component handles the following: +The .NET Aspire NATS integration handles the following: - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire NATS component uses the following log categories: +The .NET Aspire NATS integration uses the following log categories: - `NATS` ### Tracing -The .NET Aspire NATS component emits the following tracing activities: +The .NET Aspire NATS integration emits the following tracing activities: - `NATS.Net` ## See also - [NATS.Net quickstart](https://nats-io.github.io/nats.net/documentation/intro.html?tabs=core-nats) -- [NATS component README](https://github.com/dotnet/aspire/tree/main/src/Components/README.md) +- [NATS integration README](https://github.com/dotnet/aspire/tree/main/src/Components/README.md) diff --git a/docs/messaging/rabbitmq-client-component.md b/docs/messaging/rabbitmq-client-integration.md similarity index 73% rename from docs/messaging/rabbitmq-client-component.md rename to docs/messaging/rabbitmq-client-integration.md index 06c147eb09..5fdf3a7007 100644 --- a/docs/messaging/rabbitmq-client-component.md +++ b/docs/messaging/rabbitmq-client-integration.md @@ -1,17 +1,17 @@ --- -title: .NET Aspire RabbitMQ component -description: Learn how to use the .NET Aspire RabbitMQ client message-broker component. +title: .NET Aspire RabbitMQ integration +description: Learn how to use the .NET Aspire RabbitMQ client message-broker integration. ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire RabbitMQ component +# .NET Aspire RabbitMQ integration In this article, you learn how to use the .NET Aspire RabbitMQ client message-broker. The `Aspire.RabbitMQ.Client` library is used to register an [IConnection](https://rabbitmq.github.io/rabbitmq-dotnet-client/api/RabbitMQ.Client.IConnection.html) in the dependency injection (DI) container for connecting to a RabbitMQ server. It enables corresponding health check, logging and telemetry. ## Get started -To get started with the .NET Aspire RabbitMQ component, install the [Aspire.RabbitMQ.Client](https://www.nuget.org/packages/Aspire.RabbitMQ.Client) NuGet package in the consuming client project. +To get started with the .NET Aspire RabbitMQ integration, install the [Aspire.RabbitMQ.Client](https://www.nuget.org/packages/Aspire.RabbitMQ.Client) NuGet package in the client-consuming project, i.e., the project for the application that uses the RabbitMQ client. ### [.NET CLI](#tab/dotnet-cli) @@ -32,7 +32,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension method to register an `IConnection` for use via the dependency injection container. The method takes a connection name parameter. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method to register an `IConnection` for use via the dependency injection container. The method takes a connection name parameter. ```csharp builder.AddRabbitMQClient("messaging"); @@ -96,7 +96,7 @@ For more information, see [External parameters](../fundamentals/external-paramet ## Configuration -The .NET Aspire RabbitMQ component provides multiple options to configure the connection based on the requirements and conventions of your project. +The .NET Aspire RabbitMQ integration provides multiple options to configure the connection based on the requirements and conventions of your project. ### Use a connection string @@ -120,7 +120,7 @@ For more information on how to format this connection string, see the [RabbitMQ ### Use configuration providers -The .NET Aspire RabbitMQ component supports . It loads the `RabbitMQClientSettings` from configuration by using the `Aspire:RabbitMQ:Client` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire RabbitMQ integration supports . It loads the `RabbitMQClientSettings` from configuration by using the `Aspire:RabbitMQ:Client` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -153,33 +153,33 @@ builder.AddRabbitMQClient( factory => factory.ClientProvidedName = "MyApp"); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire RabbitMQ component handles the following: +The .NET Aspire RabbitMQ integration handles the following: - Adds the health check when is `true`, which attempts to connect to and create a channel on the RabbitMQ server. - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire RabbitMQ component uses the following log categories: +The .NET Aspire RabbitMQ integration uses the following log categories: - `RabbitMQ.Client` ### Tracing -The .NET Aspire RabbitMQ component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire RabbitMQ integration will emit the following tracing activities using OpenTelemetry: - "Aspire.RabbitMQ.Client" ### Metrics -The .NET Aspire RabbitMQ component currently doesn't support metrics by default. If that changes in the future, this section will be updated to reflect those changes. +The .NET Aspire RabbitMQ integration currently doesn't support metrics by default. If that changes in the future, this section will be updated to reflect those changes. ## See also - [RabbitMQ .NET Client docs](https://rabbitmq.github.io/rabbitmq-dotnet-client) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/search/elasticsearch-component.md b/docs/search/elasticsearch-integration.md similarity index 70% rename from docs/search/elasticsearch-component.md rename to docs/search/elasticsearch-integration.md index 387690e560..7f83ac3466 100644 --- a/docs/search/elasticsearch-component.md +++ b/docs/search/elasticsearch-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire Elasticsearch component -description: This article describes the .NET Aspire Elasticsearch component features and capabilities. +title: .NET Aspire Elasticsearch integration +description: This article describes the .NET Aspire Elasticsearch integration features and capabilities. ms.topic: how-to -ms.date: 07/23/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Elasticsearch component +# .NET Aspire Elasticsearch integration -In this article, you learn how to use the .NET Aspire Elasticsearch component. The `Aspire.Elastic.Clients.Elasticsearch` library registers a [ElasticsearchClient](https://github.com/elastic/elasticsearch-net) in the DI container for connecting to a Elasticsearch. It enables corresponding health check and telemetry. +In this article, you learn how to use the .NET Aspire Elasticsearch integration. The `Aspire.Elastic.Clients.Elasticsearch` library registers a [ElasticsearchClient](https://github.com/elastic/elasticsearch-net) in the DI container for connecting to a Elasticsearch. It enables corresponding health check and telemetry. ## Prerequisites @@ -16,7 +16,7 @@ In this article, you learn how to use the .NET Aspire Elasticsearch component. T ## Get started -To get started with the .NET Aspire Elasticsearch component, install the [Aspire.Elastic.Clients.Elasticsearch](https://www.nuget.org/packages/Aspire.Elastic.Clients.Elasticsearch) NuGet package in the consuming client project. +To get started with the .NET Aspire Elasticsearch integration, install the [Aspire.Elastic.Clients.Elasticsearch](https://www.nuget.org/packages/Aspire.Elastic.Clients.Elasticsearch) NuGet package in the client-consuming project, i.e., the project for the application that uses the Elasticsearch client. ### [.NET CLI](#tab/dotnet-cli) @@ -79,7 +79,7 @@ builder.AddElasticsearchClient("elasticsearch"); ## Configuration -The .NET Aspire Elasticsearch client component provides multiple options to configure the server connection based on the requirements and conventions of your project. +The .NET Aspire Elasticsearch client integration provides multiple options to configure the server connection based on the requirements and conventions of your project. ### Use a connection string @@ -101,7 +101,7 @@ And then the connection string will be retrieved from the `ConnectionStrings` co ### Use configuration providers -The .NET Aspire Elasticsearch Client component supports [Microsoft.Extensions.Configuration](/dotnet/api/microsoft.extensions.configuration). It loads the `ElasticClientsElasticsearchSettings` from configuration by using the `Aspire:Elastic:Clients:Elasticsearch` key. Consider the following example _appsettings.json_ that configures some of the options: +The .NET Aspire Elasticsearch Client integration supports [Microsoft.Extensions.Configuration](/dotnet/api/microsoft.extensions.configuration). It loads the `ElasticClientsElasticsearchSettings` from configuration by using the `Aspire:Elastic:Clients:Elasticsearch` key. Consider the following example _appsettings.json_ that configures some of the options: ```json { @@ -165,22 +165,22 @@ builder.AddElasticsearchClient( }); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Elasticsearch component uses the configured client to perform a `PingAsync`. If the result is an HTTP 200 OK, the health check is considered healthy, otherwise it's unhealthy. Likewise, if there's an exception, the health check is considered unhealthy with the error propagating through the health check failure. +The .NET Aspire Elasticsearch integration uses the configured client to perform a `PingAsync`. If the result is an HTTP 200 OK, the health check is considered healthy, otherwise it's unhealthy. Likewise, if there's an exception, the health check is considered unhealthy with the error propagating through the health check failure. -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Tracing -The .NET Aspire Elasticsearch component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Elasticsearch integration will emit the following tracing activities using OpenTelemetry: - `Elastic.Transport` ## See also - [Elasticsearch .NET](https://github.com/elastic/elasticsearch-net) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) \ No newline at end of file diff --git a/docs/security/azure-security-key-vault-component.md b/docs/security/azure-security-key-vault-integration.md similarity index 72% rename from docs/security/azure-security-key-vault-component.md rename to docs/security/azure-security-key-vault-integration.md index 5ddacda318..aa71eb2666 100644 --- a/docs/security/azure-security-key-vault-component.md +++ b/docs/security/azure-security-key-vault-integration.md @@ -1,17 +1,17 @@ --- -title: .NET Aspire Azure Key Vault component -description: Lean about the .NET Aspire Azure Key Vault component. +title: .NET Aspire Azure Key Vault integration +description: Lean about the .NET Aspire Azure Key Vault integration. ms.topic: how-to -ms.date: 07/25/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure Key Vault component +# .NET Aspire Azure Key Vault integration -In this article, you learn how to use the .NET Aspire Azure Key Vault component. The `Aspire.Azure.Key.Vault` component library is used to register a in the DI container for connecting to Azure Key Vault. It also enables corresponding health checks, logging and telemetry. +In this article, you learn how to use the .NET Aspire Azure Key Vault integration. The `Aspire.Azure.Key.Vault` integration library is used to register a in the DI container for connecting to Azure Key Vault. It also enables corresponding health checks, logging and telemetry. ## Get started -To get started with the .NET Aspire Azure Key Vault component, install the [Aspire.Azure.Security.KeyVault](https://www.nuget.org/packages/Aspire.Azure.Security.KeyVault) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Key Vault integration, install the [Aspire.Azure.Security.KeyVault](https://www.nuget.org/packages/Aspire.Azure.Security.KeyVault) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Key Vault client. ### [.NET CLI](#tab/dotnet-cli) @@ -36,7 +36,7 @@ THe following sections describe various example usages. ### Add secrets to configuration -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to add the secrets in the Azure Key Vault to the application's Configuration. The method takes a connection name parameter. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to add the secrets in the Azure Key Vault to the application's Configuration. The method takes a connection name parameter. ```csharp builder.Configuration.AddAzureKeyVaultSecrets("secrets"); @@ -54,7 +54,7 @@ public class ExampleService(IConfiguration configuration) ### Use `SecretClient` -Alternatively, you can use a `SecretClient` to retrieve the secrets on demand. In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a `SecretClient` for use via the dependency injection container. +Alternatively, you can use a `SecretClient` to retrieve the secrets on demand. In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register a `SecretClient` for use via the dependency injection container. ```csharp builder.AddAzureKeyVaultClient("secrets"); @@ -88,7 +88,7 @@ dotnet add package Aspire.Hosting.Azure.KeyVault --- -In your app host project, register the Azure Key Vault component and consume the service using the following methods: +In your app host project, register the Azure Key Vault integration and consume the service using the following methods: ```csharp var builder = DistributedApplication.CreateBuilder(args); @@ -105,11 +105,11 @@ The preceding code conditionally adds the Azure Key Vault resource to the projec ## Configuration -The .NET Aspire Azure Key Vault component provides multiple options to configure the `SecretClient` based on the requirements and conventions of your project. +The .NET Aspire Azure Key Vault integration provides multiple options to configure the `SecretClient` based on the requirements and conventions of your project. ### Use configuration providers -The .NET Aspire Azure Key Vault component supports . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Azure:Security:KeyVault` key. +The .NET Aspire Azure Key Vault integration supports . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Azure:Security:KeyVault` key. ```json { @@ -197,34 +197,34 @@ The following configurable options are exposed through the in the DI container for connecting to Azure Blob Storage. It also enables corresponding health checks, logging and telemetry. +In this article, you learn how to use the .NET Aspire Azure Blob Storage integration. The `Aspire.Azure.Storage.Blobs` library is used to register a in the DI container for connecting to Azure Blob Storage. It also enables corresponding health checks, logging and telemetry. ## Get started -To get started with the .NET Aspire Azure Blob Storage component, install the [Aspire.Azure.Storage.Blobs](https://www.nuget.org/packages/Aspire.Azure.Storage.Blobs) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Blob Storage integration, install the [Aspire.Azure.Storage.Blobs](https://www.nuget.org/packages/Aspire.Azure.Storage.Blobs) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Blob Storage client. ### [.NET CLI](#tab/dotnet-cli) @@ -32,7 +32,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a `BlobServiceClient` for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register a `BlobServiceClient` for use via the dependency injection container. ```csharp builder.AddAzureBlobClient("blobs"); @@ -66,7 +66,7 @@ dotnet add package Aspire.Hosting.Azure.Storage --- -In your app host project, register the Azure Blob Storage component and consume the service using the following methods, such as : +In your app host project, register the Azure Blob Storage integration and consume the service using the following methods, such as : ```csharp var builder = DistributedApplication.CreateBuilder(args); @@ -86,7 +86,7 @@ builder.AddAzureBlobClient("blobs"); ## Configuration -The .NET Aspire Azure Blob Storage component provides multiple options to configure the `BlobServiceClient` based on the requirements and conventions of your project. +The .NET Aspire Azure Blob Storage integration provides multiple options to configure the `BlobServiceClient` based on the requirements and conventions of your project. ### Use a connection string @@ -124,7 +124,7 @@ Alternatively, an [Azure Storage connection string](/azure/storage/common/storag ### Use configuration providers -The .NET Aspire Azure Blob Storage component supports . It loads the and from configuration by using the `Aspire:Azure:Storage:Blobs` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Azure Blob Storage integration supports . It loads the and from configuration by using the `Aspire:Azure:Storage:Blobs` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -166,34 +166,34 @@ builder.AddAzureBlobClient( static options => options.Diagnostics.ApplicationId = "myapp")); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Azure Blob Storage component handles the following: +The .NET Aspire Azure Blob Storage integration handles the following: - Adds the `AzureBlobStorageHealthCheck` health check, which attempts to connect to and query blob storage - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure Blob Storage component uses the following log categories: +The .NET Aspire Azure Blob Storage integration uses the following log categories: - `Azure.Core` - `Azure.Identity` ### Tracing -The .NET Aspire Azure Blob Storage component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Azure Blob Storage integration will emit the following tracing activities using OpenTelemetry: - "Azure.Storage.Blobs.BlobContainerClient" ### Metrics -The .NET Aspire Azure Blob Storage component currently does not support metrics by default due to limitations with the Azure SDK. +The .NET Aspire Azure Blob Storage integration currently does not support metrics by default due to limitations with the Azure SDK. ## See also - [Azure Blob Storage docs](/azure/storage/blobs/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/storage/azure-storage-components.md b/docs/storage/azure-storage-integrations.md similarity index 92% rename from docs/storage/azure-storage-components.md rename to docs/storage/azure-storage-integrations.md index c68b073d14..e2c07e8937 100644 --- a/docs/storage/azure-storage-components.md +++ b/docs/storage/azure-storage-integrations.md @@ -1,20 +1,20 @@ --- -title: Connect an ASP.NET Core app to .NET Aspire storage components -description: Learn how to connect an ASP.NET Core app to .NET Aspire storage components. -ms.date: 06/05/2024 +title: Connect an ASP.NET Core app to .NET Aspire storage integrations +description: Learn how to connect an ASP.NET Core app to .NET Aspire storage integrations. +ms.date: 08/12/2024 ms.topic: tutorial zone_pivot_groups: azure-storage-mechanism ms.custom: devx-track-extended-azdevcli --- -# Tutorial: Connect an ASP.NET Core app to .NET Aspire storage components +# Tutorial: Connect an ASP.NET Core app to .NET Aspire storage integrations -Cloud-native apps often require scalable storage solutions that provide capabilities like blob storage, queues, or semi-structured NoSQL databases. .NET Aspire components simplify connections to various storage services, such as Azure Blob Storage. In this tutorial, you'll create an ASP.NET Core app that uses .NET Aspire components to connect to Azure Blob Storage and Azure Queue Storage to submit support tickets. The app sends the tickets to a queue for processing and uploads an attachment to storage. You'll learn how to: +Cloud-native apps often require scalable storage solutions that provide capabilities like blob storage, queues, or semi-structured NoSQL databases. .NET Aspire integrations simplify connections to various storage services, such as Azure Blob Storage. In this tutorial, you'll create an ASP.NET Core app that uses .NET Aspire integrations to connect to Azure Blob Storage and Azure Queue Storage to submit support tickets. The app sends the tickets to a queue for processing and uploads an attachment to storage. You'll learn how to: > [!div class="checklist"] > -> - Create a basic .NET app that is set up to use .NET Aspire components -> - Add .NET Aspire components to connect to multiple storage services +> - Create a basic .NET app that is set up to use .NET Aspire integrations +> - Add .NET Aspire integrations to connect to multiple storage services > - Configure and use .NET Aspire Component features to send and receive data [!INCLUDE [aspire-prereqs](../includes/aspire-prereqs.md)] @@ -195,20 +195,20 @@ The completed solution structure should resemble the following: :::image type="content" loc-scope="visual-studio" source="media/storage-project.png" alt-text="A screenshot showing the structure of the .NET Aspire storage sample solution."::: -## Add the .NET Aspire components to the Blazor app +## Add the .NET Aspire integrations to the Blazor app -Add the [.NET Aspire Azure Blob Storage component](azure-storage-blobs-component.md) and [.NET Aspire Azure Queue Storage component](azure-storage-queues-component.md) packages to your _AspireStorage.Web_ project: +Add the [.NET Aspire Azure Blob Storage integration](azure-storage-blobs-integration.md) and [.NET Aspire Azure Queue Storage integration](azure-storage-queues-integration.md) packages to your _AspireStorage.Web_ project: ```dotnetcli dotnet add package Aspire.Azure.Storage.Blobs dotnet add package Aspire.Azure.Storage.Queues ``` -Your **AspireStorage.Web** project is now set up to use .NET Aspire components. Here's the updated _AspireStorage.Web.csproj_ file: +Your **AspireStorage.Web** project is now set up to use .NET Aspire integrations. Here's the updated _AspireStorage.Web.csproj_ file: :::code language="xml" source="snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj" highlight="14-15"::: -The next step is to add the components to the app. +The next step is to add the integrations to the app. In the _:::no-loc text="Program.cs":::_ file of the _AspireStorage.Web_ project, add calls to the and extension methods after the creation of the `builder` but before the call to `AddServiceDefaults`. For more information, see [.NET Aspire service defaults](../fundamentals/service-defaults.md). Provide the name of your connection string as a parameter. @@ -234,9 +234,9 @@ When the _AspireStorage.Web_ project starts, it will create a `fileuploads` cont :::zone-end -## Add the .NET Aspire component to the Worker Service +## Add the .NET Aspire integration to the Worker Service -The worker service handles pulling messages off of the Azure Storage queue for processing. Add the [.NET Aspire Azure Queue Storage component](azure-storage-queues-component.md) component package to your _AspireStorage.WorkerService_ app: +The worker service handles pulling messages off of the Azure Storage queue for processing. Add the [.NET Aspire Azure Queue Storage integration](azure-storage-queues-integration.md) integration package to your _AspireStorage.WorkerService_ app: ```dotnetcli dotnet add package Aspire.Azure.Storage.Queues @@ -388,7 +388,7 @@ The sample app is now ready for testing. Verify that the submitted form data is ## Summary -The example app that you built demonstrates persisting blobs from an ASP.NET Core Blazor Web App and processing queues in a [.NET Worker Service](/dotnet/core/extensions/workers). Your app connects to Azure Storage using .NET Aspire components. The app sends the support tickets to a queue for processing and uploads an attachment to storage. +The example app that you built demonstrates persisting blobs from an ASP.NET Core Blazor Web App and processing queues in a [.NET Worker Service](/dotnet/core/extensions/workers). Your app connects to Azure Storage using .NET Aspire integrations. The app sends the support tickets to a queue for processing and uploads an attachment to storage. :::zone pivot="azurite" diff --git a/docs/storage/azure-storage-queues-component.md b/docs/storage/azure-storage-queues-integration.md similarity index 71% rename from docs/storage/azure-storage-queues-component.md rename to docs/storage/azure-storage-queues-integration.md index 1d4e7419b3..9244558fa8 100644 --- a/docs/storage/azure-storage-queues-component.md +++ b/docs/storage/azure-storage-queues-integration.md @@ -1,17 +1,17 @@ --- -title: .NET Aspire Azure Queue Storage component -description: This article describes the .NET Aspire Azure Queue Storage component features and capabilities +title: .NET Aspire Azure Queue Storage integration +description: This article describes the .NET Aspire Azure Queue Storage integration features and capabilities ms.topic: how-to -ms.date: 07/17/2024 +ms.date: 08/12/2024 --- -# .NET Aspire Azure Queue Storage component +# .NET Aspire Azure Queue Storage integration -In this article, you learn how to use the .NET Aspire Azure Queue Storage component. The `Aspire.Azure.Storage.Queues` library is used to register a in the DI container for connecting to Azure Queue Storage. It also enables corresponding health checks, logging and telemetry. +In this article, you learn how to use the .NET Aspire Azure Queue Storage integration. The `Aspire.Azure.Storage.Queues` library is used to register a in the DI container for connecting to Azure Queue Storage. It also enables corresponding health checks, logging and telemetry. ## Get started -To get started with the .NET Aspire Azure Queue Storage component, install the [Aspire.Azure.Storage.Queues](https://www.nuget.org/packages/Aspire.Azure.Storage.Queues) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Queue Storage integration, install the [Aspire.Azure.Storage.Queues](https://www.nuget.org/packages/Aspire.Azure.Storage.Queues) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Queue Storage client. ### [.NET CLI](#tab/dotnet-cli) @@ -32,7 +32,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a `QueueServiceClient` for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension to register a `QueueServiceClient` for use via the dependency injection container. ```csharp builder.AddAzureQueueClient("queue"); @@ -120,11 +120,11 @@ Alternatively, an [Azure Storage connection string](/azure/storage/common/storag ## Configuration -The .NET Aspire Azure Queue Storage component provides multiple options to configure the `QueueServiceClient` based on the requirements and conventions of your project. +The .NET Aspire Azure Queue Storage integration provides multiple options to configure the `QueueServiceClient` based on the requirements and conventions of your project. ### Use configuration providers -The .NET Aspire Azure Queue Storage component supports . It loads the and from configuration by using the `Aspire:Azure:Storage:Queues` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: +The .NET Aspire Azure Queue Storage integration supports . It loads the and from configuration by using the `Aspire:Azure:Storage:Queues` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options: ```json { @@ -167,34 +167,34 @@ builder.AddAzureQueueClient( options.Diagnostics.ApplicationId = "myapp")); ``` -[!INCLUDE [component-health-checks](../includes/component-health-checks.md)] +[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)] -The .NET Aspire Azure Queue Storage component handles the following: +The .NET Aspire Azure Queue Storage integration handles the following: - Adds the `AzureQueueStorageHealthCheck` health check, which attempts to connect to and query the storage queue - Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic -[!INCLUDE [component-observability-and-telemetry](../includes/component-observability-and-telemetry.md)] +[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)] ### Logging -The .NET Aspire Azure Queue Storage component uses the following log categories: +The .NET Aspire Azure Queue Storage integration uses the following log categories: - `Azure.Core` - `Azure.Identity` ### Tracing -The .NET Aspire Azure Queue Storage component will emit the following tracing activities using OpenTelemetry: +The .NET Aspire Azure Queue Storage integration will emit the following tracing activities using OpenTelemetry: - "Azure.Storage.Queues.QueueClient" ### Metrics -The .NET Aspire Azure Queue Storage component currently does not support metrics by default due to limitations with the Azure SDK. +The .NET Aspire Azure Queue Storage integration currently does not support metrics by default due to limitations with the Azure SDK. ## See also - [Azure Queues Storage docs](/azure/storage/queues/) -- [.NET Aspire components](../fundamentals/components-overview.md) +- [.NET Aspire integrations](../fundamentals/integrations-overview.md) - [.NET Aspire GitHub repo](https://github.com/dotnet/aspire) diff --git a/docs/storage/azure-storage-tables-component.md b/docs/storage/azure-storage-tables-integration.md similarity index 73% rename from docs/storage/azure-storage-tables-component.md rename to docs/storage/azure-storage-tables-integration.md index 34e1d647b1..5fad876a0b 100644 --- a/docs/storage/azure-storage-tables-component.md +++ b/docs/storage/azure-storage-tables-integration.md @@ -1,13 +1,13 @@ --- -title: .NET Aspire Azure Data Tables component -description: This article describes the .NET Aspire Azure Data Tables component features and capabilities. -ms.date: 07/17/2024 +title: .NET Aspire Azure Data Tables integration +description: This article describes the .NET Aspire Azure Data Tables integration features and capabilities. +ms.date: 08/12/2024 ms.topic: how-to --- -# .NET Aspire Azure Data Tables component +# .NET Aspire Azure Data Tables integration -In this article, you learn how to use the .NET Aspire Azure Data Tables component. The `Aspire.Azure.Data.Tables` library is used to: +In this article, you learn how to use the .NET Aspire Azure Data Tables integration. The `Aspire.Azure.Data.Tables` library is used to: - Registers a as a singleton in the DI container for connecting to Azure Table storage. - Enables corresponding health checks, logging and telemetry. @@ -19,7 +19,7 @@ In this article, you learn how to use the .NET Aspire Azure Data Tables componen ## Get started -To get started with the .NET Aspire Azure Data Tables component, install the [Aspire.Azure.Data.Tables](https://www.nuget.org/packages/Aspire.Azure.Data.Tables) NuGet package in the consuming client project. +To get started with the .NET Aspire Azure Data Tables integration, install the [Aspire.Azure.Data.Tables](https://www.nuget.org/packages/Aspire.Azure.Data.Tables) NuGet package in the client-consuming project, i.e., the project for the application that uses the Azure Data Tables client. ### [.NET CLI](#tab/dotnet-cli) @@ -40,7 +40,7 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac ## Example usage -In the _:::no-loc text="Program.cs":::_ file of your component-consuming project, call the extension to register a `TableServiceClient` for use via the dependency injection container. +In the _:::no-loc text="Program.cs":::_ file of your integration-consuming project, call the extension to register a `TableServiceClient` for use via the dependency injection container. ```csharp builder.AddAzureTableClient("tables"); @@ -74,7 +74,7 @@ dotnet add package Aspire.Hosting.Azure.Storage --- -In your app host project, register the Azure Table Storage component and consume the service using the following methods: +In your app host project, register the Azure Table Storage integration and consume the service using the following methods: ```csharp var builder = DistributedApplication.CreateBuilder(args); @@ -90,11 +90,11 @@ For more information, see . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Azure:Data:Tables` key. +The .NET Aspire Azure Table Storage integration supports . It loads the from _:::no-loc text="appsettings.json":::_ or other configuration files using `Aspire:Azure:Data:Tables` key. ```json { @@ -178,34 +178,34 @@ The following configurable options are exposed through the "InvalidOperationException: ConnectionString is missing." diff --git a/docs/whats-new/dotnet-docs-aspire-mod0.md b/docs/whats-new/dotnet-docs-aspire-mod0.md index 0c5f6d2dd3..943ed0ba87 100644 --- a/docs/whats-new/dotnet-docs-aspire-mod0.md +++ b/docs/whats-new/dotnet-docs-aspire-mod0.md @@ -30,7 +30,7 @@ Welcome to what's new in the .NET Aspire docs for June 2024. This article lists ### Updated articles - [.NET Aspire and launch profiles](../fundamentals/launch-profiles.md) - purge app except app host -- [.NET Aspire components overview](../fundamentals/components-overview.md) - purge app except app host +- [.NET Aspire integrations overview](../fundamentals/integrations-overview.md) - purge app except app host - [.NET Aspire dashboard overview](../fundamentals/dashboard/overview.md) - purge app except app host - [.NET Aspire orchestration overview](../fundamentals/app-host-overview.md) - purge app except app host @@ -52,10 +52,10 @@ Welcome to what's new in the .NET Aspire docs for June 2024. This article lists ### Updated articles -- [.NET Aspire Azure Blob Storage component](../storage/azure-storage-blobs-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire Azure Data Tables component](../storage/azure-storage-tables-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire Azure Queue Storage component](../storage/azure-storage-queues-component.md) - Add missing code, and add flexible PostgreSQL -- [Tutorial: Connect an ASP.NET Core app to .NET Aspire storage components](../storage/azure-storage-components.md) +- [.NET Aspire Azure Blob Storage integration](../storage/azure-storage-blobs-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire Azure Data Tables integration](../storage/azure-storage-tables-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire Azure Queue Storage integration](../storage/azure-storage-queues-integration.md) - Add missing code, and add flexible PostgreSQL +- [Tutorial: Connect an ASP.NET Core app to .NET Aspire storage integrations](../storage/azure-storage-integrations.md) - purge app except app host - Minor clean up @@ -63,51 +63,51 @@ Welcome to what's new in the .NET Aspire docs for June 2024. This article lists ### Updated articles -- [.NET Aspire Azure Cosmos DB component](../database/azure-cosmos-db-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire Microsoft Entity Framework Core Cosmos DB component](../database/azure-cosmos-db-entity-framework-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire MongoDB database component](../database/mongodb-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire MySQL database component](../database/mysql-component.md) +- [.NET Aspire Azure Cosmos DB integration](../database/azure-cosmos-db-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire Microsoft Entity Framework Core Cosmos DB integration](../database/azure-cosmos-db-entity-framework-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire MongoDB database integration](../database/mongodb-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire MySQL database integration](../database/mysql-integration.md) - Add missing code, and add flexible PostgreSQL - Adds parameters to app host usage examples, where applicable -- [.NET Aspire Oracle Entity Framework Component](../database/oracle-entity-framework-component.md) +- [.NET Aspire Oracle Entity Framework Component](../database/oracle-entity-framework-integration.md) - Add missing code, and add flexible PostgreSQL - Adds parameters to app host usage examples, where applicable -- [.NET Aspire Pomelo MySQL Entity Framework Component](../database/mysql-entity-framework-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire PostgreSQL component](../database/postgresql-component.md) +- [.NET Aspire Pomelo MySQL Entity Framework Component](../database/mysql-entity-framework-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire PostgreSQL integration](../database/postgresql-integration.md) - Add missing code, and add flexible PostgreSQL - Adds parameters to app host usage examples, where applicable -- [.NET Aspire PostgreSQL Entity Framework Core component](../database/postgresql-entity-framework-component.md) +- [.NET Aspire PostgreSQL Entity Framework Core integration](../database/postgresql-entity-framework-integration.md) - Add missing code, and add flexible PostgreSQL - Adds parameters to app host usage examples, where applicable -- [.NET Aspire Qdrant component](../database/qdrant-component.md) +- [.NET Aspire Qdrant integration](../database/qdrant-integration.md) - Add missing code, and add flexible PostgreSQL - Adds parameters to app host usage examples, where applicable -- [.NET Aspire SQL Server component](../database/sql-server-component.md) +- [.NET Aspire SQL Server integration](../database/sql-server-integration.md) - Add missing code, and add flexible PostgreSQL - Adds parameters to app host usage examples, where applicable -- [.NET Aspire SqlServer Entity Framework Core component](../database/sql-server-entity-framework-component.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire SqlServer Entity Framework Core integration](../database/sql-server-entity-framework-integration.md) - Add missing code, and add flexible PostgreSQL - [Apply Entity Framework Core migrations in .NET Aspire](../database/ef-core-migrations.md) - purge app except app host - [Seed data in a database using .NET Aspire](../database/seed-database-data.md) - purge app except app host -- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-components.md) +- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-integrations.md) - Fix code and content. - purge app except app host -- [Tutorial: Deploy a .NET Aspire project with a SQL Server Database to Azure](../database/sql-server-component-deployment.md) - purge app except app host +- [Tutorial: Deploy a .NET Aspire project with a SQL Server Database to Azure](../database/sql-server-integration-deployment.md) - purge app except app host ## Messaging ### Updated articles -- [.NET Aspire Apache Kafka component](../messaging/kafka-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire Azure Event Hubs component](../messaging/azure-event-hubs-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire Azure Service Bus component](../messaging/azure-service-bus-component.md) +- [.NET Aspire Apache Kafka integration](../messaging/kafka-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire Azure Event Hubs integration](../messaging/azure-event-hubs-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire Azure Service Bus integration](../messaging/azure-service-bus-integration.md) - Add missing code, and add flexible PostgreSQL - Correct Service Bus tracing details. -- [.NET Aspire NATS component](../messaging/nats-component.md) - Add missing code, and add flexible PostgreSQL -- [.NET Aspire RabbitMQ component](../messaging/rabbitmq-client-component.md) +- [.NET Aspire NATS integration](../messaging/nats-integration.md) - Add missing code, and add flexible PostgreSQL +- [.NET Aspire RabbitMQ integration](../messaging/rabbitmq-client-integration.md) - Fix RabbitMQ docs usage of AddRabbitMQ for connection string based connection - Add missing code, and add flexible PostgreSQL - Adds parameters to app host usage examples, where applicable -- [Tutorial: Use .NET Aspire messaging components in ASP.NET Core](../messaging/messaging-components.md) +- [Tutorial: Use .NET Aspire messaging integrations in ASP.NET Core](../messaging/messaging-integrations.md) - purge app except app host - Add VS Code bits and fix errors @@ -119,23 +119,23 @@ Welcome to what's new in the .NET Aspire docs for June 2024. This article lists ### Updated articles -- [.NET Aspire Stack Exchange Redis component](../caching/stackexchange-redis-component.md) +- [.NET Aspire Stack Exchange Redis integration](../caching/stackexchange-redis-integration.md) - Add an overview of Stack Exchange Redis caching - Add missing code, and add flexible PostgreSQL -- [.NET Aspire Stack Exchange Redis distributed caching component](../caching/stackexchange-redis-distributed-caching-component.md) +- [.NET Aspire Stack Exchange Redis distributed caching integration](../caching/stackexchange-redis-distributed-caching-integration.md) - Matched the App host Redis reference to the consuming project - Add an overview of Stack Exchange Redis caching - Add missing code, and add flexible PostgreSQL -- [.NET Aspire Stack Exchange Redis output caching component](../caching/stackexchange-redis-output-caching-component.md) +- [.NET Aspire Stack Exchange Redis output caching integration](../caching/stackexchange-redis-output-caching-integration.md) - Add an overview of Stack Exchange Redis caching - Add missing code, and add flexible PostgreSQL - [Stack Exchange Redis caching overview](../caching/stackexchange-redis-caching-overview.md) - purge app except app host - Add an overview of Stack Exchange Redis caching -- [Tutorial: Deploy a .NET Aspire project with a Redis Cache to Azure](../caching/caching-components-deployment.md) +- [Tutorial: Deploy a .NET Aspire project with a Redis Cache to Azure](../caching/caching-integrations-deployment.md) - purge app except app host - Add an overview of Stack Exchange Redis caching -- [Tutorial: Implement caching with .NET Aspire components](../caching/caching-components.md) +- [Tutorial: Implement caching with .NET Aspire integrations](../caching/caching-integrations.md) - Add an overview of Stack Exchange Redis caching - Update and correct hosting bits. @@ -143,7 +143,7 @@ Welcome to what's new in the .NET Aspire docs for June 2024. This article lists ### Updated articles -- [.NET Aspire Azure Key Vault component](../security/azure-security-key-vault-component.md) +- [.NET Aspire Azure Key Vault integration](../security/azure-security-key-vault-integration.md) - Add missing code, and add flexible PostgreSQL - Update KeyVault usage documentation diff --git a/docs/whats-new/dotnet-docs-aspire-mod1.md b/docs/whats-new/dotnet-docs-aspire-mod1.md index c71659f5a2..13feb8605f 100644 --- a/docs/whats-new/dotnet-docs-aspire-mod1.md +++ b/docs/whats-new/dotnet-docs-aspire-mod1.md @@ -20,7 +20,7 @@ Welcome to what's new in the .NET Aspire docs for July 2024. This article lists ### Updated articles - [.NET Aspire and launch profiles](../fundamentals/launch-profiles.md) - Networking refinements -- [.NET Aspire components overview](../fundamentals/components-overview.md) - Fix typo +- [.NET Aspire integrations overview](../fundamentals/integrations-overview.md) - Fix typo - [.NET Aspire inner-loop networking overview](../fundamentals/networking-overview.md) - Networking refinements - Add a few more bits about the callback overload. @@ -37,40 +37,40 @@ Welcome to what's new in the .NET Aspire docs for July 2024. This article lists ### Updated articles -- [.NET Aspire Azure Blob Storage component](../storage/azure-storage-blobs-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire Azure Data Tables component](../storage/azure-storage-tables-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire Azure Queue Storage component](../storage/azure-storage-queues-component.md) - Explicitly define each target project install for NuGet +- [.NET Aspire Azure Blob Storage integration](../storage/azure-storage-blobs-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire Azure Data Tables integration](../storage/azure-storage-tables-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire Azure Queue Storage integration](../storage/azure-storage-queues-integration.md) - Explicitly define each target project install for NuGet ## Database ### Updated articles -- [.NET Aspire Azure Cosmos DB component](../database/azure-cosmos-db-component.md) +- [.NET Aspire Azure Cosmos DB integration](../database/azure-cosmos-db-integration.md) - Explicitly define each target project install for NuGet - Add missing connection string sections. -- [.NET Aspire Microsoft Entity Framework Core Cosmos DB component](../database/azure-cosmos-db-entity-framework-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire MongoDB database component](../database/mongodb-component.md) +- [.NET Aspire Microsoft Entity Framework Core Cosmos DB integration](../database/azure-cosmos-db-entity-framework-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire MongoDB database integration](../database/mongodb-integration.md) - Fix code section closing tag - Updated line that was changed incorrectly - Update to MongoDB Component Doc - Explicitly define each target project install for NuGet -- [.NET Aspire Oracle Entity Framework Component](../database/oracle-entity-framework-component.md) +- [.NET Aspire Oracle Entity Framework Component](../database/oracle-entity-framework-integration.md) - Explicitly define each target project install for NuGet - Add missing connection string sections. -- [.NET Aspire Pomelo MySQL Entity Framework Component](../database/mysql-entity-framework-component.md) +- [.NET Aspire Pomelo MySQL Entity Framework Component](../database/mysql-entity-framework-integration.md) - Explicitly define each target project install for NuGet - Add missing connection string sections. -- [.NET Aspire PostgreSQL component](../database/postgresql-component.md) +- [.NET Aspire PostgreSQL integration](../database/postgresql-integration.md) - Explicitly define each target project install for NuGet - Add missing connection string sections. -- [.NET Aspire PostgreSQL Entity Framework Core component](../database/postgresql-entity-framework-component.md) +- [.NET Aspire PostgreSQL Entity Framework Core integration](../database/postgresql-entity-framework-integration.md) - Explicitly define each target project install for NuGet - Add missing connection string sections. -- [.NET Aspire Qdrant component](../database/qdrant-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire SQL Server component](../database/sql-server-component.md) +- [.NET Aspire Qdrant integration](../database/qdrant-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire SQL Server integration](../database/sql-server-integration.md) - Explicitly define each target project install for NuGet - Add missing connection string sections. -- [.NET Aspire SqlServer Entity Framework Core component](../database/sql-server-entity-framework-component.md) +- [.NET Aspire SqlServer Entity Framework Core integration](../database/sql-server-entity-framework-integration.md) - Explicitly define each target project install for NuGet - Add missing connection string sections. - [Seed data in a database using .NET Aspire](../database/seed-database-data.md) - Adjust code snippets @@ -79,29 +79,29 @@ Welcome to what's new in the .NET Aspire docs for July 2024. This article lists ### Updated articles -- [.NET Aspire Apache Kafka component](../messaging/kafka-component.md) +- [.NET Aspire Apache Kafka integration](../messaging/kafka-integration.md) - Kafka UI mention. - Explicitly define each target project install for NuGet -- [.NET Aspire Azure Event Hubs component](../messaging/azure-event-hubs-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire Azure Service Bus component](../messaging/azure-service-bus-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire NATS component](../messaging/nats-component.md) +- [.NET Aspire Azure Event Hubs integration](../messaging/azure-event-hubs-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire Azure Service Bus integration](../messaging/azure-service-bus-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire NATS integration](../messaging/nats-integration.md) - Fix nats link - Explicitly define each target project install for NuGet -- [.NET Aspire RabbitMQ component](../messaging/rabbitmq-client-component.md) - Explicitly define each target project install for NuGet +- [.NET Aspire RabbitMQ integration](../messaging/rabbitmq-client-integration.md) - Explicitly define each target project install for NuGet ## Caching ### Updated articles -- [.NET Aspire Stack Exchange Redis component](../caching/stackexchange-redis-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire Stack Exchange Redis distributed caching component](../caching/stackexchange-redis-distributed-caching-component.md) - Explicitly define each target project install for NuGet -- [.NET Aspire Stack Exchange Redis output caching component](../caching/stackexchange-redis-output-caching-component.md) - Explicitly define each target project install for NuGet +- [.NET Aspire Stack Exchange Redis integration](../caching/stackexchange-redis-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire Stack Exchange Redis distributed caching integration](../caching/stackexchange-redis-distributed-caching-integration.md) - Explicitly define each target project install for NuGet +- [.NET Aspire Stack Exchange Redis output caching integration](../caching/stackexchange-redis-output-caching-integration.md) - Explicitly define each target project install for NuGet ## Security ### Updated articles -- [.NET Aspire Azure Key Vault component](../security/azure-security-key-vault-component.md) +- [.NET Aspire Azure Key Vault integration](../security/azure-security-key-vault-integration.md) - Address UUF issues for Azure Key Vault content - Explicitly define each target project install for NuGet diff --git a/docs/whats-new/dotnet-docs-aspire-mod2.md b/docs/whats-new/dotnet-docs-aspire-mod2.md index 23076ebd74..f00004a5c6 100644 --- a/docs/whats-new/dotnet-docs-aspire-mod2.md +++ b/docs/whats-new/dotnet-docs-aspire-mod2.md @@ -29,12 +29,12 @@ Welcome to what's new in the .NET Aspire docs for May 2024. This article lists s ### Updated articles -- [.NET Aspire components overview](../fundamentals/components-overview.md) +- [.NET Aspire integrations overview](../fundamentals/integrations-overview.md) - Help more clearly define local dev. - - Add Qdrant component + - Add Qdrant integration - Add icons - Address all issues in #720 - - Add components entry for Azure Search Documents + - Add integrations entry for Azure Search Documents - Placeholder for .NET Aspire preview 7. - [.NET Aspire dashboard overview](../fundamentals/dashboard/overview.md) - Updates to .NET Aspire dashboard content @@ -71,69 +71,69 @@ Welcome to what's new in the .NET Aspire docs for May 2024. This article lists s ### Updated articles -- [.NET Aspire Azure Blob Storage component](../storage/azure-storage-blobs-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Azure Data Tables component](../storage/azure-storage-tables-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Azure Queue Storage component](../storage/azure-storage-queues-component.md) - Placeholder for .NET Aspire preview 7. -- [Tutorial: Connect an ASP.NET Core app to .NET Aspire storage components](../storage/azure-storage-components.md) - Revise tutorials to use Aspire Starter App in VS (to match VSCode directions) +- [.NET Aspire Azure Blob Storage integration](../storage/azure-storage-blobs-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire Azure Data Tables integration](../storage/azure-storage-tables-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire Azure Queue Storage integration](../storage/azure-storage-queues-integration.md) - Placeholder for .NET Aspire preview 7. +- [Tutorial: Connect an ASP.NET Core app to .NET Aspire storage integrations](../storage/azure-storage-integrations.md) - Revise tutorials to use Aspire Starter App in VS (to match VSCode directions) ## Database ### New articles -- [.NET Aspire Qdrant component](../database/qdrant-component.md) +- [.NET Aspire Qdrant integration](../database/qdrant-integration.md) - [Apply Entity Framework Core migrations in .NET Aspire](../database/ef-core-migrations.md) ### Updated articles -- [.NET Aspire Azure Cosmos DB component](../database/azure-cosmos-db-component.md) +- [.NET Aspire Azure Cosmos DB integration](../database/azure-cosmos-db-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Microsoft Entity Framework Core Cosmos DB component](../database/azure-cosmos-db-entity-framework-component.md) +- [.NET Aspire Microsoft Entity Framework Core Cosmos DB integration](../database/azure-cosmos-db-entity-framework-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire MongoDB database component](../database/mongodb-component.md) +- [.NET Aspire MongoDB database integration](../database/mongodb-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire MySQL database component](../database/mysql-component.md) +- [.NET Aspire MySQL database integration](../database/mysql-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Oracle Entity Framework Component](../database/oracle-entity-framework-component.md) +- [.NET Aspire Oracle Entity Framework Component](../database/oracle-entity-framework-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Pomelo MySQL Entity Framework Component](../database/mysql-entity-framework-component.md) +- [.NET Aspire Pomelo MySQL Entity Framework Component](../database/mysql-entity-framework-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire PostgreSQL component](../database/postgresql-component.md) +- [.NET Aspire PostgreSQL integration](../database/postgresql-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire PostgreSQL Entity Framework Core component](../database/postgresql-entity-framework-component.md) +- [.NET Aspire PostgreSQL Entity Framework Core integration](../database/postgresql-entity-framework-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Qdrant component](../database/qdrant-component.md) +- [.NET Aspire Qdrant integration](../database/qdrant-integration.md) - Fix wrong nuget package in installation documentation. - - Add Qdrant component -- [.NET Aspire SQL Server component](../database/sql-server-component.md) + - Add Qdrant integration +- [.NET Aspire SQL Server integration](../database/sql-server-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. -- [.NET Aspire SqlServer Entity Framework Core component](../database/sql-server-entity-framework-component.md) +- [.NET Aspire SqlServer Entity Framework Core integration](../database/sql-server-entity-framework-integration.md) - Update Database Clarity - Placeholder for .NET Aspire preview 7. - [Apply Entity Framework Core migrations in .NET Aspire](../database/ef-core-migrations.md) - Fix bad link - Fixes/Updates to documentation - New migrations doc -- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-components.md) - Update SQL Server components content +- [Tutorial: Connect an ASP.NET Core app to SQL Server using .NET Aspire and Entity Framework Core](../database/sql-server-integrations.md) - Update SQL Server integrations content ## Messaging ### Updated articles -- [.NET Aspire Apache Kafka component](../messaging/kafka-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Azure Event Hubs component](../messaging/azure-event-hubs-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Azure Service Bus component](../messaging/azure-service-bus-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire NATS component](../messaging/nats-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire RabbitMQ component](../messaging/rabbitmq-client-component.md) - Placeholder for .NET Aspire preview 7. -- [Tutorial: Use .NET Aspire messaging components in ASP.NET Core](../messaging/messaging-components.md) +- [.NET Aspire Apache Kafka integration](../messaging/kafka-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire Azure Event Hubs integration](../messaging/azure-event-hubs-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire Azure Service Bus integration](../messaging/azure-service-bus-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire NATS integration](../messaging/nats-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire RabbitMQ integration](../messaging/rabbitmq-client-integration.md) - Placeholder for .NET Aspire preview 7. +- [Tutorial: Use .NET Aspire messaging integrations in ASP.NET Core](../messaging/messaging-integrations.md) - Fixes/Updates to documentation - Revise tutorials to use Aspire Starter App in VS (to match VSCode directions) @@ -141,20 +141,20 @@ Welcome to what's new in the .NET Aspire docs for May 2024. This article lists s ### New articles -- [Tutorial: Deploy a .NET Aspire project with a Redis Cache to Azure](../caching/caching-components-deployment.md) +- [Tutorial: Deploy a .NET Aspire project with a Redis Cache to Azure](../caching/caching-integrations-deployment.md) ### Updated articles -- [.NET Aspire Stack Exchange Redis component](../caching/stackexchange-redis-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Stack Exchange Redis distributed caching component](../caching/stackexchange-redis-distributed-caching-component.md) - Placeholder for .NET Aspire preview 7. -- [.NET Aspire Stack Exchange Redis output caching component](../caching/stackexchange-redis-output-caching-component.md) - Placeholder for .NET Aspire preview 7. -- [Tutorial: Implement caching with .NET Aspire components](../caching/caching-components.md) - Caching tutorial fixes +- [.NET Aspire Stack Exchange Redis integration](../caching/stackexchange-redis-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire Stack Exchange Redis distributed caching integration](../caching/stackexchange-redis-distributed-caching-integration.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire Stack Exchange Redis output caching integration](../caching/stackexchange-redis-output-caching-integration.md) - Placeholder for .NET Aspire preview 7. +- [Tutorial: Implement caching with .NET Aspire integrations](../caching/caching-integrations.md) - Caching tutorial fixes ## Security ### Updated articles -- [.NET Aspire Azure Key Vault component](../security/azure-security-key-vault-component.md) - Placeholder for .NET Aspire preview 7. +- [.NET Aspire Azure Key Vault integration](../security/azure-security-key-vault-integration.md) - Placeholder for .NET Aspire preview 7. ## Deployment From 00d2991a5809bce17efdf4d18ea8d38e6efbf375 Mon Sep 17 00:00:00 2001 From: David Pine Date: Thu, 22 Aug 2024 12:45:39 -0500 Subject: [PATCH 02/10] Add milvus content for release 8.2. Fixes #1475 (#1554) --- docfx.json | 1 + docs/database/milvus-integration.md | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/docfx.json b/docfx.json index 3951305836..bf71ecc36d 100644 --- a/docfx.json +++ b/docfx.json @@ -167,6 +167,7 @@ "Linux", "localhost", "MailDev", + "Milvus", "MongoDB", "MySQL", "NATS", diff --git a/docs/database/milvus-integration.md b/docs/database/milvus-integration.md index 1b1ea076fe..c7ccc701e7 100644 --- a/docs/database/milvus-integration.md +++ b/docs/database/milvus-integration.md @@ -2,7 +2,7 @@ title: .NET Aspire Milvus database integration description: This article describes the .NET Aspire Milvus database integration. ms.topic: how-to -ms.date: 08/12/2024 +ms.date: 08/22/2024 --- # .NET Aspire Milvus database integration @@ -76,6 +76,29 @@ The `WithReference` method configures a connection in the `MyService` project na builder.AddMilvusClient("milvus"); ``` +Milvus supports configuration-based (environment variable `COMMON_SECURITY_DEFAULTROOTPASSWORD`) default passwords. The default user is `root` and the default password is `Milvus`. To change the default password in the container, pass an `apiKey` parameter when calling the `AddMilvus` hosting API: + +```csharp +var apiKey = builder.AddParameter("apiKey"); + +var milvus = builder.AddMilvus("milvus", apiKey); + +var myService = builder.AddProject() + .WithReference(milvus); +``` + +The preceding code gets a parameter to pass to the `AddMilvus` API, and internally assigns the parameter to the `COMMON_SECURITY_DEFAULTROOTPASSWORD` environment variable of the Milvus container. The `apiKey` parameter is usually specified as a _user secret_: + +```json +{ + "Parameters": { + "apiKey": "Non-default P@ssw0rd" + } +} +``` + +For more information, see [External parameters](../fundamentals/external-parameters.md). + ## Configuration The .NET Aspire Milvus Client integration provides multiple options to configure the server connection based on the requirements and conventions of your project. From f76db40600371c2f5590dffd5784273599acc990 Mon Sep 17 00:00:00 2001 From: David Pine Date: Fri, 23 Aug 2024 14:44:09 -0500 Subject: [PATCH 03/10] Added PgWeb details. Fixes #1472 (#1555) --- docs/database/includes/postgresql-pgweb.md | 13 +++++++++++++ .../postgresql-entity-framework-integration.md | 4 +++- docs/database/postgresql-integration.md | 4 +++- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 docs/database/includes/postgresql-pgweb.md diff --git a/docs/database/includes/postgresql-pgweb.md b/docs/database/includes/postgresql-pgweb.md new file mode 100644 index 0000000000..e973371939 --- /dev/null +++ b/docs/database/includes/postgresql-pgweb.md @@ -0,0 +1,13 @@ +When adding PostgreSQL resources to the `builder` with the `AddPostgres` method, you can chain calls to `WithPgWeb` to add the [**sosedoff/pgweb**](https://sosedoff.github.io/pgweb/) container. This container is a cross-platform client for PostgreSQL databases, that serves a web-based admin dashboard. Consider the following example: + +```csharp +var postgres = builder.AddPostgres("postgres") + .WithPgWeb(); + +var postgresdb = postgres.AddDatabase("postgresdb"); + +var exampleProject = builder.AddProject() + .WithReference(postgresdb); +``` + +All registered `PostgresDatabaseResource` instances are used to create a configuration file per instance, and each config is bound to the **pgweb** container bookmark directory. For more information, see [PgWeb docs: Server connection bookmarks](https://github.com/sosedoff/pgweb/wiki/Server-Connection-Bookmarks). diff --git a/docs/database/postgresql-entity-framework-integration.md b/docs/database/postgresql-entity-framework-integration.md index cf8d9bb63d..d21a2353f9 100644 --- a/docs/database/postgresql-entity-framework-integration.md +++ b/docs/database/postgresql-entity-framework-integration.md @@ -2,7 +2,7 @@ title: .NET Aspire PostgreSQL Entity Framework Core integration description: This article describes the .NET Aspire PostgreSQL Entity Framework Core integration. ms.topic: how-to -ms.date: 08/12/2024 +ms.date: 08/22/2024 --- # .NET Aspire PostgreSQL Entity Framework Core integration @@ -76,6 +76,8 @@ var myService = builder.AddProject() [!INCLUDE [postgresql-explicit-username-password](includes/postgresql-explicit-username-password.md)] +[!INCLUDE [postgresql-pgweb](includes/postgresql-pgweb.md)] + [!INCLUDE [postgresql-flexible-server](includes/postgresql-flexible-server.md)] ## Configuration diff --git a/docs/database/postgresql-integration.md b/docs/database/postgresql-integration.md index 08b799b1c2..9473d1d23d 100644 --- a/docs/database/postgresql-integration.md +++ b/docs/database/postgresql-integration.md @@ -1,7 +1,7 @@ --- title: .NET Aspire PostgreSQL integration description: This article describes the .NET Aspire PostgreSQL integration. -ms.date: 08/12/2024 +ms.date: 08/22/2024 ms.topic: how-to --- @@ -62,6 +62,8 @@ var exampleProject = builder.AddProject() [!INCLUDE [postgresql-explicit-username-password](includes/postgresql-explicit-username-password.md)] +[!INCLUDE [postgresql-pgweb](includes/postgresql-pgweb.md)] + [!INCLUDE [postgresql-flexible-server](includes/postgresql-flexible-server.md)] ## Configuration From 21e4dcf8670d1ed8d223d5b93598dfb2087795da Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 26 Aug 2024 09:58:32 -0500 Subject: [PATCH 04/10] Add a bit more clarity around integrations --- docs/fundamentals/integrations-overview.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/fundamentals/integrations-overview.md b/docs/fundamentals/integrations-overview.md index 09d3d65e3c..0ea68a9ca4 100644 --- a/docs/fundamentals/integrations-overview.md +++ b/docs/fundamentals/integrations-overview.md @@ -1,19 +1,25 @@ --- title: .NET Aspire integrations overview description: Explore the fundamental concepts of .NET Aspire integrations and learn how to integrate them into your apps. -ms.date: 08/12/2024 +ms.date: 08/26/2024 ms.topic: conceptual --- # .NET Aspire integrations overview -.NET Aspire integrations are a curated suite of NuGet packages specifically selected to facilitate the integration of cloud-native applications with prominent services and platforms, including but not limited to Redis and PostgreSQL. Each integration furnishes essential cloud-native functionalities through either automatic provisioning or standardized configuration patterns. .NET Aspire integrations can be used without an app host (orchestrator) project, but they're designed to work best with the [.NET Aspire app host](app-host-overview.md). - -.NET Aspire integrations should not be confused with .NET Aspire hosting packages, as they serve different purposes. Hosting packages are used to model and configure various resources in a .NET Aspire project, while integrations are used to map configuration to various client libraries. +.NET Aspire integrations are a curated suite of NuGet packages specifically selected to facilitate the integration of cloud-native applications with prominent services and platforms, including but not limited to Redis and PostgreSQL. Each integration furnishes essential cloud-native functionalities through either automatic provisioning or standardized configuration patterns. > [!TIP] > Always strive to use the latest version of .NET Aspire integrations to take advantage of the latest features, improvements, and security updates. +_Integrations are two-fold_: + +- **Resource integrations**: some integrations model resources that represent various services and platforms, such as caches, databases, logging, storage, and messaging systems. Resource integrations expose APIs that extend the interface. + +- **Client integrations**: provide a means of configuring existing libraries to connect to resource-backed integrations. Client integrations expose APIs that extend the interface. + +While .NET Aspire _client integrations_ can be used without an app host (orchestrator) project, they're designed to work best with the [.NET Aspire app host](app-host-overview.md). Each integration is documented to provide details for installing, configuring, and using the integration in your app. + ## Available integrations The following table lists the .NET Aspire integrations currently available for use: From 5fded2fab1c1954eb816d847364ccc2300ce02f0 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 26 Aug 2024 10:02:30 -0500 Subject: [PATCH 05/10] Rephrase another component ref --- docs/fundamentals/integrations-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/integrations-overview.md b/docs/fundamentals/integrations-overview.md index 0ea68a9ca4..6bc557884b 100644 --- a/docs/fundamentals/integrations-overview.md +++ b/docs/fundamentals/integrations-overview.md @@ -90,7 +90,7 @@ For more information on working with .NET Aspire integrations in Visual Studio, The preceding code adds the `NpgsqlDataSource` to the dependency injection container with the connection name of `"customers"`. The connection name is later used by the orchestrator project, when expressing resource dependencies. > [!TIP] - > Components that are designed to connect to Azure services also support passwordless authentication and authorization using [Azure RBAC](/azure/role-based-access-control/overview), which is the recommended approach for production apps. + > Integrations that are designed to connect to Azure services also support passwordless authentication and authorization using [Azure RBAC](/azure/role-based-access-control/overview), which is the recommended approach for production apps. 1. In your app host project (the project with the _*.AppHost_ suffix), add a reference to the worker service project. If you're using Visual Studio, you can use the [**Add .NET Aspire Orchestrator Support**](setup-tooling.md#add-orchestration-projects) project context menu item to add the reference automatically. The following code snippet shows the project reference of the _AspireApp.AppHost.csproj_: From de85ff0779f8a5ae3eb1f910a21da2fcafb9c0ab Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 26 Aug 2024 10:05:48 -0500 Subject: [PATCH 06/10] Add details for `EventHubBufferedProducerClient` (#1559) * Add details for EventHubBufferedProducerClient. Fixes #1558. * Reformat as list, and add xref * Add a bit more detail about the relationship between the options and settings classes. * Added more heading text --- .../messaging/azure-event-hubs-integration.md | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/docs/messaging/azure-event-hubs-integration.md b/docs/messaging/azure-event-hubs-integration.md index ebf148990a..0a451eb3be 100644 --- a/docs/messaging/azure-event-hubs-integration.md +++ b/docs/messaging/azure-event-hubs-integration.md @@ -2,12 +2,20 @@ title: .NET Aspire Azure Event Hubs integration description: This article describes the .NET Aspire Azure Event Hubs integration features and capabilities. ms.topic: how-to -ms.date: 08/12/2024 +ms.date: 08/26/2024 --- # .NET Aspire Azure Event Hubs integration -In this article, you learn how to use the .NET Aspire Azure Event Hubs integration. The `Aspire.Azure.Messaging.EventHubs` library offers options for registering an , an , an or a in the DI container for connecting to [Azure Event Hubs](/azure/event-hubs). +In this article, you learn how to use the .NET Aspire Azure Event Hubs integration. The `Aspire.Azure.Messaging.EventHubs` library offers options for registering the following types: + +- +- +- +- +- + +These type are registered in the DI container for connecting to [Azure Event Hubs](/azure/event-hubs). ## Prerequisites @@ -39,16 +47,19 @@ For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-pac The following clients are supported by the library, along with their corresponding options and settings classes: -| Client type | Options class | Settings class | -|--------------------------|---------------------------------|----------------------------------------------------| -| `EventHubProducerClient` | `EventHubProducerClientOptions` | `AzureMessagingEventHubsProducerSettings` | -| `EventHubConsumerClient` | `EventHubConsumerClientOptions` | `AzureMessagingEventHubsConsumerSettings` | -| `EventProcessorClient` | `EventProcessorClientOptions` | `AzureMessagingEventHubsProcessorSettings` | -| `PartitionReceiver` | `PartitionReceiverOptions` | `AzureMessagingEventHubsPartitionReceiverSettings` | +| Azure Client type | Azure Options class | .NET Aspire Settings class | +|----------------------------------|-----------------------------------------|----------------------------------------------------| +| `EventHubProducerClient` | `EventHubProducerClientOptions` | `AzureMessagingEventHubsProducerSettings` | +| `EventHubBufferedProducerClient` | `EventHubBufferedProducerClientOptions` | `AzureMessagingEventHubsBufferedProducerSettings` | +| `EventHubConsumerClient` | `EventHubConsumerClientOptions` | `AzureMessagingEventHubsConsumerSettings` | +| `EventProcessorClient` | `EventProcessorClientOptions` | `AzureMessagingEventHubsProcessorSettings` | +| `PartitionReceiver` | `PartitionReceiverOptions` | `AzureMessagingEventHubsPartitionReceiverSettings` | + +The client type are from the Azure SDK for .NET, as are the corresponding options classes. The settings classes are provided by the .NET Aspire Azure Event Hubs integration library. ## Example usage -The following example assumes that you have an Azure Event Hubs namespace and an Event Hub created and wish to configure an `EventHubProducerClient` to send events to the Event Hub. The `EventHubConsumerClient`, `EventProcessorClient`, and `PartitionReceiver`are configured in a similar manner. +The following example assumes that you have an Azure Event Hubs namespace and an Event Hub created and wish to configure an `EventHubProducerClient` to send events to the Event Hub. The `EventHubBufferedProducerClient`, `EventHubConsumerClient`, `EventProcessorClient`, and `PartitionReceiver`are configured in a similar manner. In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the `AddAzureEventHubProducerClient` extension to register a `EventHubProducerClient` for use via the dependency injection container. From 0909880b784bbdcff005be21cf66c6b44743ecf4 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 26 Aug 2024 10:36:42 -0500 Subject: [PATCH 07/10] More clarity and layout work --- docs/fundamentals/integrations-overview.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/fundamentals/integrations-overview.md b/docs/fundamentals/integrations-overview.md index 6bc557884b..bb94e214ce 100644 --- a/docs/fundamentals/integrations-overview.md +++ b/docs/fundamentals/integrations-overview.md @@ -12,11 +12,17 @@ ms.topic: conceptual > [!TIP] > Always strive to use the latest version of .NET Aspire integrations to take advantage of the latest features, improvements, and security updates. -_Integrations are two-fold_: +## Integration types -- **Resource integrations**: some integrations model resources that represent various services and platforms, such as caches, databases, logging, storage, and messaging systems. Resource integrations expose APIs that extend the interface. +There are two types of integrations available in .NET Aspire: -- **Client integrations**: provide a means of configuring existing libraries to connect to resource-backed integrations. Client integrations expose APIs that extend the interface. +- **Resource integrations**: + + Some integrations model resources that represent various services and platforms, such as caches, databases, logging, storage, and messaging systems. Resource integrations expose APIs that extend the interface. Their NuGet packages are tagged with at least the following: `aspire`, `integration`, and `hosting`. + +- **Client integrations**: + + Other integrations provide a means of configuring existing libraries to connect to resource-backed integrations. Client integrations expose APIs that extend the interface. Their NuGet packages are tagged with at least the following: `aspire`, `integration`, and `client`. While .NET Aspire _client integrations_ can be used without an app host (orchestrator) project, they're designed to work best with the [.NET Aspire app host](app-host-overview.md). Each integration is documented to provide details for installing, configuring, and using the integration in your app. From a401e0d49b1dd5402c5324941e847793a2146476 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 26 Aug 2024 12:37:06 -0500 Subject: [PATCH 08/10] More explanation around the two integration types working together --- docs/fundamentals/integrations-overview.md | 34 ++++++++++------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/docs/fundamentals/integrations-overview.md b/docs/fundamentals/integrations-overview.md index bb94e214ce..cf3ba210f9 100644 --- a/docs/fundamentals/integrations-overview.md +++ b/docs/fundamentals/integrations-overview.md @@ -7,24 +7,22 @@ ms.topic: conceptual # .NET Aspire integrations overview -.NET Aspire integrations are a curated suite of NuGet packages specifically selected to facilitate the integration of cloud-native applications with prominent services and platforms, including but not limited to Redis and PostgreSQL. Each integration furnishes essential cloud-native functionalities through either automatic provisioning or standardized configuration patterns. +.NET Aspire integrations are a curated suite of NuGet packages selected to facilitate the integration of cloud-native applications with prominent services and platforms, including but not limited to Redis and PostgreSQL. Each integration furnishes essential cloud-native functionalities through either automatic provisioning or standardized configuration patterns. > [!TIP] > Always strive to use the latest version of .NET Aspire integrations to take advantage of the latest features, improvements, and security updates. -## Integration types +## Integration responsibilities -There are two types of integrations available in .NET Aspire: +There are two sides to integrations in .NET Aspire, each with a different responsibility: -- **Resource integrations**: +- **Resource integrations**: These packages model various services, platforms, or capabilities such as caches, databases, logging, storage, and messaging systems. They extend the interface allowing the app host project to express resources in the distributed application builder and are tagged with `aspire`, `integration`, and `hosting`. - Some integrations model resources that represent various services and platforms, such as caches, databases, logging, storage, and messaging systems. Resource integrations expose APIs that extend the interface. Their NuGet packages are tagged with at least the following: `aspire`, `integration`, and `hosting`. +- **Client integrations**: These packages configure existing libraries to connect to resource-backed integrations. They extend the interface allowing client-consuming projects to use the connected resource and are tagged with `aspire`, `integration`, and `client`. -- **Client integrations**: +While .NET Aspire _client integrations_ can be used independently, they work best with the [.NET Aspire app host](app-host-overview.md). Each [integration](#available-integrations) provides installation, configuration, and usage details in the documentation—for both sides of the integration, the hosting and client respectively. - Other integrations provide a means of configuring existing libraries to connect to resource-backed integrations. Client integrations expose APIs that extend the interface. Their NuGet packages are tagged with at least the following: `aspire`, `integration`, and `client`. - -While .NET Aspire _client integrations_ can be used without an app host (orchestrator) project, they're designed to work best with the [.NET Aspire app host](app-host-overview.md). Each integration is documented to provide details for installing, configuring, and using the integration in your app. +For example, if you want to use [Redis for caching](../caching/stackexchange-redis-caching-overview.md) in your .NET Aspire solution, you would use the `Aspire.Hosting.Redis` package to model the Redis resource. Then, you can connect to the Redis resource using the `Aspire.StackExchange.Redis` client integration. ## Available integrations @@ -69,17 +67,17 @@ For more information on working with .NET Aspire integrations in Visual Studio, ## Explore a sample integration workflow -.NET Aspire integrations streamline the process of consuming popular services and platforms. For example, consider the **.NET Aspire project** template. With this template, you get the [AppHost](app-host-overview.md) and [ServiceDefaults](service-defaults.md) projects. Imagine that you have a need for a worker service to perform some database processing. You could use the [.NET Aspire PostgreSQL integration](../database/postgresql-integration.md) to connect to and utilize a PostgreSQL database. The database could be hosted on-prem or in a cloud service such as Azure, AWS, or GCP. The following steps demonstrate how to integrate this integration into your app: +.NET Aspire integrations streamline the process of consuming popular services and platforms. For example, consider the **.NET Aspire project** template. With this template, you get the [AppHost](app-host-overview.md) and [ServiceDefaults](service-defaults.md) projects. Imagine that you have a need for a worker service to perform some database processing. You could use the [.NET Aspire PostgreSQL integration](../database/postgresql-integration.md) to connect to and utilize a PostgreSQL database. The database could be hosted on-premises or in a cloud service such as Azure, Amazon Web Services (AWS), or Google Cloud Platform (GCP). The following steps demonstrate how to integrate this integration into your app: 1. In the integration consuming (worker service) project, install the [Aspire.Npgsql](https://www.nuget.org/packages/Aspire.Npgsql) NuGet package. - # [.NET CLI](#tab/dotnet-cli) + ### [.NET CLI](#tab/dotnet-cli) ```dotnetcli dotnet add package Aspire.Npgsql ``` - # [PackageReference](#tab/package-reference) + ### [PackageReference](#tab/package-reference) ```xml @@ -119,11 +117,11 @@ For more information on working with .NET Aspire integrations in Visual Studio, :::code source="snippets/integrations/AspireApp/WorkerService/Worker.cs" highlight="7,13"::: -You now have a fully configured PostgreSQL database integration and corresponding container with connection integrated into your app! This integration also configured health checks, logging, metrics, retries, and other useful capabilities for you behind the scenes. .NET Aspire integrations provide various options to configure each of these features. +You now have a fully configured PostgreSQL database integration and corresponding container with connection integrated into your app. This integration also configured health checks, logging, metrics, retries, and other useful capabilities for you behind the scenes. .NET Aspire integrations provide various options to configure each of these features. ## Configure .NET Aspire integrations -.NET Aspire integrations implement a consistent configuration experience via and . Configuration is schematized and part of a integration's contract, ensuring backward compatibility across versions of the integration. You can set up every .NET Aspire integration through either JSON configuration files or directly through code using delegates. JSON files must follow a standardized naming convention based on the Component name. +.NET Aspire integrations implement a consistent configuration experience via and . Configuration is schematized and part of an integration's contract, ensuring backward compatibility across versions of the integration. You can set up every .NET Aspire integration through either JSON configuration files or directly through code using delegates. JSON files must follow a standardized naming convention based on the Component name. For example, add the following code to the _:::no-loc text="appsettings.json":::_ file to configure the PostgreSQL integration: @@ -160,7 +158,7 @@ For more information, see [.NET dependency injection](/dotnet/core/extensions/de ### Keyed services -.NET Aspire integrations also support keyed dependency injection. In this scenario, the service name for keyed dependency injection will be the same as the connection name: +.NET Aspire integrations also support keyed dependency injection. In this scenario, the service name for keyed dependency injection is the same as the connection name: ```csharp builder.AddKeyedNpgsqlDataSource( @@ -185,7 +183,7 @@ Cloud-native applications surface many unique requirements and concerns. The cor - [Orchestration](app-host-overview.md): A lightweight, extensible, and cross-platform app host for .NET Aspire projects. The app host provides a consistent configuration and dependency injection experience for .NET Aspire integrations. - [Service discovery](../service-discovery/overview.md): A technique for locating services within a distributed application. Service discovery is a key integration of microservice architectures. -- [Service defaults](service-defaults.md): A set of default configurations intended for sharing amongst resources within .NET Aspire projects. These defaults are designed to work well in most scenarios and can be customized as needed. +- [Service defaults](service-defaults.md): A set of default configurations intended for sharing among resources within .NET Aspire projects. These defaults are designed to work well in most scenarios and can be customized as needed. Some .NET Aspire integrations also include more capabilities for specific services or platforms, which can be found in the integration specific reference docs. @@ -193,13 +191,13 @@ Some .NET Aspire integrations also include more capabilities for specific servic .NET Aspire integrations automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as _the pillars of observability_. -- **[Logging](/dotnet/core/diagnostics/logging-tracing)**: A technique where code is instrumented to produce logs of interesting events that occurred while the program was running. A baseline set of log events are enabled for .NET Aspire integrations by default and more extensive logging can be enabled on-demand to diagnose particular problems. +- **[Logging](/dotnet/core/diagnostics/logging-tracing)**: A technique where code is instrumented to produce logs of interesting events that occurred while the program was running. A baseline set of log events is enabled for .NET Aspire integrations by default and more extensive logging can be enabled on-demand to diagnose particular problems. - **[Tracing](/dotnet/core/diagnostics/distributed-tracing)**: A specialized form of logging that helps you localize failures and performance issues within applications distributed across multiple machines or processes. This technique tracks requests through an application to correlate work done by different application integrations and separate it from other work the application may be doing for concurrent requests. - **[Metrics](/dotnet/core/diagnostics/metrics)**: Numerical measurements recorded over time to monitor application performance and health. Metrics are often used to generate alerts when potential problems are detected. Metrics have low performance overhead and many services configure them as always-on telemetry. -Together, these types of telemetry allow you to gain insights into your application's behavior and performance using various monitoring and analysis tools. Depending on the backing service, some integrations may only support some of these features. For example, some integrations support logging and tracing, but not metrics. Telemetry features can also be disabled. For more information, see [.NET Aspire service defaults](service-defaults.md). +Together, these types of telemetry allow you to gain insights into your application's behavior and performance using various monitoring and analysis tools. Depending on the backing service, some integrations might only support some of these features. For example, some integrations support logging and tracing, but not metrics. Telemetry features can also be disabled. For more information, see [.NET Aspire service defaults](service-defaults.md). ### Health checks From ee38c1bcf33079183635e1cdd33f8ffb9103cbd0 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 26 Aug 2024 15:17:40 -0500 Subject: [PATCH 09/10] Simplify wording a bit --- docs/fundamentals/integrations-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/integrations-overview.md b/docs/fundamentals/integrations-overview.md index cf3ba210f9..a7d3a9b0fd 100644 --- a/docs/fundamentals/integrations-overview.md +++ b/docs/fundamentals/integrations-overview.md @@ -7,7 +7,7 @@ ms.topic: conceptual # .NET Aspire integrations overview -.NET Aspire integrations are a curated suite of NuGet packages selected to facilitate the integration of cloud-native applications with prominent services and platforms, including but not limited to Redis and PostgreSQL. Each integration furnishes essential cloud-native functionalities through either automatic provisioning or standardized configuration patterns. +.NET Aspire integrations are a curated suite of NuGet packages selected to facilitate the integration of cloud-native applications with prominent services and platforms, such as Redis and PostgreSQL. Each integration furnishes essential cloud-native functionalities through either automatic provisioning or standardized configuration patterns. > [!TIP] > Always strive to use the latest version of .NET Aspire integrations to take advantage of the latest features, improvements, and security updates. From bd680feb57685fd149b19fd071fc03b4296e2742 Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 28 Aug 2024 10:13:33 -0500 Subject: [PATCH 10/10] Bump all versions to 8.2.0 --- .../AspireApp.ApiService/AspireApp.ApiService.csproj | 2 +- .../AspireApp.AppHost/AspireApp.AppHost.csproj | 4 ++-- .../AspireApp.ServiceDefaults.csproj | 2 +- .../AspireSql.AppHost/AspireSql.AppHost.csproj | 4 ++-- .../AspireSql.ServiceDefaults.csproj | 2 +- .../AspireSql.AppHost/AspireSql.AppHost.csproj | 4 ++-- .../AspireSql.ServiceDefaults.csproj | 2 +- .../AspireSQLEFCore.AppHost.csproj | 4 ++-- .../AspireSQLEFCore.ServiceDefaults.csproj | 2 +- .../AspireSQLEFCore/AspireSQLEFCore.csproj | 2 +- .../azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj | 4 ++-- .../MailDev.Hosting/MailDev.Hosting.csproj | 2 +- .../MailDevResource.AppHost.csproj | 2 +- .../MailDevResource.ServiceDefaults.csproj | 2 +- .../MailDev.Hosting/MailDev.Hosting.csproj | 2 +- .../MailDevResource.AppHost.csproj | 2 +- .../MailDevResource.ServiceDefaults.csproj | 2 +- .../MailKit.Client/MailKit.Client.csproj | 2 +- .../MailDev.Hosting/MailDev.Hosting.csproj | 2 +- .../MailDevResource.AppHost.csproj | 2 +- .../MailDevResource.ServiceDefaults.csproj | 2 +- .../MailKit.Client/MailKit.Client.csproj | 2 +- .../snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj | 4 ++-- .../Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj | 2 +- .../Orleans/OrleansAppHost/OrleansAppHost.csproj | 8 ++++---- .../Orleans/OrleansClient/OrleansClient.csproj | 4 ++-- .../Orleans/OrleansServer/OrleansServer.csproj | 6 +++--- .../OrleansServiceDefaults.csproj | 2 +- .../Healthz.ServiceDefaults.csproj | 2 +- .../AspireApp.AppHost/AspireApp.AppHost.csproj | 4 ++-- .../AspireApp.ServiceDefaults.csproj | 2 +- .../Networking.AppHost/Networking.AppHost.csproj | 4 ++-- .../Networking.ServiceDefaults.csproj | 2 +- .../Parameters.ApiService/Parameters.ApiService.csproj | 2 +- .../Parameters.AppHost/Parameters.AppHost.csproj | 4 ++-- .../Parameters.ServiceDefaults.csproj | 2 +- .../YourAppName/YourAppName.ServiceDefaults.csproj | 2 +- .../mstest/AspireApp.AppHost/AspireApp.AppHost.csproj | 4 ++-- .../AspireApp.ServiceDefaults.csproj | 2 +- .../mstest/AspireApp.Tests/AspireApp.Tests.csproj | 2 +- .../testing/mstest/AspireApp.Web/AspireApp.Web.csproj | 2 +- .../nunit/AspireApp.AppHost/AspireApp.AppHost.csproj | 4 ++-- .../AspireApp.ServiceDefaults.csproj | 2 +- .../nunit/AspireApp.Tests/AspireApp.Tests.csproj | 2 +- .../testing/nunit/AspireApp.Web/AspireApp.Web.csproj | 2 +- .../xunit/AspireApp.AppHost/AspireApp.AppHost.csproj | 4 ++-- .../AspireApp.ServiceDefaults.csproj | 2 +- .../xunit/AspireApp.Tests/AspireApp.Tests.csproj | 2 +- .../testing/xunit/AspireApp.Web/AspireApp.Web.csproj | 2 +- .../VolumeMounts.AppHost/VolumeMounts.AppHost.csproj | 10 +++++----- .../VolumeMounts.ServiceDefaults.csproj | 2 +- .../PythonSample.AppHost/PythonSample.AppHost.csproj | 4 ++-- .../PythonSample.ServiceDefaults.csproj | 2 +- .../AspireSample.AppHost/AspireSample.AppHost.csproj | 4 ++-- .../AspireSample.ServiceDefaults.csproj | 2 +- .../AspireSample.Web/AspireSample.Web.csproj | 2 +- .../signalr/SignalR.AppHost/SignalR.AppHost.csproj | 6 +++--- .../SignalR.ServiceDefaults.csproj | 2 +- .../AspireStorage.AppHost/AspireStorage.AppHost.csproj | 4 ++-- .../AspireStorage.ServiceDefaults.csproj | 2 +- .../AspireStorage.Web/AspireStorage.Web.csproj | 4 ++-- .../AspireStorage.WorkerService.csproj | 2 +- 62 files changed, 90 insertions(+), 90 deletions(-) diff --git a/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj b/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj index b39697686c..79d847a56d 100644 --- a/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj +++ b/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj index d8e52cccdc..6714d26c05 100644 --- a/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj +++ b/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj +++ b/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj index ff35507796..69d70202e8 100644 --- a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj +++ b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj +++ b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj index 008a649bdc..239036d8fb 100644 --- a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj +++ b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj +++ b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj index 0568378087..6d14df1d89 100644 --- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj +++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj +++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj index b1e8d92531..a39b3fe9f9 100644 --- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj +++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj b/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj index 3ec3d0b836..7745561db2 100644 --- a/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj +++ b/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj index 1230adeafe..578bc3e262 100644 --- a/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj +++ b/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj index 10ac6c5b34..cc335ea815 100644 --- a/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj +++ b/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj +++ b/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj index 1230adeafe..578bc3e262 100644 --- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj +++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj index 10ac6c5b34..cc335ea815 100644 --- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj +++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj +++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj index f4b0cfa7a5..457237de65 100644 --- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj +++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj index 1230adeafe..578bc3e262 100644 --- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj +++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj index 10ac6c5b34..cc335ea815 100644 --- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj +++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj +++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj index f4b0cfa7a5..457237de65 100644 --- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj +++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj b/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj index b29cd0e949..a18a1877df 100644 --- a/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj +++ b/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj b/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj +++ b/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj b/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj index c4f4e52fbc..fdfcb0ee8a 100644 --- a/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj +++ b/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj @@ -10,10 +10,10 @@ - - - - + + + + diff --git a/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj b/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj index 28e9c11663..7f5269c360 100644 --- a/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj +++ b/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj b/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj index 2e37c94f3a..5c2bf8ddfd 100644 --- a/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj +++ b/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj @@ -11,9 +11,9 @@ - - - + + + diff --git a/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj b/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj index 93dfe63688..7bb901e2f7 100644 --- a/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj +++ b/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj @@ -15,7 +15,7 @@ - + diff --git a/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj b/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj index a9228e7213..b36e0e0ef5 100644 --- a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj +++ b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj b/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj index 4bb9e45d13..1df4c9b3eb 100644 --- a/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj +++ b/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj b/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj b/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj index 95da5e0531..fcbb9469bd 100644 --- a/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj +++ b/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj b/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj index 45e9e84d04..254be99204 100644 --- a/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj +++ b/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj b/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj index 4a358bf7bd..70e43fce3f 100644 --- a/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj @@ -12,7 +12,7 @@ - + diff --git a/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj b/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj index 1e19b8c132..d7ef762eca 100644 --- a/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj +++ b/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj b/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj index e5867953eb..b2807521b1 100644 --- a/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj +++ b/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/mstest/AspireApp.Web/AspireApp.Web.csproj b/docs/fundamentals/snippets/testing/mstest/AspireApp.Web/AspireApp.Web.csproj index 22c10da6ee..2e1f7c2c58 100644 --- a/docs/fundamentals/snippets/testing/mstest/AspireApp.Web/AspireApp.Web.csproj +++ b/docs/fundamentals/snippets/testing/mstest/AspireApp.Web/AspireApp.Web.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj index 6bb6a8bed6..b7f4c12fdb 100644 --- a/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj +++ b/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj b/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj index 081bfa1ecd..80cfc58c49 100644 --- a/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj +++ b/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/nunit/AspireApp.Web/AspireApp.Web.csproj b/docs/fundamentals/snippets/testing/nunit/AspireApp.Web/AspireApp.Web.csproj index 22c10da6ee..2e1f7c2c58 100644 --- a/docs/fundamentals/snippets/testing/nunit/AspireApp.Web/AspireApp.Web.csproj +++ b/docs/fundamentals/snippets/testing/nunit/AspireApp.Web/AspireApp.Web.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj index d5044ff0ca..37fc179c58 100644 --- a/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj +++ b/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj b/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj index 3029f761cc..559882e7b6 100644 --- a/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj +++ b/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/fundamentals/snippets/testing/xunit/AspireApp.Web/AspireApp.Web.csproj b/docs/fundamentals/snippets/testing/xunit/AspireApp.Web/AspireApp.Web.csproj index 22c10da6ee..2e1f7c2c58 100644 --- a/docs/fundamentals/snippets/testing/xunit/AspireApp.Web/AspireApp.Web.csproj +++ b/docs/fundamentals/snippets/testing/xunit/AspireApp.Web/AspireApp.Web.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj b/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj index 30a7a83de1..f05dae3f39 100644 --- a/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj +++ b/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj @@ -15,11 +15,11 @@ - - - - - + + + + + diff --git a/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj b/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj +++ b/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj b/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj index e3c32cb096..37a90f7b56 100644 --- a/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj +++ b/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj b/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj +++ b/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj index a45d57e615..ecf2ffd5a8 100644 --- a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj +++ b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj +++ b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj index cee24fbc67..bc1597fe97 100644 --- a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj +++ b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj b/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj index 8dd8bd2646..a5f1495bb2 100644 --- a/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj +++ b/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj @@ -15,9 +15,9 @@ - - - + + + \ No newline at end of file diff --git a/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj b/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj +++ b/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj index 5bc9d73a74..93a4098b3d 100644 --- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj +++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj index 0b27d13313..34c4b0bcd3 100644 --- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj +++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj index 21754bb58f..3c699822c3 100644 --- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj +++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj index 9d0b8aa205..4bd70a49ce 100644 --- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj +++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj @@ -8,7 +8,7 @@ - +