ASP.NET 移动 Web 开发概述

更新:2007 年 11 月

开发用于移动设备浏览器的 ASP.NET 页与开发用于桌面浏览器的页并无本质区别。为了帮助您创建用于移动设备的应用程序,ASP.NET 提供了一个专用于移动 Web 开发的 System.Web.Mobile 命名空间。

可以从 MobilePage 基类中创建网页并从 System.Web.Mobile 命名空间中添加控件。此命名空间定义了一套 Web 服务器控件和适配器,特别适用于创建需要供多种不同移动设备(如移动电话)使用的应用程序。

ASP.NET 2.0 还提供了控件自适应结构,允许为 ASP.NET 2.0 Web 服务器控件创建自定义设备适配器。这些适配器可以基于发出请求的浏览器来创建控件的自定义呈现。借助于这种自适应结构,您可以为 ASP.NET Web 服务器控件创建自定义适配器,以便在桌面浏览器上为访问您的应用程序的设备呈现特定的输出。

无论是桌面浏览器开发还是移动设备开发,开发都遵循标准的 .NET 事件驱动模型,让应用程序对用户请求、按钮单击等做出响应。

移动应用程序结构

尽管 ASP.NET 集成了使 ASP.NET 移动 Web 应用程序开发与传统的 Web 应用程序开发遵循同一模式的技术,但这一结构的主要意图并不是允许您创建可同时用于桌面浏览器和移动设备浏览器的单一页面。移动设备上的浏览器的限制通常意味着,专门为桌面浏览器设计的页不能转换以用于移动设备浏览器。

例如,如果您创建的 ASP.NET 网页在页的顶部包含一个站点标题和一个导航栏,在页的一侧包含一个辅助导航结构,并在页的其余部分显示内容,那么此页在桌面浏览器中可按设计原样进行呈现。在此情况下,通常具有充足的空间来呈现所有控件,并提供可滚动的内容区域。但在许多移动设备浏览器中,这种布局是不可能实现的。许多移动设备的屏幕区域都比桌面监视器小,因此,就连导航过程也要分为多个步骤,用户必须单击多个控件才能获取页内容。

显示逻辑遵循类似的模式。例如,当用户使用桌面浏览器填充 Web 窗体时,用户可以在屏幕上同时看到多个控件。在服务器上对窗体进行验证时,可在控件旁边显示验证错误。使用移动设备时,以一种可用的格式显示窗体输入和验证要困难得多。此外,由于在移动设备上很难键入,您可能会选择为移动设备提供快捷方式,以使用户执行少量的键入工作即可填充信息。

基于上述原因,必须在 ASP.NET Web 应用程序中分别创建用于桌面浏览器和移动设备浏览器的页。专门为移动设备浏览器开发的页允许您将呈现逻辑细分为较小的部分,从而可针对设备的显示区域和输入硬件更好地工作。

移动 Web 服务器控件

ASP.NET 2.0 System.Web.Mobile 命名空间专供移动 Web 开发使用。可以从 MobilePage 基类创建移动网页,并从 System.Web.Mobile 命名空间中添加移动 Web 服务器控件。移动 Web 服务器控件在 .NET Framework 中具有许多专用适配器,因此特别适合开发面向多种移动设备的移动 Web 应用程序。

ASP.NET Web 服务器控件和适配器结构

大多数 ASP.NET 2.0 Web 服务器控件都遵从统一适配器结构。这意味着所有控件都可以针对发出请求的设备,通过调用为该设备提供适当行为(例如,创建正确的标记语言)的自定义适配器,采取不同的行为。如果在浏览器定义文件中为请求设备或浏览器配置了适配器,则 ASP.NET 在 Web 服务器控件的每个生命周期阶段中都会调用该适配器。然后该适配器便可调整呈现的输出,并处理任何特定于设备的视图状态逻辑或设备特性。浏览器定义文件可在 .NET Framework Config 目录的 Browsers 文件夹或 Web 应用程序的 App_Browsers 文件夹中找到。

目前,没有为 ASP.NET 控件提供任何适配器。但是,为多种设备和浏览器提供了一组丰富的用于 ASP.NET 移动控件的适配器。

可为每个设备创建自定义适配器,并使 ASP.NET 页框架在特定设备访问您的页时使用这些适配器。有关更多信息,请参见自适应控件行为的结构概述

选择自定义适配器或移动控件

对于面向移动设备的页,必须使用移动 Web 服务器控件并创建继承 MobilePage 的页。这些控件支持包括移动电话在内的多种移动设备。ASP.NET 包含满足多种常规 Web 开发和特定于移动需要的移动 Web 服务器控件。此外,用于主要设备及其标记语言的移动控件设备适配器也已经存在。

在主要标记语言不断发展的同时,Microsoft 将继续为移动 Web 服务器控件提供适配器更新。这样,使用您正在使用的相同控件便可支持新的标记语言。例如,如果要创建支持桌面浏览器和大量移动设备的电子商务站点,需要创建一组继承 Page 类的 ASP.NET 页和一组单独的继承 MobilePage 基类的页,并使用移动控件。

如果新设备对移动 Web 服务器控件有新的行为要求,您可以根据需要创建自己的自定义适配器或修改现有的适配器。

在某些情况下,使用 ASP.NET Web 服务器控件和编写自定义适配器非常有意义。这些情况通常适用于多形式桌面浏览器(其中要求浏览器行为变化)的应用程序或由存在约束的设备类(对于这些设备类而言,移动控件及其功能集无法保证)使用的应用程序。一个示例是您创建保险索赔应用程序的情况,该应用程序具有一个在办公室使用的基于浏览器的接口和一个在现场使用的多形式设备接口。然后,您的应用程序便能够将相同的页基类同时用于常规页和多形式设备页。然后您只需要为现场部署的设备创建自定义适配器。

请参见

其他资源

创建 ASP.NET 移动网页