At cVation we are passionate about cloud development, and over the last 10 years we have channeled our experience around cloud development into our Cloud Accelerated Development & Delivery (CADD) toolbox. CADD ensures best practices, quality, and performance when we develop for the cloud, and it enables us to focus on the business application early in the development phase.
Our experience building CADD makes me very excited to see the announcement of .NET Aspire, which shares many of the underlying philosophies. In this blog post, I will dive deeper into what .NET Aspire is, and what the preview version provides today.
.NET Aspire
In Microsoft’s own words .NET Aspire is “an opinionated, cloud ready stack for building observable, production ready, distributed applications”. The intention is to simplify and streamline the way distributed applications are created and configured, while at the same time providing capabilities one would expect from a modern distributed architecture, such as logging, service discovery, and health checks. To see some of this in action, I will dive into Microsoft’s .NET Aspire Sample.
.NET Aspire Distributed App Host
The sample contains two applications:
An ASP.NET API with a single endpoint to produce weather data.
A frontend to consume and show the weather data.
These applications have a dependency between them because the frontend needs to invoke the API to retrieve the data. Additionally, this sample is configured to use Redis to cache the API data instead of asking each time. So how do these applications know about each other and the cache? And how does .NET Aspire know what to deploy?
The answer lies in what .NET Aspire calls the distributed app host. This is a .NET project responsible for defining the overall architecture including resources and references between them.