.NET 6 亮點之工作負載,它是統一 .NET 的基礎

張善友發表於2021-06-19

隨著.NET 6 Preview 5的釋出,大家認真的看相關文章或者是動手做一個MAUI示例的時候就會碰到一個新概念工作負載(workload),相關規範參見 https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workloads.md

.NET 6 亮點之工作負載,它是統一 .NET 的基礎

這裡借用一張來自德國的.NET6圖片,出自https://entwickler.de/online/windowsdeveloper/microsoft-build-2020-dotnet-xamarin-winui-579936134.html

.NET 統一工作的關鍵是 SDK 工作負載的新方案,使 .NET團隊能夠在不增加 SDK 大小的情況下新增對新應用程式型別的支援。在 .NET 5 中,我們將新增對 iOS、Android和WebAssembly 專案的支援。在 .NET 5 之前,我們已經通過單體 SDK 交付了所有支援的工作負載。作為.NET SDK的支援工作量增長(和我們希望他們),這將不再是站不住腳提供一個“所有功能於一身的/一個尺寸適合所有人” SDK分佈。大型單體 SDK 面臨許多挑戰,其中產品構建時間和分發規模最為重要。相反,所有新工作負載都將與SDK 分開構建和交付,並且可通過您最喜歡的安裝工具(如 Visual Studio 安裝程式、Linux 包管理器或.NET CLI)獲得。隨著時間的推移,我們打算讓所有 .NET 工作負載都遵循這種模式,從而產生一個非常小且專注的 SDK。

.NET 團隊專案經理 Lander 撰寫的部落格文章中 說:“我們現在正處於 .NET 6 版本的下半部分,並且開始看到重要的功能彙集在一起​​,一個很好的例子是 .NET SDK 工作負載,它是我們 .NET 統一願景的基礎,能夠支援更多的應用程式型別。與其他功能一樣,它正在結合在一起提供引人注目的端到端使用者體驗。”

他在Github上的.NET 5設計文件中詳細(https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workloads.md)解釋了該功能最初應該是為了合併統一工作,但由於 COVID-19 大流行和其他問題而不得不推遲一年。dotnet SDK 工作負載方案將取代舊的單體 SDK 方法,單體SDK 因構建時間長和分發規模大而造成負擔。反過來說,所有新的工作負載都將與 SDK 分開構建和交付,並且可以通過您最喜歡的安裝工具(如 Visual Studio 安裝程式、Linux 包管理器或 .NET CLI)獲取,”蘭德說。“隨著時間的推移,我們打算讓所有 .NET 工作負載都遵循這種模式,從而產生一個非常小且專注的 SDK。隨著時間的推移,我們打算讓所有 .NET 工作負載都遵循這種模式,從而產生一個非常小且專注的 SDK。

工作負載基本上就像 .NET SDK 的包管理器,上個月的.NET 6 Preview 4引入了通過命令列介面 (CLI) 安裝可選 SDK 工作負載的功能。Preview 4 支援 .NET MAUI 和 Blazor AoT 工作負載,可以事後安裝在 .NET SDK 之上,用於各種場景。

在 .NET 6 Preview 5 中,工作負載功能新增了 listupdate

  • dotnet workload list 會告訴您安裝了哪些工作負載。
  • dotnet workload update 將所有已安裝的工作負載更新到最新的可用版本

相關文章