面对庞大的传统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 )关注我们。