第02章ASP应用程序基础_第1页
第02章ASP应用程序基础_第2页
第02章ASP应用程序基础_第3页
第02章ASP应用程序基础_第4页
第02章ASP应用程序基础_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、返回返回第第2章章 ASP.NET应用程序基础应用程序基础2.1 ASP.NET应用程序应用程序2.2 ASP.NET应用程序结构应用程序结构2.3 ASP.NET页面框架页面框架2.4 综合应用综合应用返回返回2.1 ASP.NET应用程序应用程序2.1.1 Web应用程序应用程序在开发的ASP.NET应用程序中最多的是ASP.NET Web应用程序类型,也就是ASP.NET Web窗体应用程序。例如,通常的ASP.NET网站就是这类的应用程序。最简单的ASP.NET Web应用程序包含一个目录,其中至少包含一个.aspx文件,即ASP.NET页。除了应用程序目录和.aspx文件外,ASP.

2、NET Web应用程序还可以包含配置文件(web.config)、用户控件文件(.ascx文件)、应用程序配置文件(global.asax)、代码隐藏文件(.cs或 .vb文件)、程序集(.dll)和提供额外功能的类文件等。2.1.2 移动移动Web应用程序应用程序2.1.3 Web服务服务返回返回2.2 ASP.NET应用程序结构应用程序结构Web窗体页(.aspx文件):这是ASP.NET应用程序的基础。Web服务(.asmx文件):为其他计算机提供共享应用程序的服务。代码隐藏文件:这取决于应用程序的开发语言及代码模型,如果采用代码隐藏机制,将会产生一些源代码文件,例如选择C#作为开发语言

3、,就产生.cs文件。 配置文件(web.config):该文件是XML格式的文件,包含各种ASP.NET功能的配置信息。Global.asax文件:用于处理应用程序级事件的可选文件,该文件驻留在ASP.NET应用程序的根目录下。用户控件文件(.ascx):该文件定义可重复使用的自定义用户控件。其他组件:包含其他组件的第三方程序集,如.dll文件等。返回返回2.2.1 应用程序目录结构应用程序目录结构每个Web应用程序都有一个目录,为了更易于管理和使用,ASP.NET保留了一些可用于特定内容的文件和目录名称。表2.1列出了保留的目录名及其通常包含的文件。目 录 名说 明App_Browsers包

4、含ASP.NET用于标识个别浏览器并确定其功能的浏览器定义文件(.browser)App_Code包含源代码文件(如.cs、.vb和.jsl文件)。这些文件通常作为应用程序的一部分,可以被编译成实用工具类和业务对象。在动态编译的应用程序中,当向应用程序发出首次请求时,ASP.NET会编译此目录中的代码。应用程序将自动引用该目录中的代码。如果此目录中的文件发生改变,将重新编译App_Data包含应用程序数据文件,包括MDF文件、XML文件和其他数据存储文件。ASP.NET使用此目录来存储应用程序的本地数据库App_GlobalResources包含编译到全局范围程序集当中的资源(.resx和.r

5、esources文件)App_ LocalResources包含与应用程序特定页、用户控件或母版页关联的资源(.resx和.resources文件)App_Themes包含用于定义ASP.NET网页和控件外观的文件集合(.skin和.css文件及图像文件和其他资源)App_WebReferences包含用于在应用程序中使用的Web引用的引用协定文件(.wsdl文件)、XML架构(.xsd文件)和发现文档文件(.disco和.discomap文件)Bin包含已编译程序集(.dll)文件。这些程序集通常是在应用程序中引用的控件、组件或其他代码。应用程序将自动引用此目录中的代码所表示的任何类表2.1

6、 ASP.NET 应用程序目录结构返回返回2.2.2 应用程序生命周期应用程序生命周期h 1应用程序生命周期概述应用程序生命周期概述表2.2描述了ASP.NET应用程序生命周期的各个阶段。h 2生命周期事件和生命周期事件和Global.asax文件文件在应用程序的生命周期期间,应用程序会引发可处理的事件并调用可重写的特定方法。若要处理应用程序事件或方法,可以在应用程序根目录中创建一个名为Global.asax的文件。这些事件包括:Application_Start和Application_End事件返回返回2.3 ASP.NET页面框架页面框架 2.3.1 aspx页面代码模式页面代码模式在A

