ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Windows Mobile — 新的时代已经开始

Windows Mobile — 新的时代已经开始

原创 Linux操作系统 作者:youli_113 时间:2008-01-17 11:26:39 0 删除 编辑

简介

现在是一个星期天的早晨,我正在我的位于新罕布什尔州埃克塞特的家中撰写“您可以随身带着它”的第一期。Microsoft Mobile DevCon (MDC) 2004 还有一个星期多一点就要开幕了,作为主持人和参加者,我正在急切地盼望着它的如期举行。尽管在 MDC 举行之前我还有许多工作要做,但我已经有点迫不及待了。本年度的 MDC 标志着一个新时代的开始;在这一新时代中,移动开发将在被企业广泛应用方向上又迈出一大步。

当大多数读者阅读本文时,MDC 将已经结束,您将有机会参加这些会议或者下载 Microsoft PowerPoint 演示文稿。您甚至可能已经安装了 Whidbey Beta,其中包含对下一代 Microsoft Windows Mobile™ 软件开发的最早探索。如果您已经有机会做上述任何一件事情,我想您将同意我的看法,即移动开发人员以前从未获得过相当于 Whidbey 所提供的工具那样的工具。有了这些工具,再加上开发人员在构建移动应用程序的过程中获得的日益增长的经验,已经最终为我们开启了一个企业级移动应用程序广为流行的时代。

正是这一时代的到来促使我开始撰写本专栏。


 

我们的目标

作为企业开发人员,我们需要处理大量的数据、复杂的用户交互、难于应付的用户个性以及富有挑战性的业务过程。我们面临的问题是发现走出由可用的类、工具和技术组成的迷宫的方法,以及如何应用它们来创建有意义的移动解决方案,以便有效地处理我们的数据、用户和过程。

我撰写本专栏的目标是:从我所称的“实用编程”的观点出发,解决企业开发人员在移动编程领域中面临的一系列问题。对于我而言,实用编程意味着依据类、工具和技术可以提供的解决方案来考察它们。它还意味着通常必须将各种类、工具和技术联系起来加以考虑,并且考虑如何将它们作为总体解决方案的一部分结合在一起。简而言之,实用编程就是将技术视为达到目标的手段而不是目标本身。

在随后的几个月中,我们将考察企业开发人员在创建移动性应用程序时面临的一系列范围广泛的问题。我们将花几个月的时间考察生成特定解决方案的细节;再用几个月考察有用的工具;而另外一些时间我们将深入考察特别有用的类或库。无论主题是什么,目标都是相同的:分享有意义的信息,以帮助开发人员为 Windows Mobile 平台构建企业应用程序。


 

Whidbey 和 Windows Mobile

我已经发现对于新专栏的第一期,要决定从哪里开始有一点儿挑战性。然后我突然想起来,因为正是 Whidbey 的移动性功能启发我创建了本专栏,所以我们开始时可以快速考察一下我所认为的一些将影响移动应用程序开发的、对 Whidbey 进行的最显著的补充和修改。

由于本文是在实际发布含有 Windows Mobile 增强功能的 Whidbey Beta 之前撰写的,因此本文基于 Beta 版之前的信息。这些功能都尚未最终定型,并且可能在从目前到发布测试版以及发布最终产品期间发生更改。在使用这些功能中的任何一种功能之前,请一定要先查看产品文档。

下面是我最喜欢的一些 Whidbey 移动性功能(没有特定的顺序)。这个月来不及深入探讨这么多的内容,但请稍安毋躁,因为我们将在随后的几个月中详细讨论这些功能。


 

GUI

让我们承认以下事实:图形用户界面 (GUI) 是大部分用户体验所集中的地方。尽管当前版本的 Microsoft .NET 框架压缩版提供了一个还算不错的初始版本的 Microsoft Windows 窗体库,但它在某种程度上是有限的。然而,随着 Whidbey 的到来,这一点正在改变。

对多个屏幕方向和分辨率的支持

多年以来,所有基于 Microsoft Windows Mobile 的 Pocket PC 都具有普通的 240x320 纵向分辨率显示布局。该分辨率不再是唯一支持的分辨率了。最新一代的 Pocket PC 设备现在具有多种屏幕功能,同时包括对纵向模式和横向模式(有些甚至是正方形)的支持。有些设备甚至支持 480x640 的屏幕分辨率,该分辨率与最初的桌面计算机的分辨率相同。Whidbey 已经进行了更新,以便为上述所有显示提供支持,使您可以构建能够充分利用目标设备功能的应用程序。应用程序甚至可以在运行过程中响应显示设置方面的更改。

增强的控件行为

构建必须处理不同分辨率和方向的应用程序带来了前所未有的挑战。幸而,Whidbey 通过增加对控件停靠和锚定的支持为我们提供了非常必要的帮助。通过停靠控件,可以使其直接依附于窗体的某个边缘。通过锚定,可以相对于一个或多个边缘设置控件的位置。停靠控件或锚定控件将自动维持它们的相对位置,并且根据父窗体大小更改的需要调整大小。

