眼花缭乱中看Metro Style—MS Apps Store—Desktop Apps以及Win-Runtime和Win32

来源:互联网 发布:mac关闭盖子不断网 编辑:程序博客网 时间:2024/05/26 22:55
WinRT(Windows Runtime)是微软新一代在Win8 Metro下开发框架, 它是一套面向对象、跨语言并且是Native的库。 

如果有人问我WinRT的核心技术是什么? 我的答案是 COM + .Net Metadata + Xaml, 这三者可以说是微软这些年所有技术的精华。

COM组件技术一直是微软在用户态的核心技术之一, 它让我们可以无缝的以面向对象的方式搭建应用程序,随着.Net的发展,我们曾经以为它已逐渐过时,但是在WinRT中,我们看到它又回来了。 
.Net Metadata是微软在 .Net继承过来的, 通过它描述组件的类层次和接口, 实现跨语言的调用。
Xaml是微软从WPF中继承过来的, 相对于传统GDI窗口和控件, 它的优势我们就不多说了, 它是微软下一代界面的表现方式。

 对于Win8 Metro应用(现在微软喜欢把它叫住Windows Store App), 我们一直很好奇Win8的架构, 它与传统Win32究竟是什么关系?
对于这个问题, 我们在网上一般会喜欢用这个图作为答案:


上面的图给我们的感觉是WinRT完全不同于传统的Win32应用程序, 是直接基于Windows内核的,它和Win32 API是并列的2套开发框架。
或许是微软试图这样设计, 所以给了我们这样一张架构图, 但是后来我们逐渐发现, 实际情况却是这样的:

WinRT不是直接基于Windows内核, 而是直接搭建在Win32上的一个系统级应用, WinRT的下层还是Win32 API。
通过工具, 我们可以看到传统的Desktop Application和WinRT App是运行在同一个Session, 同一个Window Station,同一Desktop的, 微软只是在它们之间的切换作了些限制。

另外,微软通过新增加一些API(比如NtCreateLowBoxToken)让Metro App以很低权限运行在Sandbox(App  Container)中, 对于和权限相关的API调用,它会通过一个Broker来运行。




总之, 一开始我们会觉得WinRT很好奇, 但是后来我们逐步发现它其实并没有那么神秘, 它是很多微软现有技术的合成体。 微软的技术更新很多时候让人眼花潦乱。
但是底层本质的东西(比如COM,D3D,Win32)其实一直很少改变。

http://www.silverlightchina.net/html/windows8/study/2013/0113/21392.html
=============================
个人觉得微软WinRT就是减小开发应用的成本和时间,同时为应用能跨PC、手机和平板做好准备。
=============================


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 b2驾照逾期未审怎么办 c1实习期扣6分怎么办 车子累计扣30分怎么办 实习期间扣满12分怎么办 新手驾照扣6分怎么办 a2驾驶证逾期未审验怎么办 c1驾照扣了6分怎么办 b1驾照被扣12分怎么办 b2驾驶本扣分了怎么办 驾驶本扣9分后怎么办 b1照扣12分怎么办 b2扣了15分怎么办 b2有扣分未年审怎么办 b2驾驶证扣4分怎么办 b2驾驶证扣10分怎么办 刚发驾驶证照片太丑想换怎么办! 考驾照时户口变更怎么办 驾照年审色盲未过怎么办 考驾驶证互联网注册号码怎么办 驾驶证体检视力不过关怎么办 六年驾照满了怎么办 驾照扣了40多分怎么办 一个驾照扣24分怎么办 南昌电动车牌照丢了怎么办 上海餐饮工作人员怎么办健康证 房产过户没有遗嘱公证怎么办 在外地被扣12分怎么办 公务员体检视力不过关怎么办弱视 身份证被盗用注册公司怎么办 驾照分卖了12分怎么办 一年12分扣完了怎么办 滴滴车管所信息不同步怎么办 驾驶证过期两个月了怎么办 科目二考试第一次不合格怎么办 科目二不想考了怎么办 科二有事考不了怎么办 科四有事去不了怎么办 社保卡发了密码怎么办 不知道社保卡号怎么办 科目三未到30天怎么办 户口地址变了驾照怎么办