asp网络编程:创建移动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 框架应用程序开发的简单结构。

当一个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窗体标记符

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

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

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

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

再让我们看一看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模拟器中的显示屏幕:

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

就象你所看到的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的信息,请查看以下的相关链接上海治疗阳痿医院

时间: 2024-11-13 19:44:56

asp网络编程:创建移动Web应用程序的相关文章

【JavaScript】使用面向对象的技术创建高级 Web 应用程序

本文讨论: JavaScript 是基于原型的语言 用 JavaScript 进行面向对象的编程 JavaScript 编码技巧 JavaScript 的未来 本文使用了以下技术: JavaScript   目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript 代码吗? 展望 最近,我面试了一个有五年 Web 应用程序开发经验的软件开发人员.四年半来她一直

javascript面向对象创建高级 Web 应用程序

 目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript 代码吗? 展望 最近,我面试了一个有五年 Web 应用程序开发经验的软件开发人员.四年半来她一直在从事 JavaScript 相关的工作,她自认为 JavaScript 技能非常好,但在不久之后我就发现实际上她对 JavaScript 知之甚少.话虽这样说,但我确实没有责备她的意思.JavaScrip

独立部署asp.net core 2.1 Web应用程序

1.创建asp.net core 2.0  Web应用程序 添加引用: Microsoft.EntityFrameworkCore.Sqlite Microsoft.EntityFrameworkCore.Sqlite.Design 2.配置Sqlite数据库 修改Startup.cs文件:services.AddDbContext<ApplicationDbContext>(options =>options.UseSqlite("Data Source=Applicatio

IDEA 2017.3 新版本中创建 JSF Web 应用程序缺少 web.xml 的解决办法

IDEA 2017.3 新版本中默认创建一个 Web 应用程序很可能不会自动创建 web.xml 文件.虽然说从 JavaEE 6.0 开始 Servlet 3.0 规范中就新增了一些注解可以免去传统 web.xml 中的设置,但是这也有局限性.比如,针对 JSF 应用程序,必须在 web.xml 中增加系统内建的 JSF Facelets Servlet 的配置以及部署后自动启动等设置,而且包括 context-param.welcome-file-list 等等并没有 Servlet 3.0

03、手工创建Asp.Net Core 2.0 web应用程序(探索最小架构)

一.创建一个干净的控制台程序 这里我们使用的开发工具是VS2017 项目只有一个Program.cs类. 二.让控制台程序可以响应Web请求 1.让控制台程序成为Web宿主,需要引用WebHost包 Microsoft.AspNetCore.Hosting 2.我们不想用IIS作为服务器,可以使用Kestrel作为Web服务器 Microsoft.AspNetCore.Server.Kestrel 3.使用Nuget应必要包之后的项目结构 4.指定Web服务器,并启动WebHost 在Main方

使用面向对象的技术创建高级 Web 应用程序

Ray Djajadinata 本文讨论: JavaScript 是基于原型的语言 用 JavaScript 进行面向对象的编程 JavaScript 编码技巧 JavaScript 的未来 本文使用了以下技术: JavaScript   目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript 代码吗? 展望 最近,我面试了一个有五年 Web 应用程序开发经

asp网络编程:在服务器端控制网页

使用.Net和C#开发Web应用程序往往能给我们很大的启示,尤其在开发相对简单的例行任务时就更是如此.例如,在许多时候,我们都需要有条件地显示一个网页的一部分.需要这么做的原因有许多,例如,根据用户的角色,有一部分是它不应当看到的.或者,我们也可以考虑搜索功能,只有点击了一个链接后,搜索选项才是可用的. 我们先来解释一下解决这一问题的方法,然后再详细地解释所使用的代码.在.Net中开发Web应用程序,我们既可以使用服务器端的Web控件(Web表单)也可以使用HTML控件.使用.NET开发Web应

Java网络编程以及简单的聊天程序

网络编程技术是互联网技术中的主流编程技术之一,懂的一些基本的操作是非常必要的.这章主要讲解网络编程,UDP和Socket编程,以及使用Socket做一个简单的聊天软件. 全部代码下载:链接 1.网络编程简要概述: 网络编程实质实质就是两个(或多个)设备(例如计算机)之间的数据传输.而要实现两台计算机通过互联网连接进行数据传输,必输要满足计算机网络的5层协议(物理层,数据链路层,网络层,运输层,应用层):当然有划分可能不同,但现在大家比较容易接受理解的是五层模型.而其中前三层物理层,数据链路层以及

Android 网络编程基础之简单聊天程序

前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: 1 package com.jiao.socketdemo; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.io.OutputStreamWriter;