当然,.NET 框架压缩版 Service Packs 1 和 2 中增加的许多控件功能也包括在 Whidbey 中,例如 Tab 键导航支持、键盘事件和前景色/背景色支持。

WYSIWYG 窗体设计器

对于那些从未使用过 Whidbey 以前的智能设备应用程序的读者而言,可能正在奇怪 WYSIWIG(所见即所得)有什么要紧。对于那些已经非常了解该问题的读者来说,一个真正令人失望的问题是 Visual Studio .NET 2003 中的字体和控件大小与在实际设备上显示时不同。简而言之,该问题已经解决。

仅这一处更改就已经足够了,但还有其他一些更改。窗体设计器现在支持各种 Pocket PC 显示模式,包括纵向、横向和正方形。模式在设计过程中是可以修改的,因此您可以确保您的应用程序在运行于任何模式中的设备上都具有良好的外观。

而且,如果这一点还不够,窗体设计器现在还支持皮肤。通过皮肤,您可以准确地查看窗体在实际设备中具有的外观,如 1 所示。

YouCanTakeItWithYou01_thumb

1 带有皮肤的 Whidbey 智能设备设计器。单击缩略图可查看较大图像。

SQL Server CE

Microsoft SQL Server™ 2000 Windows CE Edition (SQL Server CE) 是我们在构建 .NET 框架压缩版应用程序时的本地数据存储区。下一代 SQL Server CE(代号为 Laguna)向前迈出了一大步。下面是它的一些增强功能。

可更新的、可滚动的游标

在处理大量数据时,我有时会发现从 .NET 框架压缩版中使用 SQL Server CE 有点儿困难。问题在于 .NET 框架压缩版数据库类只允许用户有限地利用 SQL Server CE 的本地性质。请记住,SQL Server CE 完全以设备本地方式运行,并且完全支持滚动和就地更新功能,但是这些功能在 .NET 框架压缩版中只受到有限的支持。该问题最终已经通过增加 SqlCeResultSet 类得到了解决。使用该类,.NET 框架压缩版应用程序可以在 SQL Server CE 中滚动、更新以及直接绑定数据。当需要这些功能时,不再需要付出与 DataSet 类相关的高昂代价。我将这一点视为 Whidbey 中最重要的增强功能之一,我们很快将在本专栏的另外一期中详细讨论它。

多用户访问

就像此术语听起来那样,SQL Server CE 现在支持多用户访问。完全支持多个应用程序访问和修改 SQL Server CE 数据库。该数据库现在同时支持行锁定和页锁定,并带有锁升级。尽管这只是一个很小的更改,但这一更改给许多开发人员带来的最显著影响之一可能是:他们在启动使用数据库的应用程序之前,将不再需要在 SQL Server CE 查询分析器中关闭他们的数据库。

桌面管理和访问

Microsoft 已经添加了对 SQL Server CE 的桌面计算机支持。您可以从下一代的 SQL Server 企业管理器中查看、管理 SQL Server CE 数据库以及与其进行交互。

无论您相信与否,您还可以编写能够读取和创建 SQL Server CE 数据库的桌面计算机应用程序。现在,请不要担心 Microsoft 具有某种使 SQL Server CE 成为桌面计算机数据库的奇怪计划。事实并非如此。提供该功能的目的仅仅是为了进行测试及数据库生产。在许多情况下,某些桌面计算机或服务器应用程序需要创建一个 SQL Server CE 数据库,以便智能设备应用程序可以访问应用程序数据。这些应用程序编程接口 (API) 的目的就是处理这一特定情形。

开发体验

Visual Studio .NET 2003 和 .NET 框架压缩版极大地改善了设备开发人员的体验。与几乎任何其他的设备开发人员工具相比,它要稳定得多,而且使用时确实要容易得多。设备开发仍然要经过很长的路才能与构建桌面应用程序一样容易,但 Whidbey 使我们在这一方向上又迈进了一大步。

改进的调试

设备调试一直以来总是速度缓慢的。造成缓慢的部分原因在于移动设备和桌面计算机之间较慢的连接速度(大多数情况下是通过串行或 USB 的方式连接),但这并非唯一原因。造成缓慢的另一个重要因素是大部分调试功能发生在设备上,而设备的内存和 CPU 只具有桌面计算机上可用的内存和 CPU 的几分之一。那么,我们能够做些什么?

将更多的调试功能移至桌面计算机如何?Whidbey 设备调试器已经被完全重新设计。已经设计了新的调试器,以便使绝对必须在设备上运行的工作在那里运行。大多数调试行为现在实际上发生在桌面计算机上,从而得到了速度明显提高并且能够更快地响应的调试器。

更好的仿真程序

对仿真程序进行的改进是如此之多,以至于我实在无法在此一一列举。我将重点介绍在我看来最好的一些改进。

仿真程序现在支持作为 Microsoft ActiveSync 来宾进行连接,从而使其看起来更加像真正的设备。

