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

ASP.NET 2.0的部署与1.1的区别

阅读更多

对于熟悉ASP.NET1.1并一直使用VS.NET2003的用户来说,他们已经习惯了.NET1.1的web开发模型,这种“习惯”并不仅仅意味这双击Button,系统直接定位到Button按钮的事件处理中,更为主要的是习惯了.NET1.1在部署WEB应用程序的方便:在部署应用程序里,当您将本地开发的程序上传到ISP供应商为你提供的空间里时,您仅仅需要将*.ASPx和bin文件夹下的*.DLL文件拷贝到你的空间就可以了,而对于类似*.ASPx.cs和*.ASPx.resx您可以忽略不计。
    如果您以后想升级应用程序也非常简单,只要将升级后的DLL文件覆盖原来的DLL文件即可。
    然而,在ASP.NET2.0里,正如上篇文件介绍的,*.ASPx文件和*.ASPx.cs文件都是不完全类(partial class),这就使得想在部署web应用程序前预先编译 *.ASPx.cs变得不可能---这是由于这个条件的限制使得ASP.NET2.0默认是不能够将后台文件编译为二进制的DLL文件的。所以web开发人员在部署.NET2.0的应用程序时,只能够拷贝所有的源代码。
    因此,当您使用VS.NET2005进行web开发时,默认的,如果您需要将生成的源代码(*.ASPx.cs)连同布局文件(*.ASPx)一同拷贝到服务商给你提供的web空间里。

    现在,您是不是对ASP.NET2.0的模型感觉到遗憾?至少我是,看看类似CommunityStarter、blogs的源代码,他们的源文件是如此的多,如果您拷贝到服务器给你提供的空间,需要非常的费时,而在.NET1.1里,我仅仅需要拷贝几个DLL文件就可以了,看来ASP.NET2.0的框架确实存在很大的局限性。

    不过,别着急,问题出现了总需要解决,这个解决办法就是扩展:ASP.NET1.1的Page指令里也就那几个主要的属性,进入CodeBehind已经由CodeFile取代,那么微软的那些程序员就只好拿Inherits开刀--继续保留Inherits以便和.NET1.1兼容。----这应该就是为什么.NET2.0仍然保留Inherits关键字的原因。
    但是接下来还有一个问题:对于同样是.ASPX文件,我们知道.NET1.1的页面可以再.net2.0里运行,那么.NET框架怎么识别用户开发的*.ASPX页面是.NET1.1版本的还是.NET2.0版本的呢?
    这个问题就是由Code*解决,如下:
(1)如果您在Page指令里使用了 CodeFile属性,.NET框架自动认为您采用的是.NET2.0技术,后台文件也默认是不完全类
(2)如果您在Page指令里使用了CodeBehind属性,.NET框架自动认为您采用的是.NET1.1技术,后台文件的类直接作为页面的基类
(3)还有一个默认的,就是您的*.ASPx里即没有CodeFile也没有CodeBehind,那么系统如何认为呢?在这种情况下系统仍然认为您是使用.NET1.1的框架技术,其实本人感觉这还是为了考虑兼容性,因为.NET1.1版本里就可以省略CodeBehind,如果让.NET1.1和.NET2.0高度兼容就必须始终以.NET1.1为目标。

    知道了页面如何区分页面后,解下来继续上面的问题,如何解决部署难的问题。在ASP.NET2.0里,提供了一个新命令ASPnet_compiler.exe,默认的您可以在系统盘里找到,例如我的winXP系统里的默认位置在 c:\windows\microsoft.net\framework\版本号 目录里。

    ASPnet_compiler.exe的使用较为复杂以后会介绍,以后会介绍,在用它之前先介绍它的基本功能。ASPnet_compiler.exe会将文件全部编译为二进制文件:清注意这里是全部,也就是使用该编译器后*.ASPX和*.ASPX.CS全部编译为*.DLL,原因还是前面介绍的那个规则:不管什么时候,要编译为DLL文件,都必须提供完整的类。
    现在您可以知道ASP.NET2.0的高明了吧,在部署ASP.NET应用程序时,您可以有三种方式:
(1)传统ASP.NET1.1方式:布局代码*.ASPX和编译后的后台bin文件夹下的DLL文件(部分代码+部分二进制)
(2)默认ASP.NET2.0方式:所有布局代码和所有后台文件以源文件的形式存在(全部源代码)
(3)改进后的ASP.NET2.0模式:此时所有布局代码*.ASPX和后台文件*.ASPX.CS都是以DLL的形式存在。(全部二进制)

    最后,还要说一下全部编译后的二进制的问题,当你编译后可以发现有一个default.ASPx文件,可能你会问既然全部是DLL文件为什么还要default.ASPx文件呢?这个文件也没有内容,会不会是多余的?
    要理解这个问题就需要转到IIS了,换句话说这就不再是ASP.NET2.0的工作范畴了。
对于客户端请求,IIS首先会根据映射检查您所请求的文件存在不存在,如果不存在就直接提示您所请求的文件没有找到。    可以看到此时ASP.NET2.0框架还没有接管呢,解决这个文件最简单的方法就是不用检测文件是否存在,参考下图(,默认检查文件是否存在是选中的,更为详细的原因,可以参考.BLOGS配置),但是这个步骤虽然不复杂,可以对于许多应用程序来说都需要更改显然非常不现实,现在好了只要有了DEFAULT.asxp不用更改IIS配置也可以了
所以,默认还是需要default.ASPx的。 

参考了其它的资料,本人的理解,还可以把asp.net程序编译成aspx文件和dll文件共存的方式,方法是在aspnet_compiler.exe 后加上-u参数。具体这个方法的开关参数的使用方法,请参考另一篇文章。



陈源 2008-01-14 01:17 发表评论
分享到:
评论

