Asp.net 2.0:Compile

asp.net

一、code-behind(Asp.net 1.0/1.1)
VS.NET 2002(2003)用一种叫做code-behind的特性来将html、control和应用逻辑分开,默认的code-behind文件自动继承System.Web.UI.Page的特性,事件的自动对应连接,设计器的改动都会及时反映到code-behind文件中,省却了很多输入代码的时间.当第一次从ASP的混合开发转入这种形式开发后你已经会为这种功能带来的便利感到非常的兴奋.但是同时code-behind也带来了一些局限性,首先,任何code-behind文件的修改都必须导致整个Project重新编译;其次,编译成单一的Assembly对于多人开发有一定的局限;再者就是.aspx和code-behind class的同步问题,比如你可能会突然间发现不知道什么时候一个按钮竟然没有任何作用了,找了半天以后发现,原来InitializeComponent()中的事件邦定不知道什么时候在code-behind class中丢掉了.最后,添加单一的.aspx文件比较困难,尽管可以通过添加一个比如.txt文件来改名成.aspx文件,但是在这种情况下原先带code-behind的aspx文件所具有的一些IDE设计时支持此时就消失殆尽了,编辑这个.aspx文件根notepad没有太多不同.

二、动态编译
为了解决code-behind带来的一些负面影响,Asp.net 2.0提供了一些很有成效的功能,比如动态编译.故名思义,动态编译解决了每次修改code-behind文件都必须要重新编译整个Project的情况,而是在用户第一次请求的时候再动态编译,(当然这时候带来一定的性能损失),但之后就跟预编译没有什么不同了,这种情况特别适合于那种经常需要改变class文件的需求,不需要每次修改都要重新启动Web Application.Asp.net 2.0提供了一个特殊的文件夹,名字叫做:Code.在这个\Code Directory里面可以放入你的Business Logic Component或者Data Access Component,Resource资源文件等等,所以这些都不需要编译,而且开发环境同样支持智能提示(VS.NET2002中必须编译后才能实现这种功能).

三、预编译支持
尽管Asp.net 2.0提供了动态编译的功能,但是由于动态编译在用户首次访问会带来一定的性能冲击,并不是所有的情况都适合,而且你很可能在发布Application的时候不想暴露源代码,因此,Asp.net 2.0同样支持预编译,Asp.net 2.0支持两种不同的预编译:
1、In-Place Precompilation
这种方式的预编译是通过类似这样的形式来实现的
localhost/WebApplication/precompile.axd
如果程序有错误,马上就会中断并显示大家都很熟悉的编译错误的画面以进行排错,如果一切正常,则显示如下的信息:
The application was successfully precompiled.
这种预编译形式主要解决了动态编译带来的第一次访问的性能冲击.
2、Precompilation for Deployment
这种形式的编译是由一个基于命令行的工具来完成了,其形式如下:
aspnet_compiler /v /<websitename> –p <source> <destination>
下图是我测试的一个编译截图

这种模式的编译要求<websitename>必须是一个可用的IIS虚拟目录.默认的编译将产生只包含.aspx文件(可能还含有html或者gif等等资源文件)和一个bin目录,看上去类似Asp.net 1.0(1.1),但是如果你把.aspx文件全部删除以后你会发现,再次请求删除的.aspx文件照样可以响应,而不是返回404错误,这时因为.aspx文件也被编译了,并且放入bin目录中.

总结:
Asp.net 2.0带来的三种新的编译模式使得Asp.net的编译更加的灵活,用户选择余地更大,VS.NET Whidbey也对此提供了强大的智能提示支持,包括新增的in-line code和runat=server的script快的智能提示支持,所有的这些都已经开始临近......

时间: 2024-08-29 12:28:53

Asp.net 2.0:Compile的相关文章

Asp.net 4.0,首次请求目录下的文件时响应很慢

