了解 .NET Aspire 工具
.NET Aspire 将工具添加到 Visual Studio 用户界面,以帮助创建和管理云原生应用。 这些工具可以减少混淆,因为即使组件在不同的容器中运行,也能很清楚地知道哪些组件构成了完整的应用。 .NET Aspire 仪表板还提供正在运行的应用的统一视图,其中包含诊断和监视数据,有助于对其进行测试和调试。
再次考虑虚构的户外服装和装备公司场景。 开发团队已完成每个微服务的体系结构设计,并希望开始进行开发。 你希望了解他们如何在 Visual Studio 和命令行中使用 .NET Aspire。
在本单元中,你将了解 .NET Aspire 工具及其在创建和调试云原生应用时如何为开发人员提供帮助。
先决条件
在安装 .NET Aspire 之前,需要在计算机上安装以下内容:
- .NET 8.0
- 用于托管容器的 Docker Desktop 或 Podman。
- 集成开发环境 (IDE)(如 Visual Studio)或代码编辑器(如 Visual Studio Code)
如果使用 Visual Studio,则必须安装版本 17.9 或更高版本。
注意
Docker Desktop 或 Podman 是托管 .NET Aspire 用于运行微服务和某些支持服务的容器所必需的。 由于 .NET Aspire 为你配置和编译映像和容器,因此你无需成为容器方面的专家。
安装 .NET Aspire
如果使用的是 Microsoft Visual Studio,则可以通过从 ASP.NET 和 Web 开发工作负载添加 .NET Aspire SDK 组件来安装 .NET Aspire。 安装后,即可使用新工具。 你将在本模块稍后的练习中完成这些步骤。
或者,如果不想使用 Visual Studio 安装程序,可以使用 .NET CLI 安装 .NET Aspire:
dotnet workload update
dotnet workload install aspire
dotnet workload list
Visual Studio 中的项目模板
添加了五个 .NET Aspire 应用程序模板。 可以使用它们创建新应用程序:
- .NET Aspire 应用程序:此模板创建包含两个项目的最小 .NET Aspire 解决方案:应用主机项目协调解决方案,而服务默认设置项目管理复原、服务发现和遥测的可重用配置详细信息。
- .NET Aspire 入门应用程序:此模板创建完整的解决方案。 它包括与上一个模板相同的应用主机项目和服务默认设置项目,并为后端 API 服务和前端 Web 界面添加项目。
- .NET Aspire 应用主机:此模板仅在新解决方案中创建应用主机项目。 可以添加微服务、库和其他项目来完成应用。
- .NET Aspire 服务默认设置:此模板在仅新解决方案中创建服务默认设置项目。
- .NET Aspire 测试项目:此模板为应用主机创建 xUnit 测试。
注意
还可以将 .NET Aspire 添加到 Visual Studio 中打开的任何现有 .NET Web 应用程序。 在“解决方案资源管理器”中,右键单击项目,选择“添加”,然后选择“.NET Aspire 业务流程协调程序支持”。 此操作将应用主机项目和服务默认设置项目添加到解决方案,并在其中注册现有项目以用于服务发现和其他 .NET Aspire 功能。
.NET Aspire 仪表板
在处理应用程序时,可以使用 Visual Studio 调试器通过按 F5 键来运行代码。 执行此操作时,Visual Studio 会自动为每个微服务生成 Docker 映像,启动 Docker 服务(如果它未运行)并运行完整的应用程序。 它还显示 .NET Aspire 仪表板,可用于连接到微服务、调查应用的性能并监视其行为:
重要
.NET Aspire 项目模板将应用主机项目设置为解决方案的启动项目。 如果更改启动项目,则调试过程中解决方案的 .NET Aspire 仪表板和其他方面将无法正常运行。
在仪表板的主页中,可以看到构成应用程序的所有资源。 每个微服务都列为一个项目。 支持服务(如 Redis 缓存)列为容器。 其他组件可能显示为可执行文件。 可以获取每个资源的更多详细信息。 微服务还有一个“终结点”列。 选择此列中的链接,以连接到浏览器中的资源并进行测试。
仪表板中有四个监视部分:
- 控制台日志:此页显示从顶部选择的项目发送到标准输出的任何文本。 标准输出通常用于报告事件或状态消息。
- 结构化日志:此页显示 OpenTelemetry 库生成的事件。 结构化日志比其他日志事件更易于查询,因为它们会保留消息模板和参数。
- 跟踪:此页显示应用收到的每个请求的跟踪。 详细信息包括时间戳、跟踪完成时间以及跟踪的持续时间。 “跨度”列显示请求中涉及的所有资源。 如果在“详细信息”列中选择“视图”,则可以看到一个时间线,说明跟踪中的所有跨度及其持续时间。
- 指标:此页显示你选择的任何指标的图表。 首先,选择页面顶部的项目。 然后从指标列表中选择,其中包括活动请求计数、请求持续时间、连接计数和其他性能数据等值。 选择指标后,将显示实时图表。 可以更改图表的时间间隔或筛选器,以向下钻取到更多诊断信息。