使用 Visual Studio .NET 2003 进行开发
Visual Studio .NET 2003 为创建针对 .NET Framework 精简版的应用程序提供了可靠的开发环境。Visual Studio .NET 包括一组预设的设备配置文件。设备配置文件包含创建针对特定设备的应用程序所需的信息。有了 Visual Studio .NET,也就有了创建针对 Pocket PC、Pocket PC 2002 和 Windows CE .NET 4.1 及更高版本的应用程序所需的配置文件。这些配置文件使用户能够创建包含 Windows 窗体和 ADO.NET 的应用程序,还为用户提供了使用 Web 服务的能力。
配置文件可以是针对设备的(例如,专用于 Pocket PC 的配置文件),也可以是针对一般 Windows CE 平台的非专用配置文件,还可以是适用于任何支持 .NET Framework 精简版的平台的通用配置文件。
Visual Studio .NET 支持设备工具包(以前称为 SDK)。与早期的嵌入工具相同,设备工具包独立于 Visual Studio .NET,可以单独安装和更新。 IDE 的附加功能
除了 Visual Studio .NET 本身具有的功能外,IDE 还具有以下针对设备的功能:
- 模板 - 用于常见项目类型的预定义配置。模板可供 Pocket PC 和 Windows CE 设备使用。
- 针对设备的控件 - 专用于 Pocket PC 和 Windows CE 的控件。已经对界面、资源消耗和功能进行了调整,以适应这些环境的需要。
- 设备仿真器 - 模拟特定设备的测试环境。仿真器运行在开发人员的计算机上,可以在没有真正设备的情况下进行测试。
- 自动部署应用程序 - 为开发人员提供无缝的测试环境,使他们能够轻松地测试仿真器或设备。
- 远程调试 - 使用户可以对自己的设备应用程序使用 Visual Studio .NET IDE 提供的调试工具。所有调试工具都可用于仿真器或设备上运行的基于 .NET Framework 精简版的应用程序。
支持的语言
.NET Framework 精简版支持两种开发语言:C# .NET 和 Visual Basic .NET。虽然早期的 Windows CE 开发工具更偏爱基于 C 语言的语言(即 eMbedded Visual C++),但在 .NET Framework 精简版中,选择哪种语言并没有太大的影响,因为这两种开发语言具有同样强大的功能。
由于 J# 是后来才添加到 Visual Studio .NET 开发环境中的,因此 .NET Framework 精简版不支持它。
还有一点要说明的是,.NET Framework 精简版还有一个语言限制,这是 .NET Framework 所没有的。在 .NET Framework 中,一个项目可以使用多个语言的组件,而 .NET Framework 精简版中的项目则限制使用一种语言:C# .NET 或 Visual Basic .NET。.NET Framework 精简版解决这一单语言项目限制的方法是使用“类”模板创建其他项目。将可替代的语言代码添加到模板中,然后只要在应用程序项目中添加对这些类的引用即可。 联机文档
Visual Studio .NET 文档提供了有关 .NET Framework 精简版的信息。在这个文档中,您既会看到专门针对 .NET Framework 精简版的主题(例如“Creating Custom Controls with the .NET Compact Framework”),又会看到一些零散的描述 .NET Framework 精简版功能的行。
图 1 显示了 .NET Framework 精简版支持的 DataTable 属性的示例。支持的每个属性都带有“.NET Framework 精简版支持”的注释。这是找出对象支持哪些功能并快速确定 .NET Framework 和 .NET Framework 精简版之间的不同之处的绝佳途径。
图 1:联机帮助 创建 .NET Framework 精简版应用程序
启动 Visual Studio .NET 后,屏幕上将显示 Start Page(开始页),如图 2 所示。从 Start Page(开始页)中,可以打开现有的项目或者创建新项目,包括针对 .NET Framework 精简版的项目。
图 2:Visual Studio .NET Start Page(开始页)
单击 New Project(新建项目)按钮将显示 New Project(新建项目)对话框,如图 3 所示。在该对话框中,可以选择一个模板来创建许多项目类型,包括针对 .NET Framework 精简版的两种类型。Visual Basic Projects(Visual Basic 项目)和 Visual C# Projects(Visual C# 项目)文件夹下都有一个 Smart Device Application(智能设备应用程序)模板。
图 3:New Project(新建项目)对话框 启动 Visual Basic .NET 项目
创建 Visual Basic .NET 项目
- 启动 Visual Studio .NET 2003。
- 在 Start Page(开始页)中,单击 New Project(新建项目)按钮。
- 屏幕上将显示 New Project(新建项目)对话框,如图 3 所示。在 Project Types(项目类型)列表中,选择 Visual Basic Projects(Visual Basic 项目)文件夹。
- 屏幕上将显示 Visual Basic 项目模板。选择 Smart Device Application(智能设备应用程序)模板。
- 在 Name(名称)字段中,输入项目的名称。
- 在 Location(位置)字段中,输入要创建项目的位置。
- 单击 OK(确定)。
启动 Visual C# .NET 项目
创建 Visual C# .NET 项目
- 启动 Visual Studio .NET 2003。
- 在 Start Page(开始页)中,单击 New Project(新建项目)按钮。
- 屏幕上将显示 New Project(新建项目)对话框,如图 3 所示。在 Project Types(项目类型)列表中,选择 Visual C# Projects(Visual C# 项目)文件夹。
- 屏幕上将显示 Visual C# 项目模板。选择 Smart Device Application(智能设备应用程序)模板。
- 在 Name(名称)字段中,输入项目的名称。
- 在 Location(位置)字段中,输入要创建项目的位置。
- 单击 OK(确定)。
Smart Device Application Wizard(智能设备应用程序向导)
选择 Smart Device Application(智能设备应用程序)模板将加载 Smart Device Application Wizard(智能设备应用程序向导),如图 4 所示。此向导用于引导您完成选择应用程序项目类型的全过程。
图 4:Smart Device Application Wizard(智能设备应用程序向导)
此向导的界面分成两个列表框。上面的列表框用于选择目标平台。它包括两个选项:Pocket PC 和 Windows CE。其中 Pocket PC 用于特定的设备平台,Windows CE 模板用于创建能够在运行该操作系统的多个设备上运行的、更通用的应用程序。
下面的列表框显示选定的目标设备(Pocket PC 或 Windows CE)可以使用的项目类型。
Pocket PC 项目类型
Pocket PC 和 Pocket PC 2002 平台可以使用四种项目类型(如图 5 所示):Windows 应用程序、类库、非图形应用程序和空项目。表 2 列出了各项目类型的说明。
图 5:Pocket PC 项目类型
通过这些项目类型,可以创建针对具有 Sb、MIPS 或 ARM 处理器的 Pocket PC 设备和具有 ARM 或 XScale 处理器的 Pocket PC 2002 设备的应用程序。
表 2:Pocket PC 项目类型
项目类型 |
说明 |
Windows 应用程序 |
基于 Windows 窗体的项目,包括 Pocket PC 特有的控件。这是最常用的模板,因为它生成基于 Windows 的应用程序。 |
类库 |
类库使用户可以将相关的组件打包在一个文件中。类库可用于开发其他应用程序,或者作为基础用于开发其他组件。此项目类型最适合创建将由多个应用程序重复使用的代码模块。 |
非图形应用程序 |
用于创建没有用户界面的可执行程序。最适合不需要用户界面的后台和维护应用程序。 |
空项目 |
定义没有预定义组件的项目,使用户能够从头开始创建任何自定义的应用程序。 |
注意:Pocket PC 设备不支持控制台。您可以通过加载 console.dll(由 Platform Builder [平台生成器] 提供)来解决这一问题。
Windows CE 项目类型
如图 6 所示,适用于 Windows CE 平台的项目类型有以下四种:Windows 应用程序、类库、控制台应用程序和空项目。表 3 列出了各项目类型的说明。
图 6:Windows CE 项目类型
表 3:Windows CE 项目类型
项目类型 |
说明 |
Windows 应用程序 |
基于 Windows 窗体的项目,包括 Windows CE .NET 特有的控件。这是最常用的模板,因为它生成基于 Windows 的应用程序。 |
类库 |
类库使用户可以将相关的组件打包在一个文件中。类库可用于开发其他应用程序,或者作为基础用于开发其他组件。此项目类型最适合创建将由多个应用程序重复使用的代码模块。 |
控制台应用程序 |
用于创建将在控制台窗口中运行的可执行程序。最适合可能需要或不需要用户交互操作的后台和维修应用程序。与 Pocket PC 不同,Windows CE 本身支持控制台应用程序。 |
空项目 |
定义没有预定义组件的项目,使用户能够从头开始创建任何自定义的应用程序。 | 设置项目属性
与所有 Visual Studio .NET 项目一样,.NET Framework 精简版项目也使用 Project Property Pages(项目属性页)对话框进行配置。通过此对话框,可以配置要包括的命名空间、要用作启动窗体的窗体、与应用程序相关的图标、应用程序的创建方式、创建位置、部署方式、最佳配置以及各种其他设置。
有两种方法可以访问 Property Pages(属性页)对话框:
- 通过 Solutions Explorer(解决方案资源管理器)- 在项目上单击鼠标右键,然后单击 Properties(属性)。屏幕上将显示 Properties Pages(属性页)对话框,如图 7 所示。
- 通过 Project(项目)菜单 - 首先在 Solutions Explorer(解决方案资源管理器)窗口中选择项目。然后在 Project(项目)菜单中单击 Properties(属性)。屏幕上将显示 Property Pages(属性页)对话框。
图 7:Property Pages(属性页)对话框
创建界面
如果您是经验丰富的 Visual Studio .NET 开发人员,只需稍加研究即可开始为针对 .NET Framework 精简版的应用程序创建用户界面。对于 Visual Studio .NET IDE 的新手来说,基于 Windows 应用程序模板的新项目将自动显示一个默认窗体,如图 8 所示。
在此示例中,项目类型是针对 Pocket PC 的 Windows 应用程序。这种应用程序模板包括一个与 Pocket PC 平台大小完全匹配的窗体。此窗体包括一个菜单控件,显示在窗体之下,因为大多数 Pocket PC 应用程序都包括菜单。
图 8:默认的 Pocket PC 窗体
包括的控件
.NET Framework 精简版包括一个可用于构造桌面 Windows 应用程序的控件子集。您会发现,NET Framework 精简版中的控件在很大程度上是 .NET Framework 下相应控件的子集。其差别与目标平台带来的资源限制有关。
表 4 显示了 .NET Framework 精简版提供的控件。
表 4:.NET Framework 精简版中包括的控件
Button |
CheckBox |
ComboBox |
ContextMenu |
DomainUpDown |
HScrollBar |
ImageList |
InputPanel |
Label |
ListBox |
ListView |
MainMenu |
NumericUpDown |
OpenFileDialog |
Panel |
PictureBox |
ProgressBar |
RadioButton |
SaveFileDialog |
StatusBar |
TabControl |
TextBox |
Timer |
Toolbar |
TrackBar |
TreeView |
VScrollBar |
DataGrid |
|
|
注意:另外还有很多第三方控件。有关详细信息,请参阅本文结尾处的参考信息。
创建自定义控件
.NET Framework 精简版最棒的功能之一是它能够绕过限制进行编码。以控件为例。与 .NET Framework 完整版所提供的控件相比,.NET Framework 精简版提供的控件是很有限的。控件中缺少属性、方法和事件。不过,您可以通过 .NET Framework 精简版修改标准控件的功能,使其满足您的需要。
可以将自定义控件分为三类:用户控件、继承的控件和自行绘制的控件。用户控件最容易创建,但 .NET Framework 精简版不支持这类控件。继承的控件是以 .NET Framework 精简版的某个控件为基础,然后根据需要添加、删除或修改该控件的属性、方法和事件。从控件的复杂程度来看,继承的控件要介于用户控件和自行绘制的控件之间。自行绘制的控件的界面能够提供最大的灵活性,但需要的工作量也最大。
创建 .NET Framework 精简版自定义控件的过程本来不属于本文讨论的范围,但您会发现,.NET Framework 精简版实际上沿用了 .NET Framework 中使用的大多数技术和方法。
通过下面的链接,可以了解如何创建在 .NET Framework 精简版中使用的自定义控件的其他详细信息:
Creating Custom Controls for the .NET Compact Framework(英文)
Developing Custom Controls in C# with Smart Device Extensions(英文)
Design-time Functionality for Custom Controls in Compact Framework and SDE(英文)
Creating Custom Controls with the .NET Compact Framework(英文)
构造菜单
任何在商业上取得成功的 Pocket PC 应用程序都包括了一个菜单栏。如果要创建包含许多功能的高效的 Pocket PC 应用程序,就需要使用菜单栏,这几乎成为一个不争的事实。
菜单栏的使用非常普遍,因而默认的 Pocket PC Windows 应用程序模板为其创建的初始窗体自动附带了一个菜单栏。使用 Visual Studio .NET 和 .NET Framework 精简版,构造菜单既简单又直观。只要使用 Forms Designer(窗体设计器)提供的图形工具创建一个菜单层次结构即可。
虽然使用设计时工具构造菜单是最容易的方法,但这并不是唯一的方法,还可以使用代码来构造菜单。这虽然复杂了一点,但有时您会希望在应用程序运行时动态地创建菜单,这时就可以使用这种方法。
MainMenu 控件实际实现了窗体上的菜单栏。Menu Designer(菜单设计器)提供了用于配置 MainMenu 控件的图形界面。用户可以使用 Menu Designer(菜单设计器)来构造组成整个菜单栏的菜单和菜单项。
激活菜单设计器
- 从 Visual Studio .NET IDE 中打开要添加菜单的窗体。如果窗体中没有 MainMenu 控件,请添加一个。
- 单击图标托盘中的 MainMenu 图标。将激活窗体上的菜单栏。
- 单击窗体上的菜单栏。将激活 Menu Designer(菜单设计器)。屏幕上将突出显示第一个菜单区域,如图 9 所示。
图 9:菜单设计器中的空菜单
- 在突出显示的区域中输入第一个(最左边的)菜单的名称。在图 10 所示的示例中,即定义菜单 New(新建)。
- 这时,您可以添加其他菜单,也可以定义要显示在 New(新建)菜单上的菜单项。要添加其他菜单,只要在所定义的第一个菜单右侧的 Type Here(在此处键入)框中输入下一个菜单的名称即可。在图 10 中,即在 New(新建)菜单的右侧。在本例中,我们将添加一个 Edit(编辑)菜单。
图 10:添加 New(新建)菜单
- 要定义 Edit(编辑)菜单的菜单项,请单击 Edit(编辑)菜单上方的 Type Here(在此处键入)框,然后输入菜单项的名称。图 11 说明了如何在 Edit(编辑)菜单中添加 Cut(剪切)菜单项。
- 继续创建菜单及菜单项,直到完成菜单。
图 11:在 Edit(编辑)菜单中添加菜单项
对菜单项进行编码
创建菜单时,需要对用户点击或单击菜单项的操作做出响应。每个菜单项都有一个 Click 事件过程,该过程在用户点击该菜单项时执行。列表 1 显示了此过程的一个示例。
列表 1:菜单项的 Click 事件过程
[Visual Basic]
Private Sub mnuEditCut_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuEditCut.Click
MessageBox.Show("剪切...")
End Sub
[Visual C#]
private void mnuEditCut_Click(object sender, System.EventArgs e)
{
MessageBox.Show("剪切...");
}
|