日期:2010-08-05  浏览次数:20517 次

  即将到来的3G技术,将使得移动设备突破现在的带宽限制,这样我们就可以构建出许多新颖且功能强大的移动应用。现在已经有许多商业应用都开始向移动设备上进行迁移,所以对开发者来说,现在就开始移动开发的学习将是一种非常适合的时机。

  在本文中我将介绍如何使用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</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>


  ASP.NET 移动WEB窗体的开发视图 Visual Studio 2005的开发环境中提供了三种视图进行ASP.NET 移动WEB窗体的设计和开发。这三种视图分别为设计视图、HTML视图和代码视图,我们可以针对不同的开发需求在这些视图间进行切换。现在我们就这三种视图进行一个简短的概要。

  设计视图

  设计视图状态下将加载移动WEB窗体,并且自动呈现窗体中所包含的移动控件。你可以从工具箱中以拖拽的方式添加新的控件,你也可以通过属性窗口修改已存在的控件的属性。如果想要移除窗体中的某些控件的话,你可以点选该控件并使用"Delete"键进行删除。

  注意,ASP.NET 移动WEB窗体的设计视图并不是一个"可见即可得"的编辑器,这是因为不同的移动设备其支持的呈现方式是不同的。例如,在设计视图状态下通常一行只能放置一个控件,但是在某些设备上支持在同一行放置多个控件,因此各个控件将会尽量地停