Win11 出世 UWP 卻慘遭“棄用”,Win 軟件還會翻新嗎

微軟已經在 10 月 5 日面向普通用戶推送瞭 Windows 11 正式版,想必很多朋友已經用上瞭這最新一代的操作系統。而如果你是一名微軟粉絲,有長期關註微軟生態,那麼可能會註意到,Win10 時代被頻頻提起的 UWP 生態,在新系統的到來之際竟然近乎銷聲匿跡。

實際上,這並不是錯覺。UWP 這個在 Win10 時代,曾經扛起微軟生態的大旗,在 Win11 時代已然倒瞭下去。

▲ 微軟已經公告,UWP 被實質性放棄

不久前,微軟在 Windows 應用程序的開發文檔中透露,主推 Windows App SDK 和 WinUI 3 開發,UWP 不再作為開發基礎。UWP 此後隻會收到“錯誤、可靠性和安全修復”,不會再引入新功能。因此,UWP 事實上已被微軟棄用,這個曾經被寄予厚望的微軟新生態的引擎,已經成為瞭時代的棄子。

在 Win8 乃至 Win10 時代,人們詬病於 Windows 系統中殘留的老舊痕跡,老軟件乃至系統本身的風格和新設計格格不入,人們一度將 Windows 生態翻新的厚望寄予在 UWP 身上。然而事情的發展卻出乎人們的意料,UWP 被放棄的同時,Win11 卻成為瞭近年來改版力度最大的 Windows 桌面系統,很多系統組件例如文件資源管理器都紛紛用上瞭新設計。

▲ Win11 中界面割裂的現象明顯好轉,例如文件管理器,沒有 UWP 化,但界面也現代化瞭,這是為何?

除瞭 Win11 系統本身,大量微軟 App 也在 Win11 時代全面擁抱瞭 Fluent Design 等新設計。這似乎是 Windows 生態華麗轉身的一個好兆頭。但歸根到底,這仍是微軟自發的行為,除瞭系統自帶組件和第一方應用,更重要的是第三方軟件。在今後第三方的 Win 軟件還會源源不斷迎來翻新嗎?還是說 Win11 的改版仍隻會是曇花一現、大量 Win 軟件仍舊積重難返?今天就來簡單談談吧。

為何微軟要放棄 UWP?

在展開話題之前,我們先來回顧一下微軟為何要放棄 UWP。實際上,UWP 生態萎靡,已非一朝一夕之事。早在 Win11 尚未公佈之前,Win10 上的 UWP 生態就已經半死不活,大量知名 UWP 應用早在去年前年就已經停止更新,大廠的 UWP 產品更是被 Win32 轉制版軟件取而代之,例如 QQ、微信、網易雲音樂都是其中典型。

開發者不青睞 UWP,是有其合理原因的。

首先,微軟在移動平臺上的折戟沉沙,令 UWP 應用價值大減。UWP 開發規范主打跨平臺,從其名字“Universal Windows Platform”中就可窺一斑。UWP 應用可以同時適配移動和桌面平臺,但隨著 WP/Win10M 宣告失敗,UWP 這座橋梁的意義就很值得懷疑瞭。

▲ 移動平臺上的潰敗,令 UWP 應用和 Win 商店失去瞭一大根基

其次,UWP 應用存在諸多限制,能實現的功能相當有限。UWP 應用的 API 並不如傳統的 Win32 軟件來得豐富,收到諸多限制,例如 UWP 應用必須在 App Container 中以沙盒的形式運行,難以獲取很多常見的系統權限,不少功能受到限制,例如 UWP 應用如何使用系統代理就是個難題。和傳統軟件相比,UWP 應用功能沒有那麼自由,能調用的資源更少,受到更嚴格的後臺限制,而且某些應用還很容易閃退。這帶來瞭很不好的用戶體驗。

▲ UWP 應用受限較多

