面向次世代的Windows App SDK 近况

前言

本篇文章梳理了WinUI 3, Project Reunion和Windows App SDK之间的关系,并详细介绍了如何创建Windows App SDK 1.0版中支持的Unpackaged App。

微软MVP实验室研究员

面向次世代的Windows App SDK 近况
邢政
上一次当选 MVP 的时候,Windows Phone 还活蹦乱跳的。曾经搞了段时间 iOS ,后迷途知返重回某软的怀抱。如今在知名厂商卖电脑为生,人傻钱多可来一叙。
想当初一入 .NET 深似海,现鬓角斑白,说不是真爱,怕别人也是不信的。间或在博客园和 Github 写些心得。坐标魔都,大龄程序员加游戏爱好者,廉颇老矣,尚能饭否?

 

Windows App SDK 1.0

Project Reunion作为面向次世代Windows App Development的统一工具集。在2021年11月,第三个稳定版正式以1.0的版本号发布的同时,改名部果断出手,以全新的名称Windows App SDK迎接2022年以及Windows 11。

在某软推荐UWP开发者迁移到Windows App SDK之后,曾有一波“放弃”UWP的新闻。其实在经历了WPF,Silverlight,UWP这些长得挺像(XAML)的UI框架后,开发者升级到Windows App SDK和WinUI 3并不是一件很困难的事情。毕竟这凑齐了XAML的四样写法,写代码的事,能叫放弃么?空气中顿时充满了快活的味道……

下面谈谈Windows App SDK中绕不开的WinUI 3,WinUI 3作为Windows App SDK中最为核心和关键的部分,即下一代Windows desktop app开发的原生UI框架,包括托管C#和非托管的C++以及Win32 API。可以理解为某软对过去二十年desktop开发技术的反思和集大成者。
随着版本的迭代,当前WinUI 3的定位较早先有了一些变化。和WinUI 2专门为UWP服务不同,WinUI 3现在不想和UWP扯上关系。

面向次世代的Windows App SDK 近况

早先预览版中对UWP的支持描述已踪迹难寻,可以理解为缩小了支持的范围,集中精力Make Desktop Great Again!根据当前版本的使用体验,有两点值得注意。首先就1.0的版本而言,仍有诸如CameraCaptureUI,InkCanvas和PrintManager等在UWP时代颇为实用的组件没有替代品。其次就是Win10 1809+的版本限制,可以想象对跑在Win7甚至更老系统上的软件而言,升级近似完全重写。

Unpackaged App

Windows App SDK 1.0非常有意思的一点,既是对Unpackaged App的支持。和之前无责任猜测的不同,这次对Unpackaged App的支持非常彻底,使用起来也很方便。Unpackaged App不再通过MSIX格式打包上传商店,而是彻底回归到.exe或者.msi的安装方式。
接着我们用VS 2022来创建久违了的exe程序。除了VS 2022以外,我们需要额外安装Windows App SDK runtime and MSIX packages

下载完成解压后,根据电脑的环境选择对应的安装文件。例如我是64位的Win11系统,就选择WindowsAppSDK-Installer-x64,双击后会自动完成安装。

面向次世代的Windows App SDK 近况

 在完成以上准备后,在VS2022中创建Blank App, Packaged(WinUI 3 in Desktop)工程。经历过UWP DesktopBridge创伤的同学可能会发现,即使是Packaged App,也不再需要额外的Packaging Template工程了。简洁单一的解决方案界面让人心情愉悦很多。

面向次世代的Windows App SDK 近况

 然后让我们鼠标右键选择编辑工程文件,在工程文件编辑窗口中,添加WindowsPackageType节点并设置为None。

<WindowsPackageType>None</WindowsPackageType>

面向次世代的Windows App SDK 近况

 最后一步则是在开始Debug的下拉列表中,选择Unpackaged启动配置文件。至此我们的第一个使用Windows App SDK的exe程序就做好了。点击开始Debug的按钮或按下F5即可成功运行。

面向次世代的Windows App SDK 近况

 故名思意Unpackaged App我们可以直接在Output目录,或者Publish目录通过双击exe运行。如下图所示,在成功发布之后,即可复制整个publish目录到其他Win10 1809+的机器上运行。

面向次世代的Windows App SDK 近况

美中不足当前版本会在pulish目录包含大量的Dll文件。同时运行exe程序的机器也需要安装Windows App SDK Runtime。恍惚间又回到了二十年前在XP安装.NET Runtime的场景,历史真是一个轮回。

这是我们迈出体验Windows App SDK 1.0的一小步,也同时祝愿这是某软为Make Desktop Great Again所构筑的坚实起点,为Windows及许许多多沉默的桌面开发者跨出再塑辉煌的一大步。

上一篇:vim手动加载插件


下一篇:比xshell和xftp都好用的工具。