共用方式為


.NET .NET Aspire 概觀

.NET Aspire 是一組功能強大的工具、範本和套件,可用來建置可觀察的生產就緒應用程式。.NET Aspire 會透過處理特定雲端原生考慮的 NuGet 套件集合來傳遞。 雲端原生應用程式通常由小型互連的片段或微服務組成,而不是單一整合型程式代碼基底。 雲端原生應用程式通常會取用大量的服務,例如資料庫、傳訊和快取。 如需支援的相關信息,請參閱 .NET.NET Aspire 支援原則

分散式應用程式 是指使用跨多個節點的計算 資源,如在不同主機上運行的容器。 這類節點必須透過網路界限進行通訊,才能為使用者提供回應。 雲端原生應用程式是一種特定類型的分散式應用程式,可充分利用雲端基礎結構的延展性、復原性和管理性。

為什麼 .NET.NET Aspire?

.NET Aspire 旨在改善建置雲端原生應用程式 .NET 的體驗。 它提供一組一致的、有意見的工具和模式,可協助您建置和執行分散式應用程式。 .NET .NET Aspire 的設計訴求是協助您:

  • 協調流程:.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 套件來處理服務連接。

每個整合都是設計來與 協調流程搭配運作,而且其組態會由參考具名資源自動插入。 換句話說,如果 Example.ServiceFoo 參考 Example.ServiceBarExample.ServiceFoo 會繼承整合的必要組態,以允許它們自動彼此通訊。

例如,請考慮使用 .NET.NET Aspire 服務總線整合的下列程序代碼:

builder.AddAzureServiceBusClient("servicebus");

AddAzureServiceBusClient 方法會處理下列問題:

  • ServiceBusClient 註冊為 DI 容器中的單一實體,以連線到 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 樣板還包括處理常見服務配置的樣板擴充方法,幫助您輕鬆設定。

builder.AddServiceDefaults();

如需 AddServiceDefaults 之用途的詳細資訊,請參閱 .NET.NET Aspire 服務預設值

新增至 Program.cs 檔案時,上述程式代碼會處理下列問題:

  • OpenTelemetry:設定格式化記錄、運行時間計量、內建計量,以及 ASP.NET Core、gRPC 和 HTTP 的追蹤。 如需詳細資訊,請參閱 .NET.NET Aspire 遙測
  • 預設健康狀態檢查:新增工具可查詢以監視應用程式的預設健康情況檢查端點。 如需詳細資訊,請參閱 C#中的 應用程式健康檢查。
  • 服務發現功能:啟用應用程式的 服務發現功能,並進行相應的配置 HttpClient

後續步驟