Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News .NET Aspire: Cloud-Native App Development with Microsoft's Latest Project

.NET Aspire: Cloud-Native App Development with Microsoft's Latest Project

Microsoft released .NET 8, and one of the most notable news within the launch was .NET Aspire, a new and cloud-native development stack for building resilient, observable, and configurable cloud-native applications within the dotnet ecosystem. .NET Aspire includes a selected set of components enhanced for cloud-native by including service discovery, telemetry, resilience, and health checks by default.

.NET Aspire is an opinionated stack that enables developers and teams to build, provision, deploy, configure, test, run, and observe cloud applications seamlessly. The first preview of .NET Aspire is shipped now with .NET 8 launch, and general availability is planned for the spring of 2024 as a part of .NET 8.

Furthermore, the .NET Aspire enhances application development through its orchestration features, facilitating the seamless execution and connection of multi-project applications and their dependencies. It introduces standardized component packages, delivered as NuGet packages for popular services like Redis or Postgres.

The framework also includes user-friendly tooling experiences, including project templates and command-line interface support in Visual Studio and the dotnet CLI, simplifying the creation and interaction with .NET Aspire applications.

Based on the huge amount of community feedback, developers are highly interested in this new Microsoft project. The GitHub project gained nearly 2k stars only a few days after the announcement was published. The community members had a lot of questions based on Project Tye and its future regarding Aspire.

David Fowler wrote on X thread (previously known as Twitter) the following:

If you've been using Project Tye, this is the logical conclusion to that experiment we started 4 years ago (plus lots of other goodies!).

Regarding the earlier mentioned components, they ensure a simplified and transparent development experience, and as reported, components are required to meet specific criteria for usage. This includes providing detailed configuration, implementing Health Checks for monitoring remote services, offering a configurable resiliency pattern, and integrating logging and tracing.

Each component is designed to work with .NET Aspire orchestration, and they can flow their configurations through dependencies based on .NET project and package references.

Components are Cloud-agnostic and Azure-specific ones, and the initial set of components is available for exploration, with additional documentation found at .NET Aspire components overview on Microsoft Learn.

Other parts of development with .NET Aspire include elements like an application model and a Developer Dashboard for comprehensive app monitoring and inspection, Observability, Service Discovery and deployment of a .NET Aspire Application.

(Source: Microsoft .NET Blog, Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8)

Regarding the existing apps, the original announcement blog post shares steps on how to get started if developers want to use Aspire in the existing apps. Developers should ensure an upgrade to .NET 8 and the use of Visual Studio 17.9. By right-clicking on a project in Visual Studio and selecting Add followed by Aspire Orchestrator Support, an AppHost and ServiceDefaults project is generated, with the selected project automatically included in the AppHost.

(Source: Microsoft .NET Blog, Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8)

After that, as stated, launching the AppHost project provides access to the developer dashboard. To enhance the application, users can add a reference to the ServiceDefaults project and invoke the AddServiceDefaults() method on the application builder, configuring Open Telemetry, health checks, service discovery, and default resiliency patterns for the project.

In the announcement blog post, Glenn Condron, principal program manager, .NET, expressed enthusiasm and confidence in delivering the initial preview of .NET Aspire, highlighting its foundation on robust fundamentals and a highly productive API surface in .NET 8.

The comment section below the original announcement post was full of constructive and highly informative communication between the community and Microsoft team members. InfoQ readers should explore the commentary section and gather some additional development insights.

Also, the FAQ part of official documentation holds a few valuable explanations and differences from other and similar projects, which can also be valuable for readers to explore.

Lastly, the Microsoft team is calling the developers to share the feedback with them through the official GitHub repository of this new cloud-native development project called .NET Aspire.

About the Author

Rate this Article