本文列出 .NET Aspire 的常見問題。 如需更完整的概觀,請參閱
為什麼選擇 .NET Aspire over Docker Compose 來進行協調流程?
Docker Compose 非常出色,但當您想要執行的動作都是執行數個專案或可執行檔時,則無作用。 Docker Compose 需要開發人員建置容器映像,並在容器內執行應用程式。 當您只想執行前端、後端、背景工作角色和資料庫時,這是一個障礙。 使用 .NET Aspire,您不需要學習任何超越您已經知道的內容。
透過宣告式程式代碼的設定比透過YAML更好。 當您嘗試執行任何形式的抽象或組合時,Docker Compose 會變得複雜(例如,請參閱舊版 eshopOnContainers 應用程式)。 此外,還有環境變數取代專案(且包含),且沒有類型或 IntelliSense,因此很難推斷到底執行的內容。 偵錯也很困難。 .NET Aspire 會產生較佳的體驗,可讓您輕鬆開始使用,並使用實際的程式設計語言擴充至 Compose 等協調器。
如何將專案新增至 .NET Aspire?
您可以使用 builder.AddProject("<name>", "<path/to/project.csproj>")
API,手動將專案新增至 .NET Aspire 解決方案。
如何部署 .NET Aspire 而不使用目標雲端提供者工具?
.NET Aspire 不會限制任何現有專案或方案的部署。 .NET Aspire 會公開 部署指令清單, 工具作者用來產生成品以部署到任何雲端提供者。 不過,不幸的是,並非所有雲端提供者都根據此指令清單提供部署工具。 指令清單是一個簡單的 JSON 檔案,描述應用程式的資源及其之間的相依性。 此指令清單由 Azure 開發人員 CLI 用來部署至 Azure。 同樣地,Aspir8 會使用指令清單來部署至 Kubernetes。 您可以使用指令清單部署到任何支援您所使用資源的雲端提供者。
如果 .NET Aspire 主要是用於本機開發,為什麼我的專案中會進行用戶端整合?
.NET Aspire 的用戶端整合可簡化您的開發程式。 這些包裝函式是圍繞 StackExchange.Redis 和 Npgsql 等熱門連結庫的輕量包裝函式,新增遙測、健康情況檢查和復原等功能。
即使您只針對本機開發使用 .NET Aspire,這些整合也提供合理的預設值、無縫相依性插入,以及一致的 API。
您不會鎖定在 .NET Aspire 的生態系統中。 這些整合只是連結庫,您可以使用環境變數或您慣用的方法,將它們設定為基礎連結庫。
是否可以在沒有 Azure 相依性的情況下建置 .NET Aspire 應用程式,並在其他地方部署?
是,您可以在不使用任何 Azure 專屬相依性的情況下建置 .NET Aspire 應用程式。 雖然 .NET Aspire 提供第一方解決方案來部署至 Azure,但並非必要專案。 .NET Aspire 是雲端原生堆棧,可用來建置可在任何地方執行的應用程式。 所有 Azure 特定供應專案都會明確呼叫,例如。
為什麼要透過 Docker Compose 搭配 Kubernetes 使用 .NET Aspire 服務探索?
.NET Aspire 服務探索 API 是一種抽象概念,可與各種提供者搭配運作(例如 Kubernetes 和 Consul)。 其中一大優點是它在本機運作,並且受到 支援。NET 的 IConfiguration
抽象概念。 這表示您可以透過不會導致程式代碼變更的方式,在計算網狀架構上實作服務探索。 如果您在 Azure App Service 或 Azure Functions 上有多個 Kubernetes 叢集或服務,則不需要從根本上變更應用程式程式代碼,使其可在單一叢集中或跨多個叢集在本機運作。 這就是抽象的好處。
如果 .NET 中提供 OpenTelemetry,為什麼要使用 .NET Aspire?
.NET Aspire 對 採取重大賭注。NET 與 OpenTelemetry 整合。 .NET Aspire 儀錶板是標準 OTLP 伺服器,可可視化各種遙測數據。 依賴這些開放標準可讓您輕鬆地建置這些專案,而不會中斷與更廣泛的生態系統的相容性。
如果 Grafana、Jaeger 和 Prometheus 與 .NET 搭配使用,為什麼要使用 .NET Aspire?
.NET Aspire 不是這些工具的替代專案,而是互補的技術。 .NET Aspire 是一組連結庫和工具,可讓您輕鬆地建置可觀察的應用程式。 如需詳細資訊,請參閱 .NET Aspire 範例存放庫中 計量範例, 顯示 Grafana 和 Prometheus。
當現有架構運作良好時,為什麼要建立另一個架構?
.NET Aspire 不是架構,它是 意見堆棧。 其中最具爭議的部分可能是您可以用來在任何 中建置協調流程模型的 DistributedApplication
API。以 NET 為基礎的語言。 雖然今天一切都有可能,但不容易。 使用 Unix 理念,整個雲端原生生態系統是以將各種CNCF 軟體結合在一起來建置堆疊而建置。 .NET Aspire 會嘗試使用來自雲端原生空間的學習來執行相同的工作,並挑選一些意見(以使用相同的建置組塊的方式)。 .NET Aspire 如何建置各種堆棧片段的一個新奇之處在於,它不會限制其他應用程式、架構或服務的存取或相容性。 隨著人們玩得更多,他們意識到它是多麼可組合和可延伸。
.NET Aspire 與Microsoft新奧爾良有何不同?
Microsoft新奧爾良和 .NET Aspire 是互補的技術。
新奧爾良 是以分散式動作項目為基礎的架構。 .NET Aspire 是一個雲端就緒堆棧,可建置可觀察、生產就緒、分散式應用程式。 它包含本機協調流程功能,可簡化開發人員內部迴圈和可重複使用的意見化元件,以便與常用的應用程式相依性整合。 以新奧爾良為基礎的解決方案仍然會有外部相依性,例如數據存放區和快取,.NET Aspire 可用於協調流程用途。
如需詳細資訊,請參閱 使用新奧爾良搭配 .NET Aspire 和對應的 Orleans 投票應用程式範例。
.NET Aspire 與 Dapr 有何不同?
Dapr 和 .NET Aspire 是互補的技術。
當 Dapr 抽象化某些基礎雲端平臺時,.NET Aspire 會針對基礎雲端技術提供有意見的設定,而不需加以抽象化。 一個。使用 Dapr 的 NET 型應用程式可以使用 .NET Aspire 來協調本機開發人員內部循環並簡化部署。 .NET Aspire 包含擴充功能,可支援在內部循環期間啟動Dapr側車程式。
如需詳細資訊,請參閱 .NET Aspire 與 .NET Aspire 搭配使用 Dapr 和 .NET Aspire 範例存放庫中對應的 Dapr 範例應用程式。
.NET Aspire 與 Project Tye 有何不同?
Project Tye 是一個實驗,探索微服務的啟動和協調流程,並支援部署到 Kubernetes 等協調器。 .NET Aspire 是 Tye 的超集,其中包含協調流程和部署功能,以及整合常見雲端原生相依性的有意見元件。 .NET Aspire 可視為 Project Tye 實驗的演進。
.NET Aspire 和 Azure SDK for .NET 如何相關?
.NET Aspire 提供依賴適用於 .NET
.NET Aspire 和 Kubernetes 如何相關?
.NET Aspire 可讓您輕鬆地開發分散式應用程式,以可執行檔和容器的形式在本機開發環境中進行協調。 Kubernetes 是一種技術,可協調和管理跨多部機器的容器。 .NET Aspire 專案可以產生 指令清單 工具作者可用來產生成品以部署至 Kubernetes。 基本上,Kubernetes 是 .NET Aspire 專案的部署目標。
.NET Aspire 是否支援背景工作服務?
是,完全支援背景工作服務,而且有檔與範例可協助您開始使用。 背景工作服務是執行 .NET Aspire 中背景工作、排程工作或長時間執行工作的絕佳方式。 如需詳細資訊,請參閱使用 Entity Framework Core 範例應用程式 資料庫移轉。
.NET Aspire 是否支援 Azure Functions?
是,.NET Aspire 已 預覽支援將 Azure Functions 整合到您的應用程式。
.NET Aspire 是否支援在 IIS 或 IIS Express 本機執行 Web 應用程式?
不。 .NET Aspire 不支援在 IIS 或 IIS Express 上執行 Web 應用程式。
.NET Aspire 是否支援將應用程式部署至 IIS?
不。 .NET Aspire 不支援將應用程式部署至 IIS。 不過,它不會阻止您將應用程式部署至 IIS,就像您一直擁有的一樣。
如何將 .NET Aspire 應用程式部署至 IIS 時修正整合和服務探索問題?
.NET Aspire 整合需要手動提供的特定設定。 Service Discovery也是如此,在理想情況下,您應該部署至 IIS 以外的專案。
Community Toolkit 專案的用途為何?
項目的目標是要成為 .NET Aspire的延伸模組和整合的集中首頁,協助提供整合建置和維護方式的一致性,以及讓使用者更容易探索性。
Community Toolkit 專案與官方 .NET Aspire 項目有什麼不同?
.NET Aspire 社群工具組是社群導向的專案,由社群維護,且不受 .NET Aspire 小組正式支援。 工具組是建置在 .NET Aspire 專案之上的整合和延伸模組集合。
如何參與社群工具組專案?
任何人都可以參與 .NET Aspire 社群工具組,並在您開始使用之前,請務必閱讀 參與指南,以瞭解如何參與專案。
我應該在 Community Toolkit 或 'dotnet/aspire' 存放庫上提出新的整合嗎?
如果您有新整合的想法,您應該在 .NET Aspire Community Toolkit 存放庫上提出,,而不是 dotnet/aspire
,因為官方 .NET Aspire 專案著重於 .NET Aspire 專案的核心功能。
如果您已在 dotnet/aspire
存放庫上提出整合,您仍然可以在 Community Toolkit 中提出,但連結到 dotnet/aspire
存放庫上現有的問題,以提供內容。
如何尋找 Community Toolkit 整合?
.NET Aspire Community Toolkit 的整合會出現在 visual Studio 的 [新增 Aspire 整合] 對話框中,命名空間 CommunityToolkit.Aspire.*
。