• 面向次世代的Windows App SDK 近况


    • 前言

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

    • 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扯上关系。

    早先预览版中对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,双击后会自动完成安装。

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

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

    <WindowsPackageType>None</WindowsPackageType>

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

     

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

     

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

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

  • 相关阅读:
    Ajax 一
    Ajax
    回调函数2
    回调函数
    mysql_fetch_row mysql_fetch_array
    几款主流PHP框架的优缺点评比
    关于PHP 7你必须知道的五件事
    10个实用的PHP正则表达式
    PHP实现四种基本排序算法
    10个最佳的PHP图像操作库
  • 原文地址:https://www.cnblogs.com/manupstairs/p/15853271.html
Copyright © 2020-2023  润新知