.NET .NET Aspire 概述
.NET Aspire 是一组功能强大的工具、模板和包,用于生成可观察的生产就绪应用。.NET Aspire 是通过处理特定云原生问题的 NuGet 包集合传递的。 云原生应用通常由小型互连的片段或微服务组成,而不是单个整体代码库。 云原生应用通常使用大量服务,例如数据库、消息传送和缓存。 有关支持的信息,请参阅 .NET.NET Aspire 支持策略。
分布式应用程序 是指在多个节点上使用计算 资源,比如在不同主机上运行的容器。 此类节点必须通过网络边界进行通信,才能向用户传递响应。 云原生应用是一种特定类型的分布式应用,它充分利用云基础结构的可伸缩性、复原能力和可管理性。
为什么 .NET.NET Aspire?
.NET Aspire 旨在改善生成 .NET 云原生应用的体验。 它提供了一组一致的、有意见的工具和模式,可帮助你生成和运行分布式应用。 .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,以下代码创建本地 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 集成工具通过标准化配置模式(例如添加健康检查和遥测)来处理许多云原生问题。 集成具有双重含义,一方面表示要连接的服务,另一方面表示该服务的 client 或使用者。 换句话说,对于每个托管包,都有一个相应的 client 包来处理服务连接。
每个集成旨在处理
例如,请考虑以下使用 .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.NET Aspire 项目交互。 这些模板是经过深思熟虑设计的,附带一组默认设置,帮助你快速入门。 它们包括云原生应用常见的样板代码和配置,例如遥测、运行状况检查和服务发现。 有关详细信息,请参阅 .NET.NET Aspire 模板。
.NET .NET Aspire 模板还包括用于处理常见服务配置的样板扩展方法:
builder.AddServiceDefaults();
有关 AddServiceDefaults
执行的操作的详细信息,请参阅 .NET.NET Aspire 服务默认值。
添加到 Program.cs 文件时,上述代码将处理以下问题:
- OpenTelemetry:为 ASP.NET Core、gRPC 和 HTTP 设置格式化日志记录、运行时指标、内置计量和跟踪。 有关详细信息,请参阅 .NET.NET Aspire 遥测。
-
默认运行状况检查:添加默认运行状况检查终结点,供工具查询以监视您的应用。 有关详细信息,请参阅 C#中的
应用运行状况检查。 - 服务发现:为应用启用 服务发现,并相应地配置 HttpClient。