Skip to content

What's new in .NET Aspire 9.2 #2877

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Apr 10, 2025
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6da1ca2
Add initial bits for #2869. What's new in .NET Aspire 9.2
IEvangelist Mar 20, 2025
89a0809
Add a few more what's new bits
IEvangelist Mar 21, 2025
dd178bd
Add dashboard config
IEvangelist Mar 21, 2025
6169908
Add initial details about HTTP commands
IEvangelist Mar 21, 2025
29ff8d8
Apply suggestions from code review
IEvangelist Mar 27, 2025
9280279
Edit pass
IEvangelist Mar 27, 2025
e2b7e03
Add link to breaking changes
IEvangelist Mar 27, 2025
e303adf
Removed MS-collected telemetry
IEvangelist Mar 27, 2025
12f2023
Try toying with TOC
IEvangelist Apr 2, 2025
3726a5d
Expand product updates
IEvangelist Apr 2, 2025
71b8dee
Apply suggestions from code review
IEvangelist Apr 10, 2025
bb12a68
Delete section
IEvangelist Apr 10, 2025
982d5f3
Update .NET Aspire 9.2 documentation
davidfowl Apr 10, 2025
1070d5a
Update docs/whats-new/dotnet-aspire-9.2.md
davidfowl Apr 10, 2025
126c22c
Update connection string and deployment section
mitchdenny Apr 10, 2025
b2ffa28
Added testing updates
IEvangelist Apr 10, 2025
9b636c4
Update docs/whats-new/dotnet-aspire-9.2.md
IEvangelist Apr 10, 2025
2a88ec3
Clean up
IEvangelist Apr 10, 2025
7740636
Minor updates
IEvangelist Apr 10, 2025
9fb9561
Apply suggestions from code review
IEvangelist Apr 10, 2025
1617873
Apply suggestions from code review
IEvangelist Apr 10, 2025
e3bb111
Apply suggestions from code review
IEvangelist Apr 10, 2025
e55f50e
Apply suggestions from code review
IEvangelist Apr 10, 2025
09cbdea
Add images
IEvangelist Apr 10, 2025
4469ac2
Final tweaks before release branch
IEvangelist Apr 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ items:
href: get-started/github-codespaces.md
- name: Dev Containers
href: get-started/dev-containers.md
- name: What's new in .NET Aspire 9.1
href: whats-new/dotnet-aspire-9.1.md
- name: What's new in .NET Aspire 9.2
href: whats-new/dotnet-aspire-9.2.md
- name: Upgrade to .NET Aspire 9.0
href: get-started/upgrade-to-aspire-9.md

Expand Down
108 changes: 108 additions & 0 deletions docs/whats-new/dotnet-aspire-9.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
title: What's new in .NET Aspire 9.2
description: Learn what's new in the official general availability release of .NET Aspire 9.2.
ms.date: 04/02/2025
---

# What's new in .NET Aspire 9.2

πŸ“’ .NET Aspire 9.2 is the next minor version release of .NET Aspire; it supports:

- .NET 8.0 Long Term Support (LTS)
- .NET 9.0 Standard Term Support (STS)

