ASP.NET在技术上没有叫做ASP 4.0,但从许多方面来讲,它就是ASP 4.0版本。我们可以从下面的两个例子看出.aspx文件与.asp文件的相似之处:

例程1:ASPX页面示例

<!--File:test.aspx-->

<%@ Page  language=’C#’ %>

<script  runat=server>

int Add(int x, int y)

{

return x+y;

}

</script>

<html>

<body>

<table border=1>

<tr>

<td>两数之和为:</td><td><%=Add(2,3)%></td>

</tr>

</table>

</body>

</html>

例程2:ASP页面示例

<!--File:test.asp-->

<%@  language=Jscript%>

<script  language=’JScript’  runat=server>

function  Add(x,y)

{

return x+y;

}

</script>

<html>

<body>

<table border=1>

<tr>

<td>两数之和为:</td><td><%=Add(2,3)%></td>

</tr>

</table>

</body>

</html>

以上两个例程的<html></html>里的代码是相同的,不同的是 <%%>声明使用的语言。两段代码都是在服务器端运行,但是,当访问这两个文件时,其背后所发生的事情却截然不同。我们先来分析test.asp文件的运行机制,当执行test.asp文件时,服务器对网页中的文本要进行线性解析,提取所有不是服务器端脚本的内容并作为响应返回,而网页中的服务器端脚本(我们在test.asp文件的脚本中加入了runat=server属性)首先要通过Jscript解释器来解析执行,执行结果作为响应返回。所以,.ASP文件的运行机制在几个方面影响了网页生成(也就是我们平时所说的程序运行)速度变慢。影响.ASP网页效率的几个方面是:首先,随机解释服务器端脚本比在服务器上执行预编译的代码效率更低,因此,要对ASP应用程序进行优化,比较通用的方法就是将大量的服务器端脚本移入预编译的COM组件中,这样就可以有效的提高网页的响应速度;第一的方面是,由于要不断地调用解释器,混合使用静态的HTML和服务器端求值语句脚本块比只用一个服务器端脚本块的效率更低,因此,为了提高应用程序的执行效率,有些ASP开发人员通常使用Response.Write()调用取代静态的HTML元素。最终导致了一个ASP页面上使用多种脚本语言来编写从而大大降低了应用程序的执行效率。现在,我们再来分析一下test.aspx文件的运行机制,在该例中使用c#语言来编写的脚本,所以在服务器端CLR使用相应的C#编译器把这些代码编译成一种叫做IL汇编语言并保存到程序集中。使用CLR,无论你使用何种语言(C#、VB.NET、Jscript 等)编写的脚本,最终都被编译成IL汇编语言。
   程序集中既包括服务器端代码又包括静态HTML语句,因此,只要第一次访问了某个.ASPX页面,以后生成该页面时只需执行已编译好的代码即可。就是ASP.NET网页最终都被编译成.NET类(.NET框架中组件也叫做类),所以,在一个.aspx文件中不可能使用多种服务器端语言,这样就解决了传统的ASP脚本模型的所有有关效率低的问题。所以说,ASP.NET是ASP的升级版本。

与解释模型相比,使用编译模型还有其他方面的好处:1、在性能方面编译模型优于解释模型。因为,编译器将网页编译成类(组件),这样就可以用桌面应用程序或组件开发者使用的同样的调试工具进行调试。2、便于应用程序在编译时可以发现错误,这样就可以使应用程序的健壮性大大增强。3、.NET应用程序开发者可以使用的所有工具,.aspx开发者同样可以使用。总而言之,从传统的ASP过度到ASP.NET,是在程序的性能、速度等方面的革命性的改进。

转载于:https://www.cnblogs.com/lynnwayne/archive/2007/07/09/810983.html

