PDA嵌入开发的环境配置及通用类,安装包说明

来源:互联网 发布:linux停止ping命令 编辑:程序博客网 时间:2024/06/11 10:20
 

Windows Mobile开发简介

  Windows Mobile是微软公司操作系统产品线上重要的一环。与Windows 9x/NT/XP/2003相比,Windows Mobile作为完整产品线出现在公众面前的时间非常短,但它的发展却异常迅速,而在这一发展过程中,开发人员提供了绝对关键的推动力。现在,越来越多的开发人员(特别是.NET开发人员)希望能尽快进入Windows Mobile的开发领域,而他们所面临的首要问题,除了熟悉Windows Mobile平台特性之外,便是如何搭建适合的开发环境。因此,本文就将从如何搭建一个Windows Mobile开发环境入手,对Windows Mobile平台的开发特性进行概要描述,以期帮助开发人员迅速进入Windows Mobile开发领域。

  在展开本文的内容之前需要说明的一点是,Windows Mobile平台开发主要包含以下两方面内容:

   平台级开发

   应用级开发

  因为Windows Mobile平台构建于微软的Windows CE系列操作系统之上(当前正式商用版本为Windows CE .NET 4.21),而Windows CE操作系统具有非常良好的模块化特性,因此开发人员,特别是手机设备厂商,可以通过微软提供的Visual Studio C# 非常方便地定制自己所需的操作系统。这对应的是上面所说的平台级开发。

  然而,绝大多数的开发人员并不需要去构建一个全新的、个性化的系统,他们只需要关心如何构建能够运行在Windows Mobile设备上的应用程序。为此,微软按主要智能设备自身硬件设备特性的不同以及用户体验的差异,定制出了Windows CE .NET 4.x系列操作系统的两个主要分支,分别安装在不同的Windows Mobile硬件设备中,从而也就构成了我们通常所说的Pocket PCSmartphone。以下内容中的Windows Mobile开发,除特指之外,均表示Pocket PC/Smartphone开发。

为了进行Windows Mobile开发,我们需要搭建相应的开发环境。所幸的是,这一环境搭建起来非常简单。

 

1.         安装相关软件

先后步骤如下:

a)         安装Visual Studio 2005 TRM (开发主工具 )

b)        安装ActiveSync 4.5 Developer Preview  (微软的同步软件可以同时支持PPC和微软智能手机之间通信,用于仿真机数据传输测试)

c)        安装Windows Mobile 5.0 SDK for PocketPC PPC开发SDK

d)        安装Windows Mobile 5.0 Emulator Images  Windows Mobile 5.0中文仿真模拟器)

2.          配置 Windows Mobile开发环境

1.SQL Server Mobile 简介
------------------------------
SQL Server Mobile
是一种
专为开发基于 Microsoft Windows Mobile 的设备的开发人员
而提供的移动数据库平台。

Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile)
(以前称为 Microsoft SQL Server 2000 Windows CE Edition 2.0 (SQL Server CE)
Microsoft 企业解决方案扩展到设备上的行业和个人信息管理 (PIM) 应用程序,
为开发人员进行快速应用程序开发提供了一致的编程模型。

SQL Server Mobile 以很小的内存开销提供了所需的关系数据库功能:
可靠的数据存储、优化查询处理器,以及可靠、可伸缩的连接功能。

通常,Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile)
作为应用程序的一部分应用。
在这种应用程序中,
数据是在台式机上的 Microsoft SQL Server 和支持的设备上的 SQL Server Mobile 之间进行分发的。

但是,SQL Server Mobile 也可以用作个人信息管理 (PIM) 工具或者
所支持设备上的其他应用程序的独立数据库。

2.获取 SQL Server Mobile
----------------------------
获取 SQL Server Mobile 的方式有以下三种:

(1).集成到 SQL Server 2005 中。
    C:/Program Files/Microsoft SQL Server
       /90/Tools/Binn/VSShell/Common7/IDE/sqlce30setupen.msi

