讨论C#编译和ASP.NET编译
当你分别使用c#编译器CSC和ASP.NET编译器编译的时候,你会发现他们的不同,针对此,在网站部署和更新的时候可以考虑最优方案。
C#编译器针对单个文件,ASP.NET编译器针对整个网站,ASP.NET编译器针对同一个后置文件生成的DLL回比C#编译器生成的内容多。
以上都是ilspy反编译得到的结果,可以发现.ASP.NET编译器生成更多的内容,图片中多了3个部分,
1、Session接口,2、Profile配置文件,3、全局文件
http://msdn.microsoft.com/zh-cn/library/ms178473%28v=vs.100%29.aspx
MSDN的文章中讲到,ASP.NET编译器首先编译顶级项,而且任何针对顶级项的写操作都会引起整个应用程序的重启和重新编译。
依据上述特点,在部署网站的时候,可以预编译网站,以获得第一次访问网站时性能的提升。
在这里要说一下,ASP.NET编译器针对网站的编译主要有两种模式,一种模式不允许后续更新,缺省条件下使用此模式,此模式下,前置文件也会被预编译而不容许修改,
打开编译后的前置文件,出现“这是预编译工具生成的标记文件,不应删除!”。此种模式适合于不允许更新的网站。
第2种模式允许更新,前置文件不被编译,后置文件被编译,而且编译产生会和C#单独编译单个文件的结果不同&