第十一章:
VB.NET Mobile应用程序设计知识点:
Mobile应用程序开发平台
Mobile应用程序设计
Mobile应用程序的数据库连接现今,移动设备已成为日常生活中不可获缺的一部分,当这些移动设备连接到 Internet时,移动设备的力量将无穷无尽。 VS.NET 2003 中一个最显著的特点是包含了许多支持面向手持式设备的应用程序的开发工具。这类应用程序可能是发展最快的一种。在某种程度上,必须使用可移式应用程序用于可移式的用户。
可移式应用程序在 VB.NET中增加了两个项目类型:第一个是 ASP.NET
Mobile Web 的 Application应用程序,用这个模板创建的应用程序是运行在服务器上的基于 Web的应用程序,但可以通过可移式设备访问;第二个项目是
Smart Device应用程序,这些应用程序在,NET Compact FrameWork上工作。
11.1 Mobile应用程序开发平台
11.1.1 ASP.NET Mobile Web模板
Mobile控件可以被分为三个主要的组。它们是用户界面( UI)控件,验证( Validation)控件和功能( Utility)控件。用户界面控件是如 Lable控件一样允许用户控制用户界面的一组控件。验证控件允许验证用户的输入如 RequiredFieldValidator控件,这些控件在向服务器发送数据之前验证用户输入的数据。功能控件是诸如日历控件这一类的控件。下面列出了默认为可移式 WEB工具包的一部分的可用用户界面元素。
1 UI控件
UI控件的参数说明如表所示。
控件名 描 述
Form 是一个或多个 mobile控件的容器
Command 执行诸如提交信息之类的动作
Image 在移动设备中显示图象
Label 在移动设备中显示输出文本
Link 在窗体中创建一个超链接
List 在移动设备中显示一个选项列表
MobilePage 控制所有 mobile控件的容器
2 TextBox 显示单行的文本框通过设置 TextBox的属性,Numeric让 TextBox只接收数字类型数据的输入。可以将 TextBox控件的 Password属性设置成 true或者 false来指定
TextBox处理密码字段。密码字段将会 Textview控件用来显示多行的文本框控件名 描 述
CompareValidator 比较两个 mobile控件
CustomValidator 自定义的检验器允许从控件中调用自己的检验过程
RangeValidator 限制检验器在一个范围内检测数据
RegularExpressionValidator 检测与控件指定的表达式不符的数据
RequiredFieldValidator 检测用户在这一区域输入的数据
ValidationSummary 显示一个所有发生的检验过程的报告验证控件功能控件控件名 描 述
Call 拨打一个电话号码
Calendar 显示一个日历例:创建的 ASP.NET 移动 WEB程序步骤:
( 1)执行 【 文件 】 |【 新建网站 】 命令。
( 2)在,Visual Studio”中已安装的模板列表中选择,ASP.NET 网站”。
( 3)设置好程序的“位置”、“语言”和“路径”等选项后,单击“确定”按钮,如图所示。
当完成上述步骤后,就已经创建好了一个 ASP.NET 网站。现在就可以在该网站中添加一些针对移动设备的 WEB窗体,其具体的实现过程如下:
( 1)在 Visual Studio 2005的“解决方案资源管理器”窗口中选择刚才创建好的网站项目,右击并在弹出的快捷菜单中选择“添加新项”命令。
( 2)在弹出的“添加新项”窗体中选择“移动 WEB窗体”项。
( 3)设置窗体的“名称”和“语言”等项,并且确保“将代码放在单独的文件中”的选择框处于选中状态。
( 4)单击“添加”按钮
11.1.2,NET Compact Framework
.NET Compact Framework( CF)是,NET Framework的子集,其最主要的优点是与,net类库具有相同的灵活性。但是所有,NET Framework的类和方法均能在,NET Compact Framework( CF)中使用。如图 11-3所示显示了一个移动平台的构成体系。
与可移式 WEB应用程序相比,.NET Compact Framework应用程序的环境更受限制,但功能也更丰富。例如所支持的设备数量。可移式 web
应用程序支持 150多种不同的设备,而,NET Compact Framework应用程序只能支持有限数目的智能设备,这些设备运行 Pocket PC或 Windows CE操作系统。
.NET Compact Framework有一个在这些设备上本地运行的,NET版本。可以创建一个 NET Compact Framework应用程序,与本地设备上运行的 SQL SERVER数据库通信。甚至在移动设备运行时,仍可以执行功能完备的应用程序,而无需连接到 Internet。也可以使用,NET Compact
Framework创建一个与 Web的服务通信,并提供一个较丰富的用户界面的应用程序,在必要的时候,可以创建位于手持设备上的业务层,在本地高速缓存数据,为存储在本地 WQL CE数据库中的数据创建一个通用的数据访问层。
11.2 Mobil应用程序设计实例
11.2.1 Mobile Web应用程序
Mobile Web应用程序步骤如下:
( 1)创建一个 Mobile Web应用程序,网站命名为 MyWebSite; Mobile
Web应用程序命名为 MobileWeb,如图所示。
( 2)在 Form1窗体中分别添加一个 Label控件,TextBox控件和 Command控件,如图所示。
( 3)再添加一个 Form窗体,并在其中添加一个 Label控件,如图所示。
其 HTML源代码如下:
<% @ Page
Inherits="System.Web.UI.MobileControls.MobilePage"%>
<%@ Register TagPrefix="Mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<Mobile:Form id="form1" runat="server">
<Mobile:Label id="Label1" runat="server">年龄 </Mobile:Label>
<Mobile:TextBox runat="server" id="text1" />
<Mobile:Command id="Command1" runat="server"
OnClick="AgeClick" Text="提交 " >提交 </Mobile:Command>
</Mobile:Form>
<Mobile:Form id="form2" runat="server"
OnActivate="Form2_Activate">
<Mobile:Label runat="server" id="message" />
</Mobile:Form>&nbsp;
( 4)定义一个 age变量,用来存放用户输入的年龄;通过点击第一个页面的提交按钮后第二个页面被激活,显示相应,因此应添加 AgeClick过程和 Form2的 Active事件过程,代码如下:
<script runat="server">
Dim age
Sub AgeClick(sender As Object,e As EventArgs)
age=text1.Text
ActiveForm=Form2
End Sub
Sub Form2_Activate(sender As Object,e As EventArgs)
message.Text="You are " & age & " years old"
End Sub
</script>
( 5)运行结果如图 11-9所示。
11.2.2 第一个 NET COMPACT FRAMEWORK
应用程序第一个 NET COMPACT FRAMEWORK应用程序的步骤如下:
( 1)打开 VB.NET,创建一个新项目,在左边项目类型中选择智能设备 Pocket
PC 2003,在右边模板中选择设备应用程序,名称选用默认的 DevicApplication,
如图所示。
( 2)单击“确定”按钮,出现 Pocket PC模拟器编程界面如图所示。
( 3)通过工具箱添加一个 Label控件和四个 Button按钮控件来响应导航台上的上、
下、左、右及 【 Ente】 键,在此仅仅用作改变 Label的显示,如图所示。
( 4)实现代码如下:
Public Class Form1
Private Sub Form1_KeyDown(ByVal sender As System.Object,ByVal e _
As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If (e.KeyCode = System.Windows.Forms.Keys.Up) Then
'向上导航
'向上键
Button1.Focus()
End If
If (e.KeyCode = System.Windows.Forms.Keys.Down) Then
'向下导航
'向下键
Button2.Focus()
End If
If (e.KeyCode = System.Windows.Forms.Keys.Left) Then
'向左键
Button3.Focus()
End If
If (e.KeyCode = System.Windows.Forms.Keys.Right) Then
'向右键
Button4.Focus()
End If
If (e.KeyCode = System.Windows.Forms.Keys.Enter) Then
'Enter
If Button1.Focused = True Then
Label1.Text = "您点击了导航台的 up键 "
ElseIf Button2.Focused = True Then
Label1.Text = "您点击了导航台的 down键 "
ElseIf Button3.Focused = True Then
Label1.Text = "您点击了导航台的 left键 "
Else
Label1.Text = "您点击了导航台的 right键 "
End If
End If
End Sub
End Class