Featured image of post .NET Aspire

.NET Aspire

Opinionated, cloud ready stack for building observable, production ready, distributed applications.

Crafting Cloud friendly or Cloud native system or ecosystem is hard. We need to shift our mind on many topics, changing the way we articulate our code base, coping with a lot of new things - such as resilience, observability, authentication, failure - and all of those devops stuff we are not used to. Last but not least, we have to manage a compelling stack we can daily exercise. It often ends up with scripts, helpers, hacks and more. And eventually, it becomes both hard to operate and maintain. And it is not that portable… And at the end of the day, it is not our job. We are building application, not pipeline or engine. Microsoft luckily made the same journey and recently beta released .NET Aspire, the next Big Thing.

Core

.NET Aspire is designed to improve the experience of building .NET cloud-native apps. It provides a consistent, opinionated set of tools and patterns that help you build and run distributed apps. .NET Aspire is designed to help you with:

  • Orchestration: .NET Aspire provides features for running and connecting multi-project applications and their dependencies, including service discovery, network management and stack monitoring.
  • Components: .NET Aspire components are NuGet packages for commonly used services, such as Redis or Postgres, with standardized interfaces ensuring they connect consistently and seamlessly with your app. It also means extensibility for outsiders to plug their own application or languages.
  • Ready to use: .NET Aspire provides built-in support for OTEL, healthcheck, service default, … All stuff you should probably deal with early in the project lifecycle if you like peacefully living.

Why you should probably look at…

You have a sizable ecosystem to deploy and you’d like to decrease your mental load. Memorizing all those endpoints addresses, as well as logs location, executables status, and how to diagnose the whole when something fails..
Why not tasting .NET Aspire orchestration facility through its dashboard to really focus on what matters?

You have an heterogenous stack to deploy involving executables, source and containers, and you’re becoming crazy with port forwarding, localhost dissociative identity disorder, without speaking about juggling between docker engine, VPN and plain old executables.
Why not leveraging .NET Aspire to shape your deployment once for all and then forget about all of this?

You’re aware even interested about those trendy things like O11y, Oauth 2.0 but because you cannot exercise them easily and daily you forget about them.
Why not testing .NET Aspire OpenTelemetry stack and see how it can drastically decrease your diagnostic loop?

You are tired of the discrepancy between local and remote. Because everything works but doesn’t scale. Or scales but doesn’t work anymore.. You’d like a remote siblings but stays local.
Why not using .NET Aspire built-in components to gently scale?

You are afraid of how demanding the scaling process in term of tech seems to be (docker, compose, kubernetes, helm) and you’re right.
Why not trusting .NET Aspire to auto-generate docker compose or kubernetes manifests for you instead?

You are not a .NET developer - no worries, everyone cannot be that lucky - and would like to benefit from a sustainable developer experience.
Why not engaging with .NET Aspire and see how a couple of C# lines can change your daily life?

You are a .NET developer and you want to develop the way it should be.
No why not there, .NET Aspire is a no brainer.

If you recognized yourself above, I do advocate giving .NET Aspire a try. It’s worth it.

Licensed under CC BY-NC-SA 4.0
Last updated on Feb 08, 2024 00:00 UTC
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy