学习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就能做到。

(0)

相关推荐

  • 学习ASP的理由 分析小结

    在Google上搜一下,可以发现一大堆对ASP不好的评价,什么运行速度慢.异常处理机制不好.缺乏面向对象机制.开发效率低.漏洞多等等.为了让大家对ASP有个正确的认识,我先为它正名. 一.ASP不慢,慢的是数据库 几年前,我用动网论坛程序架了一个BBS,这套程序就是当时经典的ASP+Access架构.我也遇到了某些人所说的论坛慢,有时候卡死不动的问题.然而,自从我换上SQL Server数据库以后问题就解决了.所以罪魁祸首乃Access.程序执行所需的时间是毫秒级别的,在这个级别内,无论是10毫

  • 学习 WSH 的理由小结

    关于这个过程,可以参考我的另一篇文章<没有电脑的日子>之东搞搞西搞搞--搞中. 很多还不懂怎么学习编程的人问  应该学什么语言? 都会和他说:先提高境界,再学习技能:先了解自己的兴趣或者以后想做的事,才选择语言.如果学校教 C 和 Java,您就只在这两个里选择,那么很抱歉,我只能说您是一坨屎!选择了语言,很大程度上就选择了开发方式,也就选择了相应的工作,那么这个相应的工作是不是您真正喜欢的?本末倒置的事常常发生在学生身上,习以为常了,大家就不知道应该先选择自己的兴趣,再考虑用什么系统,用什么

  • 收集学习asp.net比较完整的面向对象开发流程

    如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework.ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,学习

  • 那些年,我还在学习asp.net(二) 学习笔记

    那些年,我还在学习asp.net(二) 那些年觉得看视频是很轻松的了解一个东西,但是这样的不足就是感觉太慢了,没有看书来得快,所以在有了一些了解后,还得看点书,也许书上的不一定好,但书上会把每一个应该说到的地方说到,好有个初步的认识.比如说.NET平台.组件等知识的介绍,所以,那些年就开始了asp.net方面的进一步学习. 一.学习asp.net的准备知识 正如我前面那些年所学习的,在开始之前得对它们有一定的认识: 1.  html语言的基本使用 2.  CSS+DIV的学习,撑握基本的布局 3

  • 学习ASP和编程的28个观点

    1.不要放过任何一个看上去很简单的小编程问题--他们往往并不那么简单,或者可以引伸出很多知识点: 2.会用asp,并不说明你会asp: 3.看asp的书,是学不了asp语言的: 4.浮躁的人容易说:asp语言不行了,应该学yy:--是你自己不行了吧!? 5.浮躁的人容易问:我到底该学什么:--别问,学就对了: 6.浮躁的人容易问:asp有钱途吗:--建议你去抢银行: 7.浮躁的人容易说:我要中文版!我英文不行!--不行?学呀! 8.浮躁的人容易问:asp和yy哪个好:--告诉你吧,都好--只要你

  • mybatis快速入门学习教程新手注意问题小结

    什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

  • python 进阶学习之python装饰器小结

    装饰器总结 什么是装饰器?处理函数的函数,加一个功能,但是不影响原来函数的内部结构生活中的例子:给手机加一个外壳,外壳保护了手机 装饰器有什么用?增强函数的功能 装饰器使用场景增加被装饰函数的行为代码复用 一个函数接收另一个函数作为参数,这种函数称之为高阶函数. 函数的重要特性 1.在python中,一切皆为对象,所以函数也是一个对象,从而函数可以赋值给变量. 定义一个add函数,函数的功能是实现两个数相加 系统为函数分配了一个内存地址:0x00000000021B3798 2.一个函数可以作为

  • ASP.NET性能优化小结(ASP.NET&C#)

    ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不

  • asp 性能测试报告 学习asp朋友需要了解的东西

    在服务器上生成动态内容是使用ASP最主要的原因之一,所以我们选择的第一个测试项目是确定把动态内容发送到应答流使用什么方法最好.基本的选择有两种(以及它们的一些变化):使用内嵌ASP标记,使用Response.Write语句. 为测试这些不同的方法,我们创建了一个简单的ASP页面,页面先定义一些变量然后把它们插入到表格.虽然这个页面很简单,而且没有实际用途,但它足以让我们分离和测试各个问题. 2.1 使用ASP内嵌标记 第一个测试是使用ASP的内嵌标记<%= x %>,其中x是一个变量.这是使用

  • 最近Python有点火? 给你7个学习它的理由!

    Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎. 诚然,它有点老了,但仍是80后啊 -- 至少没有 Cobol 或者 Fortran 那么老.而且,如果还能派上用场的话,为啥要折腾着改变它呢 (尤其在这个还有那么多方法可以提升它性能的时候)? 实际上这要看你怎么看待它,生命线长本身就是件好事 -- 说明它稳定且可靠. 如果你是像其他许多人一样都是从 Java,C 或者 Perl 开始进入职业生涯的,那么

随机推荐