原文:Windows 8实例教程系列 - 理解应用框架

Windows 操作系统之所以风靡世界,是因为其“易学易用”,从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的。Windows 8继承Windows桌面的优点,同时提供一种新的用户体验模式 - Windows store风格。换句话说,Windows 8操作系统存在两种不同风格的应用。 本篇将介绍Windows 8应用框架以及开发工具的使用。

理解Windows 8应用框架

正如前文所说,Windows 8具有两个不同风格的应用,Windows store应用和传统Windows桌面应用。两种风格应用使用不同的UI引擎,不同的服务和工具,以及不同的API. 但是,都运行在同一个Windows 8操作系统内核下。

我们简单对比一下两种应用:

Windows store应用

传统Windows桌面应用

Windows store应用增加触控操作,独特的手势操作,提高用户体验性

传统桌面应用主要操作模式是基于鼠标和键盘操作应用

应用开发基于.Net Framework Windows 8 API

应用开发基于Win32 API,或者Net Framework

Windows store应用不推荐大量使用对话框进行人机交互,而推荐使用页面导航的模式进行交互,这种方式更象使用浏览器前进后退的功能进行交互。

传统应用以对话框为主要人机交互方式

在部署方面,用户不需要了解应用安装文件等信息,仅需要在Windows store下载安装即可。

在部署方面,传统桌面应用需要一定的安装和注册流程

Windows 8传统桌面应用框架

Windows 8传统桌面应用可以根据分为三类,分别是Win32应用,.Net应用和HTML应用。

1. Win32应用主要开发语言为C,C++或VB。该应用被直接编译为CPU代码运行在Win32 API上,其用户界面实现必须使用GDI或者GDI+。

2. .Net应用主要开发语言为C#,VB.NET。该应用被编译为中间语言(IL),然后再被转换为CPU代码运行在CLR(Common Language Runtime)环境。其用户界面实现使用XAML语言

3. HTML应用主要开发语言为HTML/CSS和JavaScript,该应用基于浏览器运行。


 

 
 
 Windows store应用框架
 
基于相同的Windows 8操作系统内核,Windows Store应用共享相同的API层,称为Windows Runtime APIs。无论使用C/C++,或者基于.Net的C#/VB.NET或者HTML5/JavaScript任何一种开发语言都可以轻松调用WinRT API类库,实现本地应用操作。
值得一提的是,微软综合当前最流行的HTML5/CSS3/JavaScript技术,使Web开发人员可以轻松开发Windows store本地应用。另外,基于XAML的Silverlight和WPF技术都成为Windows 8操作系统部分,不再需要安装插件支持。而Silverlight/WPF开发人员,可以继续使用相关开发技能从事Windows Store应用开发。
 
 
 
Windows Runtime框架
 
从上面图例可以看出,Windows Runtime是Windows 8应用框架重要组成部分之一。微软将WinRT视为继2002年.Net Framework发布后最大的革新。作为Windows Store应用设计和开发人员,从微软设计原则考虑,Windows Runtime不仅仅是一套简单的API类库,而是一套独立完整的能够支持Windows Store应用风格的运行环境。
 

 
 
Windows Runtime的优点
 
1. WinRT运行在Windows 8核心层之上,为Windows Store应用提供API支持访问本地资源,例如GPS,摄像头,麦克等。
2. Windows Store应用运行在安全沙箱中,所以,该应用可以被认为安全的managed的应用。当应用尝试使用未授权本地资源时,WinRT将提示用户是否赋予系统存取权限。
3. 传统Win32 API独立于操作系统内核服务,而WinRT是Windows 8操作系统组成部分之一。 与Win32相比,WinRT更加稳定,其内存管理更加优化,对于应用和系统性能都有很大的提高。
4. WinRT支持本地异步操作,这是对于移动设备而言至关重要的特性。
 
语言映射层(Language Projection)
Windows 8应用支持多种开发语言,而不同开发语言,需要通过Language Projection映射到Windows Runtime运行环境,开发人员不需要担心语言之间的转换,整个过程都是编译器自动完成。
值得一提的是,通过语言映射层,开发人员可以在同一个项目中使用不同的开发语言开发项目功能,在随后的文章中,我将提供相应实例演示。
 
如何选择Windows Store应用开发语言
对于Windows Store应用开发语言选择,有以下几个建议提供参考:
1. 对于具有Windows应用开发经验的开发人员而言,C#和C++是最好的选择,相比而言,C#基于.Net Framework,其应用为Managed,比较容易学习掌握。而C++更加贴近底层应用开发。
2. 对于具有Web应用开发经验的设计和开发人员而言,HTML5/CSS3/JavaScript是最好的选择。类似PhoneGap框架,Windows 8将提供一个Web Host承载运行编译后的HTML应用,使其达到本地化的效果。
3. 对于具有宏操作经验的开发人员而言,VB.Net是一个不错的选择,其应用开发与微软Office VBA应用开发类似。
 
 
今天就说到这里。

学习XAML描述语言,请看:Windows 8 XAML实例教程系列

欢迎加入Q群或者微博讨论学习:

22308706(一群) 超级群500人
37891947(二群) 超级群500人
100844510(三群) 高级群200人
32679922(四群) 超级群500人
23413513(五群) 高级群200人
32679955(六群) 超级群500人
88585140(八群) 超级群500人
128043302(九群 企业应用开发推荐群) 高级群200人
101364438(十群) 超级群500人
68435160(十一群 企业应用开发推荐群)超级群500人

微博:http://www.weibo.com/edmonton

Windows 8实例教程系列 - 理解应用框架的更多相关文章

  1. Windows 8实例教程系列 - 数据绑定基础实例

    原文:Windows 8实例教程系列 - 数据绑定基础实例 数据绑定是WPF,Silverlight以及Windows Phone应用开发中最为常用的开发技术,在基于XAML的Windows Stor ...

  2. Windows 8实例教程系列 - 布局控制

    原文:Windows 8实例教程系列 - 布局控制 与传统应用类似,Windows store应用允许开发人员通过布局控件管理应用UI. 本篇将讨论Windows8布局设计控制. Windows 8布 ...

  3. Windows 8实例教程系列 - 开篇

    原文:Windows 8实例教程系列 - 开篇 2012年10月26日,微软发布Windows 8操作系统以及自主品牌平板电脑Surface,Windows作为世界上最流行的操作系统,发布一周内,下载 ...

  4. Windows 8实例教程系列 - 数据绑定高级实例

    原文:Windows 8实例教程系列 - 数据绑定高级实例 上篇Windows 8实例教程系列 - 数据绑定基础实例中,介绍Windows 8应用开发数据绑定基础,其中包括一些简单的数据绑定控件的使用 ...

  5. Windows 8实例教程系列 - 自定义应用风格

    原文:Windows 8实例教程系列 - 自定义应用风格 在Windows 8 XAML实例教程中,曾经提及过应用风格设计方法以及如何创建可复用样式代码.本篇将深入讨论如何创建自定义Windows8应 ...

  6. Silverlight,Windows 8应用开发实例教程系列汇总

    Kevin Fan分享开发经验,记录开发点滴 Silverlight,Windows 8应用开发实例教程系列汇总 2012-06-18 01:05 by jv9, 2145 阅读, 3 评论, 收藏, ...

  7. XAML实例教程系列 - 事件(Event) 五

    Kevin Fan分享开发经验,记录开发点滴 XAML实例教程系列 - 事件(Event) 2012-06-19 01:36 by jv9, 1727 阅读, 7 评论, 收藏, 编辑 Events, ...

  8. XAML实例教程系列 - 命名空间(NameSpace) 三

    XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...

  9. XAML实例教程系列 - 依赖属性和附加属性(四)

    XAML实例教程系列 - 依赖属性和附加属性 2012-06-07 13:11 by jv9, 1479 阅读, 5 评论, 收藏, 编辑 微软发布Visual Studio 2012 RC和Wind ...

随机推荐

  1. hdu1254(bfs+dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1254 分析: 真正移动的是箱子,但是要移动箱子需要满足几个条件. 1.移动方向上没有障碍. 2.箱子后 ...

  2. hdu5124(树状数组+离散化)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5124 题意:有n条线段,求被覆盖到次数最多的点的次数 分析: 1.可以转化成求前缀和最大的问题:将区间 ...

  3. ubuntu linux 13.04更新

    首先备份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 而后用gedit或其他编辑器打开: gksu gedit /et ...

  4. hdu4705(树形dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4705 题意: 有一颗树, 选出3个点. 不在同一条路径上的集合数. 分析:这题主要能逆向思考下,用总的 ...

  5. 怎样使用docker不加sudo

    有时候发现docker有的指令必须加sudo才干运行,通过下面三步设置便可不加sudo直接运行docker指令: 1. 假设还没有docker group就加入一个: sudo groupadd do ...

  6. JPush极光推送 Java调用服务器端API开发

       极光推送是:使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验.简单的说就是通过JPush后台管理网站进行app消息的推送.可以让用户及时 ...

  7. 存储管理(一):openfiler介绍及存储理解

    openfiler是一个免费的.开源的基于浏览器的网络存储产品,支持基于文件的的网络连接存储(NAS)和基于块的存储区域网(SAN).支持的协议有smb,cifs,nfs,http/dev和ftp. ...

  8. HDU 3315 My Brute(费用流)

    职务地址:HDU 3315 这个题的思路全然是自己想出来的,自我感觉挺巧妙的. . .(大牛勿喷.. . )对大胆建图又多了一份信心. 详细思路是构造一个二分图,Si连源点.Xi连汇点,流量都是1,费 ...

  9. swfobject.js的简单配置

    因为工作需要在网页中迁入flash,开发过程中,发现直接使用embed自己开发的话需要考虑各种兼容性,也比较麻烦, 网上也找了几个相关的插件,比较使用之下,发现swfobject.js这一款还是蛮不错 ...

  10. wIndows phone 7 解析Html数据

    原文:wIndows phone 7 解析Html数据 在我的上一篇文章中我介绍了windows phone 7的gb2312解码, http://www.cnblogs.com/qingci/arc ...