创建移动Web应用程序

介绍

现今移动设备已成为我们生活中的一部分,我们当中的许多人已离不开它们。当这些移动设备连接到Internet时,移动设备的力量将无穷无尽。我们可以在任何时间地点给用户发送数据。典型的移动应用程序是在服务器上使用WML, WMLScript和WBMP开发的。

对于动态WML应用程序,开发者可以使用ASP, JSP, PHP等等。移动设备包括蜂窝电话、寻呼机、掌中浏览器、袖珍PC和车载PC。这些设备中少数支持WML,少数支持HTML,更少数支持同时支持WML和HTML。如果你想确保你的应用程序能在大多数的移动设备中使用,你必须以WML和有限的HTML创建应用程序。

最近Microsoft提出了一个革命性的应用程序开发平台—.NET 框架。.NET 框架包括用于Web开发的ASP.NET(下一版本的ASP)。基于ASP.NET的Web开发即支持传统的Web客户端如IE和Netscape,又支持移动客户端如Phone.com, Nokia 蜂窝电话和袖珍PC。ASP.NET应用程序可以在任何.NET支持的语言环境下如VB.NET(下一版本的VB),JScript, C++, C#等等语言环境下进行开发。在这篇文章中,我们将看到如何使用.NET Mobile Web SDK, ASP.NET和 VB.NET看法移动应用程序。

.NET介绍

在深入之前,我想给你简要地介绍一下.NET。.NET是一个由Microsoft在2000年专业开发者会议上提出的发展中的开发平台。下面的图表展示了.NET 框架应用程序开发的简单结构。

创建移动Web应用程序

当一个ASP.NET的页面请求从一个Web客户端如IE或移动设备发出时,IIS会收集请求并把它传递给.NET 框架。如果ASP.NET的页面是首次请求,那么.NET 框架将把ASP.NET编译成中间语言(intermediate language,IL)。然后IL代码将被即时(Just-In-Time,JIT)编译器编译成本地代码。就象你所看到的,.NET 框架是整个ASP.NET应用的核心。.NET 框架将提供必须的资源和你所选择由于编译代码的语言编译器。

开发所必须的条件

要使用.NET开发移动应用程序,你必须下载和安装如下的组件。IE和.NET SDK可以从 Microsoft MSDN site 免费下载。

1. Windows 2000 Professional/Server/Advanced Server OS

2. Internet Explorer 5.5

3. .NET framework Beta 1

4. .NET Mobile Web SDK Beta 1

5. WAP模拟器

让我们开始吧!

要使用.NET开发移动应用程序,必须包含由.NET Mobile Web SDK提供(通过MobileUI.DLL文件)的 Mobile Web名域(System.Mobile.UI)。对于那些对namespace(名域)一词感到陌生的人来说,名域就象C++的头文件和Visual Basic的引用。名域将提供开发应用程序所要求的类。

使用.NET 框架开发移动应用程序是很容易的。

1. 创建一个ASP.NET页面

2. 包含Mobile Web Namespace--System.Mobile.UI

3. 用Mobile控件设计页面

就是那么简单。

Mobile 控件

Mobile控件是为开发移动应用程序而设计好的程序块。对于那些喜欢使用象VB和Frontpage等这样的集成开发环境(IDE)来开发GUI/Web的人来说,Mobile 控件就与HTML的按钮控件和VB的Grid控件相类似。Mobile控件通过提供程序员所需要的功能来简化程序的开发过程。

例如,如果你想画一个WML Card标记符,你可以使用Mobile Form控件。对于所有的WML标记符都提供了相应的Mobile 控件。Mobile 控件吸引人之处就在于,它们不仅限用于WML标记符;相反,它们超越了WML标记符,可以创建有用的Mobile 控件,如在WML无法实现的日历Mobile 控件。

让我们看一看一个显示“Hello World!”的ASP.NET页面例子。

〈%@ Page Inherits="System.Mobile.UI.MobilePage"〉
〈%@ Register TagPrefix="Mobile" Namespace="System.Mobile.UI"〉
〈Mobile:Form runat="server"〉
〈Mobile:Label runat="server"〉Hello, World!〈/Mobile:Label〉
〈/Mobile:Form〉

循序渐进—理解ASP.NET页面

1. 在第一行里,给ASP.NET页面对象继承了Mobile Web名域。如果不这样做,ASP.NET就会遵循普通Web应用程序的页面处理程序。

2. 在第二行里,为Mobile Web名域注册了一个标记符前缀。你可以看到在剩下的代码中,对所有的Mobile 控件都使用“Moblie”这个关键字作为名域前缀。你可以使用任何你想的名字作为标记符前缀。

3. 在第三行里,创建一个Mobile窗体并把它的runat属性设置为server。

4. 在第四行里,创建一个Mobile label控件和“Hello World”文本。

5. 最后一行,关闭Mobile窗体标记符

运行以上例子,观看结果。

创建移动Web应用程序

以上就是例子在Phone.com模拟器显示的效果。现在再让我们看一看ASP.NET生成的代码:

创建移动Web应用程序

是不是很Cool?ASP.NET为我们生成代码,Mobile Form控件已经被转换为WML card标记符;同样地,Mobile Label控件被转换为WML paragraph标记符。

让我们看一看在Pocket IE中又会怎样:

创建移动Web应用程序

再让我们看一看ASP.NET为Pocket IE生成的代码:

〈html〉
〈body〉
〈form id="ctrl1" name="ctrl1" method="post" action="Exp1.Aspx?631169274439268880"〉
〈div〉Hello, World!〈/div〉
〈/form〉
〈/body〉
〈/html〉

ASP.NET为Pocket IE生成HTML代码。的确,Mobile 控件有能力探测到所使用的浏览器并生成所支持的代码。所以,当在WAP模拟器中打开一个ASP.NET页面时得到的是WML代码。而在袖珍PC中打开时得到HTML代码。这样就给我们开发一次服务任何移动设备的能力。很Cool,不是吗?

移动应用程序设计概念

NET Mobile Web SDK提供了三个容器对象:MobilePage, Form 和Panel。MobilePage控件是移动应用程序的重要容器。一个单独的MobilePage可以有一个或多个Form控件。一个Form控件可以有0个或多个Panel控件。Panel控件用于给各种Mobile控件分组。

.NET Mobile Web SDK 中Mobile控件

Mobile控件可以被分为三个主要的组。它们是用户界面(UI)控件,验证(Validation)控件和功能(Utility)控件。用户界面控件是如Lable控件一样允许用户控制用户界面的一组控件。验证控件允许我们验证用户的输入如RequiredFieldValidator控件,这些控件在向服务器发送数据之前验证用户输入的数据。功能控件是诸如日历控件这一类的控件。

以下表格展示了以上各个类别的控件。

UI控件

控件名描述Command一个Command控件执行诸如提交信息之类的动作FormForm控件是一个或多个mobile控件的容器Image在移动设备中显示图象Label在移动设备中显示输出文本Link在窗体中创建一个超链接List在移动设备中显示一个选项列表MobilePage控制所有mobile控件的容器TextBox显示单行的文本框Textview显示多行的文本框

验证控件

控件名描述CompareValidator比较两个mobile控件CustomValidator自定义的检验器允许从控件中调用自己的检验过程RangeValidator限制检验器在一个范围内检测数据RegularExpressionValidator检测与控件指定的表达式不符的数据RequiredFieldValidator检测用户在这一区域输入的数据ValidationSummary显示一个所有发生的检验过程的报告

功能控件

控件名描述Call拨打一个电话号码Calendar显示一个日历AdRotator随机显示一个广告

自动分页是.NET Mobile Web SDK的优势之一。.NET远行时会处理目标设备的页面显示问题。对于不同的Mobile控件会采取不同的分页处理形式。例如,对于List控件,分页由该控件的PageSize属性处理。这个属性根据目标设备自动设置。当在运行时显示页面时,panel控件里的控件就会呆在一起。

