Aspire is modular, composable, and extensible. Configure relationships, deployment options, and dev-time flags in one place. Learn more about the AppHost.
Build your AppHost
Toggle different features on/off to see how Aspire defines different parts of your stack.
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// This would be a rather boring AppHost ☹️...
// Toggle the options above to see what an AppHost might look like.
// For example, select "Front end" to add a frontend service.
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT");
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT");
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT");
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT");
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api);
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres);
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres);
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api);
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj");
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj");
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres);
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj")
.PublishAsAzureContainerApp();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api =builder.AddProject("api","../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
Built for your stack, Aspire orchestrates apps in C#, Java, Python, JavaScript, TypeScript, Go, and more—use the languages you prefer. Explore how to model your apps.
Built for local development, Aspire mirrors production environments on your machine, eliminating “works on my machine” issues for smooth deployments. Learn about pipelines and app topology.
Local development with containerized services
Spin up and tear down complete staging environments for testing
Monitor logs, metrics, and traces in real time with the ready-to-use OpenTelemetry dashboard, integrated directly into your workflow. Explore the Aspire dashboard.
Multi-cloud, limitless integrations — Connect Aspire to Azure, AWS, or your own infrastructure. Tap into a vast ecosystem of integrations to power any stack, anywhere. Explore the integration gallery.
Don’t just take our word for it! From indie hackers to enterprises, developers like you are building faster and shipping with confidence using Aspire. Explore the community building Aspire.