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
09、win32 转换为 store app的更多相关文章
- Windows 8.1 store app 开发笔记
原文:Windows 8.1 store app 开发笔记 零.简介 一切都要从博彦之星比赛说起.今年比赛的主题是使用Bing API(主要提到的有Bing Map API.Bing Translat ...
- Windows store app[Part 4]:深入WinRT的异步机制
接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如 ...
- Windows store app[Part 1]:读取U盘数据
Windows 8系统下开发App程序,对于.NET程序员来说,需要重新熟悉下类库. 关于WinRT,引用一张网上传的很多的结构图: 图1 针对App的开发,App工作在系统划定的安全沙箱内,所以通过 ...
- 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)
这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...
- 吐槽坑爹的微软win store app审核
从学习win store app 开发到做出第一个应用 博客园cnblogs 花了一个多月的全部业余和上班空闲时间, 上周在端午节放假期间终于完成了计划的全部开发和测试, 6月10号怀着无比激动的心情 ...
- Windows Store App 过渡动画
Windows Store App 过渡动画 在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...
- 05、Windows Store app 的图片裁切(更新)
在 Win Phone Silverlight api 中,有一个 PhotoChooserTask 选择器,指定宽.高属性,在选择图片的时候, 可以进行裁切,代码: PhotoChooserTask ...
- 01、Windows Store APP 设置页面横竖屏的方法
在 windows phone store app 中,判断和设置页面横竖屏的方法,与 silverlight 中的 Page 类 不同,不能直接通过 Page.Orientation 进行设置.而是 ...
- Windows store app[Part 3]:认识WinRT的异步机制
WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数 ...
随机推荐
- ElasticSearch异常归纳(能力工场小马哥)
异常1: can not run elasticsearch as root [WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-2] ...
- 有间距的表格布局 table布局
1.先看有间距的布局效果: 2.少说多做,直接看代码(代码中有注释) <!DOCTYPE html> <html lang="zh"> <head&g ...
- 〖Linux〗Shell脚本修改输出文字颜色
Shell函数: echocolor(){ color=${} && shift case ${color} in black) echo -e "\e[0;30m${@}\ ...
- 〖Android〗酷派手机固件.cpb文件的分解程序
/* * ===================================================================================== * * Filen ...
- spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置
spring mvc 图片上传,跨域解决 按天生成文件夹 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ ...
- html中文乱码问题的解决
当我试着用html写代码的时候,发现直接保存的文件用浏览器打开时中文显示是乱码的,所以我找了一些解决方法,可是原因不太明白,所以我也就不解释了,能够自己找找原因,以下提供解决方法: 在写的html的第 ...
- HDU 3316 My Brute(二维费用流)经典
My Brute Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 转:VC++线程同步-事件对象
这是整理孙鑫VC得到的关于线程同步方面的笔记. n 事件对象也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于 ...
- 关于android屏幕适配的问题(drawable-xxxxxxxx,dp,sp,px等等),偶尔看到了android源代码,关于dpi的区分的值
上一篇博客说了一下.9.png图片http://blog.csdn.net/qq_23195583/article/details/46737419 当然,点九的是指的能够进行拉伸的.那么假设图片不能 ...
- 深入PHP内核之全局变量
在阅读PHP源码的时候,会遇到很多诸如:CG(),EG() ,PG(),FG()这样的宏,如果不了解这些宏的意义,会给理解源码造成很大困难 EG().这个宏可以用来访问符号表,函数,资源信息和常量 C ...