(2).集成到 Microsoft Visual Studio 2005 中。
    C:/Program Files/Microsoft Visual Studio 8
       /SmartDevices/SDK/SQL Server/Mobile/v3.0/Sqlce30setupcn.msi

(3). Microsoft 网站进行下载。
   
有关从网站下载 SQL Server Mobile 的详细信息,
     
请参阅 Microsoft SQL Server 2005 Mobile Edition Home
          Microsoft SQL Server 2005 Mobile Edition
主页。

3.
安装必备软件
------------------------------
在安装 Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile) 组件之前,
必须在台式机上安装下列软件

a. 开发计算机以及运行 IIS 的计算机(如果打算与 SQL Server 进行数据交换)
  
的操作系统应为 Microsoft Windows 2000 SP4 或更高版本、
   Microsoft Windows XP Professional SP1
  
或更高版本或者 Microsoft Windows Server 2003

   如果安装的是 Windows XP SP2,若要使用 SQL Server Mobile 连接,
  
必须启用 HTTP 访问。
  
默认设置为禁用 HTTP 访问。若要启用 HTTP 访问,请执行下列操作:
      
打开控制面板
      
单击 Windows 防火墙图标。
      
单击高级
      
网络连接设置区域中单击设置
      
选中“Web 服务器(HTTP)”复选框。
      
单击确定以确认更改。

b.运行 IIS 的计算机上需要安装 Microsoft .NET Framework 2.0 或更高版本。
  .NET Framework
将随 Microsoft Visual Studio 2005 SQL Server 2005 一起安装。
  
若要从 Microsoft 网站下载 .NET Framework 2.0
  
请参阅 .NET Framework 2.0 Download Center

c.开发环境及服务器环境中需要安装 Microsoft ActiveSync 4.0 或更高版本。
  ActiveSync
可以从 ActiveSync Download 免费下载。

4.安装开发环境
-----------------
Visual Studio
使用 Visual Studio 进行开发,可以最便捷地生成和部署使用 SQL Server Mobile 的应用程序。

Visual Studio 中,您可以通过使用 C# Microsoft Visual Basic 来创建托管应用程序,
并且可以通过使用 Visual C++ for Devices 选件来创建本机应用程序。

Microsoft .NET Compact Framework 应用程序中,
添加对 System.Data.SqlServerCe 命名空间的引用。
System.Data.SqlServerCe
命名空间将在 .NET Compact Framework 中显示 SQL Server Mobile

然后,您可以创建数据库、数据库表和列,并用数据填充数据库。

当生成引用 System.Data.SqlServerCe 命名空间的 .NET Compact Framework 应用程序时,
如果该应用程序部署到智能设备或 Pocket PC 模拟器上,
Visual Studio
将自动进行检查,
以查看该设备是否安装了 .NET Compact Framework SQL Server Mobile 客户端组件。
如果未检测到这些组件,
则会在您首次部署引用 System.Data.SqlServerCe 命名空间的应用程序时自动在设备上安装这些组件。

.NET Compact Framework 还包含 System.Data.SqlClient 命名空间,
用于开发直接访问 SQL Server 2000 或更高版本中数据库的应用程序。

若要将应用程序部署到智能设备,
请在 Visual Studio 2005 中的调试菜单上选择启动
然后选择部署到连接的智能设备还是 Pocket PC 模拟器。
设备上的默认安装位置是 /Windows

如果从 Visual Studio 中部署应用程序,
将不必在设备上单独安装 SQL Server Mobile 组件或 .NET Compact Framework


5.
安装服务器环境
-----------------
如果 Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile) 应用程序
要求在 Microsoft SQL Server 数据库和 SQL Server Mobile 数据库之间交换数据,
则必须安装并配置以下各项:
* Microsoft Internet
信息服务 (IIS)
* SQL Server 2005
SQL Server 2000
* SQL Server Mobile
服务器工具(安装工具)

