Aspire13.6正式发布,新增持久化遥测、Java/Rust原生托管与Azure集成

微软于9月29日推出 .NET Aspire 13.6 版本,核心升级包括仪表盘数据持久化存储、对 Java 和 Rust 应用的原生托管支持,以及两项预览版 Azure 集成。新版本还优化了 CLI...

互联网/IT

微软于9月29日正式发布 .NET Aspire 13.6 版本,这是继去年初项目开源以来的一次重大功能迭代。作为面向云原生分布式应用开发的高级编排框架,Aspire 此次更新聚焦于可观测性增强、多语言生态扩展与云平台深度集成三大方向,显著提升了开发者在本地构建、调试与部署微服务架构时的效率与体验。

文章配图

可观测性升级:持久化遥测与运行历史记录

Aspire 13.6 最直观的变化体现在其 Web 仪表盘上。此前版本中,仪表盘仅提供实时运行时数据,一旦应用停止,所有遥测信息即被清除。新版本将资源快照、结构化日志、追踪(traces)等数据统一写入本地 SQLite 数据库,实现运行历史的持久化保存。默认情况下,AppHost 启动时会自动启用 Run persistence 功能,并为每个应用程序保留最多十次已完成的运行记录——这些记录为只读状态,便于事后回溯问题。

值得注意的是,该数据库未启用加密或访问控制机制,也未设置 Windows ACL 权限限制,这意味着开发者需自行确保敏感环境下的数据安全。与此同时,日志与追踪的默认条目上限从此前的数万条提升至 10 万条,满足中大型应用调试需求。仪表盘本身也完成技术栈升级:以 Native AOT 编译方式发布,启动更快;前端迁移至 Fluent UI Blazor v5,界面响应更流畅。

多语言支持落地:Java 与 Rust 原生托管能力上线

Aspire 自诞生起便以 .NET 生态为核心,但此次 13.6 版本首次正式引入对 Java 和 Rust 的原生托管支持,标志着其向真正“多语言分布式应用平台”迈出关键一步。

其中,Aspire.Hosting.Java 支持多种常见 Java 应用部署形态:可执行 JAR 文件、Maven/Gradle 封装器、Spring Boot 及 Quarkus 框架应用。开发者可通过简洁的 API 将 Java 服务纳入分布式拓扑中。类似地,Aspire.Hosting.Rust 提供 AddRustApp 方法,用于注册基于 Cargo 构建的 Rust 应用程序,并支持通过环境变量绑定 HTTP 端点(如 PORT),实现与 .NET 服务一致的配置方式。

这两项功能并非从零构建,而是基于社区贡献的 Aspire Community Toolkit 成果整合而来,体现了微软对开源协作模式的持续投入。不过,二者目前仍以预览包形式提供,尚不建议用于生产环境。

云集成与开发体验优化

在云平台对接方面,Aspire 13.6 新增 Azure Connector 命名空间及 Azure Container Apps Sandbox 预览功能,允许开发者在本地模拟 Azure Container Apps 运行时环境。这两项特性均要求用户拥有 Azure 订阅并申请预览权限,属于面向云原生工作流的进阶能力。

开发工具链层面,CLI 命令 aspire run 与 aspire start 新增 --launch-profile 参数,便于按不同配置启动应用;aspire new 和 aspire init 中的智能代理(MCP)服务器默认不再自动启用,需手动开启;Visual Studio Code 扩展则进一步强化了对 AppHost 的生命周期管理,支持在面板内直接触发部署与发布操作。

此外,资源层新增多项实用功能:PostgreSQL、MySQL、MongoDB、SQL Server、Redis 与 Valkey 均支持 WithRepl 选项,可在仪表盘停靠栏中打开对应数据库的交互式客户端(REPL)。该 REPL 使用真实凭据连接,具备写权限,因此默认禁用以防误操作。

兼容性变更与细节调整

本次更新包含若干破坏性变更,需开发者注意适配:

  • MongoDB 资源在本地运行时默认启用 TLS 加密(此前为明文通信);
  • Cosmos DB 模拟器切换为基于 Linux 的 vNext 镜像,旧版经典模拟器数据无法迁移;
  • Azure Front Door 的源名称规则变更,含连字符的连接字符串将自动生成可移植环境变量别名;
  • AddDotnetProject 现将兼容项目归入共享还原与构建组,避免重复依赖解析;
  • 卷挂载新增 env 参数,使应用在本地与云部署时可通过同一环境变量获取数据路径;
  • TypeScript AppHost 支持从所在目录加载 appsettings.json,且 Deno 2+ 可直接运行此类主机。

值得一提的是,Aspire 13.6 移除了对 GitHub Models 的集成,反映出微软正逐步收敛其 AI 服务接入策略,转向更可控的 Azure AI 生态。

行业背景与意义

Aspire 项目自 2023 年随 .NET 8 一同推出,旨在解决现代微服务开发中“本地开发与云部署脱节”的痛点。传统方式下,开发者常需在 Docker Compose、Kubernetes Local 集群与云平台间反复切换配置,调试成本高、环境一致性差。Aspire 通过统一的 DistributedApplication 编程模型,将服务定义、依赖关系、资源配置抽象为代码,再由 AppHost 统一调度运行——这一思路与 HashiCorp Nomad、Dapr 的部分理念相似,但更强调与 .NET 工具链的无缝融合。

此次对 Java 和 Rust 的支持,是 Aspire 拓展影响力的关键一步。尽管 .NET 在企业级后端仍有稳固地位,但 Java(尤其 Spring 生态)与 Rust(系统级服务、边缘计算)在云原生领域占据重要份额。若 Aspire 能稳定支撑跨语言混合部署场景,将有望成为企业级分布式系统开发的新标准工具之一。

不过,挑战依然存在:持久化遥测虽提升可观测性,但缺乏权限控制与加密机制,在合规性要求高的金融、医疗等行业落地仍需额外封装;而 Azure 集成功能目前仅限预览,距离全面可用尚有距离。

总体而言,Aspire 13.6 是一次扎实的功能扩充,既强化了核心体验,又试探性拓展了语言边界。对于正在构建复杂分布式系统的 .NET 团队而言,该版本值得评估升级;而对于 Java 或 Rust 开发者,也可将其视为未来多语言协同开发的一种潜在选项。