微软发布了第二个预览版本的.NET Aspire。这个预览版带来了仪表盘、托管、组件、Dapr 等功能的改进和增强。.NET Aspire 是一个新的云原生开发技术栈,是由微软和.NET 团队于 11 月份的.NET Conf Event 上对外宣布的。
对于尚不熟悉.NET Aspire的读者来说,我们可以将其视为一个带有一定倾向性的技术栈,它使开发人员和团队能够轻松地构建、供应、部署、配置、测试、运行和观测云原生应用。它是一个新的云原生开发技术栈,用于在.Net 生态系统中构建具备韧性、可观测性和可配置的云原生应用。
.NET Aspire 包含了一系列经过精心筛选的组件,通过默认提供服务发现、遥测、韧性和监控检查,对云原生进行了增强。
关于.NET Aspire 初始版本的更多细节,请参阅InfoQ之前的报道。
第二个预览版本带来了关于仪表盘的重要改进。在该版本的仪表盘中,它将所有的资源类型(比如项目、可执行文件和容器的详细信息)都整合到了一个统一的 Resources 页面中。
.NET Aspire 仪表盘,新的资源页面,来源:.NET Aspire预览版2的发布博客
此外,新的可停靠详情面板设计增强了用户体验,提供了一个更直观的界面来显示相关项的更多信息,比如资源的环境变量,或者结构化日志或跟踪 span 的详细信息。
除此之外,现在可以通过单个 Console Logs 页面访问各种资源类型的控制台日志。在 Structured Logs 视图中,现在包含了日志类别名称,以便于更好地分类。值得注意的是,向其他资源和开发服务发出的请求现在显示为资源或服务名称,而不是 URL,这增强了清晰度和可追溯性。
另外,托管和编排也有所改进,容器现在支持通过IResourceBuilder<ContainerResource>.WithArgs
方法配置在启动时传入参数。
此外,容器和可执行文件都可以通过端点引用其他资源,从而能够使用 WithServiceBinding 方法进行服务发现相关的配置。另外,引入了无需<ProjectReference />添加项目的功能,从而为项目结构提供了灵活性。
Damian Edwards在最初的公告中这样说到:
这使得在更复杂的源码布局的情况下,从当前解决方案外部集成项目变得更容易,比如,当使用 git 子模块引入合作团队仓库的时候。
现在,资源能够引用现有的URI端点进行服务发现的配置。值得注意的是,无论是否有副本,项目现在在托管时都能够使用启动配置文件中的端口,并且更新了引入 Node.js 应用程序作为资源的支持。
Node.js 应用程序通过 AddNodeApp 和 AddNpmApp 方法能够轻松地包含到 Aspire AppHost 项目中。这个内置支持在新的 Aspire Node.js样例中得到了应用,该示例还展示了如何设置 Node.js 应用程序以便于将 OpenTelemetry 跟踪数据输出到 Aspire 仪表盘中。
组件包能够接收单独的图标以改进视觉标识。值得注意的是,新增了MySqlConnector和MongoDB组件。此外,除了 Service Bus 组件,Azure SDK 组件现在默认启用分布式跟踪。
Aspire 组件现在有了表述性的图标。来源:.NET Aspire预览版2的发布博客
Azure 开发人员 CLI 进行了增强,以提升部署体验。一个重要的新增功能是Aspir8,这是由社区开发的一个工具,用于将.NET Aspire 应用程序部署到 Kubernetes,由 GitHub 用户prom3theu5开发。
在这个版本中,Dapr集成得到了明显改进。第二个预览版引入了对应用模型中所有 Dapr 组件的一流支持,增强了整体的开发体验。Dapr 边车(sidecar)的 ID 不再需要显式声明,这简化了配置,但是,如果需要的话,开发人员仍然可以显式地将应用程序 ID 设置为一个明确的值。
此外,Azure开发人员CLI (Azure Developer CLI,AZD)现在支持利用 Dapr 将.NET Aspire 应用部署到 Azure 容器应用(Azure Container Apps,ACA)。据报道,该团队正在努力确保azd
能够以最快、最简单的方式在几分钟内将 Aspire 应用配置并部署到 Azure 中,第二个预览版本主要面向 ACA。
最后,关于未来的计划,.NET Aspire团队说他们计划每个月发布一个新的预览版本,最终在 2024 年第二季度发布稳定的 8.0 版本。这种每月发布的节奏旨在为开发人员提供定期更新,引入新特性和优化。
原文链接:https://www.infoq.com/news/2023/12/dotnet-aspire-preview2/