7、SP.NET中,这些代码可以用两种模式存储:一种是单文件页模型,另一种是代码隐藏页模型。在代码隐藏页模型中,显示信息的代码与逻辑处理的代码分别放在不同的文件中;在单文件页模型中,将两种代码放置在同一个文件中。新建aspx网页时可以选择代码存储方式。设置的方法如图2.1所示。 图2.1 选择代码存储模式返回返回2.3.2 aspx页面元素页面元素每个aspx文件一般包含3部分元素:l 页面指令页面指令l 代码脚本块代码脚本块l 页面内容。页面内容。指令是以括起来的代码,脚本块是由标签对括起来的程序代码。在代码脚本块中可以定义页面的全局变量及程序处理过程等。页面内容的形式与标准HTML页面基本一致

8、。除了标准页面所具有的元素外,还包含一个form元素、一些Web服务器控件及相关程序代码。为了使Web服务器控件能正常工作,必须将其放置于标签对内部。在上面的例子中,Label控件、TextBox控件和Button控件均在form元素内部。返回返回2.3.3 ASP.NET页面布局页面布局h 1页面整体结构布局页面整体结构布局常用的网页布局方式有两种:一种是传统的表格布局,优点是布局直观方便,缺点是日后调整布局麻烦,网页显示速度慢(整个表格下载结束后才能显示);另一种是利用DIV+CSS布局,也是当前网页设计中主要采用的方法。(1)表格布局表格布局。利用表格布局主要通过将网页中的内容分为若干个

9、区块,用表格的单元格代表区块,然后分别在不同的区块内填充内容,如图2.2所示。图2.2 表格布局返回返回返回返回(2)DIV+CSS布局布局。DIV+CSS的页面布局是Web2.0时代提倡的一种页面布局方式,是一种比较灵活方便的布局方法。对于DIV+CSS布局的页面,浏览器会边解析边显示。实际上DIV+CSS布局的最大优点是体现了结构和表现的分离,方便日后网站的维护和升级。DIV+CSS网页布局的基本流程如下: 规划网页结构,把网站整体上分为几个区块,规划好每个区块的大小和位置。 把区块用DIV标签代替,设置好每个DIV的大小和样式。 通过布局属性设置DIV的位置布局。返回返回2.3.3 AS

10、P.NET页面布局页面布局要控制DIV的布局属性,可以采用Visual Studio 2008的样式生成器里边的【布局】来设置,主要用到如下几个属性。允许对象浮动(float),可取值: “不允许边上显示对象(none)”,即在DIV的两边不能显示其他的元素,独占一行。 “靠左(left)”,允许对象向左浮动。“靠右(right)”,允许对象向右浮动。清除浮动对象(clear,代表浮动清除),可取值:“任何一边(none)”,DIV的任何一边都可以有浮动对象。“仅右边(right)”,DIV的右边允许出现浮动对象,左边的元素被清除。“仅左边(left)”,DIV的左边允许出现浮动对象,右边的元

11、素被清除。“不允许(both)”,DIV的两边不允许出现浮动对象,两边的元素都被清除。返回返回2.3.3 ASP.NET页面布局页面布局两栏布局,即网页主体部分由两栏组成,如图2.3所示。整个网页插入一个宽800像素的DIV,在其内部再放入其他的DIV。顶部是标题栏,底部是版权栏,主体分为两栏,“内容栏”宽500像素,“侧栏”宽300像素。为了能够让“内容栏”偏到左边,需设置其float属性为left,为了让“侧栏”偏到右边,需设置其float属性为right。为了让“版权栏”两边没有别的元素,需设置其clear属性为both。如栏数超过两个,则可以通过层嵌套,把其分隔成如上的布局。例如3栏,