一个简单的例子

让我们写一个简单应用程序,显示一个文本框接受输入并在下一个窗体中显示。

〈%@ Page Inherits="System.Mobile.UI.MobilePage" %〉
〈%@ Register TagPrefix="mobile" Namespace="System.Mobile.UI" %〉
〈Script language="VB" runat="server"〉
Sub Btn_OnClick(Src As Object, E As EventArgs)
‘move to the next mobile form
ActiveForm = frm2
‘display the name.
EnteredName.Text = "Your name is: " & YourName.Text
End Sub
〈/Script〉
〈mobile:Form id="frm1" runat=server〉
〈mobile:Label runat=server〉Your Name:〈/mobile:Label〉
〈mobile:TextBox runat="server" id="YourName" /〉
〈mobile:Command runat="server" id="btn" OnClick="Btn_OnClick"〉Ok
〈/mobile:Form〉
〈mobile:Form id="frm2" runat=server〉
〈mobile:Label runat="server" id="EnteredName" /〉
〈/mobile:Form〉
在以上的代码中,创建了两个窗体。第一个窗体的id为frm1, 第一个窗体的idfrm2。之所以使用这个方法是因为Mobile Form控件不支持name属性,而支持id属性。ASP.NET运行时就是通过这样的方法来确认窗体的。在第一个窗体中,添加了一个lable控件,一个textbox控件和一个button控件。当点击button时,服务器端的VB子程序(Btn_OnClick)就被调用。这对于那些熟悉VB的人来说就象在家里一样亲切。在处理VB子程序的事件里,通过给frm2设置ActiveForm方法来跳到下一个窗体。然后访问定义在frm2中lable控件并设置用户提交的值。

以下就是以上代码在Phone.com模拟器和Pocket IE模拟器中的显示屏幕:

创建移动Web应用程序

创建移动Web应用程序

创建移动Web应用程序

以下是ASP.NET为Phone.com模拟器生成的代码:

创建移动Web应用程序

创建移动Web应用程序

就象你所看到的ASP.NET生成白药的WML代码来处理用户的文本输入并发送到服务器端。它同样也生成WML代码以在下一个WML card中显示用户输入的名字。

.NET Mobile Web SDK的优势与限制

这里有一些使用Mobile Web SDK的优势与限制。

优势:

1. 不需要检测浏览器和根据目标设备发送WML或HTML

2. 要学的只是ASP.NET和.NET Mobile控件,而不必学WML

3. Visual Studio.NET易用的编程模式拖放的应用程序开发

4. 支持服务器端事件处理

5. 支持自动分页

限制:

1. 只限在Microsoft产品和操作系统中使用

2. 当WML或HTML的新版本发布,你只有等Microsoft宣布它的新版Mobile Web控件的发布

支持的设备

.NET框架还在发展之中。目前,.NET Mobile Web SDK已经在如下的设备中进行了完全的测试:

内嵌Microsoft Pocket Internet Explorer 4.5的袖珍PC

Mitsubishi T250移动电话

Nokia 7110移动电话

Nokia 7110的Nokia WAP Toolkit 2.0 Beta 模拟器

.NET Mobile Web SDK在如下的准备中进行过有限的测试:

Samsung触点移动电话

Sony CMD-z5移动电话

Microsoft Mobile Explorer v 2.01 模拟器

l Phone.com UP.SDK 4.0模拟器

Phone.com UP.SDK 3.2 for WML模拟器

还有许多其他的支持设备,但是没有在.NET Mobile Web SDK条件下进行过测试。

总结

在这篇文章中展示了.NET Mobile Web SDK的性能和NET Mobile Web SDK如何支持不同的设备。也看到了一个使用.NET Mobile Web SDK生成移动应用程序的例子。想获得更多的关于. NET Mobile Web SDK的信息,请查看以下的相关链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值