随着硬件的飞速发展,移动设备也如同计算机设备一样呈现出具有更好的性能、更快的处理速度和更便宜的趋势。尤其是即将到来的3G技术,将使得移动设备突破现在的带宽限制,这样我们就可以构建出许多新颖且功能强大的移动应用。现在已经有许多商业应用都开始向移动设备上进行迁移,所以对开发者来说,现在就开始移动开发的学习将是一种非常适合的时机。
当然我不可能在这例用简短的篇幅里探讨所有的用ASP.NET 2.0开发移动应用的详细过程。这篇文章将介绍一些基础的知识,这样使得你对用ASP.NET 2.0技术来开发移动应用有个大概的了解,以便你快速地深入该项技术。首先我们将学习如何使用Visual Studio 2005创建一个ASP.NET 2.0移动程序,然后介绍一些常用的移动开发控件并以适合的方式在程序中加于应用,最后你将学习的是如何开发针对特定移动设备的WEB程序和管理程序中的ViewState(视图状态)和Session。
创建一个新的ASP.NET 移动WEB程序
Visual Studio 2005提供了一组功能强大且友好的开发工具来创建移动WEB程序,如果你已经有创建传统的ASP.NET应用程序的经验,那么你就会发现创建移动WEB程序和创建传统的ASP.NET应用程序是非常类似的。你只需要创建一个ASP.NET网站项目并添加一些移动WEB窗体即可。当你添加移动WEB窗体后,你就会发现在工具箱中添加了如下图所示的ASP.NET移动控件。
![]() |
当单击"添加"按钮后,你会发现Visual Studio 2005自动添加了两个文件,在这里窗体名称被设置为"MobileDefault",因此这两个文件分别为MobileDefault.aspx 和MobileDefault.aspx.cs (如果你选择的语言为VB的话,则这两个文件为MobileDefault.aspx和MobileDefault.aspx.vb)。MobileDefault.aspx文件包含在窗体使用的各个ASP.NET 移动控件的声明方式,而MobileDefault.aspx.cs则包含了一些程序实现代码和事件处理代码,这和传统的ASP.NET应用程序采用的"代码后置"的方式是一致的。
窗体添加完毕后,我们就可以使用工具箱中的"移动WEB窗体"标签下的各个控件。如同其它的ASP.NET控件一样,我们也可以根据需求设置这些控件的属性和事件行为。你可以在"原代码"窗口下直接输入"<mobile: />"的语法方式来添加移动控件:
<mobile:TextBox ID="MyTextBox" runat="server"></mobile:TextBox>
<mobile:Label ID="MyLabel" runat="server">标签控件</mobile:Label>
下图显示了一个放置了Label、TextBox和Command控件的移动WEB窗体。该窗体所实现的功能是根据TextBox控件中输入的CustomerID来查找相应的用户信息,我们并没有编写对应的逻辑代码,只是显示了该窗体的界面:
![]() |
01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="MobileDefault.aspx.cs" 02 Inherits="MobileDefault" %> 03 <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" 04 Assembly="System.Web.Mobile" %> 05 <html xmlns="http://www.w3.org/1999/xhtml" > 06 <body> 07 <mobile:Form id="Form1" runat="server"> 08 <mobile:Label id="lblID" Runat="server">Customer ID</mobile:Label> 09 <mobile:TextBox id="txtCustID" Runat="server"></mobile:TextBox> 10 <mobile:Command id="cmdGetCustomer" Runat="server">Find Customer 11 </mobile:Command> 12 </mobile:Form> 13 </body> 14 </html> |
设计视图
设计视图状态下将加载移动WEB窗体,并且自动呈现窗体中所包含的移动控件。你可以从工具箱中以拖拽的方式添加新的控件,你也可以通过属性窗口修改已存在的控件的属性。如果想要移除窗体中的某些控件的话,你可以点选该控件并使用"Delete"键进行删除。
注意,ASP.NET 移动WEB窗体的设计视图并不是一个"可见即可得"的编辑器,这是因为不同的移动设备其支持的呈现方式是不同的。例如,在设计视图状态下通常一行只能放置一个控件,但是在某些设备上支持在同一行放置多个控件,因此各个控件将会尽量地停靠在同一行上。正因为如此,我们还需要注意ASP.NET移动WEB窗体并不支持控件的绝对位置。
在设计器中,您可以按照希望控件显示给用户的顺序将它们添加到窗体或面板中,但是不能定义当它们呈现在移动设备的屏幕上时所处的绝对位置。为了适应多种多样的移动设备,ASP.NET 移动设计器使您能够针对特定设备自定义移动 Web 窗体页和控件的外观。这种灵活性使您可以确保:您的应用程序在目标设备上具有适用且吸引人的外观。
HTML视图
HTML视图状态下显示的是HTML源代码,你可以采用直接编码的方式设置移动控件和窗体的布局。当然我们已经很少使用这种方式进行程序的开发,你完全可以在设计视图状态下设置移动控件和窗体的布局,而后Visual Studio 2005会自动生成相应的页面代码。
你可以在Visual Studio 2005开发文档窗体的底部选择合适的标签进行设计视图和HTML视图的切换,如图中箭头所示:
![]() |
![]() |
ASP.NET 移动控件的事件处理
和传统的ASP.NET控件一样,移动控件也可以在特定的状态下激发事件,并提供了一些默认事件来处理经常发生的方案。除此之外,移动控件也可以在某些情况下激发一些其它的处理事件(非默认的事件)。传统的ASP.NET程序中,用户通过浏览器执行某些操作时会激发相应的事件,移动设备浏览器也采用了类似的处理方式。我们可以将一个事件通过回发的方式传递到服务器端,继而引发服务器端对该事件的处理,最终的处理结果将以HTML的形式传递到客户端浏览器。处理一个由移动控件激发的默认事件是非常容易的,我们只需在页面中放置一个移动控件并双击该控件即可。下面为一个较常见的事件处理代码,即一旦用户单击命令按钮就激发其Click事件。
protected void cmdGetCustomer_Click(object sender, EventArgs e)
{……}
创建一个非默认的事件处理器也是非常容易的,我们现在无需考虑语言的相关性。如果你曾经使用过Visual
Studio 2003的话,你会发现用VB.NET来处理事件要比C#复杂。在当前的Visual Studio版本中已经将这两种语言的操作过程进行了统一,下面的步骤就是创建一个非默认事件处理器的详细步骤:
1. 在状态视图中点选要设置事件的控件。
2. 在属性窗口中选择事件按钮,也就是那个带有闪电标记的按钮。单击后就会在属性窗体中显示控件的所有的可用事件。
3. 双击你想处理事件的右侧空白栏,这时将切换到相应事件的代码视图状态。
![]() |
![]() |
![]() |