SQL Server Mobile 环境可以配置为单服务器环境或多服务器环境。
在单服务器环境中,所有组件在一台计算机上。
在多服务器环境中,IIS SQL Server 在不同的计算机上。

6.配置 Web 同步向导
-------------------
单击开始,指向所有程序
指向“Microsoft SQL Server 2005 Mobile Edition”
然后单击配置 Web 同步向导


7.
使用 Internet Explorer 检查 SQL Server Mobile 服务器代理配置
-------------------------------------------------------
Internet Explorer 中,
输入 SQL Server Mobile 服务器代理的 URL
(例如 http://localhost/sqlce/sqlcesa30.dll,其中 sqlce 为虚拟目录)。
如果 SQL Server Mobile 服务器代理配置正确,
Internet Explorer
将显示字符串“SQL Server Mobile 服务器代理 3.0”

通过在 URL 结尾处使用 ?diag ?stat 参数,您可以查找诊断和统计详细信息。

8.使用SQL Server Mobile 数据库
--------------------------
您可以创建或连接到 设备或台式机上的 
Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile)
数据库。

SQL Server Mobile 数据库存储在扩展名为 .sdf 的文件中。
该文件包含数据库的完整内容,最大可以为 4 GB

SQL Server Mobile 可以访问和修改智能设备以及 Tablet PC 上的数据库文件。

通过使用 SQL Server Management Studio 和其他工具,它还支持在台式机上使用。

可以在 SQL Server Mobile 数据库中执行的一些功能包括:

* 创建、删除和编辑表及其关联的数据。
*
创建、维护和删除索引。
*
检查信息架构视图和数据类型。
*
初始化复制和远程数据访问 (RDA) 同步。

 

3.         通用类和方法说明

PDA操作数据的原理是在PDA上首先创建一个数据库,通过SQLCE把服务器上的数据同步到PDA上的小型数据库里,通过一系列操作把需求的数据录入PDA的小型数据库里,最后通过同步把PDA上的数据覆盖到服务器上(覆盖的内容是把有操作过的数据录入到服务器的数据库里)。

 

同步数据的实现通用类:

//创建数据库

 

public static void CreateDatebase(string dbFile)

        {

            try

            {

                if (File.Exists(dbFile))

                {

                    File.Delete(dbFile);

                }

 

                SqlCeEngine engine = new SqlCeEngine(strConn);

                engine.CreateDatabase();

                engine.Dispose();               

            }

            catch (SqlCeException ex)

            {

                ShowErrors(ex);

            }

        }

 

///下载数据

/// Pull the data through RemoteDataAccess from SQL Server

/// </summary>

/// <param name="tableName"></param>

/// <param name="strSql"></param>

public static void PullData(string tableName,string strSql)

{

  try

{

SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(sqlAgent, strConn);

                rda.Pull(

                    tableName,

                    strSql,

                    rdaOleDbConn,

                    RdaTrackOption.TrackingOnWithIndexes,

                    "errTable");

                rda.Dispose();               

            }

            catch (SqlCeException ex)

            {

                ShowErrors(ex);

            }

        }

 

/// 上传数据

/// Push data through RemoteDataAccess to SQL Server

/// </summary>

/// <param name="tableName">tableName</param>

public static void PushData(string tableName)

{           

  try

 {

    SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(sqlAgent, strConn);

      rda.Push(tableName, rdaOleDbConn);

       rda.Dispose();              

            }

    catch (SqlCeException ex)

    {

                ShowErrors(ex);

            }          

        }

同步数据的实现通用类:

public static void PullData()

 {

   Cursor.Current = Cursors.WaitCursor;

   SqlCeHelper.strConn = connStr;

    SqlCeHelper.PullData("sm_t_user", "select * from sm_t_user");

    SqlCeHelper.PullData("sm_t_org", "select * from sm_t_org");

    SqlCeHelper.PullData("pm_t_node", "select * from pm_t_node");

              

     MessageBox.Show("数据下载成功!");

     Cursor.Current = Cursors.Default;

 }

 

