|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。asp.net 跟着硬件的飞速开展,挪动设备也好像盘算机设备一样出现出具有更好的功能、更快的处置速率和更廉价的趋向。特别是行将到来的3G手艺,将使得挪动设备冲破如今的带脱期制,如许我们就能够构建出很多新奇且功效壮大的挪动使用。如今已有很多贸易使用都入手下手向挪动设备长进行迁徙,以是对开辟者来讲,如今就入手下手挪动开辟的进修将是一种十分合适的机会。
固然我不成能在这例用冗长的篇幅里切磋一切的用ASP.NET2.0开辟挪动使用的具体历程。这篇文章将先容一些基本的常识,如许使得你对用ASP.NET2.0手艺来开辟挪动使用有个也许的懂得,以便你疾速地深切该项手艺。起首我们将进修怎样利用VisualStudio2005创立一个ASP.NET2.0挪动程序,然后先容一些经常使用的挪动开辟控件并以合适的体例在程序中加于使用,最初你将进修的是怎样开辟针对特定挪动设备的WEB程序和办理程序中的ViewState(视图形态)和Session。
创立一个新的ASP.NET挪动WEB程序
VisualStudio2005供应了一组功效壮大且友爱的开辟工具来创立挪动WEB程序,假如你已有创立传统的ASP.NET使用程序的履历,那末你就会发明创立挪动WEB程序和创立传统的ASP.NET使用程序长短常相似的。你只必要创立一个ASP.NET网站项目并增加一些挪动WEB窗体便可。当你增加挪动WEB窗体后,你就会发明在工具箱中增加了以下图所示的ASP.NET挪动控件。
如今你能够依照以下的步骤在VisualStudio2005创立一个新的ASP.NET挪动WEB程序:
1.选择"文件"-"新建"-"网站"
2.在"VisualStudio已安装的模板"列表当选择"ASP.NET网站"
3.设置好程序的"地位"、"言语"和"路径"等选项后,单击"断定"按钮。
当你完成上述步骤后,就已创立好了一个ASP.NET网站。如今我们就能够在该网站中增加一些针对挪动设备的WEB窗体,其详细的完成历程以下:
1.在VisualStudio2005的"办理计划资本办理器"窗口当选择方才创立好的网站项目,右键点击并在弹出的菜单当选择"增加新项"命令。
2.在弹出的"增加新项"窗体当选择"挪动WEB窗体"项。
3.设置窗体的"称号"和"言语"等项,而且确保"将代码放在独自的文件中"选择框处于选中形态。
4.单击"增加"按钮。
当单击"增加"按钮后,你会发明VisualStudio2005主动增加了两个文件,在这里窗体称号被设置为"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:TextBoxID="MyTextBox"runat="server"></mobile:TextBox>
<mobile:LabelID="MyLabel"runat="server">标签控件</mobile:Label>
下图显现了一个安排了Label、TextBox和Command控件的挪动WEB窗体。该窗体所完成的功效是依据TextBox控件中输出的CustomerID来查找响应的用户信息,我们并没有编写对应的逻辑代码,只是显现了该窗体的界面:
VisualStudio2005中对应的HTML代码以下所示,我们能够看到上述的3个控件均以<mobile:为前缀在页面代码中举行了声明。一样的,Form也接纳了相似的体例加以声明,见代码7所示。在传统的ASP.NET使用程序中处置窗体和处置控件的体例是纷歧样的,这和挪动WEB页面有很年夜的不同。其最年夜的分歧就是开辟职员能够在统一个挪动WEB页面中创立多个窗体,而且能够在这些窗体间自在地导航而无需回发到服务器。使用该项特征能够削减因挪动设备带宽小而带来的束缚,年夜年夜削减了和服务器通信的数据量。换句话说,挪动设备中是以窗体为单元举行显现,而不是像传统的ASP.NET程序那样以页面为单元举行显现。我们利用挪动设备扫瞄分歧屏的信息时,大概并没有跳转到分歧的页面,而是在统一个页面的分歧窗体间举行跳转。
01<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="MobileDefault.aspx.cs"
02Inherits="MobileDefault"%>
03<%@RegisterTagPrefix="mobile"Namespace="System.Web.UI.MobileControls"
04Assembly="System.Web.Mobile"%>
05<htmlxmlns="http://www.w3.org/1999/xhtml">
06<body>
07<mobile:Formid="Form1"runat="server">
08<mobile:Labelid="lblID"Runat="server">CustomerID</mobile:Label>
09<mobile:TextBoxid="txtCustID"Runat="server"></mobile:TextBox>
10<mobile:Commandid="cmdGetCustomer"Runat="server">FindCustomer
11</mobile:Command>
12</mobile:Form>
13</body>
14</html>
ASP.NET挪动WEB窗体的开辟视图VisualStudio2005的开辟情况中供应了三种视图举行ASP.NET挪动WEB窗体的计划和开辟。这三种视图分离为计划视图、HTML视图和代码视图,我们能够针对分歧的开辟需求在这些视图间举行切换。如今我们就这三种视图举行一个冗长的提要。
计划视图
计划视图形态下将加载挪动WEB窗体,而且主动出现窗体中所包括的挪动控件。你能够从工具箱中以拖拽的体例增加新的控件,你也能够经由过程属性窗口修正已存在的控件的属性。假如想要移除窗体中的某些控件的话,你能够点选该控件并利用"Delete"键举行删除。
注重,ASP.NET挪动WEB窗体的计划视图并非一个"可见便可得"的编纂器,这是由于分歧的挪动设备其撑持的出现体例是分歧的。比方,在计划视图形态下一般一行只能安排一个控件,可是在某些设备上撑持在统一行安排多个控件,因而各个控件将会只管地停靠在统一行上。正由于云云,我们还必要注重ASP.NET挪动WEB窗体其实不撑持控件的相对地位。
在计划器中,您能够依照但愿控件显现给用户的按次将它们增加到窗体或面板中,可是不克不及界说当它们出现在挪动设备的屏幕上时所处的相对地位。为了顺应多种多样的挪动设备,ASP.NET挪动计划器使您可以针对特定设备自界说挪动Web窗体页和控件的表面。这类天真性使您能够确保:您的使用程序在方针设备上具有合用且吸惹人的表面。
HTML视图
HTML视图形态下显现的是HTML源代码,你能够接纳间接编码的体例设置挪动控件和窗体的结构。固然我们已很少利用这类体例举行程序的开辟,你完整能够在计划视图形态下设置挪动控件和窗体的结构,尔后VisualStudio2005会主动天生响应的页面代码。
你能够在VisualStudio2005开辟文档窗体的底部选择符合的标签举行计划视图和HTML视图的切换,如图中箭头所示:
代码视图
在接纳代码后置的体例下,我们能够切换到代码视图形态检察页面程序的逻辑代码。你能够在页面的空缺出单击右键,然后选择"检察代码"项就能够切换到代码视图形态。
ASP.NET挪动控件的事务处置
和传统的ASP.NET控件一样,挪动控件也能够在特定的形态下引发事务,并供应了一些默许事务来处置常常产生的计划。除此以外,挪动控件也能够在某些情形下引发一些别的的处置事务(非默许的事务)。传统的ASP.NET程序中,用户经由过程扫瞄器实行某些操纵时会引发响应的事务,挪动设备扫瞄器也接纳了相似的处置体例。我们能够将一个事务经由过程回发的体例传送到服务器端,继而激发服务器端对该事务的处置,终极的处置了局将以HTML的情势传送到客户端扫瞄器。处置一个由挪动控件引发的默许事务长短常简单的,我们只需在页面中安排一个挪动控件并双击该控件便可。上面为一个较罕见的事务处置代码,即一旦用户单击命令按钮就引发其Click事务。
protectedvoidcmdGetCustomer_Click(objectsender,EventArgse)
{……}
创立一个非默许的事务处置器也长短常简单的,我们如今无需思索言语的相干性。假如你已经利用过Visual
Studio2003的话,你会发明用VB.NET来处置事务要比C#庞大。在以后的VisualStudio版本中已将这两种言语的操纵历程举行了一致,上面的步骤就是创立一个非默许事务处置器的具体步骤:
1.在形态视图中点选要设置事务的控件。
2.在属性窗口当选择事务按钮,也就是谁人带有闪电标志的按钮。单击后就会在属性窗体中显现控件的一切的可用事务。
3.双击你想处置事务的右边空缺栏,这时候将切换到响应事务的代码视图形态。
利用容器控件
在ASP.NET挪动WEB窗体中供应了两种容器控件:Form控件和Panel控件。几近一切的挪动控件都是安排在这两种控件当中,惟独StyleSheet控件破例。StyleSheet控件能够独自地安排在页面中,该控件将会在今后的大节中举行具体的先容。我们能够将属于统一组功效的挪动控件都安排在一个容器控件中,如许使得程序的页面布局加倍的明晰。我们还能够为一个容器控件设置特定的款式表,一切位于该容器的挪动控件将会具有分歧性的用户体验。注重,在页面中增加的容器控件是没有流动巨细的,由于它将跟着你在个中安排的控件而主动地举行调剂,因而我们不成以显式地为容器控件指定一个特定的巨细。
ASP.NET挪动WEB窗体对一切的控件都利用线性结构,即每行只放一个控件。这是由于浩瀚的挪动设备之间存在伟大的差别,特别是一些撑持WML的设备其实不撑持控件的并排显现。可是假如强迫利用很多控件都撑持的BreakAfter属性的话,则有响应的显现才能的设备大将启用并排显现的结构。别的,它会主动顺应不撑持并排出现的设备的出现划定规矩。将BreakAfter属性设置为false将唆使ASP.NET在一切具有响应显现才能的设备上并排安排控件。为了顺应多种多样的挪动设备,ASP.NET挪动计划器使您可以针对特定设备自界说挪动Web窗体页和控件的表面。我将在前面的"设备选择器"大节中具体先容怎样开辟针对特定设备的使用程序。
Form控件
一切的内容和控件都包括在Form控件中,并且每一个ASP.NET挪动WEB页面最少要包括一个Form控件,而且该页面能够包括多个Form控件。可是,当这些控件显现在挪动设备上时,挪动Web使用程序一次只能显现一个挪动Form控件。当你增加一个挪动WEB窗体时会主动在页面上创立一个默许的Form控件。假如你必要在页面中增加多个Form控件时,能够在工具箱中间接拖拽出。
用户扫瞄到某挪动Web窗体页时,默许情形下将显现该页面上的第一个Form控件。你也能够经由过程编码的体例间接在页面的Page_Load事务中指定一个Form控件为以后的举动窗体。固然你也能够接纳编码的体例而且依据用户的输出信息导航到响应的Form控件上。在统一个页面的分歧Form控件之间导航其实不必要经由过程服务器的处置,因而能够极年夜地进步程序的呼应速率。将一个页面构造成多个Form控件另有个长处,那就是能够在分歧的Form控件间传送一些丰厚的形态信息。由于一个页面上的一切Form控件都共享不异的代码埋没文件和页面形态信息,因而各个Form控件都能够共享不异的办法和成员。
因为ASP.NET挪动WEB程序一般是在一些小屏幕的挪动设备上运转的,为了顺应这类特定的显现情况,你必要将一个一般的ASP.NETWEB页面分化成多个挪动WEB页面。假如没有Form控件的话,这类分化历程长短常冗杂的,由于你必要在ASP.NETWEB页面和挪动WEB页面间创建一个一对多的映照,如许使得程序难以保护。
最符合的体例就是在一个挪动WEB页面安排多个Form控件,如许使得ASP.NETWEB页面和挪动WEB页面是一个一对一的镜像干系。在面临数据量较年夜的挪动WEB页面时,将一切的Form控件在页面初始化时就全体加载到挪动设备的呼应时分是相称长的。可是一旦加载到挪动设备后在各个Form控件举行导航的速率又长短常快的,由于统统信息都寄存在当地的内存中。这类页面的加载办法整体上仍是利年夜于弊的,开辟职员能够依据实践的需求加以衡量,并且统一页面上的一切Form控件能够共享不异的代码埋没文件和页面形态信息。
Panel(面板)控件
利用Panel控件可将窗体中的控件举行分组。这使您能够对全部组使用StyleSheet控件。面板还能匡助使用程序断定分页。ASP.NET会只管将一个面板中的一切控件都同时显现在屏幕上。
若要将面板增加到使用程序中,请从"工具箱"中将其拖放到使用程序。面板中的一切控件都承继该面板的款式。能够将面板拔出Form控件或其他面板中。使用程序埋没或显现面板时,它将对该面板包括的控件使用不异的操纵。别的,使用程序还可将面板控件用作静态创立的控件的容器。
Panel控件必需放在Form控件中、另外一Panel控件中或控件模板中。除StyleSheet控件、DeviceSpecific控件和Form控件外,一切其他控件也都必需放在Form或Panel控件中。
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。 |
|