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
* adding back xrefs
* adding back xrefs pt 2
* adding back xrefs pt 2
* adding back xrefs pt 2
* adding back xrefs pt 2
* adding back xrefs pt 293487
* Fix learn link
* Fix learn links
---------
Co-authored-by: Andy (Steve) De George <[email protected]>
Co-authored-by: Andy De George (from Dev Box) <[email protected]>
Copy file name to clipboardExpand all lines: docs/whats-new/dotnet-aspire-9.4.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -108,7 +108,7 @@ The `aspire deploy` command supports extensible deployment workflows through the
108
108
109
109
**Key capabilities:**
110
110
111
-
-**Custom deployment hooks** using `Aspire.Hosting.Publishing.DeployingCallbackAnnotation` to execute custom logic during the `aspire deploy` command
111
+
-**Custom deployment hooks** using <xref:Aspire.Hosting.ApplicationModel.DeployingCallbackAnnotation> to execute custom logic during the `aspire deploy` command
112
112
-**Workflow activity reporting** via the <xref:Aspire.Hosting.Publishing.IPublishingActivityReporter> to support progress notifications and prompting in commmands
113
113
-**Integration with publish** - `aspire deploy` runs `Aspire.Hosting.Publishing.PublishingCallbackAnnotations` to support deploying artifacts emitted by publish steps, if applicable
114
114
@@ -199,7 +199,7 @@ This custom deployment logic executes as follows from the `aspire deploy` comman
199
199
Now, integration owners can create sophisticated `aspire deploy` workflows. This work also provides a foundation for advanced deployment automation scenarios.
200
200
201
201
> [!NOTE]
202
-
> 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.
202
+
> While the <xref:Aspire.Hosting.ApplicationModel.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
203
204
204
> [!IMPORTANT]
205
205
> 🧪 **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`
@@ -533,7 +533,7 @@ builder.Build().Run();
533
533
534
534
**Enhanced capabilities:**
535
535
536
-
-**Improved lifecycle coordination** between `Aspire.Hosting.ResourceBuilderExtensions.WithExplicitStart` and `ContainerLifetime.Persistent`
536
+
-**Improved lifecycle coordination** between <xref:Aspire.Hosting.ResourceBuilderExtensions.WithExplicitStart*> and `ContainerLifetime.Persistent`
537
537
-**Automatic persistent networking** spun up when persistent containers are detected
538
538
-**Container delay start** for more reliable startup sequencing
539
539
-**Network isolation** between persistent and session-scoped containers, which now use separate networks for better resource management
@@ -542,7 +542,7 @@ This will greatly improve your experience while building stateful services that
542
542
543
543
### 🎛️ Resource command service
544
544
545
-
.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.
545
+
.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
546
547
547
The example below uses `ResourceCommandService` to have a command execute other commands.
548
548
@@ -638,7 +638,7 @@ public async Task Should_ResetCache_WhenTestStarts()
638
638
639
639
### 🔄 Resource lifecycle events
640
640
641
-
.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.
641
+
.NET Aspire 9.4 introduces convenient extension methods on <xref:Aspire.Hosting.ApplicationModel.IResourceBuilder`1> 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.
-`OnInitializeResource` - Called during early resource initialization
708
-
-`OnBeforeResourceStarted` - Called before the resource starts
709
-
-`OnConnectionStringAvailable` - Called when connection strings are resolved (requires `IResourceWithConnectionString`)
710
-
-`OnResourceEndpointsAllocated` - Called when resource endpoints are allocated (requires `IResourceWithEndpoints`)
711
-
-`OnResourceReady` - Called when the resource is fully ready
707
+
-<xref:Aspire.Hosting.EventingExtensions.OnInitializeResource*> - Called during early resource initialization
708
+
-<xref:Aspire.Hosting.EventingExtensions.OnBeforeResourceStarted*> - Called before the resource starts
709
+
-<xref:Aspire.Hosting.EventingExtensions.OnConnectionStringAvailable*> - Called when connection strings are resolved (requires `IResourceWithConnectionString`)
710
+
-<xref:Aspire.Hosting.EventingExtensions.OnResourceEndpointsAllocated*> - Called when resource endpoints are allocated (requires `IResourceWithEndpoints`)
711
+
-<xref:Aspire.Hosting.EventingExtensions.OnResourceReady*> - Called when the resource is fully ready
712
712
713
713
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.
714
714
@@ -920,7 +920,7 @@ Aspire only shows notifications when a newer version is available, and the check
920
920
921
921
Connection strings:
922
922
923
-
- Appear in the **resource details** panel for any resource that implements `IResourceWithConnectionString`
923
+
- Appear in the **resource details** panel for any resource that implements <xref:Aspire.Hosting.ApplicationModel.IResourceWithConnectionString>
924
924
- Values are marked as **sensitive** and can be toggled for visibility in the dashboard
925
925
- Supports all resource types including databases, message brokers, and custom resources
926
926
@@ -1042,7 +1042,7 @@ builder.Build().Run();
1042
1042
1043
1043
##### Azure AI Foundry Local support
1044
1044
1045
-
[Azure AI Foundry Local](https://learn.microsoft.com/azure/ai-foundry/foundry-local/) is an on-device AI inference solution that runs models locally on your hardware, providing performance, privacy, and cost advantages without requiring an Azure subscription. It's ideal for scenarios requiring data privacy, offline operation, cost reduction, or low-latency responses.
1045
+
[Azure AI Foundry Local](/azure/ai-foundry/foundry-local/) is an on-device AI inference solution that runs models locally on your hardware, providing performance, privacy, and cost advantages without requiring an Azure subscription. It's ideal for scenarios requiring data privacy, offline operation, cost reduction, or low-latency responses.
1046
1046
1047
1047
```csharp
1048
1048
var builder = DistributedApplication.CreateBuilder(args);
- **Azure AI Foundry** - Cloud-hosted models with enterprise-grade scaling, supports all Azure AI model deployments
1110
1110
- **Foundry Local** - On-device inference with different model selection optimized for local hardware, no Azure subscription required
1111
1111
1112
-
The `RunAsFoundryLocal()` method enables local development scenarios using [Azure AI Foundry Local](https://learn.microsoft.com/azure/ai-foundry/foundry-local/), allowing you to test AI capabilities without requiring cloud resources during development. This supports automatic model downloading, loading, and management through the integrated Foundry Local runtime.
1112
+
The `RunAsFoundryLocal()` method enables local development scenarios using [Azure AI Foundry Local](/azure/ai-foundry/foundry-local/), allowing you to test AI capabilities without requiring cloud resources during development. This supports automatic model downloading, loading, and management through the integrated Foundry Local runtime.
1113
1113
1114
1114
### 🗄️ Database hosting improvements
1115
1115
@@ -1139,7 +1139,7 @@ All database providers now support `WithInitFiles()` method, replacing the more
1139
1139
1140
1140
### 🏷️ Consistent resource name exposure
1141
1141
1142
-
.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.
1142
+
.NET Aspire 9.4 now consistently exposes the actual names of all Azure resources through the `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
1143
1144
1144
### 🗄️ Azure Cosmos DB
1145
1145
@@ -1174,7 +1174,7 @@ builder.Build().Run();
1174
1174
- **Better data distribution** for multi-dimensional datasets
1175
1175
- **Enhanced scalability** up to 10,000+ RU/s per logical partition prefix
1176
1176
1177
-
For detailed guidance on design patterns and best practices, see the [Azure Cosmos DB hierarchical partition keys documentation](https://learn.microsoft.com/azure/cosmos-db/hierarchical-partition-keys).
1177
+
For detailed guidance on design patterns and best practices, see the [Azure Cosmos DB hierarchical partition keys documentation](/azure/cosmos-db/hierarchical-partition-keys).
1178
1178
1179
1179
#### Serverless support
1180
1180
@@ -1199,7 +1199,7 @@ var provisionedCosmos = builder.AddAzureCosmosDB("cosmos")
For detailed comparison and limits, see [Azure Cosmos DB serverless documentation](https://learn.microsoft.com/azure/cosmos-db/serverless).
1202
+
For detailed comparison and limits, see [Azure Cosmos DB serverless documentation](/azure/cosmos-db/serverless).
1203
1203
1204
1204
### 🆔 Consistent user-assigned managed identity support
1205
1205
@@ -1293,8 +1293,8 @@ var webApi = builder.AddProject<Projects.WebAPI>("webapi")
1293
1293
1294
1294
**Key features**:
1295
1295
1296
-
- `Aspire.Hosting.Azure.KeyVault.AzureKeyVaultResourceExtensions.AddSecret`method for adding new secrets to Key Vault from parameters or expressions
1297
-
- `Aspire.Hosting.Azure.KeyVault.AzureKeyVaultResourceExtensions.GetSecret`method for referencing existing secrets in Key Vault
1296
+
- <xref:Aspire.Hosting.AzureKeyVaultResourceExtensions.AddSecret*> method for adding new secrets to Key Vault from parameters or expressions
1297
+
- <xref:Aspire.Hosting.Azure.AzureKeyVaultResource.GetSecret*> method for referencing existing secrets in Key Vault
1298
1298
- **Strongly-typed secret references** that can be used with `WithEnvironment()` for environment variables
1299
1299
- **Custom secret naming** support with optional `secretName` parameter
1300
1300
@@ -1819,7 +1819,7 @@ var resource = builder.AddAzureInfrastructure("custom", infra =>
1819
1819
});
1820
1820
```
1821
1821
1822
-
**Migration impact**: Replace auto-injected parameters with explicit resource modeling for better resource graph representation and support for multiple Azure compute environments. See [Azure resource customization docs](https://learn.microsoft.com/dotnet/aspire/azure/customize-azure-resources) for more details.
1822
+
**Migration impact**: Replace auto-injected parameters with explicit resource modeling for better resource graph representation and support for multiple Azure compute environments. See [Azure resource customization docs](/dotnet/aspire/azure/customize-azure-resources) for more details.
0 commit comments