原文:Asp.net 4.0,首次请求目录下的文件时响应很慢 1. 问题起因2. 尝试过的处理思路3. 解决方法   1. 问题起因     一个从VS2003(.Net Framework 1.1)升级到.net framework 4.0的项目,每次编译或者部署到服务器上后,首次请求任何一个目录下的默认页面时,都要耗时3~5秒:而以前使用.net framework 1.1的时候,没有这个问题. 我在页面上开启Trace="true"来跟踪,发现页面的处理时间并不久(IIS重启,首

Asp.net 1.0 升级至 ASP.NET 2.0十个问题总结

asp.net|问题     这几天升级了一下原来的1.1项目,发现了一些问题,总结一下放在这里,也提醒还没有来得及升级或准备升级的朋友,升级的过程中少走弯路,少浪费时间. 1.Global.asax文件的处理形式不一样 转化后将出现错误,在vs2003中Global.asax具有代码后置文件,2.0下, 将代码分离文件移到 App_Code 目录下,以便使其自动变为可通过应用程序中的任意 ASP.NET 页面访问."Code-behind"属性将从 ASAX 文件的指令中删除.vs2

ASP.NET 2.0不能识别eurl.axd的解决方法

在IIS6中同时启用了ASP.NET 2.0 和 ASP.NET 4.0 后,网站程序可能会出现如下错误:" System.Web.HttpException: Path '//eurl.axd/' was not found. " 错误发生的原因是当ASP.NET检测到Web站点配置为使用ASP.NET 4.0,本地ASP.NET 4.0 的组件会传递一个不能扩展的 URL到ASP.NET的管理程序作进一步处理.但是,如果一个低于ASP.NET 4.0 的网站配置为使用ASP.NET

ASP.NET 2.0实现依赖Oracle的缓存策略

asp.net|oracle|策略|缓存 ASP.NET 2.0中的缓存提供了对SQL依赖项的支持,也就是说当SQL SERVER数据库中的表或行中的数据被更改后,缓存中的页面就失效,否则,页面输出可一直保留在缓存当中.这确实为程序员提供了方便.但微软一向很小家子气,只为使用自家产品SQL SERVER的程序员提供了方便,那些用Oracle数据库的ASP.NET程序员怎么办呢? 其实不用着急,因为ASP.NET 2.0中的缓存还提供了对文件依赖项的支持,也就是缓存依赖于某个文件,该文件被修改后,

ASP.NET 2.0数据教程之三十二:数据控件的嵌套

返回"ASP.NET 2.0数据教程目录" 导言 除了静态HTML和数据绑定语法,template也可以包含Web控件和用 户控件.这些控件的属性可以通过声明语法,数据绑定语法或在服务器端通过事件 处理编程来设置. 通过将控件嵌入到template里,可以自定义界面,提升用 户体验.例如,在在GridView控件中使用TemplateField 里,我们学习了如何通过在 GridView的TemplateField里加一个Calendar控件来表示员工的雇佣日期.在给编 辑和新增界面增

[转]利用ASP.NET 2.0创建自定义Web控件(2)

原址:http://hi.baidu.com/sjbh/blog/item/5a8298454403a321cffca39c.html   如何生成的? Render() 方法基本上控制着 WebControl 的整个输出.默认情况下,Render() 方法实际上会依次调用 RenderBeginTag().RenderContents() 以及 RenderEndTag().尽管在 ASP.NET 1.x 中调用结构并未变化,但由于该呈现模型,修改这些调用的影响却发生了变化. 您可以覆盖 Re

ASP.NET 4.0 来了

伴随着VS2010的公开测试,ASP.NET4.0也进入了我们的视线.ASP.NET4.0究竟给我们带来了什么,将在哪些方面提高我们的生产力? 在何时你需要使用ASP.NET4.0开发你的网站程序? 需要更严格的遵守Web标准: 需要更流畅的Web Form开发方式:需要更好的搜索引擎优化: 需要后知后觉的纠正一些不够优良的设计,这些设计甚至可能是在ASP.NET 1.0发布之前就存在的: 需要将现有的功能重新改造为支持server farm或跨application domains: 需要将.

ASP.NET 2.0实现AJAX的Web开发

ajax|asp.net|web [导读]在过去的几个月中,基于AJAX技术开发高度交互的Web应用程序的设计模式迅速流行开来.现在,具有高度可配置性的Web应用程序,例如Google Maps和A9,都在综合利用这些技术来创造丰富的客户端用户体验.其实,结合AJAX技术进行Web开发并非最近的研究成果,只不过这些技术一直以来不断得到持续更新和改进. 本文中我有三个目的.首先,我想提供一个AJAX风格应用程序的高级概述.其次,我想详细地描述ASP.NET 2.0的异步回调机制.最后,我想对构建A

网站开发技术:ASP.NET 2.0搭建网站

知识经济大潮下的广大网民由于其知识层次的不断提升,以及对自身价值的展现的要求越来越迫切和广泛,他们对于网站的使用功能也越来越重视,因而网站在建设和发展的过程当中,更加需要持续不断的技术创新,以满足用户的需求,并在一定条件下起到引领用户的作用. 首先,从总体开发平台或开发框架来看,我们可以采用ASP.NET 2.0来搭建网站和实现Web应用.基于ASP.NET 2.0的开放式构架,以及先进的Web Part可自定制部件的开发思想,使得网站的开发将从根本上实现快速,稳定,安全,跨平台,易扩展等等要求