.NET Aspire Preview 4 釋出!

张善友發表於2024-03-15

.NET Aspire是一個有態度的雲原生應用開發框架,旨在改善生成.NET雲原生應用的體驗,並提供一組強大的工具來幫助你生成和執行分散式應用。它允許開發者快速建立屬於自己的雲原生應用,或改造已有的專案成為雲原生應用。.NET Aspire提供服務發現、健康檢查、故障和容錯策略、Redis服務、可觀測性以及遙測皮膚等功能,並展現出強大的可擴充套件性。.NET Aspire 提供瞭如下3個方面的能力,來幫助我們使用.NET開發分層、雲就緒的可觀測、本地與生產環境一致的分散式雲原生應用程式:

  • 微服務的編排能力:在開發和線上環境自動處理多個微服務之間的連線和依賴,也即內建了服務發現等基礎能力。

  • 基礎服務的訪問能力:透過提供一系列Nuget包,把對一些基礎服務的訪問進行統一封裝(比如,快取、資料庫、訊息佇列等),方便微服務直接使用。

  • 工具鏈的相應配合:在VS和VSCode等工具中新增對以上編排能力的支援,並提供一系列開箱即用的模板,來方便開發人員進行開發、除錯和部署雲原生應用。

.NET Aspire Preview 4 現已釋出!.NET Aspire預覽版4引入了多項重要增強功能,包括社群高度需求的特性。該版本關注的領域包括對Entity Framework元件的改進、Podman支援以及應用模型方面的更改,以便輕鬆選擇使用現有資源或預配新資源。.NET Aspire預覽版4的版本號是8.0.0-preview.4.24156.9.以下是此預覽版中新增內容的摘要:

  • Podman
    • 支援使用 podman 執行應用程式。Podman是一個無守護程序的容器引擎,用於在Linux系統上開發、管理和執行OCI容器。它是Linux使用者執行容器而不需要守護程序的絕佳選擇。如果同時檢測到Docker和Podman,則優先使用Docker。可以透過環境變數
  • Dashboard 儀表板,儀表板的外觀和感覺進行了更新,新的儀表板設計旨在減少導航標籤所佔用的空間,並簡化在日誌、指標和跟蹤之間的導航。.NET Aspire儀表板現在可以作為獨立容器映象執行,這使得使用儀表板管理在不同機器或不同環境執行的應用程式變得更加容易。儀表板還可以作為OTLP grpc端點的收集器和檢視器,用於希望傳送和視覺化遙測資料的應用程式
    • 獨立容器映象,參見示例
    • 輔助功能改進,包括 Shift + ? 快捷鍵
    • 指標表檢視,在圖表或表格之間切換
  • 資料庫和實體框架改進,引入了對Entity Framework的新方法,用於配置Entity Framework。新的Enrich[Provider]DbContext()方法在註冊DbContext類時提供了更多靈活性。這些方法不註冊DbContext,而是在呼叫它們之前期望你自行註冊。這些方法仍然配置命令重試、健康檢查、日誌和遙測,此外,預覽版4改進了使用EF Core工具在.NET Aspire應用中建立遷移的過程。以前,EF Core工具會因缺少資料庫連線字串而失敗。在預覽版4中,.NET Aspire檢測到專案是否使用EF Core工具啟動,並禁用連線字串驗證,從而允許成功建立遷移。另一個挑戰是與 transient 資料庫應用遷移。為此,探索了在.NET Aspire解決方案中新增一個.NET後臺工作者資源的方法。這個工作者在應用主機啟動時執行遷移
    • 新的管理工具,MySQL (phpMyAdmin) 和 MongoDB (mongo-express)
    • 實體框架遷移問題已解決,請參閱示例
    • 資料庫伺服器資源更新
    • 資料庫容器資源更新
    • 新的 Enrich API, Enrich[Provider]DdContext
  • 外部引數,請參閱 .NET Aspire 文件:外部引數:這些引數用於表示在構建時未知且可能因環境而異的值。這些值在部署應用程式時會提示輸入
  • New idioms: 新習語:
    • DistributedApplicationBuilder.ExecutionContextIsPublisherMode
    • PublishAsRunAsAs API
  • API improvements API 改進,在容器資源方面,預覽版4引入了對容器資源的新方法,簡化了容器資源的新增過程
    • 更改容器屬性, WithImageTag
    • 拆分繫結和卷安裝, WithVolumeMountWithBindMount
  • Components 成分
    • 新功能:Azure AI 搜尋文件
    • 場景:.NET Aspire 對 Azure SignalR 服務的支援
    • 更新:.NET Aspire 與 Application Insights
  • 具有 Azure 資源對映的容器(還有更多計劃)
    • Redis -> Azure Redis
    • Postgres -> Azure Database for PostgresSQL
    • SQL Server -> Azure SQL Server
      SQL 伺服器 -> Azure SQL 伺服器
  • Deployment 部署
    • 新primitive,Azure Bicep 資源
    • AZD 已更新,包含對部署方案的更好支援,以與 .NET Aspire 的 preview-4 保持一致
    • 部署清單現在僅包含六種資源型別,請參閱部署工具構建器的 .NET Aspire 清單格式
  • Emulators updates 模擬器更新
    • UseEmulator 更改為 RunAsEmulator

有關詳細資訊,請參閱 .NET Aspire 文件:.NET Aspire docs: Preview 4. 總體而言,.NET Aspire預覽版4透過引入新的特性和改進現有功能,為開發雲原生應用程式提供了更多靈活性和便利性。

相關文章