What's new in Aspire 13.2
Aspire 13.2 continues the polyglot journey with TypeScript AppHost support, introduces detached mode for running applications in the background, adds powerful new CLI commands for environment validation and process management, and delivers significant dashboard improvements for managing telemetry. This release focuses on developer productivity across all supported languages and improved operational visibility.
This release introduces:
- TypeScript AppHost support: Write your AppHost in TypeScript with the new polyglot TypeScript SDK.
- Detached mode: Run your Aspire applications in the background with
aspire run --detachand manage them withaspire stop. - New CLI commands:
aspire psto list running AppHosts,aspire doctorfor environment validation, andaspire logsfor accessing resource logs. - Dashboard telemetry management: New dialog to manage telemetry and console log settings with export capabilities.
- Environment variable exports: Export environment variables as
.envfiles directly from the dashboard. - Resource JSON export: Export individual or all resource configurations as JSON from the dashboard.
- OTLP/JSON support: Dashboard now accepts telemetry in OTLP/JSON format alongside protobuf.
- New integrations: Azure Data Lake Storage, MongoDB Entity Framework Core, and embedding support for Azure AI.
- Bun support for Vite: New
WithBun()method for Vite applications. - Improved resource graph: Adaptive force-directed positioning for better visualization of complex applications.
Requirements:
If you have feedback, questions, or want to contribute to Aspire, collaborate with us on GitHub or join us on our Discord to chat with the team and other community members.
🆙 Upgrade to Aspire 13.2
Section titled “🆙 Upgrade to Aspire 13.2”The easiest way to upgrade to Aspire 13.2 is using the aspire update command:
-
Update your Aspire project using the
aspire updatecommand:Aspire CLI — Update all Aspire packages aspire update -
Update the Aspire CLI itself:
Aspire CLI — Update the CLI aspire update --self
🚀 Detached mode and process management
Section titled “🚀 Detached mode and process management”Aspire 13.2 introduces the ability to run your applications in the background, freeing up your terminal for other work.
Run in detached mode
Section titled “Run in detached mode”Use the new --detach flag to run your Aspire application in the background:
aspire run --detachWhen running in detached mode, the dashboard URL is displayed and the CLI returns immediately, allowing you to continue using your terminal.
Stop running applications
Section titled “Stop running applications”The new aspire stop command terminates running AppHost instances:
aspire stopThe stop command uses socket-first discovery for optimal performance and can target specific AppHosts when multiple are running.
Command reference: aspire run and aspire stop.
List running AppHosts
Section titled “List running AppHosts”The new aspire ps command displays all running Aspire AppHost instances:
aspire psThis command provides visibility into which applications are currently active on your machine, including their process IDs and dashboard URLs.
🩺 Environment validation with aspire doctor
Section titled “🩺 Environment validation with aspire doctor”The new aspire doctor command validates your development environment and identifies potential issues:
aspire doctorThe command performs comprehensive checks including:
- Docker/Podman version verification: Ensures your container runtime meets minimum requirements.
- Development certificate validation: Detects and warns about multiple HTTPS development certificates.
- Deprecated workload detection: Checks for the deprecated ‘aspire’ workload and recommends migration.
- Container runtime availability: Validates that Docker or Podman is properly configured.
✓ .NET SDK: 10.0.102✓ Docker: 27.5.0✓ Container runtime: Available⚠ Multiple HTTPS development certificates detected Run 'dotnet dev-certs https --clean' to remove duplicatesThe aspire doctor command is also exposed as an MCP tool, enabling AI coding agents to diagnose environment issues.
📟 CLI telemetry and logging commands
Section titled “📟 CLI telemetry and logging commands”Access resource logs
Section titled “Access resource logs”The new aspire logs command retrieves logs from running resources:
aspire logs <resource-name>This command provides a convenient way to access container and project logs without navigating to the dashboard.
View resources
Section titled “View resources”The new aspire resources command lists all resources in a running AppHost:
aspire resourcesCLI telemetry
Section titled “CLI telemetry”Aspire CLI now exports telemetry data for commands, helping the team understand usage patterns and improve the developer experience. Telemetry is opt-out and respects standard .NET telemetry environment variables.
🔷 TypeScript AppHost support
Section titled “🔷 TypeScript AppHost support”Aspire 13.2 extends polyglot support with the ability to write your AppHost in TypeScript. This enables JavaScript and TypeScript developers to define their distributed applications using familiar syntax and tooling.
import { AppHost } from '@aspire/apphost';
const builder = new AppHost();
const redis = builder.addRedis('cache');const api = builder.addProject('api', '../Api/Api.csproj') .withReference(redis);
builder.addNpmApp('frontend', '../frontend') .withReference(api) .withExternalHttpEndpoints();
await builder.run();The TypeScript SDK provides:
- Full type definitions for all Aspire resources and APIs.
- Integration with popular Node.js package managers (npm, yarn, pnpm, bun).
- Seamless interoperability with .NET projects and containers.
- Support for all Aspire annotations and configuration options.
Learn more about polyglot AppHost support.
📊 Dashboard improvements
Section titled “📊 Dashboard improvements”Telemetry and console logs management
Section titled “Telemetry and console logs management”A new dialog provides centralized control over telemetry and console log settings. Access it from the settings menu to:
- Configure log retention and filtering.
- Export telemetry data in various formats.
- Manage console log preferences per resource.
Environment variable export
Section titled “Environment variable export”Export environment variables as .env files directly from the dashboard. This feature is particularly useful for:
- Sharing configuration with team members.
- Debugging integration issues locally.
- Migrating to containerized deployments.
Resource JSON export
Section titled “Resource JSON export”The dashboard now includes an Export JSON option for individual resources and an Export All button for the complete resource configuration. This enables:
- Documenting your application architecture.
- Comparing configurations across environments.
- Programmatic analysis of resource definitions.
OTLP/JSON support
Section titled “OTLP/JSON support”The dashboard now accepts OpenTelemetry Protocol data in JSON format alongside the existing protobuf format. This improves compatibility with:
- Browser-based telemetry exporters.
- Custom instrumentation in JavaScript applications.
- Debug scenarios where human-readable telemetry is preferred.
Additional dashboard improvements
Section titled “Additional dashboard improvements”- Persist collapsed state: Resource collapsed/expanded state is now persisted across page reloads.
- Improved graph layout: Adaptive force-directed positioning provides cleaner visualization of complex dependency graphs.
- Secret visibility toggle: New toggle button for secret visibility in interaction dialogs.
- Copy button improvements: Copy button now appears even when values are hidden.
- Token masking: Query string values in URLs are now masked in the UI.
- Dashboard icon: New icon displayed in the browser tab.
🌐 JavaScript and frontend improvements
Section titled “🌐 JavaScript and frontend improvements”Bun support for Vite
Section titled “Bun support for Vite”Add Bun as a package manager for Vite applications with the new WithBun() method:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddViteApp("frontend", "../frontend") .WithBun();Learn more about Bun support with the JavaScript integration.
JavaScript fixes
Section titled “JavaScript fixes”- Fixed
WithYarnwhen used withAddViteApp. - Fixed backslash escaping in path strings for discovered Vite configurations.
- Improved corepack handling for pnpm-based projects.
☁️ Azure improvements
Section titled “☁️ Azure improvements”Azure Data Lake Storage
Section titled “Azure Data Lake Storage”New integration for Azure Data Lake Storage Gen2:
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureDataLakeStorage("datalake");
builder.AddProject<Projects.DataProcessor>("processor") .WithReference(storage);Azure AI embeddings
Section titled “Azure AI embeddings”The Azure AI Inference integration now supports embedding models:
var builder = DistributedApplication.CreateBuilder(args);
var ai = builder.AddAzureAIInference("ai");
builder.AddProject<Projects.SearchService>("search") .WithReference(ai.AddEmbeddingClient("text-embedding"));Azure App Service updates
Section titled “Azure App Service updates”- Improved deployment slot support with
onlyIfNotExistssemantics. - Dashboard import functionality disabled for App Service configurations.
- Better error messages when environment variables are normalized.
Azure Container Registry improvements
Section titled “Azure Container Registry improvements”IAzureContainerRegistryinterface is now obsolete; use the newContainerRegistryproperty on compute environments.- Improved registry validation for non-Docker image formats.
Azure ServiceBus emulator update
Section titled “Azure ServiceBus emulator update”Updated to Azure ServiceBus emulator version 2.0.0 with improved performance and reliability.
Azure App Configuration emulator update
Section titled “Azure App Configuration emulator update”Updated to Azure App Configuration emulator version 1.0.2.
📦 New integrations
Section titled “📦 New integrations”MongoDB Entity Framework Core
Section titled “MongoDB Entity Framework Core”New client integration for MongoDB with Entity Framework Core:
var builder = WebApplication.CreateBuilder(args);
builder.AddMongoDBEntityFramework("mongodb");Oracle Entity Framework Core multi-targeting
Section titled “Oracle Entity Framework Core multi-targeting”The Oracle Entity Framework Core integration now supports multiple .NET target frameworks for broader compatibility.
🧩 App model updates
Section titled “🧩 App model updates”Resource dependencies
Section titled “Resource dependencies”New utility method to compute resource dependencies programmatically:
var dependencies = await resource.GetResourceDependenciesAsync();Event handling improvements
Section titled “Event handling improvements”BeforeResourceStartedEventnow only fires when a resource is actually starting (not on restart or other state changes).- Added
Loggerproperty toIDistributedApplicationResourceEventfor better diagnostics.
Image pull policy
Section titled “Image pull policy”The Never image pull policy is now properly exposed and validated:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddContainer("mycontainer", "myimage:latest") .WithImagePullPolicy(ImagePullPolicy.Never);Docker Compose improvements
Section titled “Docker Compose improvements”- New
PullPolicyproperty on Docker Compose Service class. - Improved annotation integration for container configuration.
Debugger display attributes
Section titled “Debugger display attributes”Added DebuggerDisplayAttribute to resource types, DistributedApplication, EndpointReferenceExpression, and ReferenceExpression for improved debugging experience in Visual Studio.
Wait for improvements
Section titled “Wait for improvements”Better exception handling in ResourceNotificationService.WaitFor with more descriptive error messages.
🛠️ CLI enhancements
Section titled “🛠️ CLI enhancements”Fuzzy search in aspire add
Section titled “Fuzzy search in aspire add”The aspire add command now supports fuzzy search for finding integrations:
aspire add reddis # Will suggest "redis"Isolated run mode
Section titled “Isolated run mode”New --isolated flag for the run command to prevent automatic instance detection:
aspire run --isolatedConfiguration schema generation
Section titled “Configuration schema generation”The CLI now generates JSON schemas for configuration files, enabling IntelliSense and validation in supported editors.
Additional CLI improvements
Section titled “Additional CLI improvements”- Improved search highlight contrast in interactive prompts for accessibility.
- Retries added to NuGet search operations for reliability.
- Fixed installation path handling with
aspire update --self. - Better error messages for deprecated workload detection.
🔒 Security and reliability
Section titled “🔒 Security and reliability”Deployment directory permissions
Section titled “Deployment directory permissions”Deployment state directories are now restricted to the current user only, preventing potential information disclosure.
Environment variable redaction
Section titled “Environment variable redaction”Debug configuration logging now redacts environment variables by default to prevent accidental credential exposure.
Socket naming improvements
Section titled “Socket naming improvements”- PID-based socket naming improves backchannel reliability.
- Fixed Windows startup errors caused by reserved device names (AUX, CON, etc.) in socket paths.
Certificate improvements
Section titled “Certificate improvements”- Fixed certificate serial number generation.
- Better filtering of development certificates without
X509SubjectKeyIdentifierExtension.
🐛 Bug fixes
Section titled “🐛 Bug fixes”- Fixed app host returning incorrect
ResourceTypeto the dashboard. - Fixed Parameters view to ignore resource type filter.
- Fixed GenAI tool schema parsing for type arrays.
- Fixed race condition in
RabbitMQEventSourceListener. - Fixed showing URLs from other resources’ endpoints.
- Fixed MongoDB connection string options formatting (forward slash prepending).
- Fixed deployment failure for resources with
ExcludeFromManifest. - Fixed
WithHostHttpsPortwhen chained inline. - Fixed exporting metrics data points from dashboard.
- Fixed graph to always update after all filter changes.
- Fixed tooltip for view options button in resource details panel.
- Fixed noisy exception logging during cancellation.
- Fixed flaky tests across CLI, dashboard, and deployment components.
🙏 Community contributions
Section titled “🙏 Community contributions”Thank you to all community contributors who helped make Aspire 13.2 possible:
- TypeScript AppHost — Initial implementation and polyglot SDK work.
- Bun support for Vite —
WithBun()extension method. - Fuzzy search — Improved
aspire adddiscovery experience. - Resource graph improvements — Adaptive force-directed positioning.
- MongoDB Entity Framework Core — New integration package.
- Azure Data Lake Storage — New Azure integration.
- Kubernetes YAML fixes — Publishing improvements.
- Multiple bug fixes — Including certificate handling, connection strings, and GenAI parsing.
We’re always excited to see community contributions! If you’d like to get involved, check out our contributing guide.
⚠️ Breaking changes
Section titled “⚠️ Breaking changes”BeforeResourceStartedEvent behavior change
Section titled “BeforeResourceStartedEvent behavior change”The BeforeResourceStartedEvent now only fires when a resource is actually starting for the first time. Previously, it could fire during restarts or other state transitions. Update any event handlers that relied on the previous behavior.
Connection property suffix changes
Section titled “Connection property suffix changes”Some connection properties have been updated for consistency. If your polyglot applications rely on specific environment variable names, please verify they still work correctly.
IAzureContainerRegistry obsolete
Section titled “IAzureContainerRegistry obsolete”The IAzureContainerRegistry interface is now obsolete. Use the ContainerRegistry property on compute environments instead:
// Before (Aspire 13.1)var registry = environment as IAzureContainerRegistry;// After (Aspire 13.2)var registry = environment.ContainerRegistry;Migration from Aspire 13.1 to 13.2
Section titled “Migration from Aspire 13.1 to 13.2”- Update the CLI: Run
aspire update --self. - Update your projects: Run
aspire updatein your project directory. - Run aspire doctor: Validate your environment with
aspire doctor. - Review event handlers: Check any
BeforeResourceStartedEventhandlers for compatibility. - Update Azure container registry access: Replace
IAzureContainerRegistrycasts withContainerRegistryproperty access.
Feedback and contributions: We’d love to hear about your experience with Aspire 13.2! Share feedback on GitHub or join the conversation on Discord.