再者,UWP 應用兼容性不理想,盡管支持跨平臺,卻無法兼容老平臺。Windows 一大優點在於兼容性,無論使用新老開發工具,所編寫的程序都能在最新的 Win10 中跑起來,這令很多開發者至今仍使用舊版本的開發工具,以同時兼容 Win7、Win10 等多個版本的系統,大傢並沒有太多動力為瞭 UWP 就把開發工具時時保持在最新。

最後,UWP 應用還存在開發框架一直迭代不穩定、App 必須在應用商店中發佈等問題,這都影響瞭開發者的開發意願。

▲ 隻能安裝商店應用的 Windows 10S 並不受歡迎

種種原因綜合之下,UWP 的發展長期處於低潮。而其中的很多問題,又是微軟無法解決的。例如 UWP 的定位在於跨設備跨平臺,要兼顧桌面和移動環境,這就意味著自由度高的桌面開發環境必須向存在種種限制的移動開發環境妥協,導致的結果就是 UWP 應用功能受限、向後兼容性受限。結合當前微軟在移動市場的表現,UWP 的確沒有太大存在的意義瞭。

Win11 時代 Win32 也能迎來翻新?

UWP 不再被視為 Windows 開發的重心,但 Windows 11 中,大量軟件應用反而煥然一新,這又作何解釋呢?事實上,UWP 盡管沒有取得什麼大成功,但它的很多遺產,卻被繼承瞭下來,這讓 Windows 在此後的生態建設中,更加順風順水。

就如文章一開頭所提到的,微軟將會把 Windows 開發的重心轉向 Windows App SDK 和 WinUI 3,但這兩者又是什麼來頭呢?其實它們的構成,和 UWP 是脫不開關系的。

在 Win10 時代,微軟推行 UWP,而 UWP 所用的控件和樣式庫則被稱為 WinUI 2。WinUI 2 和 Windows 10 SDK 集成,為 UWP 提供 Windows UI 控件以及其他 UI 元素。然而,WinUI 2 卻有僅僅適用於 UWP 開發,對於傳統的 Win32 軟件,它無能為力,無法為傳統的 Win32 軟件提供界面、樣式更新。

▲ Win10 時代,UWP 應用使用 WinUI 2 構建界面,而 WinUI 2 也僅僅支持 UWP

如此一來,如果軟件不轉向 UWP 開發,那麼即使更新版本,那麼往往也隻會使用 WPF、MFC 等比較老舊的開發工具。軟件不使用 UWP 開發,就無法用上 WinUI 2,就沒法跟上 Windows 系統的界面更新,這讓 Win10 時代視覺效果極其割裂。這個情況,在 Win11 時代似乎要得以改觀瞭。

在開發 Windows 11 的同時,微軟也盤算起瞭整理軟件開發生態的路子。在去年的 Build 2020 開發者大會上,微軟公佈瞭“Project Reunion”,這是一套整合 UWP 和 Win32 開發的方案。微軟試圖通過 Project Reunion,將 Win32 和 UWP API 與 Windows 10 脫鉤,並將 UWP 中出廠的 API 提供給 Win32 使用,以“彌合”兩個平臺之間的差距。現在,Project Reunion 已經取得瞭初步的成果,那就是新的 Windows App SDK 以及 WinUI 3。

▲ 作為 Project Reunion 的一部分,WinUI 3 同時支持 Win32 和 UWP,傳統軟件也可以使用它更新界面

全新的 Windows App SDK 融合瞭傳統 Win32 以及 UWP 應用關鍵技術,並使用 WinUI 3 作為 UI 框架。此後,開發者為 Windows 開發軟件,無論是開發 Win32 還是 UWP,隻要使用 Windows App SDK,即可讓軟件用上新的界面 —— 沒有使用 UWP 重構的文件資源管理器得以翻新,就受益於此。

