你的位置:首页 > ASP.net教程

[ASP.net教程]09、win32 转换为 store app


 

 

1、机制:

  微软的 Project Centernial ( Project C) 项目的就是把传统的 windows桌面应用程序

转换为 windows10 store app (appx)。

 

目的:

1)  传统桌面应用会导致系统注册表体积越来越大,导致系统运行变慢、不稳定。大多数软

件在安装的时候会获得 administrator 权限,可能导致其它应用程序被破坏,甚至系统被破坏。

 

2)  当卸载桌面应用的时候,往往并不安全,因为一个 Win32 应用可能依赖于早期安装的应用。 

  Project C 使用两个现有的技术来修复这个问题,一个是 App-V  (百度百科App-V),一个企业级

的产品使app把它们的依赖项打包到一起,所以它们各自保持独立,并且与 System隔绝。应用

虚拟化(Application virtualization)就是应用程序可以读、写注册表,并且向 System路径中

(比如 System32文件夹)添加类库,但这些添加的内容会被放到应用程序自己的沙盒内(虚拟映射)。

 

 

 

 

  另一个就是  Windows Store,它会提供一种一键安装和卸载的机制,自动更新,

应用内支付等。从而不用担心会破坏 System和拖慢 Windows。

 

3)  Project C 就是为一个已有的 Win32(或 Win64)应用程序提供转换。工作原理

就是使用 App-V 做一个称作“排序”(sequencing)的转换过程。通过 App-V 的“排序”

来捕获程序对系统的更改。然后你运行应用程序的 installer。App-V记录所有的更改,

然后输出虚拟化(virtualised)后的应用程序包。在 Project C 还有更近一步的操作,

就是把这个包(pachage)捆绑成一个 Appx 包 ( Windows store app)。

 

 

 

  虽然使用相同的技术,但是Sheehan 强调,Project C 和 App-V 并不一样。

App-V 必须做“反常的事情”,因为它必须与现有的类库一起协作。而 Project C

让程序员,在打包前可能必须调整他们的代码。另一个不同的是, Project C app

可以使用 Windows 10 Universal app 相同的API,比如 Live Tile,动态更新开始

菜单,和其它的 Store app 进行通信等等。

 

4)Project C app 跟 Universal App 不同的是,它并不是运行在沙盒(sandboxed)中

的,但它们比传统 Win32 应用多一些限制。一个 Project C app 运行在 full user-level trust,

所以它不允许获得管理员权限。所以它们不能显示UAC(User Access Control)对话框来

获取更改系统的权限。不过他们可以使用 Windows 的特性,比如 COM 和 WMI(Windows

Management Instrumentation)、获取用户的硬件。

 

  Project C app 的一个限制是它不能从另外的 Project C app 中加载类库。

 

5)A Project C app 将只会运行在 PC 上,不会运行在 Phone、Xbox 或者 HoloLens 上。

 

 

2、 进度: 

  目前 Project C 项目并未提供公测,我注册了一下我的个人信息,当这个项目有进展的时候,

会给邮箱发邮件。(https://dev.windows.com/zh-cn/uwp-bridges)

 

 

 

 

总结参考:

1)Project Centennial": Converting your Classic Windows App (Win32, .Net, COM) to a Universal Windows App for Distribution in the Windows Store :

https://channel9.msdn.com/Events/Build/2015/2-692

2)How Project Centennial brings potentially millions of desktop apps to the Windows 10 Store:http://www.theregister.co.uk/2015/05/06/windows_10_project_centennial/

3)Application Virtualization:https://technet.microsoft.com/en-us/windows/hh826068.aspx

4)百度百科App-V : http://baike.baidu.com/view/3770203.htm