Asp.net 2.0 高级编程学习笔记
PreInit 表示页面初始化前的那一刻
Init 表示页面初始化
InitComplete 表示页面完成了初始化
PreLoad 表示页面加载到内存前的那一刻
Load 表示页面加载到内存
LoadComplete 表示页面完全加载到内存
PreRender 表示页面表示
PreRenderComplete 表示页面显示在浏览器中之前的一刻
UnLoad 表示页面完成加载
AbortTransaction
CommitTransaction
DataBinding
Disposed
Error
页面生存期的特定位置
PostBackUrl
PreviousPage.FindControl();
<% PreviousPageType VirtualPath=”” %>
Page.IsCrossPostBack
/App_Code文件夹中的所有内容都编译到一个程序集中.放在/App_Code文件夹中的类文件不需要使用特定的语言.也就是说,即使解决方案中的所有页面都是用Visual Basic 2005编写的,解决方案的/App_Code文件夹中的类也可以用C#建立.
因此, /App_Code根文件夹中不能有不同语言设置的类.
解决方法:
/App_Code添加两个子文件夹
如:
/VB
/CS
修改web.config配置节
<compilation>
<codeSubDirectories>
<add directoryName=”VB”></add>
<add directoryName=”CS”></add>
</codeSubDirectories>
</compilation>
/App_Data
.mdf, .mdb, xml, …
/App_GlobalResources
Resource.resx, Resource.fi-FI.resx
调用:Resources.Resource.属性名
/App_LocalResources
Default.aspx.resx
Default.aspx.fi.resx
/App_Browsers
整个应用程序预编译
http://[host]:[port]/[Application Name]/precompile.axd
避免终端用户在初次访问时感觉有很大的延迟
用于部署的预编译
打开command窗口,导航到期c:/windows/microsoft.net/frameword/v2.0xxxxx/
使用aspnet_compiler工具
命令:
aspnet_compiler –v [Application Name] –p [Physical Location] [Target]
例子:
aspnet_compiler –v /INETA –p c:/webseites/ineta c:/wrox
详解:
-v是指定应用程序虚拟路径的命令,这里使用/INETA提供该路径.下一个命令-p指向应用程序的物理路径,这里是c:/webseites/ineta.最后是c:/wrox,它是编译器输出的位置
命令 说明
-m 指定应用程序的完整IIS元数据库路径。如果使用-m命令,就不能使用-v或-p命令
-v 指定要编译的应用程序的虚拟路径。如果也使用了-p命令,就使用物理路径查找应用程序的位置
-p 指定要编译的应用程序的物理路径。如果未指定该命令,就使用IIS元数据库查找应用程序
targetDir 指定编译后的文件放在哪个目标目录下。如果未指定该命令,就把输出文件放在应用程序目录下
它只编译了与ASP.NET相关的文件类型,没有编译下述文件类型:html,xml,xsd,web.config,txt.
Global.asax文件
可以在这个文件中构建如下所示的事件:
● Application_Start:在应用程序接收到第一个请求时调用,这是在应用程序中给应用程序级的变量赋值或指定对所有用户必须保持的状态的理想位置。
● Session_Start:类似于Application_Start事件,但这个事件在用户第一次访问应用程序时调用。例如,Application_Start事件只在接收到第一个请求时触发,第一个请求会让应用程序运行,而Session_Start事件会在每个终端用户第一次向应用程序发出请求时调用。
● Application_BeginRequest:它没有列在Visual Studio 2005提供的模板中,但该事件会在每个请求发出之前触发。也就是说,在请求到达服务器,且得到处理之前,会触发Application_BeginRequest事件,并在处理该请求之前处理。
● Application_AuthenticateRequest:每个请求都会触发该事件,允许为请求建立定制的身份验证。
● Application_Error:在应用程序的用户抛出一个错误时触发。它适合于提供应用程序级的错误处理,或者把错误记录到服务器的事件日志中。
● Session_End:在InProc模式下运行时,这个事件在终端用户退出应用程序时触发。
● Application_End:在应用程序结束时触发。大多数ASP.NET开发人员都不使用这个事件,因为ASP.NET很好地完成了关闭和清理剩余对象的任务。
Global.asax文件除了可以访问全局应用程序事件之外,还可以在这个文件中使用指令,就像在其他ASP.NET页面中一样。Global.asax文件允许使用如下指令:
● @Application
● @Assembly
● @Import
这些属性的执行方式与其他ASP.NET页面类型相同。