低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

简化从 Win32 到 Windows 10 的迁移之路

2016 年 4 月 01 日

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

2016 年 4 月 01 日 19:001957
用户头像

发布了 283 篇内容, 共 86.5 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

如何处理消息队列中的重复消息

废材姑娘

RocketMQ

作业-week1

赝品

产品经理00期训练营第一周作业 4班

mas

产品经理训练营

轻松几步教你将React Native 项目运行在Web端

华为云开发者社区

html 前端 Web API React Native

经验说丨华为云视频Cloud Native架构下实践

华为云开发者社区

架构 微服务 华为云 CloudNative

如何构建高效可信的持续交付能力,华为云有绝活!

华为云开发者社区

软件 DevOps 持续交付 华为云

Soul 学习笔记---soul 数据同步的浅显分析(四)

fightingting

Soul网关

Java学习(一)

灵霄

java基础

一个button的成长过程

学习委员

CSS html css3 html/css 28天写作

《原神》运维自动化的探索与实践

OpsMind

运维 运维自动化

当前岗位的理想岗位模型

白生

一字一句的让你彻底掌握JavaScript中的回调函数

华为云开发者社区

JavaScript 前端 同步 回调函数

项目管理系列(6)-能力成熟度

Ian哥

28天写作

智能手表

张老蔫

28天写作

Java 程序经验小结:消除GC触及不到的过期对象引用

后台技术汇

28天写作

AI无人机出手,让输电线路巡检更“聪明”!

华为云开发者社区

华为云 modelarts 视觉处理

这样提问,大牛才会为你解答(提问的智慧)

yes的练级攻略

开发实战:Float如何保留2位小数

worry

Soul学习笔记---运行 soul-examples-http(二)

fightingting

Soul网关

绩效管理,上下同心者胜(三)

一笑

管理 绩效 28天写作

Soul 网关实践 04|dubbo 服务接入网关

哼干嘛

期货合约系统软件开发|期货合约APP开发

开發I852946OIIO

系统开发

产品经理训练营-第一章作业

泡面加煎蛋

产品经理训练营作业00

KingSwim

云原生动态周报 | KubeEdge被评为2020十大边缘计算开源项目

华为云原生团队

云计算 云原生 边缘计算 华为云 边缘技术

TcaplusDB 10周年 风雨兼程破浪行 自研存储见成长

TcaplusDB

nosql 腾讯 分布式 游戏 数据库集群

产品经理训练营-第一周作业

羽室

一张自查清单

熊斌

学习笔记 个人总结 成长笔记 28天写作

如何恶意使用微信视频号 | 视频号 28 天 (12)

赵新龙

28天写作

深入剖析RSA密钥原理及实践

vivo互联网技术

算法 https 公钥加密 rsa

Spring 源码学习 15:finishBeanFactoryInitialization(重点)

程序员小航

spring 源码

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

简化从Win32到Windows 10的迁移之路-InfoQ