
Microsoft has announced the release of .NET Aspire 9.4, which the company says is the largest update yet.
.NET Aspire is a set of tools, templates, and packages that Microsoft provides to enable developers to build distributed apps with observability built in.
With this release, Aspire’s CLI is now generally available and includes four core commands: aspire new
(use templates to create an app), aspire add
(add hosting integrations), aspire run
(run the app from any terminal or editor), and aspire config
(view, set, and change CLI settings).
Additionally, there are two new beta commands that can be turned on using aspire config set
. exec
allows developers to execute CLI tools and deploy
allows apps to be deployed to dev, test, or prod environments.
Microsoft also redesigned the experience around its eventing APIs and added an interaction service that allows developers to create custom UX for getting user input. It supports standard text input, masked text input, numeric input, dropdowns, and checkboxes.
.NET Aspire also uses this interaction service to collect missing parameter values by prompting the developer for them before starting a resource that needs them.
Also new in this release are previews for hosting integrations with GitHub Models and Azure AI Foundry to enable developers to define AI apps in their apphost and then run them locally.
“Aspire streamlines distributed, complex app dev, and an increasingly popular example of this is AI development. If you’ve been adding agentic workflows, chatbots, or other AI-enabled experiences to your stacks, you know how difficult it is to try different models, wire them up, deploy them (and authenticate to them!) at dev time, and figure out what’s actually happening while you debug. But, AI-enabled apps are really just distributed apps with a new type of container – an AI model! – which means Aspire is perfect for streamlining this dev loop,” Microsoft wrote in a blog post.
And finally, .NET Aspire 9.4 adds the ability to use AddExternalService()
to model a URL or endpoint as a resource, get its status, and configure it like any other resource in the apphost.