相关推荐

    ASP.NET 2.0介绍

    ASP.NET 2.0 是微软推出的Web应用程序框架的第二个主要版本,它在ASP.NET 1.1的基础上进行了许多改进和增强。在这个版本中,开发者能够更高效、更灵活地构建动态网页应用。以下是对ASP.NET 2.0访问数据库、编译及...

    《Asp.Net2.0 完全开发指南——基于VB》随书光盘

    《Asp.Net2.0 完全开发指南——基于VB》随书光盘是一个压缩文件,其中包含了关于Asp.Net2.0技术的详细学习资料,特别针对使用Visual Basic(VB)编程语言的开发者。Asp.Net是微软推出的一个强大的Web应用程序框架,...

    ASP.NET 2.0入门经典:C#编程篇

    ASP.NET 2.0相较于1.1版本有诸多改进,包括增强的开发效率、更强大的控件和模板系统,以及改进的配置管理。它引入了如母版页(Master Pages)、皮肤(Skin)、站点导航(Site Navigation)等新特性,使得网页设计...

    asp.net2.0电子商务开发实战

    《ASP.NET 2.0电子商务开发实战》是一本面向初学者的指南,旨在帮助读者掌握使用ASP.NET 2.0框架构建电子商务网站的核心技术和实践方法。ASP.NET是微软推出的一种强大的Web应用程序开发平台,尤其在处理动态网页和...

    ASP.NET+2.0动态网站开发教程

    ASP.NET 2.0相较于1.1版本有诸多改进,包括更友好的开发环境、增强的控件和数据绑定、以及改进的配置管理。它支持多种编程语言,如C#、VB.NET等,让开发者可以根据自己的喜好选择。ASP.NET 2.0的核心组件包括Web ...

    ASP.NET 2.0编程珠玑

    ASP.NET 2.0在1.1版本的基础上做了大量的改进和优化,引入了诸如控件生命周期、母版页、数据绑定、缓存机制等新特性,为开发者提供了更高效、更灵活的开发环境。它支持多种语言,如C#、VB.NET,使得代码编写更加简洁...

    asp.net2.0基础教程

    ASP.NET 2.0是在ASP.NET 1.0和1.1基础上的重大升级,引入了许多新特性以提升开发效率。它改进了页面生命周期管理,提供了控件事件模型,增强了缓存机制,并且引入了母版页(Master Pages)和站点导航等新功能。 2....

    asp.net 2.0快速入门教程

    ASP.NET 2.0相较于1.1版本引入了许多新特性,包括改进的开发体验、数据绑定、母版页、角色管理等。这个版本显著提高了开发效率,降低了学习曲线,使得开发者能够更快地构建功能丰富的动态网站。 1. 数据源控件:ASP...

    常见的 ASP.NET 2.0 转换问题和解决方案

    ASP.NET 2.0作为1.x版本的重要升级,不仅带来了诸多新特性,也改变了应用程序的设计、编译和部署方式。虽然1.1的应用可以在2.0环境下无需修改即可运行,但为了充分利用新框架的优势,进行适当的升级和调整是很有必要...

    ASP.NET 2.0(PDF版)

    ASP.NET 2.0是ASP.NET的第二个主要版本,相较于1.0和1.1,它引入了大量新特性和改进,如母版页(Master Pages)、站点导航(Site Navigation)、数据绑定控件(Data Binding Controls)以及改进的配置系统。这些新特性显著...

    ASP.NET 2.0入门

    ASP.NET 2.0在1.1版本的基础上进行了许多改进,提升了开发者的生产力,并引入了若干新特性。 1. **页面生命周期**:ASP.NET 2.0中的页面生命周期包括初始化、加载、验证、呈现和卸载等阶段。理解这些阶段对于有效地...

    Asp.Net2.0网站开发实战

    最后,Asp.Net2.0的部署和调试也是开发者需要掌握的技能。了解IIS(Internet Information Services)配置、发布网站、以及如何使用Visual Studio的调试工具,能确保我们的应用程序在生产环境中运行顺畅。 在"ASPNET...

    ASP.net 2.0 快速入门

    ASP.NET 2.0在1.1版本的基础上进行了大量改进,提供了更强大的功能和更高的开发效率。它引入了诸如母版页(Master Pages)、主题(Themes)、站点地图(Site Maps)和控件缓存(Control Caching)等新特性,使得网页...

    Asp.net2.0车票管理系统.zip

    Asp.NET 2.0通过ADO.NET提供与数据库的无缝连接,允许开发者使用DataSet、DataTable等对象进行数据操作,同时支持Entity Framework等ORM框架,简化数据库操作。 3. **用户界面**:使用ASP.NET的Web Forms,开发者...

    Wince.NET2.0(文件)

    它包含基础类库,支持部分.NET Framework的特性,如ADO.NET(数据库访问)、ASP.NET(Web应用开发)和XML服务。 3. **版本2.0**: .NET Compact Framework 2.0相较于1.0和1.1版本,增加了许多新特性和改进,包括更...

    [ASP.NET 2.0网页制作彻底研究]一书源程序代码

    ASP.NET 2.0在1.1版的基础上进行了大量改进,引入了诸如控件事件模型、母版页(Master Pages)、主题(Themes)、皮肤(Skin)、数据绑定(Data Binding)等新特性,旨在简化开发过程,提高开发效率。母版页允许...

    《Asp.net 2.0高级编程》(pdf版).rar

    Asp.net是微软.NET框架下的一个强大Web应用程序开发平台,2.0版本在1.1的基础上进行了大量改进和优化,提升了开发效率和性能。 首先,Asp.net 2.0引入了全新的Page生命周期模型,使得开发者能更精确地控制页面各...

    如何在IIS6.0里面显示ASP.NET v2.0.50727

    ### 一、IIS6.0与ASP.NET v2.0.50727的基本概念 #### 1.1 IIS6.0简介 IIS(Internet Information Services)是微软公司开发的Web服务器解决方案,IIS6.0作为Windows Server 2003的一部分,提供了强大的Web服务功能...

    ASP.NET 2.0动态网站开发教程PPT

    8. 部署与发布:了解如何将开发好的ASP.NET 2.0应用部署到IIS服务器,以及配置Web.config文件以适应不同环境,是实际开发中必不可少的环节。 9. 错误处理与调试:学习如何设置错误处理机制,使用Visual Studio的...

Global site tag (gtag.js) - Google Analytics