`
ljzforever
  • 浏览: 117515 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

asp.net 编译模型学习笔记

阅读更多

当一个web应用程序完成后,部署到iis中有以下几种方式:

源码部署:

就是把工程内的文件原封不动的Copy到iis中。当有请求的时候,asp.net会在编译目录的根目录下寻找一个以.compiled为扩展名的保留文件(Preservation File)。每一个Page页面都会有一个对应的保留文件。保留文件只会存在于编译根目录下。里面记录了Page类编译后的相关信息。如果没有,则会对请求的页面进行动态编译。编译生成dll的目录一般是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files。编译的范围是以目录为单位。编译的过程是将前台aspx页面与后台cs页合并生成dll,并在编译目录的根目录下生成一个保留文件。如果有,则判断从上一次编译后相关源代码是否进行过修改,如果修改过了,则再次编译。最后通过保留文件提供的信息来加载编译后的程序集及以后操作。

比如一个default.aspx页面。在dll中会产生两个与其对应的类:default与default_aspx。其中前者只编译了后台cs代码,后者才是default.aspx页面的最终体现。

优点:最灵活。

缺点:很差安全性。首次访问很慢

 

可更新的预编译部署:

这种方式会将所有后台cs文件编译到一个dll程序集中,当有请求时,会对相应的前台aspx文件与dll程序集中相应的类进行动态编译。

但是以这种方式生成的dll与完全动态生成的Dll有所不同:比如一个default.aspx页面,在bin目录中的dll里只会有default类,没有default_aspx类,因为只是部份编译。等到对default.aspx页面进行了访问后,会在Temporary ASP.NET Files目录下生成另一个dll文件,此文件只包含default_aspx类,也就是说,只编译后台cs代码所生成的类与最终aspx与cs合并后生成的类不在一个程序集里面。

优点:灵活。

缺点:较差安全性。首次访问慢。

 

不可更新的预编译部署:

这种方式会将所有前台aspx与后台cs文件编译到一个dll程序集中,但还是会留下aspx占位文件。当有请求时,直接进行操作。

优点:不灵活。

缺点:无首次访问慢的问题。

 

参考的文章:

ASP.NET2.0编译模型

http://www.cnblogs.com/papaya73/archive/2008/07/04/1235977.html

深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation)

http://www.cnblogs.com/artech/archive/2007/05/21/753620.html

深入剖析ASP.NET的编译原理之二:预编译(Precompilation)

http://www.cnblogs.com/artech/archive/2007/05/26/760292.html

分享到:
评论

相关推荐

    asp.net第一步学习笔记

    ASP.NET 第一步学习笔记 ASP.NET 是一种基于 Microsoft .NET Framework 的 Web 应用程序开发平台,它提供了一个强大和灵活的开发环境,允许开发者快速构建功能强大且可维护的 Web 应用程序。下面是 ASP.NET 第一步...

    Asp.NET学习笔记

    - ASP.NET页面最终会被编译为托管代码,在CLR环境中运行。 - 这意味着所有ASP.NET页面都将享有CLR提供的服务,如自动内存管理、安全检查等。 - 通过这种方式,ASP.NET能够实现高性能和高安全性。 通过以上总结,...

    asp.net 学习

    本压缩包包含的资源是关于ASP.NET的学习资料,包括“ASP.NET学习大全”,这可能是一本详细的教程或者一系列的学习笔记。 在学习ASP.NET时,首先需要理解其基本概念。ASP.NET不仅仅是一种编程语言,更是一个包含了...

    十天学会ASP.NET教程

    ASP.NET提供了编译式的编程模型,允许开发者使用C#、VB.NET等语言编写代码,提高了开发效率和应用性能。 第二天,会涉及Web Forms,这是ASP.NET最原始的开发模式,它提供了一种类似于桌面应用的事件驱动编程模型。...

    asp.net原创学习资料

    在这个名为"asp.net原创学习资料"的压缩包中,我们可以期待找到与ASP.NET相关的各种学习资源,包括可能的教程、示例代码、笔记或者appofeng的个人博客文章。 ASP.NET的主要组件包括ASP.NET Web Forms、ASP.NET MVC...

    ASPX.NET学习笔记

    4.1 ASP.NET的网页代码模型分为两种主要类型:单文件页模型和代码隐藏页模型。这两种模型都能提供控件拖放和智能代码生成的支持,但它们的组织方式不同。 4.1.1 创建ASP.NET网站时,可以选择创建网站或应用程序。...

    asp.net架构基础知识--asp.net请求的处理过程

    ASP.NET架构基础知识主要涵盖Web应用程序的生命周期、请求处理过程以及页面编译模型。在这个主题下,我们将深入探讨ASP.NET如何接收并处理来自客户端的HTTP请求,以及如何在服务器端进行编译和执行。 首先,ASP.NET...

    ASP.NET预备知识学习笔记

    ***预备知识学习笔记涵盖了***技术的基础知识,为入门者提供了一个全面的预备知识概览。以下内容将详细介绍.NET Framework框架、***基础概念、以及相关的编程和开发知识。 .NET Framework框架是由微软开发的一套...

    基于ASP.net的图像检索技术源码.zip

    2. **项目文件(.csproj)**:每个ASP.NET Web应用程序或库都有一个对应的项目文件,定义了编译和构建设置。 3. **源代码文件(.cs)**:这些文件包含了用C#编写的代码,包括控制器、模型、视图以及服务等。 4. **...

    C#源码.rar学习asp.net的必备知识

    本资源"**C#源码.rar**"是针对学习者提供的重要参考资料,其中包含的源代码示例可以帮助理解和深化对C#和ASP.NET的理解。 首先,让我们深入了解一下C#语言。C#由微软公司开发,设计目标是成为一个现代、类型安全且...

    Dot_net_study3.rar_Dot._asp.net

    【 Dot .net 学习3.rar _ Dot .asp.net】是一个关于使用.NET框架进行Web程序开发的教学资源,主要聚焦在C#编程语言上。这个压缩包包含了一系列的学习材料,旨在帮助用户从零基础开始,逐步掌握ASP.NET技术,成为一名...

    中文asp.net留言本 v1.0 BETA

    至于【压缩包子文件的文件名称列表】中的"中文asp.net留言本 BETA 1.0",这可能是该应用的主程序文件,包含编译后的ASP.NET页面和类库。而"代码中国.txt"可能是一份由开发者编写的文档,可能包含了开发过程的笔记、...

    Asp.net2.0电子商务网源码

    Asp.NET 2.0 是微软开发的一种用于构建动态网站、Web应用程序和Web服务的框架。这个框架在2005年发布,是ASP.NET 1.x的重大升级,引入了...对于学习和理解Asp.NET 2.0以及电子商务网站的开发流程,这是一个宝贵的资源。

    ASP.NET-[整站程序]英语沙龙全站系统net2.0.zip

    这个“英语沙龙全站系统”是ASP.NET 2.0技术的具体应用实例,对于学习和理解ASP.NET框架及其在实际项目中的应用,具有很高的参考价值。同时,它也展示了如何将编程技术与教育领域相结合,为用户提供一个交互式、个性...

    一套基于ASP.NET+Extjs技术实现的简单版酒店管理系统

    【ASP.NET技术详解】 ASP.NET是由微软开发的一种服务器端Web应用程序框架,用于构建动态网站、Web应用程序和Web服务。它提供了丰富的控件、强大的数据访问功能以及高效的代码编译机制,使得开发者能够快速构建功能...

    Java和.net的笔记

    3. 类库和框架:两者都有丰富的第三方库和框架,如Java的Spring、Hibernate,.NET的ASP.NET、Entity Framework。 4. 性能:.NET在某些情况下可能表现出更好的性能,但Java的JIT编译和垃圾回收机制也有其优势。 5. ...

    mvc2的实例源码

    1. **ASP.NET MVC2框架**:ASP.NET MVC是一种模式驱动的Web应用程序框架,它允许开发者使用Model-View-Controller(模型-视图-控制器)架构模式来构建可测试、灵活且易于维护的Web应用。MVC2是该框架的一个早期版本...

Global site tag (gtag.js) - Google Analytics