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

标签: windows 实例 系列 | 发表时间:2012-11-21 15:23 | 作者:jv9
出处:http://www.cnblogs.com/


 

 

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 实例 系列] 推荐:

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

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

Skytex 将在 Skytab S 系列 Windows 7 平板中使用 ExoPC 界面

- KiVEN - Engadget 中国版
ExoPC 去年所推出的平版计算机并未取得预期的亮眼成绩(或者是预计将于夏季推出的 All-in-one 电脑...). 但毫无疑问的,他们所设计出的用户界面表现依然相当出众,也一直在寻求授权他厂的可能. 现在,Skytex 已决定在其推出的新一代 S 系列 Windows 7 平板电脑中采用此特制的用户界面.

【Twitter Storm系列】 Storm简单实例讲解

- - CSDN博客云计算推荐文章
实例来自书籍《Oreilly.Getting.Started.with.Storm.Aug.2012》. 先讲下我们这次所需涉及到的概念:Topology、Spout、Blot. Topology:Storm的运行单位,相当于Hadoop中的job,一个topology是spouts和bolts组成的图, 通过stream groupings将图中的spouts和bolts连接起来.

Java Cache-EHCache系列之计算实例占用的内存大小(SizeOf引擎)

- - BlogJava-首页技术区
计算一个实例内存占用大小思路. 在Java中,除了基本类型,其他所有通过字段包含其他实例的关系都是引用关系,因而我们不能直接计算该实例占用的内存大小,而是要递归的计算其所有字段占用的内存大小的和. 在Java中,我们可以将所有这些通过字段引用简单的看成一种树状结构,这样就可以遍历这棵树,计算每个节点占用的内存大小,所有这些节点占用的内存大小的总和就当前实例占用的内存大小,遍历的算法有:先序遍历、中序遍历、后序遍历、层级遍历等.

优化系列 | 实例解析MySQL性能瓶颈排查定位

- - iMySQL
从一个现场说起,全程解析如何定位性能瓶颈. 收到线上某业务后端的MySQL实例负载比较高的告警信息,于是登入服务器检查确认. 首先我们进行OS层面的检查确认. 登入服务器后,我们的目的是首先要确认当前到底是哪些进程引起的负载高,以及这些进程卡在什么地方,瓶颈是什么. 通常来说, 服务器上最容易成为瓶颈的是磁盘I/O子系统,因为它的读写速度通常是最慢的.

Windows 8就是Windows 6.2

- Darth Noctis - cnBeta.COM
Windows Vista内核版本号为Windows 6.0,Windows 7为Windows 6.1,微软近日也证实,Windows 8就是Windows 6.2,尽管这个消息已经是尽人皆知了. 想必微软在Vista身上受到了惨痛的教训,以至于今后很长一段时间都无法痊愈. 如果Windows 8下一代的内核版本号采用Windows 6.3,你也不必太过惊讶.

Windows工具集

- - 互联网 - ITeye博客
参考: https://community.rapid7.com/servlet/JiveServlet/downloadBody/2881-102-2-6389/Mitigating%20Service%20Account%20Credential%20Theft%20on%20Windows.pdf.

领域驱动设计系列(1)通过现实例子显示领域驱动设计的威力

- - 博客园_知识库
  曾经参与过系统维护或是在现有系统中进行迭代开发的软件工程师们,你们是否有过这样的痛苦经历:当需要修改一个Bug的时候,面对一个类中成百上千行的代码,没有注释,千奇百怪的方法和变量名字,层层嵌套的方法调用,混乱不堪的结构,不要说准确找到Bug所在的位置,就是要清晰知道一段代码究竟是做了什么也非常困难.

Redis实战系列(1) 运行多个实例以充分发挥多核处理器的能力

- - zzm
我们知道Redis是用"单线程-多路复用io模型"来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比 较耗时的命令时会使redis的并发下降. 因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也 会下降.

Windows Phone已死,Windows Phone 将死?

- Yu - cnBeta.COM
现在Windows Phone的销售是一个茶几啊. 微软已经承认,Windows Phone的表现低于预期. 而在4-6月这个季度的数据显示,Windows Phone的销量只有140万台,市场占有率只有1.3%,已经达到了历史上的新低. 而comScore的最新数据也表示,他在美国和欧洲5国的总市场占有率也由2.8%下降到2.2%.