A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 管章鹏 中级黑马   /  2013-4-2 15:42  /  2380 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 管章鹏 于 2013-4-5 17:49 编辑

今天看了asp.net的内容,但是不太了解asp和asp.net的区别?他们是一回事么?有什么不同么?
希望大神们予以解答,非常感谢!

6 个回复

倒序浏览
一个是解释型语言,一个是编译型语言!
回复 使用道具 举报
开发语言不同
ASP仅局限于使用non-type脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。
ASP.NET允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜加巨大的.NET Framework。

运行机制不同
ASP是解释运行的编程框架,所以执行效率加较低。
ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。

开发方式
ASP把界面设计和程序设计混在一起,维护和重用困难。
ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
这个问题可以找度娘 。。解释的很详细
回复 使用道具 举报
HM陈鑫 发表于 2013-4-2 17:18
这个问题可以找度娘 。。解释的很详细

度娘?不懂
回复 使用道具 举报
管章鹏 发表于 2013-4-2 18:19
度娘?不懂

百度。。。。
回复 使用道具 举报
哈哈,这下懂了,总结一下吧:
(1) 效率
ASP是一个脚本编程环境,只能用VBScript或者JavaScript这样的非模块化语言来编写。当ASP程序完成之后,在每次请求的时候解释执行。这就意味着它在使用其他语言编写的大量组件的时候会遇到困难,并且无法实现对操作系统的底层操作。由于它是解释执行的,所以速度和效率要远远低于编译执行的程序。而ASP.NET则是建立在.NET Framework之上的,它可以使用Visual Basic、C++这样的模块化程序设计语言,并且它在第一次执行时进行了编译,之后的执行不需要重新编译就可以直接运行,所以速度和效率比ASP会提高很多。

(2) 可重用性
在写ASP应用程序的时候,ASP代码和HTML混合在一起。只要有需要,就可以在任意的一个位置插入一段代码来实现特定的功能。这种方法表面上看起来很方便,但在实际的工作中会产生大量繁琐的页面,很难读懂,导致代码维护很困难。虽然可以使用include指令尽量让程序模块化,但是仍然不是一个最终彻底的解决方案。而ASP.NET则可以实现代码和内容的完全分离,使得前面提到的问题迎刃而解。

(3) 代码量
ASP需要对所有的要实现的功能通过编写代码来实现。例如,所有的ASP程序员都遇到过这样的情况:为了保证一个用户数据提交页面的友好性,当用户输入错误的时候会显示错误的位置,并尽量把用户原来的输入在控件中显示出来。这样的一个应用需要程序员编写大量的代码来实现。虽然它实在是一个非常简单的功能,但在其他的应用程序中根本不需要编写这么多的代码就可以实现。在ASP.NET中,程序员会发现只要预先说明,这样的功能ASP.NET就可以自动实现。所以相对来说,要实现同样的功能,使用ASP.NET比使用ASP的代码量要小得多。

……


ASP.NET的优点
通过上面对ASP缺点的介绍,我们可以很容易地理解ASP.NET已经解决了这些问题。事实的确如此,并且ASP.NET所提供的不仅仅是这些。要了解ASP.NET的所有特性,先让我们来看看设计ASP.NET的4个主要目标:
● 使代码更清晰
● 提高可部署性、可伸缩性、安全性以及可靠性
● 为不同的浏览器和设备提供更好的支持
● 支持一种全新的Web应用程序

但是作为用户,您不会直接使用这些新特性,因为Common Language Runtime (CLR)会处理其中的大多数特性。第2章会详细介绍这方面的内容,现在先看看ASP.NET的强大功能。

1. 多语言
ASP曾在脚本引擎方面受到了限制,特别是VBScript和JScript。而.NET Framework本质上就支持多语言,因此我们可以使用任何需要的语言。在默认情况下,Visual Basic .NET、C#和JScript .NET都附带了CLR(它们都是经过编译的),另外还可以使用许多第三方语言,例如Perl、COBOL等。此外,Visual Studio .NET增加了对Visual C++的支持和Java实现(称为 J# .NET)。由于多语言支持是.NET Framework的一部分,因此不论使用何种语言都没有关系。很明显,从用户的观点来看,保持某种程度上的兼容性可能是最好不过的(例如仅仅为了维护),但对于架构而言,语言的使用是没有任何限制的。
多语言支持的作用并不仅仅限于可使用什么语言,同时还在于如何使用这些语言。通过它可以用某种语言编写组件,而用另一种语言来使用(或重用)这些组件。比如用C#编写基于服务器的控件,然后在Visual Basic .NET中继承这些控件,接着在JScript .NET (或任何.NET支持的语言)中继续继承这些控件。
说明:
有关架构的详细介绍请参阅第2章,而第3章将详细介绍各种语言。

