Win11出世UWP却惨遭弃用!曾扛起微软生态大旗
微软已经在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时代做到这一切吗?我们拭目以待吧。
- the end -