现在的位置: 首页 > 综合 > 正文

开发Windows 8 Metro应用前你要知悉的5件事

2013年12月13日 ⁄ 综合 ⁄ 共 2810字 ⁄ 字号 评论关闭

作者:Lee Whitney 翻译:@evan-css

原文链接:http://blog.slalom.com/2012/05/15/five-things-to-know-before-you-start-developing-windows-8-metro-apps/

作者介绍:李.惠特尼是总部设在德克萨斯州达拉斯的Slalom Consulting公司的一名解决方案架构师。他总是喜欢参与那些具有世界水平成果和和具有极佳用户体验的项目。

目前开发Windows 8平板电脑的移动应用程序只有一条途径,那就是使用新的Metro应用程序框架,这是一个崭新的事物,与之前的Microsoft开发平台相比有很大的不同。为Windows 8开发Metro应用程序需要利用你已掌握的技能,但更需要学习新的平台概念。

以下的5件事,是你在开发Metro应用程序之前必须要了解的,是你深入到新的水域创造让你名利双收的第一个伟大的应用程序的精神食粮:

1、现在编程语言将决定你的表示层技术

在此之前,Windows开发人员可以首先选择一种编程语言(如C#或VB)然后再选择一种表示层技术(如WinForms或DirectX)等。

然而开发Metro应用程序时,如果你选择的是C#、VB或C ++,系统会自动选用XAML作为表现层。如果你选择使用Javascript,你的命运将与HTML5和CSS3联系在一起。不可能将C#和HTML5混合使用,也不可能将JavaScript和XAML混在一起。

这种编程语言和表示层技术的耦合增加了为你的项目选择正确编程语言的重要性。该选用哪个语言很大程度上取决于你的项目优先考虑什么。

当你想创建可用于多种情景、适用范围广的项目时,学习Javascript和HTML5是一个非常值得的投资。例如JavaScript可被用来构建Metro应用程序、HTML页面、所有的移动设备的本地应用,甚至是服务器端应用(如NodeJS)。

C#和XAML的优势在于,大量的程序员已经非常熟悉这些技术。我的感觉是,在类似于Metro的微软平台上,为了在项目开工前减少学习基础知识的时间,越来越多的开发人员将会掌握如何使用XAML来做动画,而不是CSS3。

选择你的编程语言的战略应当基于你现有的技能和你对未来项目的期待。

2.NoSQL被赋予了新的含义

Metro应用程序的一个独特之处在于它们不能够很方便地访问基于SQL的关系型数据存储。而现有的Microsoft平台上可以方便地直接访问关系型数据库,如SQL Server Express、Compact或CE版本,但目前在Metro沙盒中不是这种情况。

即使你下载并集成了一个开源的SQLite的数据库,情况也没有改善。你的应用程序可能由于安全性问题而无法通过(Windows应用商店)的发布审批。大多数数据库系统目前还无法在Metro沙盒环境中运行。

那么,你如何管理在Metro应用程序的数据?当然你可以将数据写入到文件系统手动管理,或是使用目前可用的ISAM数据存储接口(ESE,Jet Blue)。然而,最实用的方法可能是使用一种半结构化(semi-structured)的数据存储机制。

Metro应用程序可以访问IE10的本地存储技术,如索引型数据库(IndexedDB),这是一个新兴的标准。这是一种简单的本地存储机制,它使用“键/值”这种类似cookie的技术访问数据。当然,你可以调用一个远程服务器上Web服务来实现SQL的功能,但这解决不了本地存储的问题。

虽然你仍然能够解决问题,但对于程序员来说,如何规划数据管理绝对是一个不同的事情。

3、后台任务的工作方式不同

在后台运行代码一直以来是存在规则的。而大多数开发人员的直觉是,一旦你启动一个后台进程,那么它将继续运行,直到你结束它。在Windows 8 中,这种直觉不再是真实的。

在Metro中,在后台的应用程序不再自动持续地运行。相反,在用户把它们带到前台之前,它们将一直处于挂起状态。默认情况下,只有前台Metro应用程序才能够在任意时间使用CPU资源。这并不是一种倒退,而是一种新的Windows应用程序的行为模式。这种设计是为了最大程度地提高用户的响应,并为移动设备节约资源。

这些听起来很熟悉,因为它非常类似iOS的工作方式。当苹果公司在iPhone中添加了多任务支持时,它仅允许在非常特殊的情况下运行后台任务,在Windows 8中的Metro应用程序也是如此。Metro应用程序仅可以申请在后台播放音频、数据传输以及发送通知的权限。

这种新的模式主要是由于移动应用的场景,但它同时也是Metro桌面应用程序的模型。

4、不要指望能够使用.NET的所有功能

我们已经越来越依赖“伟大”的.NET所提供的功能,但在Windows 7中,.NET框架是在Win32 API的基础上构建的。在Metro下,一切(包括.NET库)都在新的WinRT API基础上构建。这里.NET功能仅仅是Metro完整框架的一个子集。

举例来说,WCF支持Metro应用程序吗?是,也不是。核心客户端方案均支持,但WS系列规范,如WS-Security不被支持。MTOM二进制附件编码不被支持。

好消息是,微软在选择功能子集时,仔细考虑了如何最大限度发挥其作用。一个实用的建议是,在你选用功能模块之前,仔细检查它们都支持哪些功能。

5、新的用户体验不止是新的控件(那么简单)

此前新版本的Windows中添加了一些新的控件(如窗口小部件),但其核心的使用习惯没有变化。 (在1985年发布)的Windows 1.0和Windows 7都具有菜单栏、标题栏和可调整大小的应用程序窗口。而Windows 8的Metro应用程序没有这些东西。即使是在类似Metro风格用户体验的Windows Phone 7上也不一样,它类似全景控件(panorama control)的东西Windows 8没有。我们(所习惯口味)的奶酪已不再有了。

正因如此,我们的工作将包括学习新的Metro用户使用习惯,这样我们才能知道他们对我们应用程序的感受。这包括应用条(AppBar),语义放大(Semantic Zoom),半屏对接(Partial Page Docking)以及其它Windows 8独有的魅力。MSDN社区中有一个独立的区域,涵盖了所有这些内容

在你的第一个Metro应用程序中,你可能并不需要所有的这些新的功能特性。但是,如果你不适当的利用这些优势,你可能无法设计出一个完美的Windows 8应用程序。

Onward and upward

Windows 8的确不单纯是技术的更新。上述的每一条,都是让应用程序更好更快的宏伟蓝图的一部分。Visual Studio 11是开发Metro应用的主要工具,幸运的是,它仍然沿用了这个地球上最佳开发工具的名号。总的来讲,Metro正在召唤我们去创造下一个杀手级移动应用

 

【上篇】
【下篇】

抱歉!评论已关闭.