微软重新审视自家Windows应用程序平台

 “目前世界上存在1600万种Win32或者.NET应用程序。在构建通用Windows平台时,我们需要将其彻底抛弃。这种作法非常愚蠢。”微软杰出工程师John Sheehan在2016年Build大会上如是说。

微软通用Windows平台(简称UWP)基于WinRT。WinRT拥有数项既定目标:其一,通过用户界面设计的触控操作,而将Windows带入平板电脑设备市场;其二为允许用户更为轻松且彻底地安装及移除应用程序——具体可通过Windows Store或者定制化业务门户实现;其三,WinRT安全性更高,因为每款应用程序都拥有自己的沙箱环境,且独立于操作系统及其它应用之外。并且只有一个Windows API的安全子集,负责以隔离化应用专属区域的受限方式同文件系统交互,或者在用户同意之下使用文件及图片等位置明确的访问对象。

其长远规划似乎是逐步推动用户适应新的Store应用并摆脱原有桌面应用程序,直到大多数常用Windows应用皆过渡至新模式,届时微软将锁定操作系统并将其推向更接近苹果iOS的发展道路,即安全漏洞更少且能够阻止第三方软件对用户体验的负面影响。

遗憾的是,开发者们对于构建Store应用明显缺乏兴趣,而用户们则继续使用传统桌面应用程序,因为这正是他们使用Windows系统的理由所在。由于使用者规模实在太过有限,Windows团队在保障Windows 8 Store应用环境安全方面做出的努力基本付之东流。

Windows 10则承载了微软发展战略的一次重要转变。Store应用环境仍然得到保留,但这次换成了新的实现方式,应用可以运行在桌面窗口当中。微软方面还将PC、移动、Xbox、HoloLens以及Windows IoT Core等应用平台加以统一,并将其统称为UWP。

在本次Build大会上,微软方面明显指出UWP的安全工作优先级应当让位于兼容性。Centennial项目,或者叫桌面应用转换器,将随Windows 10年度更新版一同亮相,以期让开发者们能适应桌面应用程序,并轻松实现Store以及通知、Live Tiles乃至后台任务等UWP API。这些应用程序亦不会采用沙箱机制。“我们认为,虽然可以对其进行限制及锁定,但最终只会影响到应用程序的生命力。”Sheehan在会议上表示。

微软还打算进一步增加UWP应用程序的可用Windows API。“大家可以期待Store应用SDK的不断扩展及增长,除了新API之外,我们还将添加更多此前曾被清除的API选项。”Sheehan表示。

笔者曾在Build大会上同Centennial项目组的几位成员进行过探讨,他们给出的观点非常简单:由于用户所下载并运行的Win32应用程序往往存在恶意代码或者不良元素,因此由UWP进行安全交付能够轻松解决这一问题。

微软目前的方案是将UWP标准所使用的AppX安装文件普及到各类Windows应用程序当中。其也可以看作是下一代Windows Installer。AppX在交付时会由受信数字化证书提供签名,用户则能够通过Store获取以及网站下载的方式进行获取,并双击该文件实现安装(Build大会与会者们以欢呼做出回应)。“大家再也不用手动编写安装器了,”Sheehan强调称。

同样的技术亦适用于Windows Server,在这一平台上此方案被称为Windows Server App(简称WSA)。其将首先出现在即将推出的Nano Server上,但同时亦将受到Server Core以及完整版Windows Server 2016的支持。“WSA能够将Windows Server特定扩展添加至AppX当中,从而实现各类服务器应用的安装流程,例如支持NT Service安装。作为AppX安装器的一套扩展集,WSA并不支持定制化操作,因此不会像MSI那样带来可靠性与卸载问题,”微软公司服务器团队指出。MSI属于经典Windows Installer文件,Nano Server无法支持此类部署,因为其中存在关联性机制。

开发者们编写的新应用将无需使用Centennial项目的桌面应用转换器即可利用MSI创建AppX,因为商用InstallShield以及开源WiX等安装构建器都能够直接生成AppX文件。

在此次大会上,微软还披露了桌面应用转换器的具体工作方式。其初始点为支持静默安装的MSI文件。大家可以利用命令行运行该转换器,其会启动一套Docker容器并在其中运行安装器,同时捕捉面向文件系统与注册表的各项变更。在部署其生成的AppX时,全部变更都将与应用程序文件夹相隔离,API则遵循限制条件以保证该应用程序只能够读取及写入注册表条目或者被安装在Windows系统文件夹中的文件——换言之,这些元素为该应用程序所专有。

根据Sheehan的说法,这套方案能够显著提升Windows的可靠性与性能水平。应用程序的添加与移除操作不再会导致注册表膨胀,亦消除了DLL(即动态链接库)版本问题所带来的风险——因为每款应用都拥有自己安装的库副本。

当然,并非所有应用都能够轻松实现转换。转换之后用户需要进行测试,而且多数情况下开发者还需要对其安装器或者应用代码进行修改以保证成功。

与原生UWP应用程序不同,Centennial应用能够以完全受信且无限制方式访问Windows API。它们无法安装驱动程序,但可以使用现有驱动程序以访问硬件、SQL Server或其它数据库以及网络API。

使用Centennial项目,开发者能够编写出同时运行在Windows 7乃至更早版本以及Windows 10当中的Store应用。也就是说,Centennial项目生成的AppX要求配合Windows 10年度更新版,因此用户必须及时进行升级;而该项目的另一项作用就是普及微软提出的“Windows即服务”概念。

微软公司仍然鼓励开发者们将应用程序陆续迁移至UWP当中。大家可以在编写应用程序时要求其同时运行两个进程,其一在UWP内、其二则在桌面内。各进程能够激活对方,而且两个进程可以通过名为App Service的UWP功能实现通信。这意味着经过转换的桌面应用将能够接入UWP功能,例如在PC处于休眠状态下仍在执行的后台任务(即‘连接待命’)。Sheehan设想传统应用将逐步把更多功能添加至UWP当中,直到最终彻底完成迁移并能够运行在其它UWP平台之上——例如Windows 10 Mobile或者Xbox。

尽管微软的发展战略在安全层面似乎无甚想法,至少与Windows 8时代相比是如此,但Centennial项目仍然能够潜在提升Windows用户的使用体验。AppX技术意味着应用程序可以实现清洁安装与卸载,而通过Windows Store进行桌面应用程序部署则能够提供一定程度的安全保护——因为其在向Store进行提交时需要接受审核。

本文转自d1net(转载)

时间: 2024-11-08 17:24:38

微软重新审视自家Windows应用程序平台的相关文章

微软中国正在引入Windows Phone 7平台

12月1日下午,微软大中华区总裁梁念坚在与媒体沟通时透露,http://www.aliyun.com/zixun/aggregation/27100.html">微软中国正在计划引入Windows Phone 7平台,但引入之前需要集成较多的本地化应用.梁念坚透露,微软中国正在计划引入Windows Phone 7平台,不过会等到这一平台做到更好后再引入中国.他并未提及具体时间表. 梁念坚表示,微软的Windows Phone 7平台以人的体验为中心,引入中国的时候需要把本地化的应用连接在

微软免费力推Windows 10系统的背后,目标是强大的“通用应用平台”

微软强推Windows 10系统 7月29日,微软的Windows 10系统免费升级计划将正式到期,在6月30号时,微软正式宣布,全球Windows 10系统的装机量已经突破了3.5亿台. 这个数字的达成并不容易,微软为了推行Windows 10系统,引起了不少的争议,也给自己惹了不小的麻烦.破天荒的免费升级并没有给自己迎来太多的夸赞,反倒因为"强制用户升级"引起了用户的群体反感:为了增加Windows 10系统对用户的吸引力,微软还试图将自己Xbox One平台上的第一方游戏全部跨平

微软推广Windows 10通用平台将是一场硬仗

推出通用Windows平台(Universal Windows Platform,简称UWP)是微软CEO萨蒂亚·纳德拉(Satya Nadella)最重大的计划之一,也是最冒险的计划. UWP是一种全新的平台,为这个平台开发的软件适用于多种设备. 在本周在旧金山举行的游戏开发者大会(Game Developers Conference)大会上,我们听到UWP多次被提起.在即将在本月底举行的微软Build开发者大会上,我们还会再次听到它. 那么,UWP到底是什么呢? UWP背后的基本理念很简单.