需要註意的是,Windows App SDK 並不會取代掉之前的 Windows SDK 或現有桌面 Windows 應用類型,例如 .NET(包括 Windows 窗體和 WPF)和桌面 Win32 等,而是使用一組通用 API 來補充這些現有工具和應用類型,開發人員可以在這些平臺上依賴這些 API 來執行操作。

換言之,Windows App SDK 通過拓展更多的 API 接口,讓 Win32 開發也如 UWP 一樣標準化,讓開發者可以輕松調用 WinUI 3 來構建新的軟件界面。為 Win32 軟件開發新版,不需要將 Win32 軟件重構為 UWP,傳統軟件也能用上新界面瞭。

未來 Windows 軟件會如何發展?

那麼問題來瞭,Win10 時代開發者並不願意使用 UWP,在 Win11 時代大傢就會擁抱 Windows App SDK 和 WinUI 3 嗎?恐怕其中仍有一些疑慮。

首先需要肯定的是,Windows App SDK 的確解決瞭 UWP 力所不逮的一些問題。例如 UWP 應用功能受限,而 Windows App SDK 可以用於 Win32 開發,就減少瞭很多限制。Windows App SDK 打破瞭軟件開發在功能和 API 調用等方面的瓶頸,讓 Win32 軟件銜接最新 Windows 界面不再有功能方面的顧慮。

但與此同時,Windows App SDK 並沒有解決 UWP 開發的很多問題。

兼容性。UWP 向後兼容到 Win10 1703,而 Windows App SDK 的兼容性更差,隻兼容到 Win10 1809。如果開發商打算讓軟件繼續兼容 Win7、Win8,那麼必然不會選擇 Windows App SDK。

▲ 各類 Windows 開發框架對比,可見 WinUI 3 對老系統的支持是更差的

遷移成本。將老軟件遷移到 Windows App SDK,並不比將其重構為 UWP 簡單,很多歷史悠久的大型軟件,已經累積起瞭穩定生態和客源,並不一定願意做這方面的工作。

成熟度。事實上,Windows App SDK 才剛剛發佈 1.0 穩定版,很多開發框架尚未穩定,也遠稱不上成熟。根據微軟的規劃,Windows App SDK 在未來還會通過 XAML Islands 支持 WPF、WinForms 和其他帶有 WinUI3 的應用程序,但這些規劃是否能落實?微軟砍刀部會不會再次大發神威?恐怕很多人會選擇觀望。

當然,如果開發者迫切想要軟件跟上 Win11 的節奏,或者想要讓產品在 Windows 商店中上架,Windows App SDK 還是頗具吸引力的。Windows App SDK 提供瞭更多適配 Win11 新系統特性的接口,例如電源管理、應用窗口管理、進程周期管理等等,使用它來開發軟件,在 Win11 上的運行效果肯定會比傳統開發來得更好。

▲ Windows App SDK 可以讓 Win32 軟件更容易支持更多系統新特性

簡而言之,Windows App SDK 有其價值所在,它為 Win32 軟件提供瞭適配新系統的開發方案,並整合瞭 UWP。但與此同時,它並不成熟,也存在兼容性等問題。開發者是否會跟進 Windows App SDK 和 WinUI 3?恐怕還是得視實際情況而定瞭。

總結

Windows 軟件是否可以翻新?微軟的確已經給出瞭 Windows App SDK 和 WinUI 3 的方案。然而,Windows 系統的一大核心競爭力,在於強大的兼容,這既體現在新系統對老軟件的兼容,也體現在新軟件對老系統的兼容。而無論是 UWP 還是 Windows App SDK,都在試圖打破這一局面,因此新開發規范的推廣,也一定會遭遇障礙。

Windows 並非是一個封閉的系統,微軟很難讓大傢都跟隨自己的腳步,擁抱應用商店和新的開發套件。這意味著,微軟必須在這些方面提供足夠多的吸引力,才有可能讓 Windows 的生態脫胎換骨。微軟能在 Win11 時代做到這一切嗎?我們拭目以待吧。 

閱讀更多: