服务热线
153 8323 9821
.net 开发 wap 网站
即将到来的 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 窗体的设计视图并不是一个"可见即可得"的编辑 器,这是因为不同的移动设备其支持的呈现方式是不同的。例如,在设计视图状 态下通常一行只能放置一个控件,但是在某些设备上支持在同一行放置多个控 件,因此各个控件将会尽量地停靠在同一行上。正因为如此,我们还需要注意 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. 双击你想处理事件的右侧空白栏,这时将切换到相应事件的代码视图状 态。
使用容器控件 在 ASP.NET 移动 WEB 窗体中提供了两种容器控件: Form 控件和 Panel 控件。 几乎所有的移动控件都是放置在这两种控件之中,唯独 StyleSheet 控件例外。 StyleSheet 控件可以单独地放置在页面中,该控件将会在以后的小节中进行详 细的介绍。我们可以将属于同一组功能的移动控件都放置在一个容器控件中,这 样使得程序的页面结构更加的清晰。 我们还可以为一个容器控件设置特定的样式 表,所有位于该容器的移动控件将会具有一致性的用户体验。注意,在页面中添 加的容器控件是没有固定大小的, 因为它将随着你在其中放置的控件