仿真程序支持存储多个仿真程序映像。该存储使您可以建立多个仿真程序配置(设置、安装程序,等等)并根据需要还原它们,从而简化了测试和错误恢复。通过使用当前的 Visual Studio .NET 2003 仿真程序,我们只能具有一个已保存映像,而且如果仿真程序由于任何原因需要重置,则必须完全重新建立该映像。

仿真程序支持将桌面计算机文件夹作为存储卡进行映射。这一支持使得在桌面计算机和仿真程序之间共享数据变得很容易。它还使得在各种仿真程序映像中拥有公共数据变得很容易。

新的仿真程序还支持在各种屏幕分辨率和方向(纵向和横向)之间进行切换。

C++ 项目

要构建面向移动设备的应用程序,有时要求我们除了使用 .NET 框架压缩版以外,还要使用 C++。迄今为止,这一要求意味着我们需要使用两个独立的集成开发环境 (IDE):使用 Visual Studio .NET 2003 编写 .NET 框架压缩版代码,使用 eMbedded Visual C++ IDE 编写 C++ 代码。Whidbey 通过添加对移动设备 C++ 项目的支持来解决该问题。

通过 Whidbey,我们现在可以从我们用于创建 .NET 框架压缩版项目的相同 Visual Studio 环境内部来创建、编辑和调试面向移动设备的 C++ 项目。我们不再需要单独的 eMbedded Visual C++ IDE,而且现在可以从单个 IDE 中完成所有移动设备开发 — 包括托管开发(.NET 框架压缩版)和非托管开发 (C++)。

改善的 Win32 和 COM Interop

.NET 框架压缩版已经对 Microsoft Win32 和 COM Interop 进行了重大改进。许多常见的封送处理问题(如传递嵌入式字符串或带有嵌入式引用类型的类)已经解决。我们现在还具有对 COM Interop 的支持。.NET 框架压缩版可以调用 COM 对象,并且只需做一点儿工作,COM 对象就可以调用 .NET 框架压缩版对象。.NET 框架压缩版运行库现在几乎具有与完整的 .NET 框架一样的可承载性。该问题有许多细节,我们将在本专栏的下一期中加以考察。

改进的智能感知

因为既要维护对象模型与桌面计算机之间的一致性,又要考虑平台功能的某些现实性,所以在某些情况下,.NET 框架压缩版类会公开无法合法调用的继承属性和方法。这些情形通常被称为“继承但不支持”。遗憾的是,在 Visual Studio .NET 2003 中,这些非法方法仍然出现在 Microsoft 智能感知技术功能中,并且经常导致应用程序收到运行时错误。

Whidbey 通过从智能感知功能中删除这些“继承但不支持”的方法和属性,修复了这些错误。“继承但不支持”的方法和属性位于 .NET 框架压缩版程序集中,因此仍然可以调用它们(并得到错误),但起码智能感知中将不会出现它们。

重要的增补

我们已经看到了许多了不起的功能,但还有更多的功能。随着时间的推移,我们将浏览许多不同的新功能,但下面是一些我特别喜欢的新增功能。

Smartphone 支持

Smartphone 被视为 Whidbey 的优秀成员,它带有对创建基于 Microsoft Windows Mobile 的应用程序的完整支持(当前只限于 .NET 框架压缩版版本 1 的功能)。窗体设计器和智能感知会自动适应以便适当地为 Smartphone 工作,并且只公开那些受支持的控件、类和方法。

对新增 Whidbey 语言功能的支持

.NET 框架压缩版不仅提供了它自身的改进,而且还包含对于与 Whidbey 一起问世的更加丰富的语言功能的支持。对于 Microsoft Visual Basic .NET 开发人员而言,新的“My.*”命名空间受到支持。C# 开发人员可以期望获得对类属、匿名方法和迭代器的支持。

Notification Broker

作为一项非常著名的 Windows Mobile 增强功能,Notification Broker 不是 Whidbey 的功能,而是将来的 Windows Mobile 平台本身的功能。Notification Broker 充当设备上可以发生的几乎所有事件的集中式发布和预订机制。它使应用程序可以对重要事件中的关注点进行记录,包括网络状态的更改、ActiveSync 状态的更改、电话呼叫到达以及 SMS(短信服务)消息到达。当事件发生时,应用程序将自动得到通知。其美妙之处在于,该体系结构完全是可扩展的和集中式的,从而为上述所有事件提供了公共编程模型。这是我们将在本专栏的下一期中详细考察的另一种功能。

 

小结

以上即为我们第一期文章的内容。我希望通过预览这些新的 Whidbey 设备功能,您能够像我一样对 Windows Mobile 开发的未来感到振奋。我们就要迎来完全崭新的一天。

在以后几个月中,我们将更加详细地讨论我们已经在这里介绍的许多主题。我们还将考察一些与 Whidbey 无关的更为通用的移动开发主题。我希望您能继续坚持阅读这些文章。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12641349/viewspace-149120/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    153
  • 访问量
    169435