WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章手机编程Win Mobile程序开发Microsoft .NET Framework 精简版调试

Microsoft .NET Framework 精简版调试
作者:Microsoft  来源:Microsoft  发布时间:2005-12-21 17:25:57
 

Jim Wilson
JW Hedgehog, Inc.
2003年3月

 

简介

Microsoft .NET Framework 精简版已完全集成到 Visual Studio .NET 2003 中,并支持与其他 Visual Studio .NET 应用程序类型相同的调试功能。但是,在独立设备或在仿真器中调试运行的应用程序时,用户确实需要注意一些特殊事项。下面这些建议可以帮助您在 .NET Framework 精简版的调试过程中获得最佳效果。

注意:有关 Visual Studio .NET 常规调试的完整信息,请访问 Visual Studio Debugging(英文)。

调试的一般原则

下面是一些一般原则,可用于在使用 Visual Studio .NET 调试 .NET Framework 精简版应用程序时获得最佳效果。

充分利用仿真器

直接在桌面上运行仿真器,可以使您获得比管理一台独立设备更为方便的调试效果。在仿真器上运行的应用程序能够更快地启动,并且与调试程序有更强的交互性。对于需要输入数据的应用程序,仿真器提供了对桌面计算机键盘的全面支持,与基于笔针的输入相比大大减少了数据输入时间。如图 1 所示,Device(设备)工具栏的 Deployment Target(部署目标)下拉菜单可用于控制应用程序是在仿真器中运行还是在设备上运行。

图 1:Device(设备)工具栏上的 Deployment Target(部署目标)选项

在调试 Pocket PC 应用程序期间启用应用程序的关闭

为智能设备开发的应用程序通常设计为能够无限运行。事实上,正式的 Designed for Windows for Pocket PC Logo Guidelines (英文)中规定了应用程序不允许用户退出,而应该执行一种称为“智能最小化”的功能,即在用户不使用应用程序时将应用程序移到后台,以备再次被激活。默认情况下,.NET CF 应用程序实现“智能最小化”。

对于最终用户来说,有必要让应用程序始终保持运行,但对于开发人员来说,调试时需要频繁地启动和停止应用程序。如果应用程序不提供退出功能,则要停止它唯一的办法就是使用 Pocket PC 的 Running Programs(运行程序)屏幕或是 Visual Studio .NET 中的 Stop Debugging(停止调试)菜单项强制停止该进程。如果应用程序很容易退出,调试就会变得更方便。禁用“智能最小化”就可以提供此功能。

在 Framework 精简版中,“智能最小化”是由应用程序主窗体的 MinimizeBox 属性控制的,可以通过将该属性设置为 false 禁用该功能。这样做以后,应用程序就会在窗体的顶端显示一个 OK(确定)按钮,单击此按钮就可以退出应用程序。由于只是在调试时需要执行此操作,因而可以使用条件编译和 DEBUG 常量将 MinimizeBox 属性设置为 false。完成此任务的最佳时机是在主窗体的构造函数中调用 InitializeComponent() 之后,如以下 C# 代码所示。

public Form1()
{
   InitializeComponent()
#if DEBUG
   this.MinimizeBox = false;
#endif
}

下面是具有相同功能的 VB .NET 代码

Public Sub New()
   MyBase.New()
   InitializeComponent()
#If DEBUG Then
   Me.MinimizeBox = False
#End If
End Sub

使用这段代码,应用程序将显示一个 OK(确定)按钮,调试编译时单击该按钮就可以退出应用程序;但在编译发布时,应用程序将继续支持“智能最小化”。

小心使用 Debug.Write 方法

对于桌面应用程序,调用 Debug.Write 将在 Visual Studio .NET 的 Output(输出)窗口中显示所需的内容。但在 .NET Framework 精简版中却不是这种情形,因为 Framework 精简版调试环境不支持所需的连接。

由于 Windows CE 和 Pocket PC 操作系统之间存在差异,因而它们调用 Debug.Write 的结果是不同的。

在 Windows CE 中,传递给 Debug.Write 的任何信息都会显示在设备的一个临时控制台窗口中。控制台窗口在第一次调用 Debug.Write 时自动打开,并在应用程序退出时立即关闭。控制台窗口可以通过在应用程序的 Main() 函数的结尾处放置一个断点来保持打开,以防止应用程序完全退出。

Pocket PC 操作系统不支持控制台窗口,因而传递给 Debug.Write 的信息不会被显示。由于这个原因,建议不要从 Pocket PC 应用程序中调用 Debug.Write

注意:这些描述适用于所有 Debug.Write 相关方法,包括 Debug.WriteIfDebug.WriteLineDebug.WriteLineIf

使用仿真器

在仿真器上或在设备上调试应用程序,大体上是相同的。但是,要在仿真器调试过程中获得最佳效果,用户需要注意一些特殊事项。

确保网络连接可用

Visual Studio .NET 使用 TCP 来完成其与仿真器之间的部分通信,因而要求将桌面计算机连入网络并安装有环回适配器。如果没有网络连接或环回适配器,则在 Visual Studio .NET 试图启动应用程序时,会出现错误。

注意:有关使用环回适配器的详细信息,请参阅 Installing the Microsoft Loopback Adapter(英文)。

按照部署设备来配置仿真器

