探索剖析VS2003与VS2005编译的全过程

开发 后端
希望我对VS2003与VS2005编译的一点经验能给大家带来帮助,对于VS2003与VS2005编译还存在着许多问题,下面我就对这个问题说明一下。

由于VS2003与VS2005编译程序太多,此处无法上传,所以大家有communitysever的可以从里面获得然后反编译为自己所用,没有的就到网络上搜下吧,有许多资源呢!我就是在相关IT论坛上找到的。

ASP.NET 1.x中的编译

ASP.NET1.x 中的主要编译模型会导致一个应用程序程序集(包含所有的已编译代码隐藏文件和其他的源代码)和一个为每个被请求的 ASPX 页而创建的临时程序集。在有些情况下,编译器优化(例如批处理)会引起将临时 ASPX 页编译到同一个程序集中。在任一种情况下,每个 ASPX 页都编译到一个临时程序集中,这样它可以加载到 ASP.NET 运行库。

虽然这种模型有优点,但它也有两个主要缺点。首先,ASPX 页必须要以人们可以阅读的形式部署到 Web 站点。如果开发人员使用代码内联 模型,这意味着,一些(或所有)的业务逻辑也可以部署在生产服务器上。虽然没有将 IIS 和 ASP.NET 配置为公开原始的 ASPX 页,但聪明的攻击者仍可以通过任何攻击(该攻击打开到 Web 服务器的通道)来访问这些文件。其次,第一次有人请求某 Web 页时,响应速度将比正常速度慢一些,原因在于 ASP.NET 运行库必须VS2003与VS2005编译 ASPX 页。 #t#

这整个过程中,开发人员拥有的唯一控制权是决定是否批编译 ASPX 页。在 ASP.NET 1.x 中,可以通过修改 标记在 web.config 文件中配置批编译。 清单 4. 配置批编译 批编译用启动时间换取减少第一次请求 Web 页的加载时间。批编译的另一个好处是所有的 ASPX 文件都编译到一个临时程序集中,而不是一页一个临时程序集。

 ASP.NET 2.0 中的编译

ASP.NET 2.0 为 Web 应用程序提供三种不同的编译模型:

普通 (ASP.NET 1.x) — 在一个普通的 ASP.NET Web 应用程序中,代码隐藏文件被编译到一个程序集并存储在 /bin 目录中。根据要求编译 Web 页 (ASPX)。该模型对大多数 Web 站点都运行得不错。但是,编译过程使得第一次请求 ASP.NET 页时的速度比随后的请求速度缓慢。ASP.NET 2.0 继续支持这种编译模型。

部署预VS2003与VS2005编译 — ASP.NET 2.0 的一种新功能,允许在部署前对项目进行完整编译。在完整编译中,所有的代码隐藏文件、ASPX 页面、HTML、图形资源以及其他的后端代码都被编译到一个或多个可执行程序集中,这取决于应用程序的大小和编译设置。这些程序集包含所有的已编译 Web 站点代码,而资源文件和配置文件被复制,没有做修改。这种编译方法以牺牲修改部署后 Web 站点的能力为代价,提供了最好的性能和安全性。如果您使用高可见或高安全的 Web 站点,这种选项是最终部署的最好选择。但是,如果您正在构建一个运行局部 Intranet 的小站点,并且更改站点非常频繁,那么完整预编译可能有点过分。  #t#

ASP.NET 2.0 编译模型也允许预编译应用程序的所有代码隐藏文件并且仍可以更新代码。可以将代码隐藏文件和原始的 .ASPX 文件(都是局部类)编译到一个预编译类中(页面的基类)。如果选择在运行时编辑 .ASPX 文件,只需重新编译页面即可。

完整的运行时VS2003与VS2005编译 — 在部署预编译的另一个极端,ASP.NET 2.0 提供一种在运行时编译整个应用程序的新机制。也就是说,可以将未编译的代码隐藏文件和其他相关的代码放在 \app_code 目录中,并让 ASP.NET 2.0 创建并维护对程序集的引用,这些引用将在运行时根据这些文件生成。这种选项以在服务器上存储未编译代码为代价,在更改 Web 站点内容方面提供了最大的灵活性。 

责任编辑:chenqingxiang 来源: cnbeta
相关推荐

2009-11-26 11:30:12

VS2003控件

2009-12-01 13:50:19

VS2003水晶报表

2009-11-25 14:33:51

VS2003打包

2009-12-16 10:15:58

VS2003编译

2009-11-26 09:35:54

VS2003安装包

2009-12-18 10:10:49

VS 2003程序

2009-12-01 09:16:22

VS2003和VS20

2009-11-30 10:34:28

VS2003编译

2009-12-01 14:04:17

VS2003 SP

2009-12-15 16:51:32

2009-11-25 09:18:05

VS2005软件

2009-11-26 10:46:38

VS2003制作安装

2009-11-30 17:40:17

VS2003 ASP

2009-11-25 11:00:48

VS2005编译

2009-11-30 09:27:38

VS2003源代码

2009-12-16 15:49:58

VS 2008性能

2011-08-24 09:45:00

VS2005Luabindlua

2009-12-08 17:56:16

WCF配置

2009-11-26 10:35:16

VS2003制作安装

2009-11-25 15:39:24

VS2003 Incl
点赞
收藏

51CTO技术栈公众号