.NET .NET Aspire 概述

.NET Aspire 是一组工具、模板和包,用于构建易于监控的、可投入生产的应用程序。.NET Aspire 通过一系列 NuGet 包交付,这些包通过启动或解决现代应用开发中的特定问题来提升开发效率。 如今的应用通常使用大量服务,例如数据库、消息传送和缓存,其中许多服务通过 .NET.NET Aspire 集成得到支持。 有关支持的信息,请参阅 .NET.NET Aspire 支持策略

为什么 .NET.NET Aspire?

.NET .NET Aspire 改进了生成具有各种项目和资源的应用的体验。 借助模拟已部署方案的开发时生产力增强功能,可以快速开发互连的应用。 设计为灵活性,.NET.NET Aspire 允许你使用首选工具和工作流替换或扩展部件。 主要功能包括:

  • Dev-Time 编排:.NET.NET Aspire 提供用于在本地开发环境中运行和连接多项目应用程序、容器资源和其他依赖项的功能
  • 集成:.NET Aspire 集成是常用服务的 NuGet 包,例如 Redis 或 Postgres,其标准化接口可确保它们与应用保持一致且无缝地连接。
  • 工具:.NET Aspire 附带用于 Visual Studio、Visual Studio Code和 .NET CLI 的项目模板和工具体验,可帮助你创建和与 .NET.NET Aspire 项目进行交互。

开发时编排

在 .NET.NET Aspire中,“编排”主要通过简化应用程序的配置和互连管理来增强 本地开发 体验。 请务必注意,.NET.NET Aspire的业务流程并不旨在取代生产环境中使用的可靠系统,例如 Kubernetes。 相反,它是一组抽象,简化了服务发现、环境变量和容器配置的设置,无需处理低级别的实现详细信息。 借助 .NET.NET Aspire,代码在任何开发计算机上都有一致的引导体验,无需复杂的手动步骤,从而更轻松地在开发阶段进行管理。

.NET .NET Aspire 编排有助于解决以下问题:

  • 应用组合:指定构成应用程序的 .NET 项目、容器、可执行文件和云资源。
  • 服务发现和连接字符串管理:应用主机注入正确的连接字符串、网络配置和服务发现信息,以简化开发人员体验。

例如,使用 .NET Aspire,以下代码创建本地 Redis 容器资源,等待其可用,然后在 "frontend" 项目中配置相应的连接字符串,并调用几个帮助程序方法:

// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);

// Add a Redis server to the application.
var cache = builder.AddRedis("cache");

// Add the frontend project to the application and configure it to use the 
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
       .WithReference(cache)
       .WaitFor(cache);

有关详细信息,请参阅 .NET.NET Aspire 业务流程概述

重要

调用 AddRedis 在本地开发环境中创建新的 Redis 容器。 如果宁愿使用现有的 Redis 实例,可以使用 AddConnectionString 方法引用现有连接字符串。 有关详细信息,请参阅 引用现有资源

.NET .NET Aspire 集成

.NET .NET Aspire 集成 是 NuGet 包,旨在简化与常用服务和平台(例如 Redis 或 PostgreSQL)的连接。 .NET .NET Aspire 集成使用标准化模式来为您处理云资源的设置和交互,例如添加健康检查和遥测功能。 集成分为两部分 - “托管”集成 表示要连接到的服务,“客户机”集成 表示该服务的客户端或使用者。 换句话说,对于许多托管包,有一个相应的客户端包来处理代码中的服务连接。

每个集成都设计为与 .NET.NET Aspire 应用主机协同工作,其配置通过 引用命名资源自动注入。 换句话说,如果 Example.ServiceFoo 引用 example.ServiceBarExample.ServiceFoo 继承集成所需的配置,以允许它们自动相互通信。

例如,请考虑以下使用 .NET.NET Aspire 服务总线集成的代码:

builder.AddAzureServiceBusClient("servicebus");

AddAzureServiceBusClient 方法处理以下问题:

  • 在 DI 容器中将 ServiceBusClient 注册为单一实例,以便连接到 Azure Service Bus。
  • 通过代码或配置内联应用 ServiceBusClient 配置。
  • 启用与 Azure Service Bus 使用情况相关的健康检查、日志记录和遥测。

有关可用集成的完整列表,请参阅 .NET.NET Aspire 集成 概述页。

项目模板和工具

.NET Aspire 为 Visual Studio、Visual Studio Code和 .NET CLI提供了一组项目模板和工具体验。 这些模板旨在帮助创建和与 .NET Aspire 项目交互,或将 .NET Aspire 添加到现有代码库中。 这些模板包含一组具有主观设定的默认值,帮助你快速入门——例如,它提供了在 .NET 应用中启动健康检查和日志记录的样板代码。 这些默认值是完全可自定义的,因此你可以编辑和调整它们以满足你的需求。

.NET .NET Aspire 模板还包括用于处理常见服务配置的样板扩展方法:

builder.AddServiceDefaults();

有关 AddServiceDefaults 执行的操作的详细信息,请参阅 .NET.NET Aspire 服务默认值

添加到 Program.cs 文件时,上述代码将处理以下问题:

  • OpenTelemetry:为 ASP.NET Core、gRPC 和 HTTP 设置格式化日志记录、运行时指标、内置计量和跟踪。 有关详细信息,请参阅 .NET.NET Aspire 遥测
  • 默认运行状况检查:添加默认运行状况检查终结点,供工具查询以监视您的应用。 有关详细信息,请参阅 C#中的 应用运行状况检查。
  • 服务发现:为应用启用 服务发现,并相应地配置 HttpClient

后续步骤