.NET .NET Aspire 提供工具、模板和包,可帮助你生成可观察的生产就绪应用。 通过 NuGet 包交付, .NET.NET Aspire 简化了新式应用开发中的常见挑战。 如今的应用通常依赖于多个服务,例如数据库、消息传送和缓存,许多服务都受 .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.ServiceBar,Example.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。