要想使仿真器提供精确的调试过程,仿真器的配置与部署设备的配置必须尽可能相似。可以配置仿真器的许多功能,包括显示器、内存和设备端口。

要修改仿真器配置,请在 Visual Studio .NET 中选择 Tools(工具)菜单下的 Options(选项),打开 Options(选项)对话框。在 Options(选项)对话框中,展开 Device Tools(设备工具)文件夹并选择 Devices(设备)。对话框将显示为类似于图 2 的情形。

图 2:Options(选项)对话框的 Devices(设备)选项

在 Options(选项)对话框中,确认 Devices:(设备:)列表中已突出显示 Pocket PC 2002 Emulator(Pocket PC 2002 仿真器),并单击右下角的 Configure(配置)按钮。此时,将打开 Configure Emulator Settings(配置仿真器设置)对话框,如图 3 所示。

图 3:Configure Emulator Settings(配置仿真器设置)对话框

Configure Emulator Settings(配置仿真器设置)对话框中有三个选项卡,每个选项卡对仿真器的作用如下表所示。

选项卡 说明
Display(显示器) 更改仿真器屏幕的大小和颜色分辨率。

调试 Pocket PC 应用程序时,请勿更改 Screen Width(屏幕宽度)和 Screen Height(屏幕高度)值,因为 Pocket PC 设备的屏幕分辨率始终为 240x320。

System(系统) 更改仿真器的可用内存。

内存大小必须在 32MB 至 256MB 之间。此值通常应设置为应用程序需要支持的最小内存配置。

Hardware(硬件) 将桌面计算机的串行端口和并行端口映射到仿真器。

这些选项使得相应的桌面计算机的硬件好象直接连到仿真器,这对调试需要与打印机、全球定位系统等外部硬件通信的应用程序很有用。

对仿真器配置的更改可能不会立即生效。默认情况下,仿真器将恢复至上一次运行的状态。要使仿真器应用更改的配置,必须在不保存状态的情况下关闭仿真器。从仿真器的 Emulator(仿真器)菜单中选择 Shut Down...(关闭...),然后在 Shut Down(关闭)对话框中选择 Turn off Emulator(关闭仿真器),就可以关闭仿真器。在下一次仿真器启动时,新配置就会生效。

警告:请小心使用 Turn off Emulator(关闭仿真器)功能,因为仿真器的所有文件和程序数据都会丢失。

在调试过程中,使仿真器保持打开状态

如果仿真器已经运行,调试程序启动会快得多。如果仿真器尚未运行,调试程序在仿真器初始化期间会暂停,有时会导致明显的延迟。使仿真器保持打开状态不会影响其余的开发进程,并可以减少调试程序的启动时间。

在一些较慢的计算机上,仿真器的启动延迟偶尔会使 VS .NET 超时,因而产生错误。如果发生这种错误,在仿真器打开以后重新启动调试程序,通常就可以解决问题。

要完全避免这种问题的发生,请在启动调试程序之前手动启动仿真器。要手动启动仿真器,请执行以下操作:

  • 确保将项目的目标部署设备设置为仿真器。
  • 从 VS .NET 的 Tools(工具)菜单中选择 Connect to Device...(连接到设备...)。

避免从终端服务客户端使用仿真器

仿真器在每一台计算机中只支持一个运行实例。通过终端服务也是这样。因此,如果多个客户端尝试通过终端服务来使用仿真器,结果是它们都将使用该仿真器的同一个实例,从而导致无法预测的结果。

要获得最佳效果,请直接在本地桌面中运行 Visual Studio .NET 和仿真器。

设备调试

调试运行于 Pocket PC 或 Windows CE 的应用程序时,最重要的事项就是连接。

使用可以获得的最快的连接

Visual Studio .NET 支持几种不同的设备连接选项:串行端口、USB 和网络。每种连接的通信速度差别很大,串行端口速度最慢,网络速度最快。应该始终使用可以获得的最快的连接,因为连接的通信速度直接关系到 Visual Studio .NET 调试程序的响应能力。

启动调试程序前确保动态同步已连接。

Visual Studio .NET 通过动态同步与设备进行通信。如果动态同步存在问题,调试程序将不能正常工作。使用串行端口或 USB 时,动态同步连接将自动建立。网络连接需要进行其他设置。

注意:连接设备时无须创建动态同步伙伴关系。

使用网络时,必须手动建立连接。一旦同步过程完成,动态同步通常会断开手动建立的连接,因此,要在整个调试过程中保持该连接,需要禁用此功能。

要禁用 disconnect when complete(完成时断开连接),请执行以下操作:

  • 在设备上打开动态同步。
  • 从 Tools(工具)菜单中选择 Options(选项)。
  • 选择 Schedule(安排)选项卡。
  • 取消选中标有 When manually synchronizing, disconnect when complete(手动同步完成时断开连接)的框。
  • 点击 OK(确定)。

一旦该选项被禁用,就可以通过在设备上启动动态同步并点击 Sync(同步)来建立网络连接。此连接将一直持续到点击 Stop(停止)为止。

小结

NET Framework 精简版集成到 Visual Studio .NET 中,给智能设备带来了桌面调试的能力。尽管使用智能设备比使用其他应用程序类型需要注意更多的事项,但是这些简单的建议能够帮助您避免许多常见错误,并使您在调试过程中获得最佳效果。

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码