免费且开源
Aspire 是一个开发者优先、始终免费的开源平台。加入充满活力的社区,共同塑造现代开发的未来。
代码定义栈——类型安全、可读、易调试。先本地运行,再无缝切换到云。
编排前端、API、容器与数据库,无需重写。按需扩展,随处部署。
内置 OpenTelemetry:日志、追踪、健康检查自动化——更快洞察与调试。
部署到 Kubernetes、云或本地机房——一致、可重复,无需重构。
Aspire 模块化、可组合、可扩展。集中声明依赖、部署参数与开发开关。了解 AppHost。
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.
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// 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")
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// 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")
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj");
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
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")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
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")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
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")
.WithNpmPackageInstallation()
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
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")
.WithNpmPackageInstallation()
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var builder = DistributedApplication.CreateBuilder(args);
var postgres = builder.AddPostgres("db")
.PublishAsAzurePostgresFlexibleServer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
var builder = DistributedApplication.CreateBuilder(args);
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
兼容现有技术栈 —— 编排 C#、Java、Python、JavaScript、TypeScript、Go、PHP、Ruby 等应用。团队继续使用熟悉语言。资源建模。
广泛语言与框架支持:继续使用偏好技术同时获得编排优势。
本地优先设计:本地开发与测试接近生产,减少“在我机器上能跑”。部署与拓扑。
使用容器化服务进行本地开发
启动和销毁完整的预备测试环境
生产环境云服务 — 无需修改代码
Redis
Shortlived container
PostgreSQL
Azure Database for PostgreSQL
PostgreSQL
Local container
Frontend
Azure Static Web Apps
CLI 本地运行全栈或在 CI/CD 中生成制品。第一个应用。
实时查看日志、指标与追踪 —— 内置 OpenTelemetry Dashboard 开箱即用。
多云与无限集成 —— 连接 Azure、AWS 或自建环境。丰富生态适配任意技术栈。集成图库。
不只我们这么说 —— 从个人到企业:更快开发、更自信发布。贡献者社区。
SK
Aspire was easy to integrate with our existing container orchestration.
NU
I've never wanted to commit to a Microsoft technology this much.
DC
OpenTelemetry out-of-the-box in the Aspire dashboard is a game changer for observability!
NC
The best thing that happened in .NET since it went open source in 2014!
CT
Hit F5 to begin — skip the setup boss fight, ship code faster.
MJ
I was surprised by how quickly Aspire got me from idea to running services.
SP
Aspire lets developers be developers again.
RH
I had someone start on a Monday morning and they were contributing code by lunch.
安装 Aspire CLI,然后阅读文档以建模、运行与部署。
查看文档 了解如何在 Aspire 中建模、运行与部署应用。