ASP和ASP.net的区别

ASP和ASP.net根本就不是一回事,完全是两个不同的东西。

这里简单看下他们的区别:

 

1 ASP.Net是什么?

ASP.Net是建立在微软新一代.Net平台架构上,利用普通语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架。

2.ASP.Net与ASP的联系和主要区别是什么?

ASP.Net与现存的ASP保持语法兼容,实际上我们可将现有的ASP源码文件扩展名“.asp”改为“.aspx”,然后配置在支持ASP.Net运行时的IIS服务器的Web目录下,即可获得ASP.Net运行时的全部优越性能。

ASP.Net与ASP的主要区别在于前者是编译(Compile)执行,而后者是解释(Interpret)执行,前者比后者有更高的效率。实际上我们可以把ASP.Net的执行过程看做是编译后的普通语言运行时代码充当一个和前端浏览器和中间件用户交互的应用程序,它接受用户的请求,输出HTML流到客户端显示。除此之外,ASP.Net还可以利用.Net平台架构的诸多优越性能,如类型安全,对XML,SOAP, WSDL等Internet标准的强健支持。

3.目前ASP.Net的开发语言有那些?

目前ASP.Net的开发语言有三种语言,C#,Visual Basic.Net和JScrip.

4.ASP.Net的主要优点有哪些?

ASP.Net可完全利用.Net架构的强大,安全,高效的平台特性。ASP.Net是运行在服务器后端编译后的普通语言运行时代码,运行时早绑定(Early Binding),即时编译,本地优化,缓存服务,零安装配置,基于运行时代码受管与验证的安全机制等都为ASP.Net带来卓越的性能。

对XML,SOAP,WSDL等Internet标准的强健支持为ASP.Net在异构网络里提供了强大的扩展性。

5.ASP.Net主要包括哪些内容?

ASP.Net主要包括WebForm和WebService两种编程模型。前者为用户提供建立功能强大,外观丰富的基于表单(Form)的可编程

Web页面。后者通过对HTTP,XML,SOAP,WSDL等Internet标准的支持提供在异构网络环境下获取远程服务,连接远程设备,交互远程应用的编程界面.

6.HTML Server Control和Web Server Control有什么联系和区别?

HTML Server Control是为了和传统ASP保持兼容而开发的一类基于HTML静态页面的控件(如文本框,按钮),它们与这些控件一一对应,它们位于命名空间System.Web.UI.HtmlControls里。

Web Server Control 是专为下一代基于组件开发的.Net平台架构而量身定做的,它不仅包括具有传统HTML静态页面的控件等Web Server Control,它还包括有AdRotator,XML等功能强大的组件,更重要的是它为用户开发Web Server Control组件提供了强大,易用的技术底层支持。这将成为下一阶段ASP.Net开发的热点。它们位于命名空间System.Web.UI.WebControls里。

7.目前支持ASP.Net开发的平台有哪些?ASP.Net现在发展到什么阶段?

目前支持ASP.Net开发的平台只有WindowsXP,Windows 2000,Windows NT4(Service Pack 6a),其中的Web Service除去这些还在Windows 98,Windows ME,Windows SE上获得支持。ASP.Net目前处于最后的Beta2测试状态,它将在2001年下半年随着Visual Studio.Net的推出而发展到成熟的企业版。

 

从一开始使用ASP,用户面临的问题就是:如果应用程序要有强大的功能,就需要编写大量的代码,所有的功能都必须用代码来实现。虽然使用一些小技巧可以实现代码的共享,但是仍然存在大量嵌入HTML的代码,难于管理。这还只是一个表面现象。

    从更深的层次来研究ASP.NET,会发现ASP.NET与ASP之间的区别主要在于以下几个方面。

(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。该控件还会检测设备并生成正确的标记。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值