12、则可以如图2.4所示布局。 图2.3 页面布局 图2.4 多栏页面布局返回返回2.3.4 页面指令页面指令页面指令指定一些设置,由页和用户控件编译器在处理ASP.NET Web窗体页(.aspx文件)和用户控件(.ascx)文件时使用这些设置。使用指令时,标准的做法是将指令放置于文件的顶端。每个指令都包含一个或多个属性与值,形式如下:表2.6列出了ASP.NET提供的页面指令。指 令说 明 Assembly以声明方式将程序集链接到当前页或用户控件 Control定义ASP.NET页分析器和编译器使用的控件特定的属性;只能包含在.ascx文件(用户控件)中 Implements以声明方式指示页或

13、用户控件实现指定的.NET Framework接口 Import将命名空间显式导入页或用户控件中 Master将页标识为母版页,并定义ASP.NET页分析器和编译器使用的属性;只能包含在.master文件中 MasterType定义用于确定页的Master属性类型的类或虚拟目录 OutputCache以声明方式控制页或用户控件的输出缓存策略 Page定义ASP.NET页分析器和编译器使用的页特定的属性;只能包含在.aspx文件中 PreviousPageType创建一个强类型的引用,该引用指向来自跨页发送的目标的源页 Reference以声明方式将页、用户控件或COM控件链接到当前的页或用户控

14、件 Register将别名与命名空间和类相关联,以便在用户控件和自定义服务器控件被纳入到请求页或用户控件中时得以呈现表2.6 ASP.NET页面指令返回返回2.3.4 页面指令页面指令h1Page指令指令Page指令用于定义特定于页面的属性,ASP.NET页分析器和编译器根据此属性来编译页面。Page指令只能置于aspx文件中,并且一个页面只允许出现一条Page指令。Page指令包含很多属性,表2.7描述了Page指令的部分属性。h2Import指令指令Import指令的功能是将命名空间显式导入到ASP.NET应用程序文件(如网页、用户控件、母版页或Global.asax文件)中,同时使导入的

15、命名空间的所有类和接口可用于文件。导入的命名空间可以是.NET Framework类库或用户定义的命名空间的一部分。Import指令的语法为:导入命名空间后,用户在编写程序时可直接使用所导入的命名空间的所有类和接口,而无须使用完全限定名来访问这些类和接口。例如,要创建DataTable类的一个实例,如果不导入System.Data命名空间,则需要使用完全限定名来创建实例,代码如下:System.Data.DataTable dt = new System.Data.DataTable();若把System.Data命名空间导入后,则可以使用简化的代码:DataTable dt = new Da

16、taTable();返回返回2.3.4 页面指令页面指令h3Assembly指令指令Assembly指令支持两个属性,分别是Name和Src。(1)Name:允许指定用于关联页面文件的程序集名称。程序集名称应只包含文件名,不包含文件的扩展名,ASP.NET引擎会按照系统路径逐一搜索,同时也会查找Web应用程序的Bin目录。例如,文件是MyAssembly.cs,Name属性值应是MyAssembly。(2)Src:允许指定编译时所使用的程序集源文件,需要指明源文件的全路径。例如,文件是MyAssembly.cs,Src属性值应是MyAssembly.cs。在同一个页面中,可以使用多条Assem

17、bly指令,但是在同一条Assembly指令中,Nam和Src属性只能任选其一。下面是使用Assembly指令的两个例子:返回返回2.3.4 页面指令页面指令h4Reference指令指令Reference指令支持3个属性,分别是Page、Control和VirtualPath。(1)Page:指定外部页,ASP.NET 应动态编译该页并将它链接到包含 Reference 指令的当前文件。(2)Control:指定外部用户控件,ASP.NET 应动态编译该控件并将它链接到包含 Reference 指令的当前文件。(3)VirtualPath:引用的虚拟路径,可以是任何文件类型。例如,它可能会指

