Telerik blogs

This post introduces .NET Aspire, an opinionated toolkit that allows developers work with cloud-native applications.

This is the first part of a five-part exploratory series on .NET Aspire.

  • This post (part 1): What Is .NET Aspire?
  • Part 2: Exploring the Developer Dashboard
  • Part 3: Smart Defaults and Integrations
  • Part 4: Orchestration and Service Discovery
  • Part 5: Deployment Using Azure Container Apps

Over the last few years, I’ve been chronically tired and I don’t know why. I hydrate, I exercise, I get decent sleep and I even eat a vegetable or two. In short, I’m Wisconsin healthy. (85% healthy habits, and 15% cheese curds and beer.)

I haven’t been able to figure out what’s wrong, and the doctors haven’t either. But after much reflection and some late nights, I figured it out.

I work in cloud-native development.

Progress, Albeit Slow

Once upon time—a simpler time, no doubt—we shipped hulking monoliths. One app, one deploy and one big, beautiful ball of code. Need to add a feature? Crack open the behemoth, sprinkle in a few classes and pray the whole thing still compiles on Friday afternoon.

Then came microservices and our “make everything smaller” movement. Suddenly that single code pile shattered into a mess of bite-sized services, each with its own repo, pipeline and database. Debugging turned into a game of distributed whack-a-mole, all scattered across 12 clusters like digital confetti.

Deploying code used to be “copy files to the server.” Today it’s a helm upgrade, a Docker registry push, a secret rotation, configuration updates and a moment of silence for the build agent. Progress? Absolutely. Simple and enjoyable? Never.

Gains ... And Gains

But here’s the thing: The chaos isn’t for nothing. We’ve gained on-demand infrastructure, independent deployments and self-healing resilience that would make past Dave weep. Spinning up a replica database takes minutes, not days. Rolling back a troubled service is a one-line re-deploy, not an all-hands war room.

Those wins are real—but so is the cognitive load. Every new repo adds another Dockerfile, another liveness probe and another chance to typo your configuration files. Wouldn’t it be nice to keep the benefits without the YAML-induced migraines?

Imagine an opinionated set of tools that wrap all those best practices—service discovery, health checks, telemetry, secret management and more—into sane defaults you don’t have to wire up from scratch. Something that spins up your entire stack with a single command, shows traces and logs in one dashboard, and makes production deployment a breeze.

.NET Aspire for Cloud-Native Development

We’ll be looking at .NET Aspire, your building blocks for working with the complexities of cloud-native development. It doesn’t erase the complexity but organizes it into parts that snap together:

  • You can bootstrap your app with a single command, and no more Docker Compose gymnastics.
  • A unified developer dashboard for distributed tracing, logs, metrics and container monitoring in a single tab. No more having six debugging windows for your frontend and all your APIs.
  • Aspire includes smart defaults to cover OpenTelemetry, Polly retries, secret rotation and health probes.
  • No more hard-coding URLs with configuring service discovery at development time.
  • Component support lets you drop in PostgreSQL, Redis, Azure Service Bus, Key Vault and more with one line of code. Aspire pulls the container image, wires the connection string, adds health probes and even injects secrets for you—all powered by its integration library.

The Project This Series Will Explore

Get comfortable: We’re going to spend the next four posts applying .NET Aspire to an existing application. Welcome to Dave’s Guitar Shop. (If you have free inventory, feel free to pass it my way.)

Dave’s Guitar Shop started as a regular monolithic application. It had a Blazor web app and a single API project that handled identity, product inventory and orders.

phase1 api

Dave’s Guitar Shop is growing and now we have several development teams. We’ve decided to leverage microservices, and our high-level architecture is looking a bit different.

phase2 api

Keep in mind this is just a high-level view! We still want to add telemetry services, some queuing and maybe even some OpenAI services. We’re also having scaling and resiliency issues and want to deploy to Azure Container Apps. This is a great use case for .NET Aspire.

Throughout these next four posts, we’re going to show off the benefits of .NET Aspire. In the next post, I’ll show you how to add .NET Aspire to an existing project and the benefits of the Developer Dashboard. Stay tuned, and I’ll see you soon!


Dave-Brock-headshot-sq
About the Author

Dave Brock

Dave Brock is a software engineer, writer, speaker, open-source contributor and former Microsoft MVP. With a focus on Microsoft technologies, Dave enjoys advocating for modern and sustainable cloud-based solutions.

Related Posts

Comments

Comments are disabled in preview mode.