<%@PageLanguage=“C#”AutoEventWireup=“true”CodeFile=“Default.aspx.cs”Inherits=“_Default”%>
96
孙永杰著作《ASP.NET开发》
从上述代码中可以看出,在头部声明的时候,单文件页模型只包含Language=“C#”,而代码隐藏页模型包含了CodeFile=“Default.aspx.cs”,说明被分离出去处理事物的代码被定义在Default.aspx.cs中,示例代码如下所示。
usingSystem.Linq;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}}
//使用HtmlControls//使用WebControls//使用WebParts//继承自System.Web.UI.Page
上述代码为Default.apx.cs页面代码。从上述代码可以看出,其格式与类库、编写类的格式相同,这也说明了.aspx页面允许使用面向对象的特性,如多态、继承等。但是ASP.NET代码隐藏页模型的运行过程比单文件页模型要复杂,运行示例图如图4-4所示。
97
孙永杰著作《ASP.NET开发》
图4-4代码隐藏页模型
上述描述了代码隐藏类模型的页面生成模型。当页面被呈现之前,ASP.NET应用程序会解释并编译相应的cs文件中的代码,与此同时,ASP.NET应用程序还会将.aspx页面进行编译并生成.aspx页面对应的类。生成.aspx页面对应的类后会将该类与cs文件中的类进行协调生成新的类,该类会通过IIS在用户浏览页面时呈现在用户的浏览器中。
4.1.4
创建ASP.NETWebApplication
ASP.NET网站有一种好处,就是在编译后,编译器将整个网站编译成一个DLL(动态链接库),在更新的时候,只需要更新编译后的DLL(动态链接库)文件即可。但是ASP.NET网站却有一个缺点,编译速度慢,并且类的检查不彻底。相比之下,ASP.NETWebApplication不仅加快了速度,只生成一个程序集,而且可以拆分成多个项目进行管理。创建Application,首先需要新建项目用于开发WebApplication,单击菜单栏上的【文件】按钮,在下拉菜单中选择【新建项目】选项,在弹出窗口中选择【ASP.NET应用程序】选项,如图4-5所示。
图4-5
创建ASP.NET应用程序
在创建了ASP.NET应用程序后,系统同样会默认创建一个Default.aspx页面,不同的是,多出了一个Default.aspx.designer.cs,用来初始化页面控件,一般不需要修改。
4.1.5
ASP.NET网站和ASP.NET应用程序的区别
在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点:可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和维护。可以从项目中和源代码管理中排除一个文件或项目。支持VSTS的TeamBuild方便每日构建。可以对编译前后的名称,程序集等进行自定义。对App_GlobalResources的Resource强类支持。
98
孙永杰著作《ASP.NET开发》ASP.NETWebSite编程模型具有以下特点:动态编译该页面,而不用编译整个站点。当一部分页面出现错误不会影响到其他的页面或功能。不需要项目文件,可以把一个目录当作一个Web应用来处理。总体来说,ASP.NET网站适用于较小的网站开发,因为其动态编译的特点,无需整站编译。而ASP.NET应用程序适应大型的网站开发、维护等。