原文:
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)环境。其用户界面实现使用。
3. HTML应用主要开发语言为HTML/CSS和JavaScript,该应用基于浏览器运行。
基于相同的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 8应用框架重要组成部分之一。微软将WinRT视为继2002年.Net Framework发布后最大的革新。作为Windows Store应用设计和开发人员,从微软设计原则考虑,Windows Runtime不仅仅是一套简单的API类库,而是一套独立完整的能够支持Windows Store应用风格的运行环境。
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应用开发语言选择,有以下几个建议提供参考:
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描述语言,请看:
欢迎加入Q群或者微博讨论学习:
22308706(一群) 超级群500人 37891947(二群) 超级群500人 100844510(三群) 高级群200人 32679922(四群) 超级群500人 23413513(五群) 高级群200人 32679955(六群) 超级群500人 88585140(八群) 超级群500人 128043302(九群 企业应用开发推荐群) 高级群200人 101364438(十群) 超级群500人 68435160(十一群 企业应用开发推荐群)超级群500人
微博: