.NET 5學習筆記(12)——WinUI 3 Project Reunion 0.5
2021年3月的時候,Win UI 3終於來到了第一個穩定的支持版本,可用於創建發佈到Micosoft Store的應用。據某軟的說法,這個叫WinUI 3 Project Reunion 0.5的版本,是可以被用於生產了,但按某軟的尿性,一般1.1版本會比較靠譜……
首先我們要梳理一下Win UI 3和Project Reunion之間的關係,某軟的改名部真是讓人糟心啊,該出手的時候卻和被裁員了一樣……
WinUI 3是WinUI 2的後續版本,核心的不同之處,除了版本號大上一位以外,就是WinUI 3支持desktop/Win32程序,而WinUI 2僅支持UWP。但也別想太多,想要用上WinUI 3,得先升級到.NET 5,以及最低版本號為1809的Windows 10。
Project Reunion就更讓人迷惑了,相信我這貨1.0的時候絕對會改名。簡單理解Project Reunion定義了面向次世代的Windows App Development的工具集,只有欽定的API和Library才能被歸屬到Project Reunion之下。和同一套代碼跑遍所有Win10的UWP不同,這次的目標是,只要是屬於Project Reunion的Library,就能被以往的WinForms,WPF和C++/Win32的技術所使用。可以想像,被迫使用了新API的舊框架們,不得不遷移到最新的Win10,甚至Microsoft Store,簡直機智啊!
下面一張圖是Project Reunion對以MSIX格式打包,且通過Store發佈的應用程序,所對應的Roadmap。
可以看到在今年底就會有正式版了。但是以MSIX打包的形式,在使用體驗上我個人推測和現在的DesktopBridge的使用並無太大出入,無非就是API的更新。(個人不負責任的推測)
第二張圖就有點意思了,這是對非打包格式的應用程序的支持情況。商店這種東西,個人消費者可能喜歡,但是對軟件開發商來說,等於是脖子上的枷鎖,對於公司IT而言更是法外之地。所以這一塊的內容在未來確實很有看點,某軟從Win8開始做商店,結果連遊戲都賣不過Steam,何其悲劇!這次以何種形式來支持非打包的桌面應用,讓我們拭目以待。
扯得太遠讓我們回到WinUI 3 Project Reunion 0.5。當前這個版本可用於創建發佈到商店的應用,但他只支持desktop,UWP的支持仍然是preview。同時雖然支持在VS2019 16.9以上版本中使用,但是全部特性比如熱重載和實時可視化樹還要等16.10版本。可以理解為庫本身已經準備好了,但是配套還沒有完善。
在安裝Project Reunion 0.5 VSIX包之後,我們就可以在VS2019中使用WinUI項目模板創建WinUI3應用。
同時在WinUI3的Item Template中,我們可以看到下面這些項,一股熟悉的氣息撲面而來。其實某軟在這些年,至少桌面端XAML的技術延續是非常順滑的。根本不存在拋棄老人,讓他們35歲去送外賣這種事情。有興趣的小夥伴來入坑Windows開發啊,三十年河東河西,萬一哪天再次雄起了呢?這裡推薦兩篇Docs & Learn上HelloWorld級別的課程,包教包會那種。
編寫首個 Windows 10 應用 – Learn | Microsoft Docs
Windows 10 開發簡介 – Learn | Microsoft Docs
總體來說,WinUI3是一個巨大的升級。WinUI2僅以NuGet包的形式供UWP項目使用,而WinUI 3升級為整個全新的項目模板。成為了和UWP,WPF項目模板對等的存在。
本篇我們僅僅從概念上介紹了WinUI 3和Project Reunion,下一篇我們將嘗試創建WinUI 3的項目來體驗如何進行次世代Windows應用程序的開發。
參考鏈接:
Windows UI 庫 3 – Project Reunion 0.5(2021 年 3 月)
使用 Project Reunion 0.5 構建桌面 Windows 應用