日期:2009-01-15  浏览次数:20514 次

桌面端的移动运算
Larry Roof

March 2004

Applies to:
Microsoft® .NET Compact Framework

Windows Mobile™-based Pocket PCs
Windows Mobile-based Smartphones
Microsoft ActiveSync®

摘要:学习关于Remote API(RAPI)文件操作,和如何使用.NET Compact Framework将其整合到应用程序开发中去。

Introduction
在我的上一篇文章中,我介绍了关于移动计算的情况。在那篇文章中,我重点介绍了特定的Pocket Access数据库的存储选项,和它们如何被集成到.NET Compact Framework的应用程序开发中去。

在这篇文章中,我们继续关于选项的话题。我将向你介绍桌面端的移动操作,这个观点经常被移动开发的初学者所忽略。许多开发者的注意力被移动应用程序的外表所吸引,以致于忽略了如何让一台桌面机或服务器应用程序成为移动解决方案一部分的问题。显然,一个移动解决方案的大部分是基于设备的,但是几乎所有的方案最后都需要导入或导出设备中的数据。这包括设备端的数据聚合,来自服务器的数据交付,构造数据和平滑地应用程序更新。在这篇文章中,我将通过一个简单的桌面程序来演示Remote API:

?SPAN style="FONT: 7pt 'Times New Roman'"> 从设备拷入或拷出文件。

?SPAN style="FONT: 7pt 'Times New Roman'"> 移动设备上的文件。

?SPAN style="FONT: 7pt 'Times New Roman'"> 删除设备上的文件。

?SPAN style="FONT: 7pt 'Times New Roman'"> 在设备上开始一个应用程序。

?SPAN style="FONT: 7pt 'Times New Roman'"> 得到设备的系统信息。

文章的开始和将要看到的例子是“Two for Road”专栏的一部分,将被显示到Microsoft Visual C#® .NET 和 Visual Basic® .NET中。

The Remote API Library
本月的示例程序示范了Remote API(RAPI)的强大。这些API是ActiveSync的主要组件。RAPI是包含一套函数的库,可以被用于在一个桌面端应用程序中管理设备,包括设备的文件夹和文件、注册表和系统信息。

为了简单地访问Remote API,我们将使用OpenNETCF组织的信息库,一个可以从OpenNETCF website得到的开源资源。这套类库封装了RAPI所有的功能,提供了一套包含RAPI所有特性的方法。

Classes Provided through the Communication Namespace
OpenNETCF.Desktop.Communication命名空间提供了下列类:

Table 1. Classes offered in the OpenNETCF.Desktop.Communication namespace

Class
Description

ActiveSync
提供访问Microsoft ActiveSync下面的函数。

AutoStartApps
当一个ActiveSync会话开始时,提供信息并配制运行的应用程序。

FileInformation
被FindFirstFile和FindNextFile方法返回的文件信息结构。

FileList
FileInformation类的集合。经常被桌面应用程序使用的查询和管理一个连接设备的文件结构。

RAPI
提供一个基于RAPI函数方便的包装。

RAPIException
定义被RAPI类抛出的异常。

Registry
提供对基本RegistryKey类的访问,可以被用于访问和修改连接设备注册表中的值和主键。

RegistryKey
在已连接的设备注册表中定义一个主键级节点。



从上边的表格可以看到,OpenNETCF.Desktop.Communication提供了大量的桌面函数,更多的细节需要一篇单独的文章来说明。对于这篇文章,我将关注RAPI类,特别关注三个该类的主要部分:

?SPAN style="FONT: 7pt 'Times New Roman'"> 管理设备的目录和文件。

?SPAN style="FONT: 7pt 'Times New Roman'"> 在设备上启动一个应用程序。

?SPAN style="FONT: 7pt 'Times New Roman'"> 得到设备的系统信息。

我之所以选择这三个特性,是因为我发现对于移动解决方案的开发者来说这三个特性有很大的用处。

Working with OpenNETCF's Communication Library
OpenNETCF Communication library 是通过OpenNETCF.Desktop.Communication.DLL文件来提供的。你需要包含一个引用到你的桌面应用程序中。添加这个引用,需要下列步骤:

1.在Solution Explorer窗口中,右击References文件夹,将显示一个弹出菜单。

2.在菜单中选择Add Reference。

3.Add Reference对话框显示。选择OpenNETCF.Desktop.Communication组件。

点击OK按钮,将选择的组件添加到你的项目中去。

The RAPI Class
表2提供了RAPI类方法的列表,这些都是我发现对移动移用程序开发最为有用的。

Table 2. Useful RAPI class methods for developing mobile applications

Method
Description

<