ASP.NET 4.0复习笔记一:应用程序与页面架构

一:页面架构

ASP.NET4.0的页面架构分为两类:

    ①内联代码模型:所有代码都放在一个页面。

     ②内联代码模型:应用了部分类的特性,将表示逻辑代码放在.aspx页面,业务逻辑代码放在.aspx.cs或.aspx.vb页面,然后在运行时在后台合并页面的代码。

二:指令

指令都是编译器在编译页面时使用的命令,通过使用指令可以控制ASP.NET页面的行为。最好把指令放在页面或用户控件的顶部。

指令格式:<%@ [Directive] [Attribute = value] %>,可添加多个Attribute。

ASP.NET或用户控件中的指令共有11中(各指令的详细属性书名可参考ASP.NET 指令语法大全),分别为:

  1. @ Page指令:允许为ASP.NET页面(.aspx)指定分析和编译页面时使用的属性和值。
  2. @ Master指令:与@ Page类似,但只能用于母版页(.master)。
  3. @ Control指令:与@ Page类似,但只在构建ASP.NET用户控件时使用。
  4. @ Import指令:允许指定要导入到ASP.NET页面和用户控件中的名称空间。想要导入多个名称空间时,只能放在多行代码上。例如:<% @Import Namespace="System.Data" %> <% @Import Namespace="System.Data.SqlClient" %>
  5. @ Implements指令:允许ASP.NET页面实现特定的.NET Framework接口。
  6. @ Register指令:把别名与名称空间和类名关联起来,作为自定义服务器控件语法中的记号。例如把一个用户控件拖放到.aspx页面就运用到了@Register指令。
  7. @ Assembly指令:在编译时把程序集附加到ASP.NET页面或者用户控件上,从而使改程序集中的所有接口和类都可用页面。
  8. @ PreviousPageType指令:指定跨页面的传送过程起始于哪个页面。
  9. @ MasterType指令:把一个类名关联到ASP.NET页面上,以获得指定母版页中包含的强类型化的引用或成员。
  10. @ OutPutCache指令:用于控制ASP.NET页面或用户控件的输出高速缓存策略
  11. @ Reference指令:另一个ASP.NET页面或用户控件应该与当前活动的页面或控件一起编译。

三:ASP.NET的页面事件

可用的页面事件:

  1. AbortTransaction:当用户结束事务时发生
  2. CommitTransaction:当事务完成时发生
  3. DataBinding:当服务器控件绑定到数据源时发生
  4. Disposed:当从内存释放服务器控件时发生
  5. Error:当引发未处理的异常时发生
  6. Init:当服务器控件初始化时发生
  7. Load:当服务器控件加载到page对象中时发生
  8. PreRender:在页面加载控件之后、呈现之前发生
  9. Unload:当服务器控件从内存中卸载时发生

4.0新增事件:

  1. InitComplete:表示完成了页面初始化
  2. LoadComplete:表示页面完全加载到内存中。
  3. PreInit:表示页面初始化前的那一刻。
  4. PreLoad:表示页面加载到内存前的那一刻。
  5. PreRenderComplete:表示页面显示在浏览器之前的那一刻。

附:asp.net 页面生命周期事件详细

四:处理回送

可参考ASP.NET页面事件:顺序与回传详解

五:跨页面的传送

即提交窗体,并将这个窗体和所有的控件值传送给另一个页面。

可参考:ASP.NET跨页面的控件调用

六:ASP.NET应用程序文件夹

  1. ASP.NET4使用的是基于文件的方法,也就是说可以在应用程序中增加任意多个文件和文件夹,而不用每次再给解决方案添加新文件时重新编译它们。
  2. 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文件。用于表示向应用程序发出请求的浏览                                                                      器,并识别这些浏览器所具备的功能。

七:编译

第一次请求:

ASP.NET 4.0复习笔记一:应用程序与页面架构


第二次请求时只是实例化已创建的DLL,该DLL将响应发送给请求者

ASP.NET 4.0复习笔记一:应用程序与页面架构

八: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