ASP.NET vs ASP—编译与解释的区别相关推荐

  1. Python——编译与解释

    Python--编译与解释 高级语言: 1.静态语言--编译执行 2.脚本语言--解释执行 ①编译 编译是将源代码转换成目标代码的过程. 源代码是计算机高级语言的代码,而目标代码则是机器语言的代码. ...

  2. 编译型和解释型、动态语言和静态语言、强类型定义语言和弱类型定义语言

    一.编译型与解释型语言 我们编写程序也就是源代码基本是用高级编程语言,比如JavaScript, java, c等等,这些语言计算机是不理解的,所以需要转化(翻译)成计算机理解的机器语言,或者说目标C ...

  3. C#毕业设计——基于C#+asp.net+sqlserver的证券术语解释及翻译系统设计与实现(毕业论文+程序源码)——翻译系统

    基于C#+asp.net+sqlserver的证券术语解释及翻译系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的证券术语解释及翻译系统设计与实 ...

  4. ASP.NET 网站预编译概述

    默认情况下,在用户首次请求资源(如网站的一个页)时,将动态编译 ASP.NET 网页和代码文件.第一次编译页和代码文件之后,会缓存编译后的资源,这样将大大提高随后对同一页提出的请求的效率. ASP.N ...

  5. .NET、C#和ASP.NET,ASP.NET MVC 四者之间的区别

    from:http://www.cnblogs.com/wwym/p/5555772.html 经常,会有一些人搞不清楚.NET和c#和ASP.NET这三者之间的关系,她们都是什么呢?他们之间有什么关 ...

  6. asp .net 和 ASP

    摘录: 前段时间从网上看到ASP和ASP.NET之间的区别中有这样一句话"asp是解释运行,.net是编译执行",从网上有深入查了查觉得有些收获,整理了一下就发上来了. 计算机并不 ...

  7. asp毕业设计—— 基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码)——软件信息发布系统

    基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的软件信息发布系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...

  8. asp毕业设计—— 基于asp+access的网上花店设计与实现(毕业论文+程序源码)——网上花店

    基于asp+access的网上花店设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的网上花店设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报告P ...

  9. asp毕业设计——基于asp+access的房产信息管理系统设计与实现(毕业论文+程序源码)——房产信息管理系统

    基于asp+access的房产信息管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的房产信息管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...

  10. asp毕业设计—— 基于asp+access的企业人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统

    基于asp+access的企业人力资源管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的企业人力资源管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地 ...

最新文章

  1. 超越对手pdf_如何创建一个超越竞争对手的移动应用
  2. 面试题:如何理解 Linux 的零拷贝技术?
  3. 线程和进程有什么区别?
  4. 使用HttpMessageConverter实现HTTP的序列化和反序列化
  5. Boosting集合算法详解(一)
  6. Java中的类型安全的空集合
  7. vs设置html的模板快
  8. 【springBoot】注解的详解
  9. python 闭包中引用的变量值变更问题
  10. 1.7 单层卷积网络
  11. TCC Demo 代码实现
  12. thymeleaf if 条件判断
  13. 2021 MetaCamp程序设计大赛线上资格赛 7-2 心情故事
  14. RabbitMQ 线上事故!慌的一批,脑袋一片空白……
  15. 如何在ppt中生成柱状图_Excel表格数据如何生成柱状图等-EXCEL如何制作柱状图?...
  16. React 18 的七大更新点你知道几个?
  17. Linux系统下SVN服务器的搭建过程详解 UpJ}s7+
  18. 【汉诺塔】汉诺塔问题
  19. java中怎么创建表格_Java中的表格怎么利用表格模型进行创建
  20. 嵌入式开发:硬件和软件越来越接近

热门文章

  1. 简谈百度坐标反转至WGS84的三种思路
  2. codeforces 665E Beautiful Subarrays
  3. mongoDB的基本使用----飞天博客
  4. 救急的戴尔Latitude 10商用平板电脑
  5. svn 查看版本历史时。Item is not readable svn: 条目不可读
  6. 解决企业IT三大运维管理难题
  7. SuspendLayout,ResumeLayout,Layout,PerformLayout
  8. 10-ret/retf+call+mul
  9. 基于Flume的美团日志收集系统
  10. Mapreduce中的分区Partitioner