If you have feedback, questions, or want to contribute to .NET Aspire, collaborate with us on [:::image type="icon" source="../media/github-mark.svg" border="false"::: GitHub](https://github.com/dotnet/aspire) or join us on [:::image type="icon" source="../media/discord-icon.svg" border="false"::: Discord](https://discord.com/invite/h87kDAHQgJ) to chat with team members.

It's important to note that .NET Aspire releases out-of-band from .NET releases. While major versions of .NET Aspire align with .NET major versions, minor versions are released more frequently. For more information on .NET and .NET Aspire version support, see:

- [.NET support policy](https://dotnet.microsoft.com/platform/support/policy): Definitions for LTS and STS.
- [.NET Aspire support policy](https://dotnet.microsoft.com/platform/support/policy/aspire): Important unique product life cycle details.

## ⬆️ Upgrade to .NET Aspire 9.2

Moving between minor releases of .NET Aspire is simple:

1. In your app host project file (that is, _MyApp.AppHost.csproj_), update the [πŸ“¦ Aspire.AppHost.Sdk](https://www.nuget.org/packages/Aspire.AppHost.Sdk) NuGet package to version `9.2.0`:

```diff
<Project Sdk="Microsoft.NET.Sdk">

<Sdk Name="Aspire.AppHost.Sdk" Version="9.2.0" />

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
- <IsAspireHost>true</IsAspireHost>
<!-- Omitted for brevity -->
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.2.0" />
</ItemGroup>

<!-- Omitted for brevity -->
</Project>
```

> [!IMPORTANT]
> The `IsAspireHost` property is no longer required in the project file. For more information, see [App host project file changes](#-app-host-project-file-changes).

For more information, see [.NET Aspire SDK](xref:dotnet/aspire/sdk).

1. Check for any NuGet package updates, either using the NuGet Package Manager in Visual Studio or the **Update NuGet Package** command in VS Code.
1. Update to the latest [.NET Aspire templates](../fundamentals/aspire-sdk-templates.md) by running the following .NET command line:

```dotnetcli
dotnet new update
```

> [!IMPORTANT]
> The `dotnet new update` command updates all of your templates to the latest version.

If your app host project file doesn't have the `Aspire.AppHost.Sdk` reference, you might still be using .NET Aspire 8. To upgrade to 9.0, follow [the upgrade guide](../get-started/upgrade-to-aspire-9.md).

## 🚧 App host project file changes

The .NET Aspire app host project file no longer requires the `IsAspireHost` property. This property was moved to the `Aspire.AppHost.Sdk` SDK, therefore, you can remove it from your project file. For more information, see [dotnet/aspire issue #8144](https://github.com/dotnet/aspire/pull/8144).

<!--
## πŸ“ˆ Dashboard usage telemetry

.NET Aspire collects usage telemetry from the dashboard by default. This telemetry helps us understand how you use the dashboard and what features are most important to you. We use this information to prioritize our work and improve the dashboard experience. You can opt out of this telemetry by setting the `DOTNET_DASHBOARD_ENABLE_TELEMETRY` environment variable to `false`. For more information, see [.NET Aspire dashboard usage telemetry](../fundamentals/dashboard/usage-telemetry.md).
-->

## 🚫 Disable dashboard resource graphs

The dashboard has the ability to display resource graphs, which show the relationships between resources in your app. This feature is enabled by default, but you can disable it by setting the `Dashboard:UI:DisableResourceGraph` configuration option to `true`.

For more information, see [.NET Aspire dashboard configuration](../fundamentals/dashboard/configuration.md#other).

## βž• Database resources created if missing

There's [plenty of feedback and confusion](https://github.com/dotnet/aspire/issues/7101) around the `AddDatabase` API. The name implies that it adds a database, but it didn't actually create the database. In .NET Aspire 9.2, the `AddDatabase` API now creates a database for the following hosting integrations:

| Hosting integration | API reference |
|--|--|
| [πŸ“¦ Aspire.Hosting.SqlServer](https://www.nuget.org/packages/Aspire.Hosting.SqlServer) | <xref:Aspire.Hosting.SqlServerBuilderExtensions.AddDatabase*> |
| [πŸ“¦ Aspire.Hosting.PostgreSql](https://www.nuget.org/packages/Aspire.Hosting.PostgreSql) | <xref:Aspire.Hosting.PostgresBuilderExtensions.AddDatabase*> |

The Azure SQL and Azure PostgreSQL hosting integrations both expose an `AddDatabase` API, but they don't create a databaseβ€”unless you call their respective `RunAsContainer` methods. For more information, see [Understand Azure integration APIs](../azure/integrations-overview.md#understand-azure-integration-apis).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidfowl @sebastienros - what does this line mean exactly?

Azure SQL And Azure PostgreSQL will create the database in Azure via bicep.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, the database is created. The script won't run though so if it has more than CREATE DATABASE people might get confused.

We could imagine implementing it as part of a deployment script too to seed even and Azure database when it's deployed. Migration scripts.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tweaked the wording here in #3066. If it needs to be adjusted, can you create a PR to change it?


The following hosting integrations don't support database creation:

- [πŸ“¦ Aspire.Hosting.Milvus](https://www.nuget.org/packages/Aspire.Hosting.Milvus)
- [πŸ“¦ Aspire.Hosting.MongoDb](https://www.nuget.org/packages/Aspire.Hosting.MongoDb)
- [πŸ“¦ Aspire.Hosting.MySql](https://www.nuget.org/packages/Aspire.Hosting.MySql)
- [πŸ“¦ Aspire.Hosting.Oracle](https://www.nuget.org/packages/Aspire.Hosting.Oracle)

## 🌐 HTTP-based resource command functionality

[Custom resource commands](../fundamentals/custom-resource-commands.md) now support HTTP-based functionality with the addition of the `WithHttpCommand` API, enabling you to define endpoints for tasks like database migrations or resets. These commands can be run directly from the .NET Aspire dashboard.

For more information, see [Custom HTTP commands in .NET Aspire](../fundamentals/http-commands.md).

## πŸ’” Breaking changes

With every release, we strive to make .NET Aspire better. However, some changes may break existing functionality. The following breaking changes are introduced in .NET Aspire 9.2:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to make sure we call out #2914 as a breaking change at the top if we dont get a workaround for it merged


- [Breaking changes in .NET Aspire 9.2](../compatibility/9.2/index.md)
4 changes: 3 additions & 1 deletion docs/whats-new/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@ summary: Welcome to what's new in .NET Aspire docs. Use this page to quickly fin
metadata:
title: .NET Aspire what's new?
description: Learn about new and updated content in .NET Aspire docs.
ms.date: 03/01/2025
ms.date: 03/20/2025
ms.topic: landing-page
landingContent:
- title: .NET Aspire release documentation
linkLists:
- linkListType: whats-new
links:
- text: What's new in .NET Aspire 9.2
url: dotnet-aspire-9.2.md
- text: What's new in .NET Aspire 9.1
url: dotnet-aspire-9.1.md
- text: What's new in .NET Aspire 9.0
Expand Down
79 changes: 40 additions & 39 deletions docs/whats-new/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,45 @@ items:
href: ../index.yml
- name: What's new
href: index.yml
- name: Latest product updates
expanded: true
items:
- name: Latest product updates
items:
- name: What's new in .NET Aspire 9.1
href: dotnet-aspire-9.1.md
- name: What's new in .NET Aspire 9.0
href: dotnet-aspire-9.md
- name: Announcing .NET Aspire 8.2
href: https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-8-2/
- name: What's new in .NET Aspire 8.1
href: https://devblogs.microsoft.com/dotnet/whats-new-in-aspire-8-1/
- name: .NET Aspire 8.0 (General Availability)
href: https://devblogs.microsoft.com/dotnet/dotnet-aspire-general-availability/
- name: Breaking changes
href: ../compatibility/breaking-changes.md
- name: GitHub releases
items:
- name: .NET Aspire 9.1
href: https://github.com/dotnet/aspire/releases/tag/v9.1.0
- name: .NET Aspire 9.0
href: https://github.com/dotnet/aspire/releases/tag/v9.0.0
- name: .NET Aspire 8.2.1
href: https://github.com/dotnet/aspire/releases/tag/v8.2.1
- name: .NET Aspire 8.2.0
href: https://github.com/dotnet/aspire/releases/tag/v8.2.0
- name: .NET Aspire 8.1.0
href: https://github.com/dotnet/aspire/releases/tag/v8.1.0
- name: .NET Aspire 8.0.2
href: https://github.com/dotnet/aspire/releases/tag/v8.0.2
- name: .NET Aspire 8.0.0
href: https://github.com/dotnet/aspire/releases/tag/v8.0.0
- name: Latest documentation updates
expanded: true
items:
- name: February 2025
href: dotnet-docs-aspire-mod2.md
- name: January 2025
href: dotnet-docs-aspire-mod1.md
- name: December 2024
href: dotnet-docs-aspire-mod0.md
- name: What's new in .NET Aspire 9.2
href: dotnet-aspire-9.2.md
- name: What's new in .NET Aspire 9.1
href: dotnet-aspire-9.1.md
- name: What's new in .NET Aspire 9.0
href: dotnet-aspire-9.md
- name: Announcing .NET Aspire 8.2
href: https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-8-2/
- name: What's new in .NET Aspire 8.1
href: https://devblogs.microsoft.com/dotnet/whats-new-in-aspire-8-1/
- name: .NET Aspire 8.0 (General Availability)
href: https://devblogs.microsoft.com/dotnet/dotnet-aspire-general-availability/
- name: Breaking changes
href: ../compatibility/breaking-changes.md
- name: GitHub releases
items:
- name: .NET Aspire 9.1
href: https://github.com/dotnet/aspire/releases/tag/v9.1.0
- name: .NET Aspire 9.0
href: https://github.com/dotnet/aspire/releases/tag/v9.0.0
- name: .NET Aspire 8.2.1
href: https://github.com/dotnet/aspire/releases/tag/v8.2.1
- name: .NET Aspire 8.2.0
href: https://github.com/dotnet/aspire/releases/tag/v8.2.0
- name: .NET Aspire 8.1.0
href: https://github.com/dotnet/aspire/releases/tag/v8.1.0
- name: .NET Aspire 8.0.2
href: https://github.com/dotnet/aspire/releases/tag/v8.0.2
- name: .NET Aspire 8.0.0
href: https://github.com/dotnet/aspire/releases/tag/v8.0.0
- name: Latest documentation updates
expanded: true
items:
- name: February 2025
href: dotnet-docs-aspire-mod2.md
- name: January 2025
href: dotnet-docs-aspire-mod1.md
- name: December 2024
href: dotnet-docs-aspire-mod0.md