public static void PushData()

{

   Cursor.Current = Cursors.WaitCursor;

 

    SqlCeHelper.PushData("pm_t_node");

    SqlCeHelper.PushData("pm_t_project_tower");

    SqlCeHelper.PushData("pm_t_project");

    SqlCeHelper.PushData("pm_t_project_node");

    SqlCeHelper.PushData("pm_t_node_tower");

    MessageBox.Show("数据上传成功!");

 

     Cursor.Current = Cursors.Default;

}

 

public static void CreateDatebase()

{

 Cursor.Current = Cursors.WaitCursor;

  try

   {

     if (File.Exists(dbfile))

      {

        File.Delete(dbfile);

      }

 

   SqlCeEngine engine = new SqlCeEngine(connStr);

     engine.CreateDatabase();

     engine.Dispose();

      MessageBox.Show("数据库创建成功!");

 }

catch (SqlCeException ex)

 {

    ShowErrors(ex);

  }

  Cursor.Current = Cursors.Default;

}

 

4.         PDA真实环境操作以及安装配置说明

1)安装 CAB 项目

打开现有的智能设备项目,并确保解决方案资源管理器可见。

文件菜单上指向添加,然后单击新建项目

出现添加新项目对话框。

在左侧的项目类型窗格中展开其他项目类型节点,再单击安装和部署

在右侧的模板窗格下选择智能设备 CAB 项目

这是唯一可用于智能设备的 CAB 项目类型。其他项目类型仅用于桌面解决方案。

名称框中,键入 CABProject,然后单击确定

CAB 项目即会添加到您的解决方案,并显示在解决方案资源管理器中。现在显示文件系统编辑器的两个窗格。

2)为 CAB 项目添加设备项目应用程序

文件系统编辑器的左窗格中,选择应用程序文件夹节点,以指定下列步骤中选择的文件将安装到目标设备上的此文件夹中。

如果文件系统编辑器不可见,请在解决方案资源管理器中右击 CAB 项目名称,选择视图,再单击文件系统

Visual Studio 中的操作菜单上指向添加,然后单击项目输出

添加项目输出组对话框中,从项目下拉列表中选择您的智能设备项目。

从输出列表中选择主输出,然后单击确定

3)为设备项目应用程序创建快捷方式

文件系统编辑器的右窗格中,选择“<your application project name> 的主输出

操作菜单上选择创建 <your application project name> 的主输出的快捷方式

此命令将在输出项的下面添加一个快捷方式项。

右击该快捷方式项,单击重命名,将此快捷方式重命名为适用于快捷方式的内容。

4)添加注册表项

解决方案资源管理器中选择 CAB 项目。

视图菜单上指向编辑器,然后单击注册表

注册表编辑器中,右击 HKEY_CURRENT_USER,然后单击快捷菜单上的新建项

注册表编辑器中显示新建项项时,将其重命名为“SOFTWARE”

右击此新项,指向新建,然后单击

注册表编辑器中显示新建项项时,将其重命名为“MyCompany”

右击“MyCompany”项,再单击快捷菜单上的属性窗口

名称值已更改为“MyCompany”

5)生成 CAB 文件

生成菜单上单击生成 CABProject”

- -

解决方案资源管理器中右击“CABProject”,再单击生成

文件菜单上单击全部保存

6)将 CAB 文件部署到设备上

“Windows 资源管理器中定位到存储此解决方案的文件夹。可以在解决方案的“CABProject/Release”文件夹中找到此 CAB 文件。

CAB 文件复制到与 ActiveSync 4.0 或更高版本连接的设备上。

当用户在设备上的资源管理器中点击此 CAB 文件名时,Windows CE 将解开该 CAB,并将应用程序安装到设备上。

原创粉丝点击