18、向母版页。下面是使用 Reference指令的3个例子:返回返回2.3.4 页面指令页面指令h 5Register指令指令Register指令支持5个属性,分别是assembly、namespace、src、tagname和tagprefix。(1)assembly:指定与 tagprefix 属性关联的命名空间所驻留的程序集。程序集名称不能包括文件扩展名。(2)namespace:指定正在注册的自定义控件的命名空间。(3)src:指定与tagprefix:tagname对关联的声明性ASP.NET用户控件文件的位置(相对的或绝对的)。(4)tagname:指定与类关联的任意别名。此属性只用于

19、用户控件。(5)tagprefix:指定一个任意别名,它提供对包含指令的文件中所使用的标记的命名空间的短引用。下面是使用 Register指令把用户控件导入页面的1个例子:h 6Implements指令指令Implements指令的功能是允许ASP.NET实现特定的.NET Framework接口,如果页面需要实现多个接口,可以使用多条Implements指令。Assembly指令仅支持interface属性,指定要在页或用户控件中实现的接口。下面是使用 Implements指令的1个例子:返回返回2.3.4 页面指令页面指令h 7其他指令其他指令除了上面介绍的指令外,还有如下指令。(1)Co

20、ntrol指令:该指令与Page指令类似,用来定义ASP.NET页分析器和编译器使用的特定于用户控件(.ascx文件)的属性。此指令只能用于ASP.NET用户控件(其源代码包含在.ascx文件中)。(2)Master指令:该指令定义ASP.NET页分析器和编译器使用的特定于母版页(.master文件)的属性。(3)MasterType指令:该指令提供一种方法,用于当通过Master属性访问ASP.NET母版页时,创建对该母版页的强类型引用。(4)PreviousPage指令:该指令提供一种方法来获得上一页的强类型,可通过PreviousPage属性访问上一页。(5)OutputCache指令:

21、该指令以声明的方式控制ASP.NET页或页中包含的用户控件的输出缓存策略。返回返回2.3.5 页面生命周期页面生命周期一般来说,页要经历表2.8概述的各个阶段。除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页。表2.8列出了常规页的生命周期阶段。阶 段说 明页请求页请求发生在页生命周期开始之前。用户请求页时,ASP.NET将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应开始在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack

22、属性。此外,在开始阶段期间,还将设置页的UICulture属性页初始化页初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值加载加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性验证在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性回发事件处理如果请求是回发请求,则将调用所有事件处理程序呈现在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会针对每个控件调用Re

23、nder方法,它会提供一个文本编写器,用于将控件的输出写入页的Response属性的OutputStream中卸载完全呈现页并已将页发送至客户端、准备丢弃该页后,将调用卸载。此时,将卸载页属性(如Response和Request)并执行清理表2.8 常规页生命周期阶段返回返回2.3.6 页面事件页面事件表2.9列出了最常用的页生命周期事件。除了列出的事件外还有其他事件,不过,大多数页处理方案不使用这些事件。返回返回2.4 综合应用综合应用【例2.1】 创建简单的ASP.NET应用程序架构。h1功能设计功能设计创建一个网站项目,在网站中添加全局应用程序类文件Global.asax ,在Appli

24、cation_Start事件中初始化一个全局的计数器变量;创建两个网页,分别属于代码隐藏页模型和单文件页模型,功能均为在网页加载时读取全局计数器变量值,并在网页中显示;另外在网站中再添加App_code和App_Data文件夹以备用,最后浏览网页查看效果。h2实现过程实现过程(1)新建一个网站,命名为Example2-1。(2)在ASP.NET应用程序的生命周期期间,应用程序会引发可处理的事件并调用可重写的特定方法。若要处理应用程序事件或方法,就应该在应用程序根目录中创建一个名为 Global.asax 的文件。右键单击网站名,选择“添加新项”,在如图2.5所示对话框中选择“全局应用程序类”模板,即可创建Global.asax文件。返回返回2.4 综合应用综合应用图2.5 添加全局应用程序类返回返回2.4 综合应用综合应用(3)在Global.asax文件的Appli

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论