2. 服务器处理
如果您做过Visual Basic编程工作,就会发现要掌握新的ASP.NET 服务器控件是相当容易的,但如果以前仅使用过ASP,就会在学习ASP.NET 服务器控件的初始阶段出现一些混淆错误。不过即使这样也不用担心,因为它们是非常容易理解和使用的——它们只是和ASP有很大的不同。
使用ASP的一大问题在于页面简单地定义了一个大函数,该函数开始于页面的开头,结束于页面的末尾。不管页面的内容是纯HTML还是ASP生成的HTML,它都是按照页面顺序显示的。因此,逻辑代码依赖于它在页面中的位置,并且无法将HTML控件作为目标,除非将它们作为流的一部分进行显示。我们所做的任何工作都需要编写代码,包括HTML元素的输出。
而ASP.NET就解决了这个问题,方法是为控件引入一个声明的基于服务器的模型。这对ASP开发人员来说是一个截然不同的概念,因为控件在服务器上声明,可以在服务器上编程,也可以是客户端驱动的事件。这听起来确实不可思议,但使用起来很简单。为把一个普通的HTML控件变成一个服务器控件,只需将runat="server"作为一个特性添加到代码中。例如:
<input id="FirstName" type="text" runat="server" >
这是一个标准的HTML控件,增加了runat特性后,就可以利用服务器端的代码对该控件进行编程了。例如,如果要将该控件置于一个窗体中,并且将该窗体提交回同一个页面中,就可以在服务器端代码中做以下修改:
Dim PersonFirstName As String
PersonFirstName = FirstName.Text
控件在服务器上运行,将允许我们使用ID特性来直接识别它。这样代码就具有更高的可读性,原因在于不必引用窗体的内容或者将这些内容复制到变量中。同时直接引用控件也就更加自然了,从而使页面的开发更加简单。如果您做过Visual Basic或VBA编程工作,对这些概念就不会太陌生。
但是如果您以前只用ASP编写过脚本,理解上述内容就比较吃力,不过这仅仅是因为ASP.NET用不同的方式处理往返于浏览器的页面内容。如果您了解数据库访问技术,就应该使用过对象、调用方法以及设置过属性,而这些与ASP.NET服务器控件并无多大差别。
说明:
第4章将介绍新的服务器处理结构。

3. Web Form控件
将现有的HTML控件转换为服务器端的控件是比较容易的,不过这种方法仍然存在几个问题:
● 一致性:我们仍然不得不接受一些HTML控件的非常不直观的固有特征。例如,有没有一个INPUT标记符用于单行文本项?有没有一个TEXTAREA标识符用于多行文本项?指定行和列的单个控件真的更有意义吗?
● 用户经验:如何轻松地编写站点,向诸如IE这样的浏览器传送丰富的内容,同时保留对低级别浏览器的兼容性呢?HTML是无法根据浏览器改变其内容的,而要达到这个目的,必须编写代码。
● 设备:如何编写站点来应付除浏览器之外的其他设备呢?如今像WAP手机、PDA甚至电冰箱这样的设备都有浏览器。与浏览器问题一样,都必须为其手工编写代码。
为了解决这些问题,Microsoft公司创建了一组服务器控件,它们都用asp:前缀标识。ASP.NET服务器控件通过以下方式来处理上述问题:
● 提供一致的命名标准。例如,所有文本输入栏都由TextBox控件处理。对于不同的模式(如多行文本、密码等),只需指定相应的特性即可。
● 提供一致的属性。所有的服务器控件使用一组一致的属性,这样更便于记忆。例如,TextBox控件中的Text栏比Value栏更加直观。
● 提供一致的事件模型。传统的ASP页面通常有大量用于处理数据传送的代码,特别是当一个页面提供多行命令时,就更是如此。而利用ASP.NET,我们可以为事件过程封装控件,从而给服务器端代码提供更多的结构。
● 发送纯HTML或者HTML与客户端JavaScript。通过一个小异常(这是故意的),服务器控件在默认状态下会发送HTML 3.2,提供很高的跨浏览器兼容性。对其进行修改,使之在默认状态下指向像IE这样的高级浏览器,这样控件就会发送HTML 4.0和DHTML,提供更丰富的界面。此时用户只能看到HTML内容,而看不到服务器控件。
● 发送设备指定的代码。当一个浏览器发出请求时,某个控件会发送HTML,而当WAP手机发出请求时,该控件就会发送WML。该控件还会检测设备并生成正确的标记。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马