写点什么

.NET Aspire 9.4 发布了 CLI GA、交互式仪表板和高级部署功能

作者:Almir Vuk

  • 2025-08-07
    北京
  • 本文字数:2941 字

    阅读完需:约 10 分钟

大小:743.70K时长:04:13
.NET Aspire 9.4发布了CLI GA、交互式仪表板和高级部署功能

.NET Aspire 9.4作为云原生应用开发栈的最新小版本已经发布,标志着迄今为止最重要的更新。据微软报道,该版本引入了一系列增强功能,重点关注开发人员体验、部署自动化以及云服务和本地环境之间的更深层次集成。

 

在 9.4 版本中,最值得注意的新增功能之一是 Aspire CLI 的全面可用性,这是一个独立的命令行工具,允许开发人员创建、配置和部署 Aspirified 应用程序。正如发布说明中所述,CLI 支持诸如 aspire new、aspire run、aspire config,以及预览版的 aspire publish 和 aspire deploy 等命令。

 

这些工具为构建和部署分布式应用程序提供了一个更简单的界面。尽管aspire deploy命令仍然是一个特性标志,但它使用自定义注释和进度报告引入了可扩展的部署工作流,支持诸如数据库种子或交互式环境配置之类的场景。

 

9.4 版本还对 Aspire 仪表板进行了改进。开发者现在可以直接在界面中查看外部参数和连接字符串,并接收自动升级通知。

 

此外,增强的对等可视化和追踪支持现在允许更好地洞察外部服务连接和未检测到的资源,而日志中的文本换行和隐藏资源的可见性切换等新功能提供了更多的调试和监控体验控制。

 

9.4 版本还对Aspire仪表盘进行了改进。开发人员现在可以直接在界面中查看外部参数和连接字符串,并接收自动升级通知

 

此外,增强的对等可视化和跟踪支持现在允许更好地洞察外部服务连接和未检测到的资源,而新的功能(如日志中的文本包装和隐藏资源的可见性切换)提供了对调试和监控体验的更多控制。

 

