面对庞大的传统 Win32 应用程序生态所取得的巨大成功,Microsoft 目前在 Windows 10 方面遭遇了一个重大挑战。这使得该公司面临两难困境:因为潜在买家的市场可能不太大,因此开发者不愿意为 Windows 10 开发应用;而由于用户无法使用他们惯用的各种应用, 因此不太愿意升级至 Windows 10。在今天的 Build 大会上,Microsoft 介绍了应对这一挑战所展开的最新努力:Project Centennial。
John Sheehan 和 Peyman Zanjani 在演讲中提到:“Project Centennial 可将现有的传统桌面版应用程序迁移至通用 Windows 平台,”并详细介绍了如何将现有的 Win32 应用程序轻松转换为 UWP 应用,在 Windows 10 上原生运行。通过这种方法,开发者只需投入很少的工作量,甚至无需额外工作,便可将现有应用程序快速迁移至 Windows 10。随后还可根据预算和客户需求,逐步支持 UWP 平台的独有功能。更棒的是,如果业务需要继续支持 Windows 10 之前的系统,开发者还可以轻松地为当前的 Win32 应用程序提供并行支持。
Sheehan 坦诚地提到,Windows 10 最初打算完全放弃大约 6 千万个现有的 Win32 应用,但这个计划有些“愚蠢”,Centennial 的诞生正是为了弥补这一缺憾。该计划可以将 Win32 应用程序现有的 MSI 安装文件或传统的 setup.exe 程序转换为新的 UWP AppX 程序包。随后便可将这样的 AppX 程序包安装到任何 Windows 10 设备上。
Centennial 可以在一个专用容器中启动安装文件,这个容器可以模拟出逼真的 Windows 环境,但并不需要在容器中实际安装应用程序,只需要监视应用程序安装文件对系统做出的所有改动,例如新增的文件,创建的文件关联,以及修改的注册表内容。当 Centennial 分析出安装文件的工作方式后,便可生成有效且符合 UWP 指导方针的 APPX 程序包。Centennial 可以处理所有静默运行的安装程序,也就是说,安装程序不能要求用户的介入(例如点击“下一步”,选择安装位置等)。
对于希望通过独立平台分发应用程序的 Win32 开发者还有另外一则好消息:这样生成的 UWP 应用完全支持旁加载 (Sideloading) 技术,因此生成的程序包可通过任何方式分发,但程序包必须包含数字签名。不过这个签名并不一定必须来自 Windows 应用商店,只要由受信任的根证书颁发机构进行签名即可。签名所用证书可来自 VeriSign 或 Microsoft,或者使用在安装 UWP 应用前预安装到目标系统中的企业证书来签名。
Project Centennial 尚未公开发布,支持该项目所必需的 Windows 10 代码会通过即将发布的 Windows Insider 预览版系统提供给广大用户。对于希望尽快加入该项目的开发者,Microsoft 还提供了一个开发者预览计划。
查看英文原文: Simplifying the Road from Win32 to Windows 10
感谢邵思华对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论