欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

学习ASP的理由 分析小结

程序员文章站 2023-08-26 16:51:00
在google上搜一下,可以发现一大堆对asp不好的评价,什么运行速度慢、异常处理机制不好、缺乏面向对象机制、开发效率低、漏洞多等等。为了让大家对asp有个正确的认识,我先...
在google上搜一下,可以发现一大堆对asp不好的评价,什么运行速度慢、异常处理机制不好、缺乏面向对象机制、开发效率低、漏洞多等等。为了让大家对asp有个正确的认识,我先为它正名。

一、asp不慢,慢的是数据库

几年前,我用动网论坛程序架了一个bbs,这套程序就是当时经典的asp+access架构。我也遇到了某些人所说的论坛慢,有时候卡死不动的问题。然而,自从我换上sql server数据库以后问题就解决了。所以罪魁祸首乃access。程序执行所需的时间是毫秒级别的,在这个级别内,无论是10毫秒还是100毫秒,实在是感觉不出来,但是access的并发性差,阻塞了部分程序执行,导致页面卡死。

二、异常处理机制很好,只是很多人不知道

以前,很多人包括我在内都用vbscript来编写asp程序,vbscript的异常处理机制的确是糟透了。然而,jscript则很好,因为它支持包括c#、java都有的try…catch语句,足以处理所有异常。

三、在javascript蓬勃发展的现在,面向对象也不是问题

自从javascript因为ajax而兴起,它的面向对象机制就已经被模拟出来了。虽然不是真正的面向对象,但是作为中小型web程序,这也足够了。同样以ecmascript为核心的jscript也拥有相同的机制。此外,ecmascript的语言灵活性无疑是最强的,做前端开发的人员对此最为清楚。

四、漏洞是程序员造成的

经常听到有人说asp的sql注入漏洞非常严重,其实无论什么语言都存在这样的漏洞,问题在于程序员会不会堵。asp中可以通过参数化查询简单高效地解决这个问题。不需要字符串替换,甚至不需要数据验证。

下面我来说说学习asp(jscript)的好处:

一、前后台技术兼修

无论是前台的javascript还是后台的javascript都是基于ecmascript核心,所以,后台的javascript写得好,前台javascript的水平也可以得到提高

二、认识web应用程序的基本原理

asp.net、php等技术屏蔽了许多web的底层,这对初学者认识web程序的原理非常不利。而asp则绝对是从最基础写起,比如上传文件的程序就必须分析数据包获取文件数据。

三、开发效率高

很多人说asp.net的开发效率高,我对其持反对态度。如果应用程序的功能需求不复杂,绝对是用asp开发要快。因为asp是解析执行,不需要编译。修改、调试要方便得多。windows也为asp提供了一个很好的运行环境(iis),无需再作额外的配置。此外,当前后台都用同一种语言时,很多代码都可以复用,这是其他技术平台无法比拟的。

近年来也有其他的server-side javascript(ssjs)出现,比如jaxerjscript.net,mozilla也有一个ssjs的项目。期待ecmascript在后台开发中有更大的发展。

阿里西西的补充(技术强人)

说asp是低能的人不是菜鸟就是连asp都学不会的人,技术不是用来显摆的,是用来创造实际价值的,其实很多应用asp就已经能够实现,而且有大量的通用源码可以参考,很容易转化为生产力,可以说,动态网页技术中,asp是最广泛最成熟的技术之一。asp当然存在很多的不足,这时就需要其他技术来解决。
  很多人错误地认为asp是简单、低效的代名词,认为asp是低能的,已经过时的,不足挂齿的,也很简单,一学就会,一琢磨就精通。
  有人讲asp不安全,写asp的程序的时候如果严格按照书写安全的代码的规范去写,写出来的程序也没有什么理由不安全。那些人说asp不安全,好像php、jsp的程序就不会出现sql injection似的。
  有人讲asp不高效,真的想要高效的话你可以结合com,在win32平台下com的效率java是永远追不上的。单纯讲速度有什么意义呢?java的速度绝对算不上高,论速度的话好多技术方案的速度都比java高,这一点学java的人最清楚了,可是谁在乎过这一点了?java的胜出绝对不是因为它的速度。抛开具体的应用环境单纯地讲速度是不理性的。
  有人讲asp这个不能做,那个做不了,功能很局限。其实只要你明白web的原理的话你就会明白,写asp程序表面看是在玩一种脚本语言,但你指挥的是web server,有很多复杂的功能asp也照样能完成的很好,有些功能asp假如因为web应用的先天局限做不了,你不要以为jsp、php就能做到。