(调用 GitHub 模型,以解析 Aspire 中的模型资源。来源:微软官方文档

 

这个版本的关键架构升级是引入了交互服务。这个新的运行时组件支持基于仪表板或基于 CLI 的交互,例如输入收集、确认提示和多步骤工作流。

 

如前所述,交互服务还支持验证回调和通知消息,允许在应用程序启动、发布和部署等操作期间提供更丰富的用户体验。

 

这次更新还包括对建模外部服务、非本地主机端点配置和持久容器网络的更广泛支持。作者指出,此功能是实验性的,在未来的版本中可能会更改。

 

微软团队提供了IInteractionService APIs的使用示例:


public class DeploymentService{    private readonly IInteractionService _interactionService;
public DeploymentService(IInteractionService interactionService) { _interactionService = interactionService; }
public async Task DeployAsync() { // 在破坏性操作前提示确认 var confirmResult = await _interactionService.PromptConfirmationAsync( "Confirm Deployment", "This will overwrite the existing deployment. Continue?");
if (confirmResult.Canceled || !confirmResult.Data) { return; }
// 收集多个输入并进行验证 var regionInput = new InteractionInput { Label = "Region", InputType = InputType.Text, Required = true }; var instanceCountInput = new InteractionInput { Label = "Instance Count", InputType = InputType.Number, Required = true }; var enableMonitoringInput = new InteractionInput { Label = "Enable Monitoring", InputType = InputType.Boolean };
var multiInputResult = await _interactionService.PromptInputsAsync( "Advanced Configuration", "Configure deployment settings:", [regionInput, instanceCountInput, enableMonitoringInput], new InputsDialogInteractionOptions { ValidationCallback = async context => { if (!IsValidRegion(regionInput.Value)) { context.AddValidationError(regionInput, "Invalid region specified"); } } });
if (multiInputResult.Canceled) { return; }
await RunDeploymentAsync( region: regionInput.Value, instanceCount: instanceCountInput.Value, enableMonitoring: enableMonitoringInput.Value);
// 显示进度通知 await _interactionService.PromptNotificationAsync( "Deployment Status", "Deployment completed successfully!", new NotificationInteractionOptions { Intent = MessageIntent.Success, LinkText = "View Dashboard", LinkUrl = "https://portal.azure.com" }); }
private bool IsValidRegion(string? region) { // 验证逻辑在这里 return !string.IsNullOrEmpty(region); }}
复制代码


新的资源生命周期事件钩子简化了数据库种子数据设置和配置验证等常见模式。还添加了一个新的ResourceCommandService API,支持对资源执行仪表板命令的程序化执行,这在测试或自动化场景中特别有用。

 

关于.NET Aspire集成,最新版本扩展了对 GitHub 托管的 AI 模型和Azure AI Foundry的支持,包括使用 Foundry Local 在设备上进行推理。


var builder = DistributedApplication.CreateBuilder(args);
// 添加Azure AI Foundry项目var foundry = builder.AddAzureAIFoundry("foundry");
// 添加特定模型部署var chat = foundry.AddDeployment("chat", "qwen2.5-0.5b", "1", "Microsoft");var embedding = foundry.AddDeployment("embedding", "text-embedding-ada-002", "2", "OpenAI");
// 将你的服务连接到AI能力var webService = builder.AddProject<Projects.WebService>("webservice") .WithReference(chat) .WaitFor(chat);
builder.Build().Run();
复制代码


其他Azure增强功能包括对Cosmos DB中层次分区键的支持、简化的 Azure Key Vault 密钥引用、改进的托管身份使用以及扩展的数据库初始化 API。

 

该版本还包括对Docker Compose部署的更新、Azure App Service 的容器支持以及改进的 Container App 环境配置。

 

这个版本引入了几个重大变更,影响了 Azure Key Vault 密钥访问、Azure Storage blob 容器创建和参数解析行为等 API。发布文档中提供了迁移指导

 

除了核心更新外,.NET Aspire 9.4 还在其项目模板中引入了增强功能,包括对.NET 10的支持和改进的文件命名约定,以帮助开发人员更好地组织多项目解决方案。

 

随着该版本的发布,Aspire 团队还准备了并发布了一个公开路线图,概述了未来六个月的开发计划。正如公告中所述,目标是将 Aspire 发展成一个以代码为主、多语言的工具链,用于建模、运行和部署来自单一数据源的分布式系统。需要注意的是,路线图是有方向性的,并且可能会改变,它反映了积极探索的领域和基于反馈的优先事项。

 

对于感兴趣的读者,.NET Aspire 9.4 的完整发布说明和技术文档可在官方.NET Aspire GitHub仓库和 Microsoft Learn 上找到。

 

原文链接:

https://www.infoq.com/news/2025/08/dotnet-aspire-9-4-release/

2025-08-07 12:001

评论

发布
暂无评论

【架构实战营作业】模块五——微博评论计算架构

聆息

云原生训练营 20211017- docker作业

好吃不贵

Leetcode 题目解析:230. 二叉搜索树中第K小的元素

程序员架构进阶

算法 LeetCode Top K问题 10月月更

多媒体应用设计师软考备考日记(一)

Changing Lin

10月月更

在线数字转大写金额工具

入门小站

工具

【产品】论增长黑客思维如何让B端产品爆发式增长

极光一号。

云原生 用户增长 b端产品经理 增长黑客

谈 C++17 里的 Memento 模式

hedzr

设计模式 备忘录模式 Design Patterns c++17 Undo Manager

智慧城市的成人礼:城市智能体带来的变革与机遇

脑极体

Android Studio IDE 插件开发

字节跳动终端技术

android 字节跳动 客户端开发 火山引擎

Gas 机制是如何运作的

Rayjun

以太坊

019云原生之Kubernetes主要功能

穿过生命散发芬芳

云原生 10月月更

模块(六)如何设计业务的微服务架构?

我是一只小小鸟

01-设计模式概述

千羽的编程时光

设计模式

关于ToB产品与服务的一些思考

石云升

产品思维 职场经验 tob产品 10月月更

那些值得称赞的 python 小亮点,断言,with 语句,格式化字符串,听我道来

梦想橡皮擦

10月月更

as-if-serial &happens-before详解

Fox666

happens-before JMM as-if-serial

linux之crontab使用技巧

入门小站

Linux

Android SDK设计规范与心得

轻口味

android sdk 10月月更

官方线索|科大讯飞全球1024开发者节

xcbeyond

1024我在现场

【设计模式】第五篇 - 工厂方法模式

Brave

设计模式 工厂方法模式 10月月更

5分钟搞懂Monorepo

俞凡

git 架构

【LeetCode】二叉搜索树中第K小的元素Java题解

Albert

算法 LeetCode 10月月更

项目开发中 9 个实用的JavaScript函数

devpoint

JavaScript 函数式 随机数 10月月更

人物访谈|扎根社区的工程师,月影的前端人生

字节跳动终端技术

字节跳动 大前端

阿里P8面试官:如何设计一个扛住千万级并发的架构?

Java 程序员 架构 面试 高并发

看山聊 Java:IPv4 与 int 之间互相转换

看山

Java 10月月更

02-面向对象设计原则

千羽的编程时光

设计模式

区块链是数字治理的平台

CECBC

趣讲快速排序的两种方法

Regan Yue

快速排序 10月月更

Vue进阶(幺肆贰):elementUI 中 el-switch、el-radio 使用注意事项

No Silver Bullet

Vue 10月月更

面试必备!2021金九银十阿里最新Java面试手册(全彩版)出炉

Java 程序员 架构 面试

.NET Aspire 9.4发布了CLI GA、交互式仪表板和高级部署功能_微软_InfoQ精选文章