曾扛起微軟生態大旗的重要武器 如今Win11出世後被棄用
- 2021 年 11 月 20 日
- 資訊
- UWP, Windows 10, Windows 11
微軟已經在10月5日面向普通用戶推送了Windows 11正式版,想必很多朋友已經用上了這最新一代的操作系統。
而如果你是一名微軟粉絲,有長期關注微軟生態,那麼可能會注意到Win10時代被頻頻提起的UWP生態,在新系統的到來之際竟然近乎銷聲匿跡。
實際上,這並不是錯覺。UWP這個在Win10時代,曾經扛起微軟生態的大旗,在Win11時代已然倒了下去。
不久前,微軟在Windows應用程序的開發文檔中透露,主推Windows App SDK和WinUI 3開發,UWP不再作為開發基礎。
UWP此後只會收到「錯誤、可靠性和安全修復」,不會再引入新功能。因此,UWP事實上已被微軟棄用,這個曾經被寄予厚望的微軟新生態的引擎,已經成為了時代的棄子。
在Win8乃至Win10時代,人們詬病於Windows系統中殘留的老舊痕迹,老軟件乃至系統本身的風格和新設計格格不入,人們一度將Windows生態翻新的厚望寄予在UWP身上。
然而事情的發展卻出乎人們的意料,UWP被放棄的同時,Win11卻成為了近年來改版力度最大的Windows桌面系統,很多系統組件例如文件資源管理器都紛紛用上了新設計。
除了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應用存在諸多限制,能實現的功能相當有限。
UWP應用的API並不如傳統的Win32軟件來得豐富,收到諸多限制,例如UWP應用必須在App Container中以沙盒的形式運行,難以獲取很多常見的系統權限,不少功能受到限制,例如UWP應用如何使用系統代理就是個難題。
和傳統軟件相比,UWP應用功能沒有那麼自由,能調用的資源更少,受到更嚴格的後台限制,而且某些應用還很容易閃退。這帶來了很不好的用戶體驗。
再者,UWP應用兼容性不理想,儘管支持跨平台,卻無法兼容老平台。
Windows一大優點在於兼容性,無論使用新老開發工具,所編寫的程序都能在最新的Win10中跑起來,這令很多開發者至今仍使用舊版本的開發工具,以同時兼容Win7、Win10等多個版本的系統,大家並沒有太多動力為了UWP就把開發工具時時保持在最新。
最後,UWP應用還存在開發框架一直迭代不穩定、App必須在應用商店中發佈等問題,這都影響了開發者的開發意願。
種種原因綜合之下,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軟件提供界面、樣式更新。
如此一來,如果軟件不轉向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。
全新的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 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軟件提供了適配新系統的開發方案,並整合了UWP。
但與此同時,它並不成熟,也存在兼容性等問題。開發者是否會跟進Windows App SDK和WinUI 3?恐怕還是得視實際情況而定了。
總結
Windows軟件是否可以翻新?微軟的確已經給出了Windows App SDK和WinUI 3的方案。然而,Windows系統的一大核心競爭力,在於強大的兼容,這既體現在新系統對老軟件的兼容,也體現在新軟件對老系統的兼容。
而無論是UWP還是Windows App SDK,都在試圖打破這一局面,因此新開發規範的推廣,也一定會遭遇障礙。
Windows並非是一個封閉的系統,微軟很難讓大家都跟隨自己的腳步,擁抱應用商店和新的開發套件。
這意味着,微軟必須在這些方面提供足夠多的吸引力,才有可能讓Windows的生態脫胎換骨。微軟能在Win11時代做到這一切嗎?我們拭目以待吧。