Aspire 13 已作为该平台演进的重要里程碑正式发布。根据官方公告,Aspire 不再以".NET Aspire"品牌出现,而是定位为完整的多语言应用平台。版本 13 在现有 .NET 能力基础上,为 Python 和 JavaScript 提供了一流支持,标志着向多语言开发、调试和部署工作流的重大转变。
Python 支持现在包括运行脚本、模块和虚拟环境可执行文件,同时为 ASGI 框架提供了专用的 Uvicorn 集成。Aspire 会自动配置端点、命令行参数和开发时重载功能。
var builder = DistributedApplication.CreateBuilder(args);
// 直接运行 Python 脚本
var etl = builder.AddPythonApp("etl-job", "../etl", "process_data.py");
// 运行 Python 模块 (python -m celery)
var worker = builder.AddPythonModule("celery-worker", "../worker", "celery")
.WithArgs("worker", "-A", "tasks", "--loglevel=info");
// 从虚拟环境运行可执行文件 (例如 gunicorn)
var api = builder.AddPythonExecutable("api", "../api", "gunicorn")
.WithArgs("app:app", "--bind", "0.0.0.0:8000");
包管理通过自动检测 pip、uv 或虚拟环境进行处理,同时根据项目配置生成生产环境 Dockerfile。
JavaScript 支持也得到扩展。新的 AddJavaScriptApp 模型取代了旧机制,引入了统一的包管理器检测、自动脚本执行和基于容器的构建流水线。Vite 应用受益于专门处理,包括优化构建和热模块替换。
本次更新进一步引入了多语言基础设施层。数据库资源现在以多种格式暴露连接详情,如 URI、JDBC 和独立属性,实现了跨语言兼容性。Aspire 自动为 Python、Node.js 和容器化应用配置开发证书信任,简化了安全的本地通信。
对于非 .NET 应用的服务发现,通过引入简单的 HTTP 和 HTTPS 环境变量得到了简化。
版本中强调的一个主要架构变化是引入了 aspire do,这是一个用于构建、发布和部署操作的新管道系统。这取代了先前的发布基础设施,提供了依赖跟踪、并行执行和详细诊断。
aspire do deploy # 运行部署应用所需的所有步骤
aspire do publish --output-path ./artifacts # 自定义输出路径
aspire do deploy --environment Production # 定位特定环境
aspire do deploy --log-level debug # 用于故障排除的详细日志记录
该平台还增加了使用容器文件作为构建产物的支持,实现了前端构建传输到后端容器的场景。包含了一个实验性的 Dockerfile 构建器 API,用于程序化容器生成。
工具改进包括新的 aspire init 命令,提供交互式设置体验。入门模板已围绕常见应用模式重新组织,aspire update 命令现在包含 CLI 的自更新选项。
一个预览功能支持自动安装缺失的 .NET SDK 版本。对单文件 AppHost 定义和非交互式 CI/CD 流水线执行模式的支持也得到了扩展。
仪表板增强包括集成的 MCP 服务器用于 AI 助手交互、更新的视觉元素(如语言图标和主题色)以及改进的健康检查可见性。交互服务现在支持动态输入和组合框样式字段。
(集成到仪表板中的 MCP 服务器,来源:官方 Aspire 文档)
云原生 相关改进包括配置期间的 Azure 租户选择、扩展的 App Service 部署功能以及自动 Application Insights 集成。部署状态现在在本地持久化,以简化重复部署。
该版本还包括破坏性变化、包重命名、API 移除以及对端点和生命周期模型的调整。实验性功能,如基于文件的 C# 应用和动态输入加载,仍然可用,但可能在未来版本中演进。
完整发布说明可在 Aspire 文档站点获取。