浅谈ASP与ASP.NET之比较
作者:王立新 谢梓荣 宋翠燕
[摘要] ASP与ASP.net是目前较为流行的两种基于Internet的开发工具, ASP.net是在ASP基础上推出的,但它采用全新的技术架构,使得ASP.net具有更好的性能,更好的语言特性,更易于开发,更强大的IDE支持,更易于配置管理,更易于扩展,更加安全。本文从脚本语言、文件的执行过程、数据库访问三方面对这两种语言进行分析比较。?[关键词] 技术架构 执行过程 分析比较
一、引言
Web应用是目前Internet上应用最广泛信息服务, Web服务已经影响到广告、新闻、商务等各个服务领域。ASP和ASP.net是web开发领域比较流行的开发平台。ASP (Active Server Pages)是微软公司推出的一种取代CGI(Common Gateway Interface)的技术。它是位于服务器端的脚本运行环境,通过这种环境,它可与数据库和其它程序进行交互,是一种简单、方便的编程工具。用户可以使用Vbscript或Javascript脚本程序代码创建动态的、交互式的Web应用程序,应用HTML表单收集和处理信息、上传与下载文件等。在ASP的基础上,微软公司推出了ASP.NET,它不是ASP的简单升级,它不仅吸收了ASP技术的优点并改正了ASP中的某些错误,更重要的是,它借鉴了Java, VB语言的开发优势,从而成为Microsoft推出的新一代Active Server Pages。ASP.net是微软的新的体系结构.NET的一部分,其中全新的技术架构会让每个人的编程工作变得更简单。
二、脚本语言比较
ASP只支持解释型语言,包括Vbscript和Javascript,当用户发出请求后,无论是第几次,ASP的页面都被动态解释执行。ASP.net支持编译型语言,包括VB.net、C#、VC + + .net、J #.net,同时支持面向对象程序设计,包括封装、继承、多态性等特点。理论上, ASP.net页面第一次执行时的效率会比较慢一点,因为要编译页面,但第二次及之后执行时的效率就会比同样功能的ASP页面快,大约快250% ,除非你又修改过页面,导致要重新编译,那就另当别论。
三、文件的组成与执行过程
一个ASP文件含有4个部分,即Html标记、Vbscript脚本(或Javascript脚本)、ASP脚本、# include命令,前两部分在客户端执行,后两部分在服务器端执行。当客户机访问服务器的一个ASP网页时,服务器就执行该页面的ASP脚本、# include命令,然后将执行结果连同Html标记、Vbscript脚本(或Javascript脚本)送往客户端。一个ASP.net文件由可视化组件与实现逻辑两部分组成。可视化组件指所有的Html标记和服务器控件两部分。服务器控件包括Html控件、Web控件、验证控件、用户控件。实现逻辑指用于处理页面的代码,包括指令、代码声明块、内联代码块、# include命令、Javascript脚本五部分。其中Html标记、Javascript脚本在客户端执行,其余五部分在服务器端执行。
当用户单击[确定]按钮时,将做五件事:①在客户端执行验证控件;②执行本页面的用户界面部分(考虑控件的视图状态);③将客户端各控件(含Html控件、Web控件)的Value、Text、Checked或PostFile值上传到服务器;④执行Page_ Load ( )函数;⑤在服务器端执行。
ASP页面访问数据库的接口(组件)是:ADO, ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO组件包含7个对象, ADO使用“连接定向传输模式”访问数据库,当用户要求访问数据库时,必须经过冗长的连接操作,而且ADO会锁定数据源,其他人无法同时访问数据源,数据源是数据库的一部分或全部。Connection对象负责创建ASP页面与数据库的连接。只有先建立Connection对象,才可以使用Recordset对象或Command对象对所连接的数据库进行插入、删除、更新和查询等操作。ASP.net页面访问数据库的接口是:ADO1net, ADO1net分成两部分: DataSet对象和1netFramework数据提供程序。后者包括Connection、Command、DataReader和DataAdapter对象。DataSet对象是ADO.net的核心,它使用“无连接传输模式”访问数据库,当用户要求访问数据库时,无须经过冗长的连接操作,只需将数据源读入DataSet对象的相关表中,然后对DataSet对象的指定表进行插入、删除、修改等操作。每个用户都拥有专属的DataSet对象,因此,用户就不需要争夺数据源。这种断开式模型可以大大提高应用程序的效率,并能处理更多负载。
ADO.net有两种访问数据库的方式:
第一种:使用DataReader对象读取数据库,其步骤为:
①创建连接对象;
②创建命令对象;
③执行命令对象指定的select语句,并返回记录集;
④使用DataReader对象读取记录集。
第二种:使用DataSet对象访问数据库,其步骤为:
①创建连接对象;
②创建数据集对象和适配器对象;
③将适配器对象的查询结果置入数据集的某个表中;
④对数据集中的指定表进行插入、删除、修改操作;
⑤用数据集的指定表去更新适配器对象指定的数据表。
五、ASP.NET的主要优点
ASP.NET可完全利用.Net架构的强大,安全,高效的平台特性。ASP.Net是运行在服务器后端编译后的普通语言运行时代码,运行时早绑定(Early Binding),即时编译,本地优化,缓存服务,零安装配置,基于运行时代码受管与验证的安全机制等都为ASP.Net带来卓越的性能。对XML,SOAP,WSDL等Internet标准的强健支持为ASP.NET在异构里提供了强大的扩展性。
六、结束语
虽然ASP.net与ASP几乎完全不同,但一个网站可以同时包含ASP网页和ASP.net网页,如果你想将asp文件改为aspx文件,只要将ASP脚本中的Vbscript语句改为C#语句即可。不过,如果你想充分享有ASP.net的效率与优点,那么建议你将Html标记改为Web控件。??
:?
[1]陈惠贞,陈俊荣. ASP.net程序设计[M ].北京:铁道出版社, 2004.
[2]徐谡.ASP.net应用与开发案例教程[M].北京:清华大学出版社,2005.
[3]张锦祥. Web网站设计[M ].北京:出版社, 2005.?