Windows 走向广告平台?这源于微软在多个垂直市场落后带来的焦虑感

十数年来长时间霸占桌面级操作系统市场的 Windows 可能要晚节不保了.外媒在近日撰文炮轰了微软最新的桌面系统 Windows 10,称其为"一辆广告大巴车",原因显而易见,整个 Windows 10 系统中正在不断出现广告元素,在包括开始菜单.通知栏.操作中心.资源管理器.锁屏.分享.商店等用户频繁接触的界面中,微软目前正在不遗余力的推销着自家的各种软件服务,包括 OneDrive.Edge 浏览器等等. 对于一款售价 119 美元起的桌面操作系统(尽管微软在 Windows 10

微软布局手机游戏 委托开发Windows Phone 7平台游戏

微软已经委托游戏公司开发Windows Phone 7平台游戏,此举显示微软将强化构建手机游戏生态圈,提振手机操作系统的市场影响力. 6月6日消息,据国外媒体报道称,<InformationWeek>网站报道,微软已经委托游戏开发公司Touch Dimensions为Windows Phone 7手机平台开发至少20款休闲类娱乐游戏,其中包括动作类游戏<打狗熊>(Whack-a-Mole)和数字速写本等,这些游戏将利用Windows Phone 7的触控屏. 业内人士认为,对于微软

Windows 8云平台开发环境搭建过程详解

Windows Store应用是基于Windows 8操作系统的新一代Windows应用程序,其 开发平台以及运行模式和以往传统平台略有不同.为了帮助更多开发人员加入到 Windows Store应用开发行列,本篇将介绍如何在Windows Azure云平台搭建 Windows8应用开发环境,本篇介绍的方法适合未安装Windows8操作系统,使用Mac 或者Linux平台的开发人员参考阅读. 准备工作 在搭建环境前,大家需要在Windows Azure平台注册免费账号,注册完成后, 即可获得90

c++-现在windows桌面程序开发都用那些开发工具?

问题描述 现在windows桌面程序开发都用那些开发工具? 要做一个数据可视化分析软件,想做成windows的本地桌面程序.不晓得目前这方面那些工具流行.社区活跃些,有问题讨论方便写. 解决方案 c# delphi,vc 解决方案二: 首选C#.C++语言本身的问题,不适合写应用软件.VB被微软彻底放弃,而VB.NET和C#同质化严重.Delphi.PowerBuilder都被微软挤垮了. 解决方案三: 要想做出应用程序,又兼顾底层,那VC是必须学的了,而C++是VC的基础,所以必须也要学,C又

微软启用云计算服务Windows Azure 云计算前景无限

无论何时,新事物的出现都会伴随着人们的质疑和否定.同理,一个新概念的诞生总是会在一定时间内得不到用户的认可,或者市场在接纳新概念的过程中会有所观察和反复,因为新事物的出笼需要一个反刍过程,需要在不断打磨中被大众接受和认可,这本无可厚非.但云计算出现却打破了这一常规,表现出了不一样的市场接纳程度.正因如此,很多公司都打上云计算的背景和技术,一时间云计算成为了不可阻挡的市场潮流. 当然我们关注的还是底层或者说源头的云计算带来的机会和技术影响力,在这方面微软的云计算自然是不可忽略的一种应用.毕竟微软本

Windows Azure云平台如此热门

最近几年,微软内部的专利总数已超过4万件,微软全球每年都投入90亿美元以上用于研发,说微软是一座宝矿毫不夸张,因为它是在有太多好的技术.资源沉淀在那里. 从Windows最早版本的发布,到如今Windows Azure云平台的发布,有无数的程序员对微软Visual Studio耳熟能详,同时有无数的合作伙伴在Windows平台开发应用,在他们眼里,微软一直以来都是业内的技术领头羊. Windows Azure这个里程碑式云平台的发布,标志着微软将带领合作伙伴一同进入云计算时代,在中国,入选云加速