眼花缭乱中看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很好奇, 但是后来我们逐步发现它其实并没有那么神秘, 它是很多微软现有技术的合成体。 微软的技术更新很多时候让人眼花潦乱。
如果有人问我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、手机和平板做好准备。
=============================
- 眼花缭乱中看Metro Style—MS Apps Store—Desktop Apps以及Win-Runtime和Win32
- Windows Store apps开发[25]Metro style apps改名为Windows Store apps
- Win32 and COM for Metro style apps (data)
- Win32 Desktop Apps (Visual C++)
- Troubleshooting packaging, deployment, and query of Metro style apps
- Windows Store apps开发[16]编写和使用自己的Windows Runtime组件
- Windows Store apps开发[18]Metro Revealed Building Windows 8 apps with XAML and C#中文翻译全部汇总
- Solved: Metro Apps stopped working
- Apps Listener——FNDSM 和 FNDFS
- win32-apps-with-mingw
- Windows Store apps[9]通知概述(Toast,Tile和Badge)
- Windows Store apps开发[36]Await和Async
- Win 10 apps - Data Binding
- 马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today)——App Store
- Fix Windows 8 Metro Apps Error – Windows 8 Metro Apps Error Report
- Make your Windows desktop apps open source
- Delphi, C++ to Goose Desktop Apps
- Connect desktop apps using D-BUS
- Android webView 中调试javaScripte
- UML用例图-教程详解
- SQL Server查看及导出建表语句
- java缓存例子代码
- 函数指针
- 眼花缭乱中看Metro Style—MS Apps Store—Desktop Apps以及Win-Runtime和Win32
- Myeclipse性能优化
- Windows下的ffmpeg编译
- 句柄的理解
- 面试
- boost 1.47和boost 1.52 编译
- srand( time(NULL) )
- iPhone和iPad开发中的图标大小和设置
- C++学习笔记3