web项目编程和无项目web编程的区别

节译自《Pro ASP.NET 3.5 in C# 2008》(第二版) 第二章Visual Studio 下的 Create a Web Project

两种web编程方式在部署到web server上编译后的最终结果都是相同的,但他们在设计时(design time)上有所不同:

一、编译:Project websites解释生成的早,VS(不是ASP.NET)在页面运行前就编译了web project。web页中的类被联结成单一的程序集文件,并用web project的名称命名(形如 WebApplication1.dll)。它被置于bin目录下。

二、Code-behind:web项目编程总是使用code-behind模型。并且他们会增加额外文件,其扩展名用.aspx.desginer.cs,该文件包含所有对web页中控件的声明。这意味着如果你有一个页面名称为default.aspx,就会有一个default.aspx.cs 的code-behind类以及一个包含控件声明的文件default.aspx.designer.cs。在编译时(compile time),这两文件会被合并。在无项目web编程文件中,你是看不到带有控件声明的文件的,因为这部分代码是ASP.NET在编译时中生成的。

三、Page指令:在web项目编程中 Page指令不是用CodeFile属性来指明包含源码的文件,而是使用CodeBehind属性。之所以造成这个区别的原因在于是谁编译代码。web项目编程的文件是Visual Studio提前编译的,因此这要使用CodeBehind属性;而无项目web编程的源码是在ASP.NET第一次执行时编译的,它检查的是CodeFile属性。

四、程序集引用:无项目web编程中所有程序集引用都被记录在web.config文件,所以ASP.NET能在编译时(compile time)解析这些引用时能利用它们。但是在web项目编程中的程序集是保存在一个项目文件当中的,当Visual Studio编译代码时会利用它。唯一有个例外的情况,就是对System.Core.dll和System.Web.Extensions.dll程序集的引用,这两个文件包含了所有.NET 3.5的功能,这两个引用被定义在web.config文件中,因为他们包含了需要具体说明新配置设置的类。

posted @ 2009-02-13 01:03  bigqiang  阅读(383)  评论(0编辑  收藏  举报