ASP.NET 4.0复习笔记一:应用程序与页面架构
一:页面架构
ASP.NET4.0的页面架构分为两类:
①内联代码模型:所有代码都放在一个页面。
②内联代码模型:应用了部分类的特性,将表示逻辑代码放在.aspx页面,业务逻辑代码放在.aspx.cs或.aspx.vb页面,然后在运行时在后台合并页面的代码。
二:指令
指令都是编译器在编译页面时使用的命令,通过使用指令可以控制ASP.NET页面的行为。最好把指令放在页面或用户控件的顶部。
指令格式:<%@ [Directive] [Attribute = value] %>,可添加多个Attribute。
ASP.NET或用户控件中的指令共有11中(各指令的详细属性书名可参考ASP.NET 指令语法大全),分别为:
- @ Page指令:允许为ASP.NET页面(.aspx)指定分析和编译页面时使用的属性和值。
- @ Master指令:与@ Page类似,但只能用于母版页(.master)。
- @ Control指令:与@ Page类似,但只在构建ASP.NET用户控件时使用。
- @ Import指令:允许指定要导入到ASP.NET页面和用户控件中的名称空间。想要导入多个名称空间时,只能放在多行代码上。例如:<% @Import Namespace="System.Data" %> <% @Import Namespace="System.Data.SqlClient" %>
- @ Implements指令:允许ASP.NET页面实现特定的.NET Framework接口。
- @ Register指令:把别名与名称空间和类名关联起来,作为自定义服务器控件语法中的记号。例如把一个用户控件拖放到.aspx页面就运用到了@Register指令。
- @ Assembly指令:在编译时把程序集附加到ASP.NET页面或者用户控件上,从而使改程序集中的所有接口和类都可用页面。
- @ PreviousPageType指令:指定跨页面的传送过程起始于哪个页面。
- @ MasterType指令:把一个类名关联到ASP.NET页面上,以获得指定母版页中包含的强类型化的引用或成员。
- @ OutPutCache指令:用于控制ASP.NET页面或用户控件的输出高速缓存策略
- @ Reference指令:另一个ASP.NET页面或用户控件应该与当前活动的页面或控件一起编译。
三:ASP.NET的页面事件
可用的页面事件:
- AbortTransaction:当用户结束事务时发生
- CommitTransaction:当事务完成时发生
- DataBinding:当服务器控件绑定到数据源时发生
- Disposed:当从内存释放服务器控件时发生
- Error:当引发未处理的异常时发生
- Init:当服务器控件初始化时发生
- Load:当服务器控件加载到page对象中时发生
- PreRender:在页面加载控件之后、呈现之前发生
- Unload:当服务器控件从内存中卸载时发生
4.0新增事件:
- InitComplete:表示完成了页面初始化
- LoadComplete:表示页面完全加载到内存中。
- PreInit:表示页面初始化前的那一刻。
- PreLoad:表示页面加载到内存前的那一刻。
- PreRenderComplete:表示页面显示在浏览器之前的那一刻。
四:处理回送
五:跨页面的传送
即提交窗体,并将这个窗体和所有的控件值传送给另一个页面。
可参考:ASP.NET跨页面的控件调用
六:ASP.NET应用程序文件夹
- ASP.NET4使用的是基于文件的方法,也就是说可以在应用程序中增加任意多个文件和文件夹,而不用每次再给解决方案添加新文件时重新编译它们。
- ASP.NET程序有一个已经定义好的文件夹结构,使用定义好的文件夹就可以自动编译代码,在整个应用程序中访问应用程序主题,并在需要时可以使用全局资源。文件夹结构如下:
① App_Code文件夹:用于存储类、.wsld文件和类型化的数据集。存储在这个文件夹中的所有项都可以自动用 于解决方案中的所有页面。
②App_Data文件夹:存放应用程序使用的数据存储,可包含.mdf、.mdb、XML文件等。应用程序所使用的账 户具有对App_Data文件夹中任意文件的读写权限(该用户账户默认为ASPNET账户)。
③App_Themes文件夹:为站点上的每一个页面提供统一的外观,通过将.skin、CSS和站点上的服务器控件构 建的主题存储在本文件夹中来实现。
④App_GlobalResources文件夹:添加程序资源文件(.resx),它们会自动编译并成为解决方案的一部分,供应 用程序中的所有.aspx页面使用。(资源文件是一些字符串表)
⑤App_LocalResources文件夹:存储只能用于单个.aspx页面的资源文件。
⑥App_WebReferences文件夹:可以自动访问应用程序引用的远程Web服务。
⑦App_Browsers文件夹:此文件夹中包含.browsers格式的XML文件。用于表示向应用程序发出请求的浏览 器,并识别这些浏览器所具备的功能。
七:编译
第一次请求:
第二次请求时只是实例化已创建的DLL,该DLL将响应发送给请求者
八:Global.asax文件
应用程序使用此文件保存应用程序级的事件、对象和变量。一个程序只能有一个Global.asax文件。
可参考:ASP.NET全局文件Global.asax用法分析
事件的使用可参考:ASP.NET MVC Global.asax文件中的事件
可用事件:
- Application_Start:在应用程序接收到第一个请求时调用。
- Session_Start:与Application_start事件类似,但只在用户第一次访问应用程序时调用。与Application_Start事件的区别是Application_Start事件只在接收到第一个请求时出发,而Session_Start事件则是每一个终端用户的第一次请求都能触发。
- Application_BeginRequest:在请求到达服务器但尚未处理时触发,并在处理请求之前处理该事件。
- Application_AuthenticateRequest:每个请求都会触发事件,允许用户为请求建立自定义的身份验证。
- Application_Error:在应用程序抛出错误时触发。适合于处理应用程序级的错误处理。
- Session_End:在InPro模式下运行时,这个事件在用户退出应用程序时触发。
- APplication_End:在运用程序结束时触发。
可使用的指令:
- @Application
- @Assembly
- @Import