日期:2010-09-01  浏览次数:20585 次

  随着硬件的飞速发展,移动设备也如同计算机设备一样呈现出具有更好的性能、更快的处理速度和更便宜的趋势。尤其是即将到来的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创建一个新的ASP.NET 移动WEB程序:

  1. 选择"文件"-"新建"-"网站"

  2. 在"Visual Studio已安装的模板"列表中选择"ASP.NET 网站"

  3. 设置好程序的"位置"、"语言"和"路径"等选项后,单击"确定"按钮。

点击放大此图片

  当你完成上述步骤后,就已经创建好了一个ASP.NET 网站。现在我们就可以在该网站中添加一些针对移动设备的WEB窗体,其具体的实现过程如下:

  1. 在Visual Studio 2005的"解决方案资源管理器"窗口中选择刚才创建好的网站项目,右键点击并在弹出的菜单中选择"添加新项"命令。

  2. 在弹出的"添加新项"窗体中选择"移动WEB窗体"项。

  3. 设置窗体的"名称"和"语言"等项,并且确保"将代码放在单独的文件中"选择框处于选中状态。

  4. 单击"添加"按钮。

点击放大此图片

  当单击"添加"按钮后,你会发现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来查找相应的用户信息,我们并没有编写对应的逻辑代码,只是显示了该窗体的界面:


  Visual Studio 2005中对应的HTML代码如下所示,我们可以看到上述的3个控件均以 <mobile: 为前缀在页面代码中进行了声明。同样的,Form也采用了类似的方式加以声明,见代码7所示。在传统的ASP.NET应用程序中处理窗体和处理控件的方式是不一样的,这和移动WEB页面有很大的差别。其最大的不同就是开发人员可以在同一个移动WEB页面中创建多个窗体,并且可以在这些窗体间自由地导航而无需回发到服务器。利用该项特性可以减少因移动设备带宽小而带来的约束,大大减少了和服务器通讯的数据量。换句话说,移动设备中是以窗体为单位进行显示,而不是像传统的ASP.NET程序那样以页面为单位进行显示。我们使用移动设备浏览不同屏的信息时,可能并没有跳转到不同的页面,而是在同一个页面的不同窗体间进行跳转。

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</m