|
知识路径: > 电子商务系统程序设计基础 > 电子商务系统建设 > B/S结构程序设计 >
|
被考次数:1次
被考频率:低频率
总体答错率:45%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
相关知识点:76个
|
|
|
|
ASP.NET是微软.NET体系结构的一部分,是创建动态网页的一种服务器端技术。ASP.NET语法上兼容ASP,可以采用面向对象程序设计模式,可以使用多种语言(包括Microsoft Visual Basic.NET、Microsoft Visual C#和Microsoft JScript.NET)开发。在ASP技术中,将脚本语言代码嵌入网页中,解释执行,而在ASP.NET中,实现了代码分离,即将HTML页面代码与服务器代码分离在不同的文件中,服务器代码可以编译执行,实现一次编译,多次执行的特点。
|
|
|
|
|
(2)丰富的控件库。.NET提供了80多种控件,采用控件+事件驱动方式的编码,可以提高编程效率。
|
|
|
|
(4)性能高效。ASP.NET程序相对于ASP程序而言,程序的执行效率、代码安全性等方面都有了很大的提高。
|
|
|
(5)安全。ASP.NET为Web应用程序提供了默认的授权和身份验证方案,开发人员可以根据应用程序的需要设置Web应用程序的权限及身份认证等。
|
|
|
(6)页面缓存技术。根据应用程序的需要,ASP.NET可以缓存页数据、页的一部分或整个页。
|
|
|
(7)支持多种平台。ASP.NET支持任何设备上的任何浏览器。
|
|
|
(8)与现有ASP应用程序的兼容性。ASP和ASP.NET可并行运行在IIS Web服务器上而互不冲突。ASP.NET仅处理具有.aspx文件扩展名的文件。具有.asp文件扩展名的文件继续由ASP引擎来处理。
|
|
|
|
|
|
解决方案资源管理器中包含了该程序的所有资源文件,例9-1项目的解决方案资源管理器如下图所示,包含以下内容:
|
|
|
|
|
①Properties文件夹中的AssemblyInfo.cs文件:主要用来设置有关程序集常规信息的一些参数,例如:公司信息、版权、版本等。
|
|
|
|
③Default网页:页面文件,对应的还有页面的类代码文件。一个ASP.NET项目中可以有多个网页文件,一般Default也为默认页。
|
|
|
④Web.Config:站点配置文件,可以设置一些网站的整体规则等。
|
|
|
|
|
①ASPX文件:包括HTML标记、服务器控件、脚本代码等。
|
|
|
|
③designer.cs文件:用来为页面的控件做初始化工作,一般只有ASP.NET应用程序(Web Application)才有designer.cs文件。
|
|
|
ASP.NET页面一般都是代码隐藏页模型,代码隐藏页模型将事件处理程序及其他服务器脚本程序都存放在cs文件中,而不嵌入在aspx网页文件中,当ASP.NET网页运行的时候,先处理cs文件中的代码,再处理.aspx页面中的代码。这种模式被称为代码分离。
|
|
|
代码分离将页面的HTML代码与动态的服务器代码放在不同的文件中,使得网页设计人员也可以单独设计静态样式页面,而程序员可以独立设计服务器代码,二者基本没有影响。另外,代码分离使得程序的调试和运行结构清晰。在代码分离模型的aspx文件第一行程序代码如下:
|
|
|
|
其中,CodeFile=“Default.aspx.cs”,说明该文件对应的服务器代码被定义在.aspx.cs类文件中。可以通过事件的方式将对应的程序代码写在.aspx.cs文件中,当然,也可编写其他符合C#语言的代码。
|
|
|
页面文件的第一行是一条page页面指令,ASP.NET页面支持多个页面指令,页面指令用来通知编译器在编译页面时做出的特殊处理,如缓存、使用命名空间等。当需要执行页面指令时,通常的做法是将页面指令包括在文件的头部,常用的页面指令如下:
|
|
|
.@Page:定义ASP.NET页(.aspx文件)的属性。
|
|
|
.@Control:定义ASP.NET用户控件(.ascx文件)的属性。
|
|
|
|
.@Implements:实现指定的.NET Framework接口。
|
|
|
|
.@Assembly:在编译过程中将程序集链接到当前页,以使程序集的所有类和接口都可用在该页上。
|
|
|
.@Register:注册用户控件,为用户控件定义前缀。
|
|
|
|
一个获取ASP.NET网页的请求(通过用户提交或通过超链接完成的)被发送到Web服务器后,页面生命周期就开始了,在生命周期内,该页面将执行一系列的步骤,包括控件的初始化,控件的实例化,还原状态和维护状态以及通过IIS反馈给用户呈现成HTML。ASP.NET生命周期通常情况需要经历如下几个阶段。
|
|
|
.页请求:页请求发生在页生命周期开始之前。用户请求页时,ASP.NET将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。
|
|
|
.开始:发生了请求后,页面就进入了开始阶段。在该阶段,页面将确定请求是回发请求还是新的客户端请求,并设置IsPostBack属性。
|
|
|
.初始化:在页面开始后,进入了初始化阶段。初始化期间,页面可以使用服务器控件,并为每个服务器控件进行初始化。
|
|
|
.加载:如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。
|
|
|
.验证:调用所有验证程序控件的Vailidate方法,来设置各个验证程序控件和页的属性。
|
|
|
.回发事件:如果是回发请求,则调用所有事件处理的程序。
|
|
|
|
.卸载:完全呈现页面后,将页面发送到客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如Response对象和Request对象)并执行清理。
|
|
|
|
在ASP.NET页面生命周期各阶段中,页面将会引发多种事件。对于控件产生的事件,是通过用户的操作来引发的。而ASP.NET内置的事件如Page_Load、Page_Init等事件,是页面执行过程中自动引发的,下面按照事件发生的顺序介绍常见的ASP.NET内置事件。
|
|
|
(1)页面预初始化事件PreInit。PreInit事件是由Page引发,发生在页面初始化之前。在这个事件发生时,可以检查IsPostBack属性来确定是不是第一次处理该页,创建或重新创建动态控件,读取或设置配置文件属性值。
|
|
|
(2)页面初始化事件Init。在所有控件都已初始化且已应用所有外观设置后引发。使用该事件来读取或初始化控件属性。
|
|
|
(3)页面预加载事件PreLoad。发生在页面加载事件之前。在Page引发该事件后,它会为自身和所有控件加载视图状态,然后会处理Request实例包括的所有回发数据。
|
|
|
(4)页面加载事件Load。Load事件是在页面加载的时候引发的。在Load事件中,使用页面的IsPostBack属性来判断页面是回传加载还是首次加载,回传加载IsPostBack属性为true,否则为false。
|
|
|
(5)页面卸载事件Unload。该事件发生在页面被卸载时,可以通过Unload事件用来执行页面卸载时的清除工作,如关闭文件或数据库连接、完成日志记录或者其他的程序请求。
|
|
|