From 21a6ac1dd2c82701893b475d3d7cb06f286a839e Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 29 Jun 2026 11:51:23 -0700 Subject: [PATCH 1/4] fix broken xrefs --- docs/ai/quickstarts/text-to-image.md | 2 +- docs/core/extensions/generic-host.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ai/quickstarts/text-to-image.md b/docs/ai/quickstarts/text-to-image.md index 8b454ab497d85..5c07281bee798 100644 --- a/docs/ai/quickstarts/text-to-image.md +++ b/docs/ai/quickstarts/text-to-image.md @@ -119,7 +119,7 @@ The `Aspire.Azure.AI.OpenAI` package provides extension methods to register Azur :::code language="csharp" source="snippets/text-to-image/hosting/Program.cs" id="SnippetSetup"::: - The method registers the Azure OpenAI client with dependency injection. The connection string (named `"openai"`) is retrieved from configuration, typically from `appsettings.json` or environment variables: + The [AddAzureOpenAIClient](https://aspire.dev/reference/api/csharp/aspire.azure.ai.openai/aspireazureopenaiextensions/methods/#addazureopenaiclient) method registers the Azure OpenAI client with dependency injection. The connection string (named `"openai"`) is retrieved from configuration, typically from `appsettings.json` or environment variables: ```json { diff --git a/docs/core/extensions/generic-host.md b/docs/core/extensions/generic-host.md index cbfee9b85c2ea..09b2f8dda433e 100644 --- a/docs/core/extensions/generic-host.md +++ b/docs/core/extensions/generic-host.md @@ -140,7 +140,7 @@ When you call either : A builder for creating distributed apps. For more information, see [Aspire](/dotnet/aspire). +- [DistributedApplicationBuilder](https://aspire.dev/reference/api/csharp/aspire.hosting/distributedapplicationbuilder/): A builder for creating distributed apps. For more information, see [Aspire](/dotnet/aspire). - : A builder for web applications and services. For more information, see [ASP.NET Core](/aspnet/core). - : A builder for `IWebHost`. For more information, see [ASP.NET Core web host](/aspnet/core/fundamentals/host/web-host). From 27ef6820565ad553ae63cb118eb1179d4607095a Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:15:11 -0700 Subject: [PATCH 2/4] update /dotnet/aspire links --- docs/ai/dotnet-ai-ecosystem.md | 2 +- docs/azure/index.yml | 6 +-- docs/breadcrumb/toc.yml | 3 -- docs/core/apps.md | 2 +- .../diagnostics/observability-otlp-example.md | 2 +- .../diagnostics/observability-with-otel.md | 10 ++--- docs/core/extensions/generic-host.md | 2 +- docs/core/extensions/service-discovery.md | 2 +- docs/core/project-sdk/overview.md | 4 +- docs/core/resilience/index.md | 2 +- docs/core/testing/unit-testing-mstest-sdk.md | 2 +- docs/core/whats-new/dotnet-8/overview.md | 2 +- docs/csharp/index.yml | 2 +- .../includes/aspire-telemetry-overview.md | 4 +- .../networking/telemetry/metrics.md | 6 +-- .../networking/telemetry/tracing.md | 10 ++--- .../deploy-to-azure-container-apps.md | 2 +- .../orleans/grains/grain-persistence/index.md | 38 +++++++++---------- docs/orleans/host/aspire-integration.md | 8 ++-- 19 files changed, 53 insertions(+), 56 deletions(-) diff --git a/docs/ai/dotnet-ai-ecosystem.md b/docs/ai/dotnet-ai-ecosystem.md index 43c314c769cd7..6d304d817bd65 100644 --- a/docs/ai/dotnet-ai-ecosystem.md +++ b/docs/ai/dotnet-ai-ecosystem.md @@ -137,4 +137,4 @@ AI systems often stop being "just one app" once retrieval, tools, gateways, and Aspire isn't specifically the AI runtime; it's the multi-service application layer around it. It doesn't replace MEAI, MAF, or Azure AI Foundry. -For more information, see the [Aspire documentation](/dotnet/aspire/). +For more information, see the [Aspire documentation](https://aspire.dev/). diff --git a/docs/azure/index.yml b/docs/azure/index.yml index 098d49c119a5d..d9007fd2d16d5 100644 --- a/docs/azure/index.yml +++ b/docs/azure/index.yml @@ -73,10 +73,10 @@ conceptualContent: - title: Create cloud native apps links: - itemType: overview - url: /dotnet/aspire/get-started/aspire-overview - text: Build cloud native apps using Aspire + url: https://aspire.dev/get-started/what-is-aspire/ + text: What is Aspire? - itemType: quickstart - url: /dotnet/aspire/get-started/build-your-first-aspire-app?tabs=visual-studio + url: https://aspire.dev/get-started/first-app/ text: Build your first Aspire app - itemType: quickstart text: Run and debug a microservice in Kubernetes diff --git a/docs/breadcrumb/toc.yml b/docs/breadcrumb/toc.yml index 37e641f2aaf05..3b59add093236 100644 --- a/docs/breadcrumb/toc.yml +++ b/docs/breadcrumb/toc.yml @@ -25,9 +25,6 @@ items: - name: Azure tocHref: /dotnet/azure/ topicHref: /dotnet/azure/index - - name: Aspire - tocHref: /dotnet/aspire/ - topicHref: /dotnet/aspire/index - name: Orleans tocHref: /dotnet/orleans/ topicHref: /dotnet/orleans/index diff --git a/docs/core/apps.md b/docs/core/apps.md index 50b294c443e9a..95d221ce2f9ff 100644 --- a/docs/core/apps.md +++ b/docs/core/apps.md @@ -11,7 +11,7 @@ ms.custom: "updateeachrelease" ## Cloud apps -* [Aspire](/dotnet/aspire) +* [Aspire](https://aspire.dev/) * [Serverless functions](/azure/azure-functions/functions-create-first-function-vs-code?pivots=programming-language-csharp) * [Web and microservices](/aspnet/core/introduction-to-aspnet-core#recommended-learning-path) diff --git a/docs/core/diagnostics/observability-otlp-example.md b/docs/core/diagnostics/observability-otlp-example.md index 2d526c6049e19..7c3e727533e92 100644 --- a/docs/core/diagnostics/observability-otlp-example.md +++ b/docs/core/diagnostics/observability-otlp-example.md @@ -10,7 +10,7 @@ ms.custom: sfi-image-nochange This article is one of a series of examples to illustrate [.NET observability with OpenTelemetry](./observability-with-otel.md). -In addition to being a standard part of Aspire, the Aspire Dashboard is available as a [standalone Docker container](/dotnet/aspire/fundamentals/dashboard/standalone?tabs=powershell), which provides an OTLP endpoint that telemetry can be sent to. The dashboard visualizes the logs, metrics, and traces. Using the dashboard in this way has no dependency on Aspire, and it visualizes telemetry from any application that sends it telemetry via OTLP. It works equally well for applications written in Java, GoLang, or Python provided they can send their telemetry to an OTLP endpoint. +In addition to being a standard part of Aspire, the Aspire Dashboard is available as a [standalone Docker container](https://aspire.dev/dashboard/standalone/), which provides an OTLP endpoint that telemetry can be sent to. The dashboard visualizes the logs, metrics, and traces. Using the dashboard in this way has no dependency on Aspire, and it visualizes telemetry from any application that sends it telemetry via OTLP. It works equally well for applications written in Java, GoLang, or Python provided they can send their telemetry to an OTLP endpoint. Using the Aspire Dashboard has less configuration and setup steps than using Open Source solutions such as [Prometheus, Grafana, and Jaeger](./observability-prgrja-example.md). But unlike those tools, the Aspire Dashboard is intended as a developer visualization tool, and not for production monitoring. diff --git a/docs/core/diagnostics/observability-with-otel.md b/docs/core/diagnostics/observability-with-otel.md index ab0637504219a..277a3084abddb 100644 --- a/docs/core/diagnostics/observability-with-otel.md +++ b/docs/core/diagnostics/observability-with-otel.md @@ -97,9 +97,9 @@ This topic is continued with a couple of example walkthroughs for using OpenTele ## OpenTelemetry in Aspire -[Aspire](/dotnet/aspire/get-started/aspire-overview) is a set of extensions to .NET to make it easy to create and work with distributed applications. One of the benefits of using Aspire is that telemetry is built in, using the OpenTelemetry libraries for .NET. The default project templates for Aspire contain a `ServiceDefaults` project, part of which is to setup and configure OTel. The Service Defaults project is referenced and initialized by each service in an Aspire solution. +[Aspire](https://aspire.dev/get-started/what-is-aspire/) is a set of extensions to .NET to make it easy to create and work with distributed applications. One of the benefits of using Aspire is that telemetry is built in, using the OpenTelemetry libraries for .NET. The default project templates for Aspire contain a `ServiceDefaults` project, part of which is to setup and configure OTel. The Service Defaults project is referenced and initialized by each service in an Aspire solution. -The Service Defaults project template includes the OTel SDK, ASP.NET, HttpClient and Runtime Instrumentation packages, and those are configured in the [`Extensions.cs`](https://github.com/dotnet/aspire/blob/main/src/Aspire.ProjectTemplates/templates/aspire-servicedefaults/Extensions.cs) file. For exporting telemetry, Aspire includes the OTLP exporter by default so that it can provide telemetry visualization using the Aspire Dashboard. +The Service Defaults project template includes the OTel SDK, ASP.NET, HttpClient and Runtime Instrumentation packages, and those are configured in the [`Extensions.cs`](https://github.com/microsoft/aspire/blob/main/src/Aspire.ProjectTemplates/templates/aspire-servicedefaults/Extensions.cs) file. For exporting telemetry, Aspire includes the OTLP exporter by default so that it can provide telemetry visualization using the Aspire Dashboard. The Aspire Dashboard is designed to bring telemetry observation to the local debug cycle, which enables developers to not only ensure that the applications are producing telemetry, but also use that telemetry to diagnose those applications locally. Being able to observe the calls between services is proving to be just as useful at debug time as in production. The Aspire dashboard is launched automatically when you F5 the `AppHost` Project from Visual Studio or `dotnet run` the `AppHost` project. @@ -107,9 +107,9 @@ The Aspire Dashboard is designed to bring telemetry observation to the local deb For more details on Aspire see: -- [Aspire Overview](/dotnet/aspire/get-started/aspire-overview) -- [Telemetry in Aspire](/dotnet/aspire/fundamentals/telemetry) -- [Aspire Dashboard](/dotnet/aspire/fundamentals/dashboard/explore) +- [Aspire Overview](https://aspire.dev/get-started/what-is-aspire/) +- [Telemetry in Aspire](https://aspire.dev/fundamentals/telemetry/) +- [Aspire Dashboard](https://aspire.dev/dashboard/explore/) ### Reuse Service Defaults project without Aspire Orchestration diff --git a/docs/core/extensions/generic-host.md b/docs/core/extensions/generic-host.md index 09b2f8dda433e..c56b7d0589f58 100644 --- a/docs/core/extensions/generic-host.md +++ b/docs/core/extensions/generic-host.md @@ -140,7 +140,7 @@ When you call either : A builder for web applications and services. For more information, see [ASP.NET Core](/aspnet/core). - : A builder for `IWebHost`. For more information, see [ASP.NET Core web host](/aspnet/core/fundamentals/host/web-host). diff --git a/docs/core/extensions/service-discovery.md b/docs/core/extensions/service-discovery.md index 1895e51d43af6..ea291f9667be9 100644 --- a/docs/core/extensions/service-discovery.md +++ b/docs/core/extensions/service-discovery.md @@ -150,4 +150,4 @@ If service discovery was added to the host using the `AddServiceDiscoveryCore` e ## See also -- [Service discovery in Aspire](/dotnet/aspire/service-discovery/overview) +- [Service discovery in Aspire](https://aspire.dev/fundamentals/service-discovery/) diff --git a/docs/core/project-sdk/overview.md b/docs/core/project-sdk/overview.md index 4ed5bc7b19215..6d13d631230be 100644 --- a/docs/core/project-sdk/overview.md +++ b/docs/core/project-sdk/overview.md @@ -22,7 +22,7 @@ The available SDKs include: | `Microsoft.NET.Sdk.Razor` | The .NET [Razor SDK](/aspnet/core/razor-pages/sdk) | | | `Microsoft.NET.Sdk.BlazorWebAssembly` | The .NET [Blazor WebAssembly SDK](/aspnet/core/blazor#blazor-webassembly) | | | `Microsoft.NET.Sdk.Worker` | The .NET [Worker Service SDK](../extensions/workers.md) | | -| `Aspire.AppHost.Sdk` | The [Aspire SDK](/dotnet/aspire/fundamentals/dotnet-aspire-sdk) | | +| `Aspire.AppHost.Sdk` | The [Aspire SDK](https://aspire.dev/get-started/app-host/) | | | `MSTest.Sdk` | The [MSTest SDK](../testing/unit-testing-mstest-sdk.md) | | The .NET SDK is the base SDK for .NET. The other SDKs reference the .NET SDK, and projects that are associated with the other SDKs have all the .NET SDK properties available to them. The Web SDK, for example, depends on both the .NET SDK and the Razor SDK. @@ -54,7 +54,7 @@ The `Project/Sdk` attribute and `Sdk` element enable additive SDKs. Consider the ``` -In the preceding project file, both SDKs are used to resolve dependencies in an additive nature. For more information, see [Aspire SDK](/dotnet/aspire/fundamentals/dotnet-aspire-sdk). +In the preceding project file, both SDKs are used to resolve dependencies in an additive nature. For more information, see [Aspire SDK](https://aspire.dev/get-started/app-host/). To specify an SDK that comes from NuGet, include the version at the end of the name, or specify the name and version in the *global.json* file. diff --git a/docs/core/resilience/index.md b/docs/core/resilience/index.md index fc72a7fada3dc..b19eb6a22b78f 100644 --- a/docs/core/resilience/index.md +++ b/docs/core/resilience/index.md @@ -75,7 +75,7 @@ _Enrichment_ is the automatic augmentation of telemetry with well-known state, i ### How enrichment works -Imagine 1,000 globally distributed service instances generating logs and metrics. When you encounter an issue on your [service dashboard](/dotnet/aspire/dashboard), it's crucial to quickly identify the problematic region or data center. Enrichment ensures that metric records contain the necessary information to pinpoint failures in distributed systems. Without enrichment, the burden falls on the app code to internally manage this state, integrate it into the logging process, and manually transmit it. Enrichment simplifies this process, seamlessly handling it without affecting the app's logic. +Imagine 1,000 globally distributed service instances generating logs and metrics. When you encounter an issue on your [service dashboard](https://aspire.dev/dashboard/overview/), it's crucial to quickly identify the problematic region or data center. Enrichment ensures that metric records contain the necessary information to pinpoint failures in distributed systems. Without enrichment, the burden falls on the app code to internally manage this state, integrate it into the logging process, and manually transmit it. Enrichment simplifies this process, seamlessly handling it without affecting the app's logic. In the case of resiliency, when you add enrichment the following dimensions are added to the outgoing telemetry: diff --git a/docs/core/testing/unit-testing-mstest-sdk.md b/docs/core/testing/unit-testing-mstest-sdk.md index a03ad59e3ffe8..31e8b3c44ec63 100644 --- a/docs/core/testing/unit-testing-mstest-sdk.md +++ b/docs/core/testing/unit-testing-mstest-sdk.md @@ -130,7 +130,7 @@ Outside of the selection of the runner and runner-specific extensions, `MSTest.S ### Test with Aspire -Aspire is an opinionated, cloud-ready stack for building observable, production ready, distributed applications. Aspire is delivered through a collection of NuGet packages that handle specific cloud-native concerns. For more information, see the [Aspire docs](/dotnet/aspire/get-started/aspire-overview). +Aspire is an opinionated, cloud-ready stack for building observable, production ready, distributed applications. Aspire is delivered through a collection of NuGet packages that handle specific cloud-native concerns. For more information, see the [Aspire docs](https://aspire.dev/get-started/what-is-aspire/). > [!NOTE] > This feature is available from MSTest.Sdk 3.4.0. diff --git a/docs/core/whats-new/dotnet-8/overview.md b/docs/core/whats-new/dotnet-8/overview.md index 84c911aef56cf..fe7b1834c458b 100644 --- a/docs/core/whats-new/dotnet-8/overview.md +++ b/docs/core/whats-new/dotnet-8/overview.md @@ -23,7 +23,7 @@ C# 12 shipped with the .NET 8 SDK. For more information, see [What's new in C# 1 ## Aspire -Aspire is an opinionated, cloud-ready stack for building observable, production ready, distributed applications.​ Aspire is delivered through a collection of NuGet packages that handle specific cloud-native concerns, and is available in preview for .NET 8. For more information, see [Aspire](/dotnet/aspire). +Aspire is an opinionated, cloud-ready stack for building observable, production ready, distributed applications.​ Aspire is delivered through a collection of NuGet packages that handle specific cloud-native concerns, and is available in preview for .NET 8. For more information, see [Aspire](https://aspire.dev/). ## ASP.NET Core diff --git a/docs/csharp/index.yml b/docs/csharp/index.yml index 9b1cc2e927d71..e306931fa752a 100644 --- a/docs/csharp/index.yml +++ b/docs/csharp/index.yml @@ -225,7 +225,7 @@ additionalContent: text: Azure for .NET developers - url: /dotnet/aspire text: Aspire - - url: /dotnet/aspire/get-started/quickstart-build-your-first-aspire-app + - url: https://aspire.dev/get-started/first-app/ text: Build cloud-native apps with Aspire - url: ../azure/migration/app-service.md?preserve-view=true&view=azure-dotnet text: Migrate on-premises .NET web apps or services diff --git a/docs/fundamentals/networking/telemetry/includes/aspire-telemetry-overview.md b/docs/fundamentals/networking/telemetry/includes/aspire-telemetry-overview.md index 8a022cc3be4c8..2a87d5892232a 100644 --- a/docs/fundamentals/networking/telemetry/includes/aspire-telemetry-overview.md +++ b/docs/fundamentals/networking/telemetry/includes/aspire-telemetry-overview.md @@ -1,7 +1,7 @@ -A simple way to collect traces and metrics in ASP.NET applications is to use [Aspire](/dotnet/aspire/get-started/aspire-overview). Aspire is a set of extensions to .NET to make it easy to create and work with distributed applications. One of the benefits of using Aspire is that telemetry is built in, using the OpenTelemetry libraries for .NET. +A simple way to collect traces and metrics in ASP.NET applications is to use [Aspire](https://aspire.dev/get-started/what-is-aspire/). Aspire is a set of extensions to .NET to make it easy to create and work with distributed applications. One of the benefits of using Aspire is that telemetry is built in, using the OpenTelemetry libraries for .NET. The default project templates for Aspire contain a `ServiceDefaults` project. Each service in the Aspire solution has a reference to the Service Defaults project. The services use it to set up and configure OTel. -The Service Defaults project template includes the OTel SDK, ASP.NET, HttpClient, and Runtime Instrumentation packages. These instrumentation components are configured in the [Extensions.cs](https://github.com/dotnet/aspire/blob/main/src/Aspire.ProjectTemplates/templates/aspire-servicedefaults/Extensions.cs) file. To support telemetry visualization in Aspire Dashboard, the Service Defaults project also includes the OTLP exporter by default. +The Service Defaults project template includes the OTel SDK, ASP.NET, HttpClient, and Runtime Instrumentation packages. These instrumentation components are configured in the [Extensions.cs](https://github.com/microsoft/aspire/blob/main/src/Aspire.ProjectTemplates/templates/aspire-servicedefaults/Extensions.cs) file. To support telemetry visualization in Aspire Dashboard, the Service Defaults project also includes the OTLP exporter by default. Aspire Dashboard is designed to bring telemetry observation to the local debug cycle, which enables developers to ensure that the applications are producing telemetry. The telemetry visualization also helps to diagnose those applications locally. Being able to observe the calls between services is as useful at debug time as in production. The Aspire dashboard is launched automatically when you F5 the `AppHost` Project from Visual Studio or `dotnet run` the `AppHost` project from command line. diff --git a/docs/fundamentals/networking/telemetry/metrics.md b/docs/fundamentals/networking/telemetry/metrics.md index 8c0d41a690eba..f430be09ffc52 100644 --- a/docs/fundamentals/networking/telemetry/metrics.md +++ b/docs/fundamentals/networking/telemetry/metrics.md @@ -104,9 +104,9 @@ dotnet-counters monitor --counters System.Net.Http,System.Net.NameResolution -n For more information on Aspire, see: -- [Aspire Overview](/dotnet/aspire/get-started/aspire-overview) -- [Telemetry in Aspire](/dotnet/aspire/fundamentals/telemetry) -- [Aspire Dashboard](/dotnet/aspire/fundamentals/dashboard/explore) +- [Aspire Overview](https://aspire.dev/get-started/what-is-aspire/) +- [Telemetry in Aspire](https://aspire.dev/fundamentals/telemetry/) +- [Aspire Dashboard](https://aspire.dev/dashboard/explore/) ### Reuse Service Defaults project without Aspire orchestration diff --git a/docs/fundamentals/networking/telemetry/tracing.md b/docs/fundamentals/networking/telemetry/tracing.md index 9fb6ff58f441c..37596ce3d99ec 100644 --- a/docs/fundamentals/networking/telemetry/tracing.md +++ b/docs/fundamentals/networking/telemetry/tracing.md @@ -46,9 +46,9 @@ However, as an application developer, you would likely prefer to rely on the ric For more information on Aspire, see: -- [Aspire Overview](/dotnet/aspire/get-started/aspire-overview) -- [Telemetry in Aspire](/dotnet/aspire/fundamentals/telemetry) -- [Aspire Dashboard](/dotnet/aspire/fundamentals/dashboard/explore) +- [Aspire Overview](https://aspire.dev/get-started/what-is-aspire/) +- [Telemetry in Aspire](https://aspire.dev/fundamentals/telemetry/) +- [Aspire Dashboard](https://aspire.dev/dashboard/explore/) ### Reuse Service Defaults project without Aspire Orchestration @@ -86,7 +86,7 @@ The following diagram illustrates the behavior of the spans and their relationsh ### Walkthrough: Using the experimental connection tracing in .NET 9 -This walkthrough uses a [.NET 9 Aspire Starter App](/dotnet/aspire/get-started/build-your-first-aspire-app) to demonstrate connection tracing, but it should be easy to set it up with [other monitoring tools](#collect-systemnet-traces) as well. The key step is to enable the ActivitySources. +This walkthrough uses an [Aspire Starter App](https://aspire.dev/get-started/first-app/) to demonstrate connection tracing, but it should be easy to set it up with [other monitoring tools](#collect-systemnet-traces) as well. The key step is to enable the ActivitySources. 1. Create an **Aspire 9 Starter App** by using `dotnet new`: @@ -102,7 +102,7 @@ This walkthrough uses a [.NET 9 Aspire Starter App](/dotnet/aspire/get-started/b :::code language="csharp" source="snippets/tracing/ConnectionTracingDemo.ServiceDefaults/Extensions.cs" id="snippet_ConnectionTracing"::: -1. Start the solution. This should open the [Aspire Dashboard](/dotnet/aspire/fundamentals/dashboard/overview). +1. Start the solution. This should open the [Aspire Dashboard](https://aspire.dev/dashboard/overview/). 1. Navigate to the Weather page of the `webfrontend` app to generate an `HttpClient` request towards `apiservice`. diff --git a/docs/orleans/deployment/deploy-to-azure-container-apps.md b/docs/orleans/deployment/deploy-to-azure-container-apps.md index 52c959d484e08..c42ea6969d574 100644 --- a/docs/orleans/deployment/deploy-to-azure-container-apps.md +++ b/docs/orleans/deployment/deploy-to-azure-container-apps.md @@ -31,7 +31,7 @@ If your Orleans application uses [Aspire](../host/aspire-integration.md), you ca - [Aspire CLI](https://aspire.dev/get-started/install-cli/) installed - [Azure CLI](/cli/azure/install-azure-cli) installed -- [Aspire workload](/dotnet/aspire/fundamentals/setup-tooling) +- [Aspire workload](https://aspire.dev/get-started/install-cli/) - An Azure subscription with permissions to create resources - Docker Desktop or Podman running (for building container images) diff --git a/docs/orleans/grains/grain-persistence/index.md b/docs/orleans/grains/grain-persistence/index.md index ced9ad992bfdd..bfb603cab8f08 100644 --- a/docs/orleans/grains/grain-persistence/index.md +++ b/docs/orleans/grains/grain-persistence/index.md @@ -316,18 +316,18 @@ To configure Redis as the default grain storage provider, use class provides the following configuration options: -| Property | Type | Description | -|----------|------|-------------| +| Property | Type | Description | +|------------------------|------------------------|---------------------------------------------------------| | `ConfigurationOptions` | `ConfigurationOptions` | The StackExchange.Redis client configuration. Required. | -| `DeleteStateOnClear` | `bool` | Whether to delete state from Redis when is called. Default is `false`. | -| `EntryExpiry` | `TimeSpan?` | Optional expiration time for entries. Only set this for ephemeral environments like testing, as it can cause duplicate activations. Default is `null`. | +| `DeleteStateOnClear` | `bool` | Whether to delete state from Redis when is called. Default is `false`. | +| `EntryExpiry` | `TimeSpan?` | Optional expiration time for entries. Only set this for ephemeral environments like testing, as it can cause duplicate activations. Default is `null`. | | `GrainStorageSerializer` | `IGrainStorageSerializer` | The serializer to use for grain state. Default uses the Orleans serializer. | -| `CreateMultiplexer` | `Func>` | Custom factory for creating the Redis connection multiplexer. | -| `GetStorageKey` | `Func` | Custom function to generate the Redis key for a grain. Default format is `{ServiceId}/state/{grainId}/{grainType}`. | +| `CreateMultiplexer` | `Func>` | Custom factory for creating the Redis connection multiplexer. | +| `GetStorageKey` | `Func` | Custom function to generate the Redis key for a grain. Default format is `{ServiceId}/state/{grainId}/{grainType}`. | ### Aspire integration -When using [Aspire](/dotnet/aspire/get-started/aspire-overview), you can integrate Redis grain storage with the Aspire-managed Redis resource. +When using [Aspire](https://aspire.dev/get-started/what-is-aspire/), you can integrate Redis grain storage with the Aspire-managed Redis resource. ```csharp // In your AppHost project @@ -371,18 +371,18 @@ To configure Cosmos DB as the default grain storage provider, use class provides the following configuration options: -| Property | Type | Default | Description | -|----------|------|---------|-------------| -| `DatabaseName` | `string` | `"Orleans"` | The name of the Cosmos DB database. | -| `ContainerName` | `string` | `"OrleansStorage"` | The name of the container for grain state data. | -| `IsResourceCreationEnabled` | `bool` | `false` | When `true`, automatically creates the database and container if they don't exist. | -| `DeleteStateOnClear` | `bool` | `false` | Whether to delete state from Cosmos DB when is called. | -| `InitStage` | `int` | `ServiceLifecycleStage.ApplicationServices` | The stage of silo lifecycle when storage is initialized. | -| `StateFieldsToIndex` | `List` | Empty | JSON paths of state properties to include in the Cosmos DB index. | -| `PartitionKeyPath` | `string` | `"/PartitionKey"` | The JSON path for the partition key in the container. | -| `DatabaseThroughput` | `int?` | `null` | The provisioned throughput for the database. If `null`, uses serverless mode. | -| `ContainerThroughputProperties` | `ThroughputProperties?` | `null` | The throughput properties for the container. | -| `ClientOptions` | `CosmosClientOptions` | `new()` | The options passed to the Cosmos DB client. | +| Property | Type | Default | Description | +|-----------------------------|----------|--------------------|------------------------------------------------------------------------------------| +| `DatabaseName` | `string` | `"Orleans"` | The name of the Cosmos DB database. | +| `ContainerName` | `string` | `"OrleansStorage"` | The name of the container for grain state data. | +| `IsResourceCreationEnabled` | `bool` | `false` | When `true`, automatically creates the database and container if they don't exist. | +| `DeleteStateOnClear` | `bool` | `false` | Whether to delete state from Cosmos DB when is called. | +| `InitStage` | `int` | `ServiceLifecycleStage.ApplicationServices` | The stage of silo lifecycle when storage is initialized. | +| `StateFieldsToIndex` | `List` | Empty | JSON paths of state properties to include in the Cosmos DB index. | +| `PartitionKeyPath` | `string` | `"/PartitionKey"` | The JSON path for the partition key in the container. | +| `DatabaseThroughput` | `int?` | `null` | The provisioned throughput for the database. If `null`, uses serverless mode. | +| `ContainerThroughputProperties` | `ThroughputProperties?` | `null` | The throughput properties for the container. | +| `ClientOptions` | `CosmosClientOptions` | `new()` | The options passed to the Cosmos DB client. | ### Custom partition key provider diff --git a/docs/orleans/host/aspire-integration.md b/docs/orleans/host/aspire-integration.md index 71af1bc0c6287..8e0344340a3c2 100644 --- a/docs/orleans/host/aspire-integration.md +++ b/docs/orleans/host/aspire-integration.md @@ -10,7 +10,7 @@ zone_pivot_groups: orleans-version :::zone target="docs" pivot="orleans-8-0,orleans-9-0,orleans-10-0" -[Aspire](/dotnet/aspire/get-started/aspire-overview) provides a streamlined approach to building cloud-native applications with built-in support for Orleans. Starting with Orleans 8.0, you can use Aspire to orchestrate your Orleans cluster, manage backing resources (like Redis or Azure Storage), and automatically configure service discovery, observability, and health checks. +[Aspire](https://aspire.dev/get-started/what-is-aspire/) provides a streamlined approach to building cloud-native applications with built-in support for Orleans. Starting with Orleans 8.0, you can use Aspire to orchestrate your Orleans cluster, manage backing resources (like Redis or Azure Storage), and automatically configure service discovery, observability, and health checks. ## Overview @@ -28,7 +28,7 @@ Orleans integration with Aspire uses the `Aspire.Hosting.Orleans` package in you Before using Orleans with Aspire, ensure you have: - [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) or later -- [Aspire workload](/dotnet/aspire/fundamentals/setup-tooling) +- [Aspire workload](https://aspire.dev/get-started/install-cli/) - An IDE with Aspire support (Visual Studio 2022 17.9+, VS Code with C# Dev Kit, or JetBrains Rider) ## Required packages @@ -189,8 +189,8 @@ Aspire automatically configures health check endpoints. You can add Orleans-spec ## See also -- [Aspire overview](/dotnet/aspire/get-started/aspire-overview) -- [Aspire setup and tooling](/dotnet/aspire/fundamentals/setup-tooling) +- [Aspire overview](https://aspire.dev/get-started/what-is-aspire/) +- [Aspire setup and tooling](https://aspire.dev/get-started/install-cli/) - [Orleans configuration guide](configuration-guide/index.md) - [Orleans Redis providers](../grains/grain-persistence/index.md#redis-grain-persistence) - [Orleans Azure Storage providers](../grains/grain-persistence/azure-storage.md) From cb92e919c275881041f1eee9b5144c10fada7d64 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:52:48 -0700 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/csharp/index.yml | 2 +- docs/orleans/host/aspire-integration.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/csharp/index.yml b/docs/csharp/index.yml index e306931fa752a..77900b89f43e8 100644 --- a/docs/csharp/index.yml +++ b/docs/csharp/index.yml @@ -223,7 +223,7 @@ additionalContent: links: - url: ../azure/index.yml text: Azure for .NET developers - - url: /dotnet/aspire + - url: https://aspire.dev/ text: Aspire - url: https://aspire.dev/get-started/first-app/ text: Build cloud-native apps with Aspire diff --git a/docs/orleans/host/aspire-integration.md b/docs/orleans/host/aspire-integration.md index 8e0344340a3c2..0addcfb6ca029 100644 --- a/docs/orleans/host/aspire-integration.md +++ b/docs/orleans/host/aspire-integration.md @@ -28,7 +28,7 @@ Orleans integration with Aspire uses the `Aspire.Hosting.Orleans` package in you Before using Orleans with Aspire, ensure you have: - [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) or later -- [Aspire workload](https://aspire.dev/get-started/install-cli/) +- [Aspire CLI](https://aspire.dev/get-started/install-cli/) - An IDE with Aspire support (Visual Studio 2022 17.9+, VS Code with C# Dev Kit, or JetBrains Rider) ## Required packages From 324c86ba8787704ed7b0aa26a247583aaf5393c7 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:53:25 -0700 Subject: [PATCH 4/4] Update Aspire deployment prerequisites Removed the requirement for Aspire workload in deployment prerequisites. --- docs/orleans/deployment/deploy-to-azure-container-apps.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/orleans/deployment/deploy-to-azure-container-apps.md b/docs/orleans/deployment/deploy-to-azure-container-apps.md index c42ea6969d574..1f19f7130b253 100644 --- a/docs/orleans/deployment/deploy-to-azure-container-apps.md +++ b/docs/orleans/deployment/deploy-to-azure-container-apps.md @@ -31,7 +31,6 @@ If your Orleans application uses [Aspire](../host/aspire-integration.md), you ca - [Aspire CLI](https://aspire.dev/get-started/install-cli/) installed - [Azure CLI](/cli/azure/install-azure-cli) installed -- [Aspire workload](https://aspire.dev/get-started/install-cli/) - An Azure subscription with permissions to create resources - Docker Desktop or Podman running (for building container images)