The .NET team has released version 9.2 of .NET Aspire, introducing updates to the dashboard experience, new integration capabilities, and deployment improvements. As stated in the official announcement, this release furthers the platform’s goal of simplifying application development and cloud-native deployment workflows.
One of the main features in this version is the new Resource Graph, which visually represents all resources defined in the application host and their relationships. This enhancement aims to provide developers with a clearer understanding of their application’s structure, complementing the existing table-based view. The graph follows the dashboard’s established iconography and color scheme used across other sections, such as logs and traces.
(Resource Graph in Action, Source: Official Microsoft Documentation)
Other updates related to the dashboard feature are new Resource icons, new buttons were added to the Console logs, Structured logs, Traces, and Metrics pages to pause collecting telemetry, furthermore, the dashboard now warns developers when a metric exceeds the configured cardinality limit, and many more updates.
The update also adds support for custom resource URLs, enabling developers to define local domain mappings for development environments. These URLs can now be configured in the AppHost project and are displayed in the dashboard.
Resource deep linking has also been expanded. In addition to earlier support for database and Azure Storage services, it now includes Azure Cosmos DB, Service Bus, Event Hubs, OpenAI, and Web PubSub. As reported, this enables direct access to child resources, such as connection strings for Cosmos DB or topics in Service Bus.
Version 9.2 introduces native support for defining custom HTTP commands through a new API. This version adds the WithHttpCommand() extension method to trigger some tasks. As stated by the team, it can use the API to define a resource command that sends an HTTP request to your app from the dashboard, making it easy to perform common development tasks like seeding a DB or clearing a cache.
A notable addition is the introduction of a deployment mechanism referred to as publishers. This feature defines how applications are packaged and deployed across environments. Developed in collaboration with David Sekula, the author of the Aspir8 tool, the publisher model is now integrated directly into .NET Aspire. As reported, it supports deployment to Docker Compose, Kubernetes, and Azure without requiring separate tooling. More about it can be read on the official blog announcement.
The release also includes a behavioral change in how managed identities are assigned in Azure deployments. In earlier versions, Azure Container Apps shared a single identity, while in version 9.2, each app is assigned its own managed identity by default. This affects how services such as Azure SQL Server and Azure PostgreSQL manage access.
For instance, Azure SQL supports only one Azure AD admin, potentially limiting access unless additional user roles are explicitly configured. Similarly, PostgreSQL databases now require proper GRANT permissions when accessed by multiple apps.
The upgrade from version 9.1 is incremental and compatible with both .NET 8 and .NET 9. Developers are advised to update SDK references and NuGet packages accordingly. Full migration steps and optional changes are available in the official documentation.
As noted in the release notes, version 9.2 introduces several breaking changes categorized as binary incompatible, source incompatible, or behavioral. These include adjustments to Key Vault role assignments, API deprecations, and changes in authentication workflows.
Interested readers can refer to the official release notes for a complete overview of all features, updates, and breaking changes included in this release.