UWP 透過 .NET 9 和Native AOT 的支援實現 UWP 應用的現代化

张善友發表於2024-09-13

微軟(9 月 11 日)釋出博文,微軟正在預覽對 .NET 9 的 UWP(通用 Windows 平臺)支援,為現有 UWP 開發人員提供一條使用最新的 .NET 和本機 AOT 實現其應用程式現代化的途徑。這樣做是因為該公司敦促開發人員切換到 Windows App SDK 和 WinUI 3,可以讓現有 UWP 開發者利用最新 .NET 和 Native AOT 來現代化改造其應用

預覽 UWP 對 .NET 9 的支援

“您是考慮遷移到 Windows 應用 SDK 和 WinUI 3 的 UWP 應用開發人員嗎?”微軟的高階軟體工程師 Sergio Pedri 今天在 DevBlogs 的一篇博文中問道。“或者想要利用最新版本的 .NET 和本機 AOT?或者,也許您一直在努力引用您最喜歡的庫的新版本,因為它們僅包含對 .NET 6 及更高版本的支援?好吧,不要再觀望了!此預覽版 UWP 對 .NET 9 的支援為 UWP 應用程式提供了使用最新版本的 .NET 進行現代化的途徑。

預覽版不是 UWP 的任何新特性或功能,而是一組更新的工具和元件,它們是 .NET、Visual Studio、Windows SDK 等的一部分。它們允許開發人員使用最新版本的 .NET 和 C# 來構建 UWP 應用程式,以便在他們考慮轉向 WinUI 3 時透過 .NET 9 實現其應用程式的現代化。

image

UWP 於 2015 年隨 Windows 10 推出,實現了 微軟在所有 Windows 裝置(電腦、平板電腦、Xbox、IoT、HoloLens 等)上建立統一應用平臺的願景。各種問題和因素使專案停滯不前,微軟引入了稱為 WinUI 2 的 Windows UI 庫,WinUI 2 是 UWP 的 UI 框架,WinUI 3 是 WinUI 的演變,將現代 UI 框架與 UWP 分離,使其可用於 UWP 和傳統 Win32 應用程式(透過 Windows 應用程式 SDK)。停滯 UWP 開發的部分動力似乎是 微軟轉向專注於原生 Windows 應用程式開發,現在可以透過一系列令人眼花繚亂的選項來實現,包括 WinUI 3、Windows Forms、WPF、Xamarin、MAUI 等:

image

微軟表示 UWP 對 .NET 9 的支援的主要目標包括:

  • 為希望遷移到 WinUI 3 的 UWP 開發人員提供更好的遷移路徑。UWP 對 .NET 9 的支援提供了通往 WinUI 3 的增量路徑,而不必在單個步驟中執行整個遷移(意味著更新所有 .NET 執行時以及整個 UI 框架和應用程式模型)。 透過允許您專注於升級獨立於 UI 框架的 .NET 執行時,以及 應用程式模型,並採用 .NET 中的進步來實現程式碼庫的現代化,那麼 現在可以將遷移拆分為兩個 “檢查點”。首先,遷移到 .NET 9,並讓應用程式在Native AOT(這已經需要取決於場景)。然後,在確保 遷移的第一部分是否成功,您可以專注於 從 UWP XAML 切換到 WinUI 3 和 Win32 應用程式模型。用 這種方法使遷移更具增量性,並且風險更低。 我們目前正在努力遷移到 .NET 9。
  • 使開發人員能夠刪除對 .NET Native 的依賴,以便他們可以從最新的 .NET 和 C# 功能中受益,無論他們的應用程式模型是什麼。如果你當前面向 UWP,因為由於某種原因無法遷移到 Windows 應用 SDK 和 WinUI 3 (可能是因為 Windows 應用 SDK 不支援某些關鍵 API,或者因為你還沒有資源來執行完全遷移) ,我們仍然希望允許你與所有其他 Windows UI 框架保持一致。此更新減少了 UWP 開發人員在嘗試使用生態系統中的舊庫對舊版應用程式進行現代化改造時遇到的摩擦。

“無論您是從 UWP 遷移到 WinUI 3,還是隻是想在應用程式的現有 UI 框架上提高工作效率,此預覽版都可以讓您現代化到最新的 .NET 和 C#,並利用最近的工具改進來簡化您的遷移過程,”Pedri 說。

這篇內容廣泛的帖子繼續詳細介紹瞭如何開始、建立 UWP .NET 9 專案、專案的詳細資訊等等。至於即將推出的內容,Visual Studio 中的 XAML 設計器正在開發中,同時 MSTest 還將新增對 .NET 9、WinUI 2 的 UWP 支援、對 Windows Community Toolkit 的支援等。

Pedri 提供的一個警告說明:“正如我們在簡介中提到的,UWP 對 .NET 9 的支援以預覽版提供,因此在我們努力改善開發人員體驗時,預計會有一些粗糙的邊緣!我們希望從長遠來看,這將成為 UWP 應用程式使用 .NET 和 C# 的首選方式,並且儘可能多的開發人員將能夠將其現有的 UWP 應用程式從 .NET Native 升級到最新的 .NET 和 Native AOT。


微軟的這項調整讓很多傳統 UWP 應用開發者感到驚喜,意味著開發者無需全面遷移至複雜且耗時的 Windows App SDK,就能將現有 UWP 應用升級到.NET 9,將帶來諸多底層優勢。UWP 是一個已被微軟接近放棄的移動應用框架,且停滯在.NET 版本 6 上,因此,將 UWP 應用遷移到基於桌面的 Windows App SDK 可能會頗具挑戰。

微軟希望為 UWP 初步支援.NET 9,從而引導開發者逐步升級他們的應用,首先透過現代化底層程式碼庫,移除對.NET Native(停留在.NET Core 2.0 功能級別)的依賴,接入最新的.NET 和 C#特性,並獲得顯著的效能提升。

相關文章