第8章 Web应用程序开发

上传人:dfg****19 文档编号:248302278 上传时间:2024-10-23 格式:PPT 页数:26 大小:329KB
返回 下载 相关 举报
第8章 Web应用程序开发_第1页
第1页 / 共26页
第8章 Web应用程序开发_第2页
第2页 / 共26页
第8章 Web应用程序开发_第3页
第3页 / 共26页
点击查看更多>>
资源描述
*,*,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,8,章,Web,应用程序开发,本章要点:,什么是,Web,应用程序,Web,应用程序的特点,ASP.NET,服务器端控件,在,Web,应用程序中访问数据库,8.1 Web,版的“你好,,Visual Basic.NET,!”,8.1.1,第一个,Web,应用程序,进入开发环境后,建立一个新项目,Case8_1,,但是这一次与以前不同,要选择建立的是一个“,ASP.NET Web,应用程序”,如图,8.1,所示。,应用程序建立以后,将会看到,Visual Basic.NET,自动生成了一个叫做,WebForm1,的窗体,这是一个,Web Forms,窗体,与以前的,Windows Forms,窗体有许多相似之处,但是由于其运行在,Web,上的特点,两者并不完全相同。,最显著的一点就是它没有明显的边界,这一点很好理解:可以回想一下,平时上网看到的网页也没有如,Windows,窗体那般明显的边界。,另外一个不同点就是在,Web Forms,窗体上只能够放置,Web,窗体控件。事实上,如果看看工具箱,就会发现工具箱中显示的是如图,8.2,所示的,Web,窗体控件页,而没有,Windows,窗体控件页。,8.1.2,在浏览器中执行,Web,应用程序,8.1.3Web,应用程序如何运行,由于这是本书的第一个,Web,应用程序,在这里有必要首先解释一下,Web,应用程序本身“是什么”。,Web,应用程序可以看做是一个或几个协同工作的,Web,页面,如果是几个页面,它们之间往往会互相传递信息,根据用户的输入做出相应的反应。,Case8_1,虽然只有一个页面,但是也可以看成是这个页面与它自身传递信息以做出适当的反应。事实上,在运行这个程序期间,计算机“偷偷地”做了很多事情:,(,1,)按,F5,键,相当于在浏览器中输入“,http:/localhost/Case8_1/WebForm1.aspx”,;,(,2,)服务器接受请求,运行,WebForm1.aspx,中的程序,把结果返回到浏览器;,(,3,)用户单击“,Say Hello”,按钮,浏览器把请求发回到服务器;,(,4,)服务器接受请求,再次运行,WebForm1.aspx,中的程序,把结果返回到浏览器。,可以看到,就是这么一个简单的程序,却包含了浏览器与服务器之间的两次信息来回,这也正是,Web,应用程序的特点:几乎每一个动作都会引起浏览器与服务器的通讯,所以比起本地的应用程序来,效率比较低。,理解了,Web,应用程序,可能不会对程序本身有什么疑问,因为它与,Windows,应用程序太相像了:都是把控件放到窗体上,都是编写事件代码,运行起来也几乎没什么区别。但是,应该意识到,这些表面上的相似性都是,Web Forms,的功劳,是它使我们能够以如此一致的方式创建这两种完全不同的应用程序。在下一个案例中,会对这一切作深入地探讨。,8.2 ASP.NET,ASP,是近些年来,Windows,平台上使用最广泛的服务器端页面语言之一。确实,即使你从没有做过,Web,编程,那也接触过它,在常去的网站中,就有很多页面带有“,asp”,这个扩展名的。,ASP,的页面嵌入式语言特性,以及它与,ActiveX,的完美结合都给程序员带来了很大的方便。,如果你是一个,ASP,程序员,或者对,ASP,有所了解的话,那么理解,ASP.NET,(原来叫,ASP+,)最快的办法是一句话:“,ASP.NET,是下一代的,ASP,,并且是建立在,.NET,框架上的,ASP,。”但是,仅仅这么一句话还是失之偏颇了,因为,ASP.NET,并不是简单的对原有的,ASP,的补充和增强,也不是仅仅加上了一些,.NET,,而是真正从底层重新创建了的,ASP,。,从表面特征来看,,ASP.NET,与,ASP,相比至少有两大优点。,(,1,)执行速度更快,传统的,ASP,是纯解释型的,也就是说每一次执行时,都要先“阅读”,ASP,源代码,然后“翻译”成可执行码,最后才执行。而,ASP.NET,是编译执行的,在第一次执行的时候,“阅读”和“翻译”的过程还要进行,但是“翻译”的结果被保留下来,在以后就直接执行了,除非源代码做了改变。,(,2,)代码更简洁,原本,400,行的,ASP,代码完成的功能往往只用,20,行的,ASP.NET,代码就可以完成。,以上谈到的是一些理论,事实上,上一个案例中已经用到了,ASP.NET,。,Web Forms,就是,ASP.NET,的组成部分。,为了让你有一个深刻的了解,在这个案例中将重写,Web,版本的“你好,,Visual Basic.NET”,。这一次我们不用集成开发环境,而是用编写,ASP,的传统方式,使用记事本(或者其他文本编辑器)来完成。,8.2.1,手工编写一个,Web,应用程序,Sub,btnHello_Click(Src,As Object,e As,EventArgs,),txtHello.Text,=,你好,Visual Basic.NET!,End Sub,8.2.2,手工运行,Web,应用程序,在上个案例中曾经讲过在浏览器中输入“,http:/localhost/Case8_1/WebForm1.aspx”,可以访问,Case8_1,的运行结果,这里,localhost,实际上就是默认网站,它运行在本地机上。,IP,协议规定,IP,地址,127.0.0.1,指的就是本机,所以如果要运行这个案例,可以在浏览器中输入“,http:/127.0.0.1/Case8_2/Case8_2.aspx”,,当然输入“,http:/localhost/Case8_2/Case8_2.aspx”,同样可以运行,二者是等价的。,8.2.3,点评:,ASP.NET,下面来看看代码,这段代码也许从后面看起来更好一些,我们先看这一段:,你可能会注意到两个显眼的“,asp:”,标示,这是,ASP,前缀,用来表明一个,ASP.NET,控件(也就是,Web Forms,控件)。这里的两个控件(,TextBox,和,Button,)在上个案例中已经介绍过了,事实上集成开发环境的工作就是自动加上这两句话。在后面有“,runat,=server”,的字样,这表明它们都是服务器端的控件。简单地说,这些控件是运行在服务器端的,而且帮助客户与服务器进行交互。,在,Button,控件中有这样一句:,OnClick,=,btnHello_Click,,这是在声明事件处理程序,那么事件处理程序在哪里呢?就在页面的开头部分:,Sub,btnHello_Click(Src,As Object,e As,EventArgs,),txtHello.Text,=,你好,Visual Basic.NET!,End Sub,页面上的所有函数、过程都必须定义在,块中,这与传统,ASP,差不多。如果仅仅看这个过程本身,根本无法分辨出这是一个,Windows,应用程序中的事件处理程序还是,Web,应用程序中的事件处理程序。前面已经介绍过,在,Web Forms,的帮助下(现在可以说是在,ASP.NET,的帮助下),这两者达到了高度的统一。,8.3 Web,窗体控件,8.3.1,建立,Web,日历程序,建立一个,ASP.NET Web,应用程序,Case8_3,。把一个,Calendar,控件从“,Web,窗体”工具页拖曳到,Web,窗体上,命名为,cldDate,,注意现在要更改的是,(ID),)而不是,(name),。,Calendar,控件的默认样式非常单调,但是,在它的“属性”页中可以看到很多可以更改的属性。,8.3.2,运行,Web,日历程序,8.3.3,验证控件,首先,可以看到,对,ListBox,的操作与,Windows Forms,的,ListBox,基本相同,这里不再赘述。,这里最重要的内容是关于,Validator,(验证),它们是用来验证用户输入的有效性的,,ASP.NET,一共提供了,5,种,Validator,,分别是,ReqiredFieldValidator,(验证某个输入是否为空),,CompareValidator,(将某个输入与既定的值相比较),,RangeValidator,(看某个输入是否在既定的范围内),,RegularExpressionValidator,(看某个输入是否满足给定的正则表达式),以及,CustomValidator,(用户自定义的验证)。有了这,5,种工具,就可以很方便地验证用户输入了。在程序中用到了其中两种,其他的,3,种在用法上大致相同,都使用,ControlToValidate,属性来设置要验证的控件,而用其他的属性(如,RangeValidator,的,Minimum,和,Maximum,)来设置验证条件。,但是同时也应该看到,验证控件不是万能的。在判断某个月份的日期是否有效时,,Validator,就没办法很好地完成任务,以至于我们要在服务器端补充验证代码,.,8.4 HTML,控件,第一个是效率。这一点在后面会讲到,,HTML,控件基本上就是对,HTML,语言中的元素的直接对应,与,Web,窗体控件不同,这些控件在放到页面上以后(如果不把它们转成服务器控件的话),直接作为,HTML,元素来处理。换句话说,不必经过编译和运行的过程,从而运行的速度要快得多。所以,如果对一个控件的功能要求很简单的话(比如,放上一个,Label,控件,只是为了显示一行不变的字),那么可以考虑,HTML,控件。,第二个是对页面的控制。由于,HTML,控件是直接被作为,HTML,元素处理,所以它们在运行时显示出的外观与设计时的一模一样。,第三个是考虑到向下兼容。,Web,窗体控件在传统,ASP,中根本就不存在,所以如果只提供,Web,窗体控件,那么程序员在把传统,ASP,代码升级到,ASP.NET,的时候就要做相当大的改变,而,HTML,控件减少了这种改变的需要。,在这个案例中,我们会使用,HTML,控件编写一个简单的,Web,应用程序,从中可以看出虽然,HTML,控件功能简单,但是只要善用,它也可以工作得很好。,8.4.1,用,HTML,控件设计,Web,应用程序,8.4.2,程序运行,8.4.3,点评:服务器控件,这个程序确实很简单,但是有些东西值得解释,首先是关于什么是“作为服务器控件运行”的问题。,前面介绍过,HTML,控件在不作为服务器控件运行的时候,就相当于一行普通的,HTML,语句,服务器对它不做任何处理,而是原原本本地把它送到浏览器中去。事实上,如果查看程序窗体的,HTML,代码,会看到有这样一行:,请输入你的名字,这就是那个永远不变的,Label,控件,服务器根本不把它作为什么“控件”,而是作为一行文字来看待,所以它没有自己的行为,也没有除了,HTML,元素定义之外的属性。,而如果把,HTML,控件作为服务器控件运行,服务器就将对它进行处理,这就是为什么一定要把一个控件转成服务器控件才能控制它的行为。,在,HTML,代码中,,Text Field,控件和,Button,控件是这样存在的:,注意后面的“,runat,=server”,字样,这标志着它们是服务器控件。而相应的,在代码文件中,也会看到对它们的定义:,Protected,WithEvents,txtName,As,System.Web.UI.HtmlControls.HtmlInputText,Protected,WithEvents,btnSayHello,As,System.Web.UI.HtmlControls.HtmlInputButton,8.5,访问数据库,前面已经学过了使用,Visual Basic.NET,开发基于窗口的数据库应用程序,有了,ADO.NET,的帮助,这个过程的确简单。而在,Web,应用程序中,这种简单的特性一点也没有变,这个案例就演示如何开发基于,Web,的数据库应用程序。事实上,由
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 工业自动化


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!