Alpha state. A platform designed for building enterprise-grade, multi-tenant products using Azure, .NET, React, TypeScript, Infrastructure as Code, etc.
Upgrade to .NET Aspire 9 while continuing to target .NET 8, bringing several enhancements and simplifying the developer experience.
Aspire 9 introduces the ability to await the readiness of services like SQL Server. This enabled the removal of custom retry logic in database migrations. The AppHost has been restructured to configure dependencies using the new WaitFor() feature. Additionally, the WithDataVolume extension is now utilized for cleaner syntax when configuring persistent Docker volumes.
Single Page App (SPA) generation timings have been adjusted to align with updated startup behavior. While the SPA timing logic is theoretically unnecessary (as the SPA is always ready before SQL Server), it has been retained for future compatibility with .NET 9, which will support keeping services like SQL Server running between debug sessions.
The pp dev Developer CLI command has been removed, as Aspire now starts the dashboard immediately, even before Docker images are downloaded. The README has been updated to instruct users to run dotnet run apphost instead. Aspire is now distributed as a NuGet package, removing the need for the .NET Aspire workload prerequisite.
All NuGet packages have been updated to their latest versions, except Entity Framework, which was excluded due to test failures caused by multiple service registrations.
Finally, the README has been refreshed to reflect the latest project status. Windows installation instructions now use WinGet instead of Chocolatey, and a new demo video has been added.
Checklist
[x] I have added a Label to the pull-request
[x] I have added tests, and done manual regression tests
[x] I have updated the documentation, if necessary
Summary & Motivation
Upgrade to .NET Aspire 9 while continuing to target .NET 8, bringing several enhancements and simplifying the developer experience.
Aspire 9 introduces the ability to await the readiness of services like SQL Server. This enabled the removal of custom retry logic in database migrations. The AppHost has been restructured to configure dependencies using the new
WaitFor()
feature. Additionally, theWithDataVolume
extension is now utilized for cleaner syntax when configuring persistent Docker volumes.Single Page App (SPA) generation timings have been adjusted to align with updated startup behavior. While the SPA timing logic is theoretically unnecessary (as the SPA is always ready before SQL Server), it has been retained for future compatibility with .NET 9, which will support keeping services like SQL Server running between debug sessions.
The
pp dev
Developer CLI command has been removed, as Aspire now starts the dashboard immediately, even before Docker images are downloaded. The README has been updated to instruct users to rundotnet run apphost
instead. Aspire is now distributed as a NuGet package, removing the need for the .NET Aspire workload prerequisite.All NuGet packages have been updated to their latest versions, except Entity Framework, which was excluded due to test failures caused by multiple service registrations.
Finally, the README has been refreshed to reflect the latest project status. Windows installation instructions now use WinGet instead of Chocolatey, and a new demo video has been added.
Checklist