You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/whats-new/dotnet-aspire-9.4.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,9 +109,9 @@ The `aspire deploy` command supports extensible deployment workflows through the
109
109
110
110
**Key capabilities:**
111
111
112
-
-**Custom deployment hooks** using <xref:Aspire.Hosting.Publishing.DeployingCallbackAnnotation> to execute custom logic during the `aspire deploy` command
112
+
-**Custom deployment hooks** using `Aspire.Hosting.Publishing.DeployingCallbackAnnotation` to execute custom logic during the `aspire deploy` command
113
113
-**Workflow activity reporting** via the <xref:Aspire.Hosting.Publishing.IPublishingActivityReporter> to support progress notifications and prompting in commmands
114
-
-**Integration with publish** - `aspire deploy` runs <xref:Aspire.Hosting.Publishing.PublishingCallbackAnnotations> to support deploying artifacts emitted by publish steps, if applicable
114
+
-**Integration with publish** - `aspire deploy` runs `Aspire.Hosting.Publishing.PublishingCallbackAnnotations` to support deploying artifacts emitted by publish steps, if applicable
115
115
116
116
The example below demonstrates using the `DeployingCallbackAnnotation` to register custom deployment behavior and showcases [CLI-based prompting](#-enhanced-publish-and-deploy-output) and progress notifications.
117
117
@@ -200,7 +200,7 @@ This custom deployment logic executes as follows from the `aspire deploy` comman
200
200
Now, integration owners can create sophisticated `aspire deploy` workflows. This work also provides a foundation for advanced deployment automation scenarios.
201
201
202
202
> [!NOTE]
203
-
> While the <xref:Aspire.Hosting.Publishing.DeployingCallbackAnnotation> API is available in .NET Aspire 9.4, there are currently no built-in resources that natively support deployment callbacks. Built-in resource support for deployment callbacks will be added in the next version of .NET Aspire.
203
+
> While the `Aspire.Hosting.Publishing.DeployingCallbackAnnotation` API is available in .NET Aspire 9.4, there are currently no built-in resources that natively support deployment callbacks. Built-in resource support for deployment callbacks will be added in the next version of .NET Aspire.
204
204
205
205
> [!IMPORTANT]
206
206
> 🧪 **Feature Flag**: The `aspire deploy` command is behind a feature flag and **disabled by default** in this release. It must be explicitly enabled for use with `aspire config set features.deployCommandEnabled true`
@@ -376,9 +376,9 @@ This feature eliminates the need to pre-configure all parameters in appsettings.
376
376
377
377
Building on the interactive parameter prompting capabilities and the new [interaction service](#-interaction-service), Aspire 9.4 introduces rich parameter descriptions and custom input rendering to provide better user guidance and specialized input controls during parameter collection.
378
378
379
-
-**<xref:Aspire.Hosting.ParameterResourceBuilderExtensions.WithDescription>** - Add helpful descriptions to guide users during parameter input
379
+
-**Aspire.Hosting.ParameterResourceBuilderExtensions.WithDescription** - Add helpful descriptions to guide users during parameter input
380
380
-**Markdown support** - Rich text descriptions with links, formatting, and lists using `enableMarkdown: true`
381
-
-**<xref:Aspire.Hosting.ParameterResourceBuilderExtensions.WithCustomInput>** - Create specialized input controls for specific parameter types
381
+
-**Aspire.Hosting.ParameterResourceBuilderExtensions.WithCustomInput** - Create specialized input controls for specific parameter types
-**Improved lifecycle coordination** between <xref:Aspire.Hosting.ResourceBuilderExtensions.WithExplicitStart> and `ContainerLifetime.Persistent`
537
+
-**Improved lifecycle coordination** between `Aspire.Hosting.ResourceBuilderExtensions.WithExplicitStart` and `ContainerLifetime.Persistent`
538
538
-**Automatic persistent networking** spun up when persistent containers are detected
539
539
-**Container delay start** for more reliable startup sequencing
540
540
-**Network isolation** between persistent and session-scoped containers, which now use separate networks for better resource management
@@ -543,7 +543,7 @@ This will greatly improve your experience while building stateful services that
543
543
544
544
### 🎛️ Resource command service
545
545
546
-
.NET Aspire 9.4 introduces <xref:Aspire.Hosting.ApplicationModel.ResourceCommandService>, an API for executing commands against resources. You can now easily execute the commands that appear in the dashboard programmatically. For example, when writing unit tests for commands, or having other integrations in Aspire execute commands.
546
+
.NET Aspire 9.4 introduces `Aspire.Hosting.ApplicationModel.ResourceCommandService`, an API for executing commands against resources. You can now easily execute the commands that appear in the dashboard programmatically. For example, when writing unit tests for commands, or having other integrations in Aspire execute commands.
547
547
548
548
The example below uses `ResourceCommandService` to have a command execute other commands.
549
549
@@ -639,7 +639,7 @@ public async Task Should_ResetCache_WhenTestStarts()
639
639
640
640
### 🔄 Resource lifecycle events
641
641
642
-
.NET Aspire 9.4 introduces convenient extension methods on <xref:Aspire.Hosting.ApplicationModel.IResourceBuilder>` that make it much easier to subscribe to [lifecycle events](../app-host/eventing.md#app-host-life-cycle-events) directly on resources, providing a cleaner and more intuitive API.
642
+
.NET Aspire 9.4 introduces convenient extension methods on `Aspire.Hosting.ApplicationModel.IResourceBuilder` that make it much easier to subscribe to [lifecycle events](../app-host/eventing.md#app-host-life-cycle-events) directly on resources, providing a cleaner and more intuitive API.
-<xref:Aspire.Hosting.DistributedApplicationEventingExtensions.OnInitializeResource> - Called during early resource initialization
709
-
-<xref:Aspire.Hosting.DistributedApplicationEventingExtensions.OnBeforeResourceStarted> - Called before the resource starts
710
-
-<xref:Aspire.Hosting.DistributedApplicationEventingExtensions.OnConnectionStringAvailable> - Called when connection strings are resolved (requires `IResourceWithConnectionString`)
711
-
-<xref:Aspire.Hosting.DistributedApplicationEventingExtensions.OnResourceEndpointsAllocated> - Called when resource endpoints are allocated (requires `IResourceWithEndpoints`)
712
-
-<xref:Aspire.Hosting.DistributedApplicationEventingExtensions.OnResourceReady> - Called when the resource is fully ready
708
+
-`OnInitializeResource` - Called during early resource initialization
709
+
-`OnBeforeResourceStarted` - Called before the resource starts
710
+
-`OnConnectionStringAvailable` - Called when connection strings are resolved (requires `IResourceWithConnectionString`)
711
+
-`OnResourceEndpointsAllocated` - Called when resource endpoints are allocated (requires `IResourceWithEndpoints`)
712
+
-`OnResourceReady` - Called when the resource is fully ready
713
713
714
714
The new chainable fluent API, strongly-typed callbacks, and simplified syntax make it intuitive to hook into your resource lifecycles for interactions, commands, custom scripts, and more.
715
715
@@ -1140,7 +1140,7 @@ All database providers now support `WithInitFiles()` method, replacing the more
1140
1140
1141
1141
### 🏷️ Consistent resource name exposure
1142
1142
1143
-
.NET Aspire 9.4 now consistently exposes the actual names of all Azure resources through the <xref:Aspire.Hosting.Azure.NameOutputReference> property. This enables applications to access the real Azure resource names that get generated during deployment, which is essential for scenarios requiring direct Azure resource coordination. This is particularly valuable for external automation scripts and monitoring and alerting systems that reference resources by their actual names.
1143
+
.NET Aspire 9.4 now consistently exposes the actual names of all Azure resources through `Aspire.Hosting.Azure.NameOutputReference` property. This enables applications to access the real Azure resource names that get generated during deployment, which is essential for scenarios requiring direct Azure resource coordination. This is particularly valuable for external automation scripts and monitoring and alerting systems that reference resources by their actual names.
1144
1144
1145
1145
### 🗄️ Azure Cosmos DB
1146
1146
@@ -1294,8 +1294,8 @@ var webApi = builder.AddProject<Projects.WebAPI>("webapi")
1294
1294
1295
1295
**Key features**:
1296
1296
1297
-
- <xref.Aspire.Hosting.Azure.KeyVault.AzureKeyVaultResourceExtensions.AddSecret> method for adding new secrets to Key Vault from parameters or expressions
1298
-
- <xref.Aspire.Hosting.Azure.KeyVault.AzureKeyVaultResourceExtensions.GetSecret> method for referencing existing secrets in Key Vault
1297
+
- `Aspire.Hosting.Azure.KeyVault.AzureKeyVaultResourceExtensions.AddSecret`method for adding new secrets to Key Vault from parameters or expressions
1298
+
- `Aspire.Hosting.Azure.KeyVault.AzureKeyVaultResourceExtensions.GetSecret`method for referencing existing secrets in Key Vault
1299
1299
- **Strongly-typed secret references** that can be used with `WithEnvironment()` for environment variables
1300
1300
- **Custom secret naming** support with optional `secretName` parameter
0 commit comments