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

09、win32 转换为 store app的更多相关文章

  1. Windows 8.1 store app 开发笔记

    原文:Windows 8.1 store app 开发笔记 零.简介 一切都要从博彦之星比赛说起.今年比赛的主题是使用Bing API(主要提到的有Bing Map API.Bing Translat ...

  2. Windows store app[Part 4]:深入WinRT的异步机制

    接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如 ...

  3. Windows store app[Part 1]:读取U盘数据

    Windows 8系统下开发App程序,对于.NET程序员来说,需要重新熟悉下类库. 关于WinRT,引用一张网上传的很多的结构图: 图1 针对App的开发,App工作在系统划定的安全沙箱内,所以通过 ...

  4. 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)

    这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...

  5. 吐槽坑爹的微软win store app审核

    从学习win store app 开发到做出第一个应用 博客园cnblogs 花了一个多月的全部业余和上班空闲时间, 上周在端午节放假期间终于完成了计划的全部开发和测试, 6月10号怀着无比激动的心情 ...

  6. Windows Store App 过渡动画

    Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...

  7. 05、Windows Store app 的图片裁切(更新)

    在 Win Phone Silverlight api 中,有一个 PhotoChooserTask 选择器,指定宽.高属性,在选择图片的时候, 可以进行裁切,代码: PhotoChooserTask ...

  8. 01、Windows Store APP 设置页面横竖屏的方法

    在 windows phone store app 中,判断和设置页面横竖屏的方法,与 silverlight 中的 Page 类 不同,不能直接通过 Page.Orientation 进行设置.而是 ...

  9. Windows store app[Part 3]:认识WinRT的异步机制

    WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数 ...

随机推荐

  1. 新安装的MySQL的简单配置

    修改配置文件 bind-address = 10.6.20.1 port = 3306 character_set_server = utf8 max_connect_errors = 1000000 ...

  2. opencv实现gamma灰阶检測

    简单介绍 本篇解说使用opencv来測试,表示camera gamma參数的灰阶卡图片指标:YA Block.DynamicRange.Gray Scale. 详细实现 实现代码 #include & ...

  3. 链接、ip地址及端口号

    # encoding=utf-8 #python 2.7.10 #xiaodeng #链接(即报文如何通过传输控制协议链接从一个地方搬移到另外一个地方) #HTTP权威指南 13页 #TCP/IP # ...

  4. HDOJ 5242 Game

    Game Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. Androidmanifest.xml在Android项目中的作用

    以下是一个项目中的AndroidManifest.xml文件: <?xml version="1.0" encoding="utf-8"?> < ...

  6. function声明的深刻含义和jquery属性注入区别

    在js中有两类对象 1.json对象,仅仅代表对象而已 2.function声明的对象 (1) 它定义了构造器  可以用new 对象 来初始化 数据对象 (2) 它指明对象是一个函数对象  通过后面加 ...

  7. [转载][转]修改/proc目录下的参数优化网络性能

    原文地址:[转]修改/proc目录下的参数优化网络性能作者:雪人 网络优化 注意: 1. 参数值带有速度(rate)的参数不能在loopback接口上工作. 2.因为内核是以HZ为单位的内部时钟来定义 ...

  8. 马哥 Linux运维基础进阶和shell入门

    地址:http://edu.51cto.com/course/course_id-618.html 紧接马哥linux专题 第一讲 Bash变量: 1byte= -128,127 2bytes -32 ...

  9. invalid configuration x86_64-unknown-linux-gnu' machine x86_64-unknown' not recognized

    转载自:http://blog.csdn.net/php_boy/article/details/7382998 前两天在装机器软件的时候, 出现了下面的错误, invalid configurati ...

  10. Java语言中的面向对象特性:封装、继承、多态,面向对象的基本思想(总结得不错)

    Java语言中的面向对象特性(总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知道jav ...