频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1.3.3 新的编译模型

作者: 方兵 出处:机械工业出版社  2008-05-14 17:11    砖    好    评论   进入论坛
阅读提示:《ASP.NET 2.0网站开发技术详解》第1章主要讲述的是NET 2.0的新特性,本节为您介绍的是新的编译模型。

1.3.3 新的编译模型

在ASP .NET 2.0中有3种编译方式。在默认情况下,采用即时编译方式,在用户首次请求资源(如网站的一个页)时,将动态编译ASP .NET网页和代码文件。第一次编译页和代码文件之后,会缓存编译后的资源,这样将大大提高随后对同一页提出的请求的效率。这种编译方式和原来ASP .NET 1.1是一样的。

在这种编译方式下,所有的源代码,包括.aspx页面中的HTML代码和Code-behind代码文件中的代码都是直接部署到服务器上去的,这就造成了一个问题,开发人员的所有代码都可见,不利于知识产权保护。

第二种编译方式是部分预编译,这也是在ASP .NET 1.1中就有的,即将后台代码文件编译成.dll文件,而.aspx文件中的html代码保持原封不动,这样可以在一定程度上有效地保护开发人员的知识产权,同时还可以在不需要重新编译的情况下对页面作有限的修改,例如可以更改控件的排列、页的颜色、字体和其他外观元素。还可以添加不需要事件处理程序或其他代码的控件。但是同时带来的问题是:如果开发人员没有足够的意识而将过多的代码直接放到.aspx文件中,那也仍然不能够保护这部分代码的知识产权;同时由于可以修改.aspx页面的代码,如果在修改代码时不小心的话,可能会导致该页面运行出错。比起即时编译方式,可以通过预编译网站来稍稍提高网站的性能。对于经常更改和补充ASP .NET网页及代码文件的站点则更是如此。在这种内容不固定的网站中,动态编译新增页和更改页所需的额外时间会影响用户对站点质量的感受。

第三种编译方式是在ASP .NET 2.0里新增的,称为完全预编译。在这种编译方式里,所有的代码(包括.aspx里的HTML代码和后台代码文件里的代码)都被编译到.dll文件中,而生成的.aspx文件只起到一个占位符的作用,编译器将从输出中移除所有源代码和标记。在生成的布局中,为每个.aspx文件生成编译后的文件(扩展名为.compiled),该文件包含指向该页相应程序集的指针。采用这种编译方式的站点运行效率最高,能够最大限度地保护开发人员的知识产权。此选项不仅可为页面提供最大程度的保护,还可提供最佳启动性能。然而带来的相应问题是,这种编译方式最不灵活,除非重新编译站点,否则将不能修改站点的任何代码,包括调整页面布局或者样式都是不可以的。要更改网站(包括页的布局),必须更改原始文件,重新编译站点并重新部署布局。惟一的例外是站点配置。可以更改成品服务器上的Web.config文件,而无需重新编译站点。

除了上面所说的编译方式之外,ASP .NET的编译模型也发生了变化,由原来的代码后置(Code-Behind)变成了代码旁置,最直观的变化就是,在页面的后台代码文件当中再也看不到对页面上的服务器端控件的声明,毋庸置疑,这显然是利用分部类来实现的。这种代码隐藏模型如下:

代码隐藏文件包含一个继承自基页类的分部类。基页类可以是Page类,也可以是从Page派生的其他类。

(1).aspx文件在@ Page指令中包含一个指向代码隐藏分部类的Inherits属性。

(2)在对该页进行编译时,ASP .NET将基于.aspx文件生成一个分部类,此类是代码隐藏类文件的分部类。生成的分部类文件包含页控件的声明。使用此分部类,可以将代码隐藏文件用作完整类的一部分,而无需显式声明控件。

(3)最后,ASP .NET生成另外一个在步骤2中生成的类继承的类。生成的第二个类包含生成该页所需的代码。生成的第二个类和代码隐藏类将编译成程序集,运行该程序集可以将输出呈现到浏览器,ASP .NET 2.0的代码隐藏模型如图1-3所示。

 
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
ASP.NET 2.0基础开发指南
微软的Ajax:Atlas(ASP.net AJAX)
ASP.NET开发教程
ASP实用开发教程
ASP.NET 2.0网站开发技术详解
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
二手设备与仿冒设备谁更火
二手设备与仿冒设备谁更火
汶川大地震 IT技术人为同胞生命祈福
汶川大地震 IT技术人为同胞生..
网络故障排除宝典
网络故障排除宝典
· 网络故障排除宝典
· 访问控制列表(ACL)介绍
· 视频访谈:网管员如何踏..
· 首届中国IT工程师生态..
· 华为路由器配置
· 全面解析35岁技术人的..
· 企业数据恢复指南
· 龙芯要做中国的“奔腾”
· 2008年上半年全国软考..
· 交换机故障解决指南
· Vista SP1对决XP SP3
· LAMP技术精解
· 微软出价446亿美元收购..
· AIX操作系统管理应用(..
· 华为员工自杀频频拷问..
· 三层交换技术专题
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· ADSL应用面面俱到
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· RAID——磁盘阵列基础
· 路由器设置与口令恢复
· SOA 面向服务架构
· ADSL应用面面俱到
· ADSL应用面面俱到
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