三种主流技术是哪三种呢?我主要讲一下ASP(ActiveX Server Page)、PHP、Java这三 种技术。主要是基于我到现在已经使用的以下产品而谈: ASP MS IIS 4/Visuale Interdev 6 PHP Apache 1.2.x/HomeSite 4.5/PHP 4 Java iPlanet Web Server 4.1/JBuilder 3.5/JDK 1.2.2
以上技术本人却实使用过,而且已经使用它们做过项目,基于以前的工作经验给初学者 和正在对自己应用系统进行选择的同仁谈谈自己对它们的评价,以做参考,同时也请大 家提出自己的想法和意见 ,多交流。但是我有一个这样的看法:“一个产品它存在就 有存在的理由,它不可能一无是处,而是需要你去选择一个最合适你的技术、产品”。 一个好的技术要用在最合适它的地方,所以本文可以做为你参考的一个文章,而不会告 诉你任何一个技术的“最”。
ASP 我们先来谈谈它,因为ASP是到现在开发人郡最广的一个技术了,所以想来大家也会对 它最关注。ASP是一个近乎完美的想法,可是因为MS一个大的环境的问题所以在一些方 面反回使它缩小在了一个小的框架中,如果它能更好的跳出这个框架,我想由它现在的 基础将无人可比。 ASP更精确的说是一个中间件,这个中间件将Web上的请求转入到一个解释器中,在这个 解释器中将所有的ASP的Script进行分析,再进行执行,而这时可以在这个中间件中去 创建一个新的COM对象,对这个对象中的属性和方法进行操作和调用,同时再通过这些 COM组件再完成更多的工作。所以说,ASP强大的不在于它的VBScript, 而在于它后台 的COM组件,这些组件来无限的扩充了ASP的能力。
强势: 1、简单易学。Basic有谁不会?很少会有人举手,所以有人在说这个开发基础是最广 的。而且MS有一向做的非常好的联机手册,本地化语言的帮助,同时非常快的出现教学 书籍,这样会大大方便开发人员的学习和对技术的深入研究。 2、安装使用方便。装好一个Windows 2000,只要你安装了IIS哪么ASP就可以使用了, 从没有什么需要你花心思去配置的。而说实话,ASP的调优也不难做,而要做到最细时 也不是一般人能做的了的。 3、开发工具强大而多样。这个我不用说了,可以说的就是我以前使用VB中的Web Class 开发出的Web应用一点不差,当时让许多人大吃一惊,VB也能做ASP上的应用!!!其实 这正说明了ASP开发工具的多样化,同时它们的功能也很强,这一点已经被许多程序员 所津津乐道。易用、简单、人性化,这本就是微软的强项哟。 4、效率高。在低的访问量下,ASP能体现出一定的效率,这时它对机器的要求并不高。
弱势: 1、Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨 平台性(Win2K已经不再支持Alpha了)都会因为与NT的捆绑而显现出来。 2、ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于Windows NT系 统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意, 哪么外部攻击就可以取得相当高的权限而..... 3、由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。 它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状 况。 4、无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最 佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运 行于一个大的多样化环境而设计的。 5、还无法完全实现一些企业级的功能:完全的集郡、负载均横。
总结: 适用人群: 熟悉MS架构的人员。想用最短的时间学习,同时想用最简单的方式完成自己的应用。 适用平台: Windows系列平台 适用应用: 企业内部管理信息系统、中小Internet应用、快速数据库开发的应用。
学习方式: IIS 4 Online Help(中文) MSDN Lib相关知识 市场上众多的ASP书籍
推荐开发工具: Visual InterDev Home Site Front Page
推荐开发环境: Windows 2000 Server MS SQL
推荐应用环境(最少): Windows 2000 Server/MS SQL 7 PIII 500/256M RAM/18G HD
PHP
PHP是一个什么原因出现的呢?它是一个技术人员希望能用一个快速的方面来完成他自 己的个人主页中的一个小应用。而在他一发不可收时出现了php,它使一个人能在多种 操作系统下迅速的完成一个轻型的Web应用。所以在短短的几年里,php迅速的升级了它 的版本,同时在GNU的世界里找到了一个青梅竹马的伙伴----Apache。这终于让php有了 基础,能在一个最佳的环境中运行,同时由于两个产品都是公开源代码的产品,所以大 家可以使用它们的源代码将这两个产品用最完美的方式结合到一起,使用起来就如一个 产品一样。个人认为php是自由软件在web应用平台上一个决胜的工具,如果没有php的 出现,还会有许多人认为自由软件就代表了对开发人员的高技术要求、难记的代码、复 杂的工具.....php使一个会使用basic的人员在极短的时间里快迅学习并完成用户需要 的应用。
怎么说php呢?如果说ASP是一个COM,哪么php说的更精确了可以说php是一个纯粹的 Script翻译器。这也是php由3升级为4的一个重大原因,在4这个版本里它重写了语法分 析器,从而加快了php整体的效能。而且从中你也就会明白为什么php需要支持这种或是 哪种扩充功能时它一定要与相应系统的lib库进行再编绎的原因。正因为它是正宗的 “翻译器”,所以它是将script翻译成为需要执行的函数,再去执行它们,外部扩充不 能由一些“动态加载”的方式进行,所以只能静态的编绎进php中(这只能在windows中 除外)。
强势: 1、一种能快速学习、跨平台、有良好数据库交互能力的开发语言。ASP比不上它的就是 这种跨平台能力了,而正是它的这种能力让Unix/Linux有了一种与ASP媲美的开发语 言。语法简单、书写容易、现在市面上也有了大量的书,同时Internet上也有大量的代 码可以共享,对于一个初学者想学些“高深的Unix”下的开发来说是一个决好的入手 点。 2、与Apache及其它扩展库结合紧密。php与Apache可以以静态编绎的方式结合起来,而 与其它的扩展库也可以用这样的方式结合(除外的就是Windows平台了)。这样的方式 的最大的好处就是最大化的利用了cpu时和内存,同时极为有效的利用了apache的高性 能的吞吐能力。同时外部的扩展也是静态连编,从而达到了最快的运行速度。由于与数 据库的接口也使用了这样的方式,所以使用的是本地化的调用,这也让数据库发挥了最 佳效能。 3、良好的安全性。由于php本身的代码开放所以它的代码在许多工程师手中进行了检 测,同时它与apache编绎在一起的方式也可以让它具有灵活的安全设定。所以到现在为 止,php具有了公认的安全性能。
弱势: 1、数据库支持的极大变化。由于php的所有的扩展接口都是独立团队开发完成的,同时 在开发时为了形成相应数据的个性化操作,所以php虽然支持许多数据库,可是针对每 种数据库的开发语言都完全不同。这样形成针对一种数据库的工发工作,在数据库进行 升级后需要开发人员进行几乎全部的代码更改工作。而为了让应用支持更多种的数据 库,就需要开发人员将同样的数据库操作使用不同的代码写出n种代码库出来,让程序 员的工作量大大增大。 2、安装复杂。由于php的每一种扩充模块并不是完全由php本身来完成,需要许多外部 的应用库,如图形需要gd库、LDAP需要LDAP库......这样在安装完成相应的应用后,再 联编进php中来。这也就是我以前在代码联盟新闻组中对网友所说的一定要在 FreeBSD/Linux/Unix下运行php的原因。只有在这些环境下才能方便的编绎对应的扩展 库。这些都是一般开发人员在使用php前所先要面对的问题,正是这样的问题让许多开 发人员转而使用其它的开发语言,必竟Unix没有哪么多的用户。 3、缺少企业级的支持。没有组件的支持,哪么所有的扩充就只能依靠php开发组所给出 的接口,事实上这样的接口还不够多。同时难以将集群、应用服务器这样的特性加入到 系统中去。而一个大型的站点或是一个企业级的应用一定需要这样的支持的。注:在 php的4.0版本以后加入了对servlet/javabean的支持,也许这样的支持会在以后的版本 中更加增强,也许这样的支持会是php以后的企业级支持的起点。 4、缺少正规的商业支持。这也是自由软件一向的缺点,我想在国内php的开发人员正在 快速增加,相信在不久的将来,这样的支持能多起来。 5、无法实现商品化应用的开发。由于php没有任何编绎性的开发工作,所有的开发都是 基于脚本技术来完成的。所以所有的源代码都无法编译,所以做完成的应用只能是自己 或是内部使用,无法实现商品化。
总结: 适用人群: 熟悉Unix环境,需要在最少的投入下完成快速的应用开发。 适用平台: FreeBSD/Linux/Unix操作系统、Apache服务器 适用应用: Internet高访问量、快速数据库开发的应用。
学习方式: Internet上国内丰富的资源 Internet上丰富的源代码资源,完全可以参考这样的例程来完成自己的应用。 市场上最近出版的好几本php手册
推荐开发工具: Home Site PHPEd
推荐开发环境: FreeBSD 4.1/RedHat 6.1操作系统 Apache 1.3.12 MySQL 3.22 P 200/64M RAM/9G HD
推荐应用环境(最少): FreeBSD 3.5/MySQL 3.22/Apache 1.3.12 P 200/128M RAM/9G HD 推荐应用环境(最佳): FreeBSD 3.5/Sybase 11/Apache 1.3.12 P III 500/512M RAM/18G HD
JSP
JSP又是什么原因出现的呢?Java在推向开发人员时出现了重重困难,首先是Java缺少 主流系统的广泛支持,而在所有的平台和技术上都缺少可以直接参照的应用方式。这时 java就走向了在各个应用层上的积极进取,在自己擅长的与不擅长的领域都走出了坚定 的脚步。其中最让Web技术人员兴奋的就是Java Servlet的出现和JSP的渐渐成熟,这一 步步都让Java正式的走向了Web开发技术的舞台。Java利用了它的跨平台技术,使java 的应用能快速的部署在各个平台上,而真的可以一处编写随处运行。它有较的利用了这 个优势,巧妙的将java的通用性、jsp的易用性、servlet的速度结合在一起,利用平台 部署上的技巧有效的屏蔽java的速度问题,所以Java迅速的在Web开发人员的团员中推 广开来。携着Java Bean、EJB、Java Application Server、Java事务服务器等这样的 强大后台走向了真正的成熟应用。
Jsp到底是一个什么样的语言呢?实际上JSP就是Java,只是它是一个特别的Java语言, 加入了一个特殊的引擎,这个引擎将HTTPServlet这个类的一些对象自动进行初始化好 让用户使用,而用户不用再去操心前面的工作。同时这个引擎又引入了〈jsp:*、〈%@等 一系列的特别语法,使用这些语法来进行一些特定的操作,如引用文件、URL转向、 JavaBean引用等这样的操作,这些都是由引擎自动帮你完成初始化的工作。我们可以将 这个引擎看作一个Jsp到Java Servlet的生成器或是翻译器,让用户不用再面对复杂的 Servlet中的还没开始工作就要写的几十行代码。这就是JSP---一个Java Servlet生成 器。JSP-〉Java Servlet Code(.java文件)-〉Java Runtime Bin Code(.class文件),这 就是为什么我们第一次运行JSP时CPU运行能达到很高的原因,它实际上是调用了jsp引 擎来生成java文件,再用javac来编译它到class文件,这才能去执行它。同时也说明了 在第一次运行以后,速度为什么哪么快的原因,只要这个jsp文件不改变哪么这个操作 就不再会进行了(除非你删除了class文件)。所以说,java有什么jsp就有什么样的功 能,与asp一样,jsp的真正力量是我们永远看不到头的!
强势: 1、一处编写随入运行。这是一个程序员的梦想,也是从前的程序员的恶梦,为了在不 同的平台间运行,使许多程序员一行行的重写代码。在这一点上java已经给了我最完美 的答案它做的要比php更出色,除了系统之外,你的代码不用做一点更改的。 2、系统的多台平支持。我已经在差不多所有平台上见到了一致的java servlet/jsp的 Web Server/Application Server......系统它可以让你在任意环境做开发,在任意环 境进行系统部署,在任意环境扩展。相比asp/php的局限性是显面易见的。 3、强大的的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp到由多台服务 器进行集群和负载均横,到多台Application进行事务处理、消息处理......一台服务 器到无数以服务器,Java显示了一个巨人的生命力。 4、多样化和功能强大的开发工具支持。这一点与asp很像,java已经有了许多非常优秀 的开发工具而且有许多可以免费得到,并且其中的许多已经可以顺利的运行于多种平台 之下。如果你细心的使用它们会发现比自己第一面看到它们时的功能要强大的多。
弱势: 1、与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能, 为了极度的伸缩能力,所以极大的增加了产品的复杂性。这么说,它在扩展时需要的分 成多少块,哪么java系统中就有多少种产品。所以你要以看到jre、jdk、jsdk、 jswdk......,实际上它们只要有效的搭配在一起,就可以产生强大的效能,密不可 分,但是对于一位初学者来说:“有没有搞错!难道让我运行一个jsp就要这么多乱七 八糟的东西!” 2、从出现的第一天起就被对手痛骂的:“慢如老牛”。真的,我在第一次运行我的jsp 时,我竟然以为我的机器死机而将哪个进程给kill了!第一次编绎、运行对于使用者来 说真是一场恶梦,在开发时我经常晚上做梦在看WinNT的任务管理器CPU格全绿时等着降 下来的样子和感觉。 3、技巧还是技巧。一个短处就一定要付出代价的。Java的运行速度是用将class常驻内 存来完成的,所以它在一些情况下所使用的内存比起用户数量来说却实是“最低性能价 格比”了。另一方面来说,它还需要硬盘空间来存储一系列的.java文件和.class文件 以及对应的版本文件。 4、缺少系统性的资料。这也许不该说,但是sun在国内做的却实很差劲,java的资烊在 国内极少,到现在我还没有在书店里看到一本jsp的书,而对java体系的论述书更是少 而又少,与java相关的书(中文版)到现在不过三位数。而再看看之中大量的具然还在 讲Visual J++或是Java 1.1这样的阵年旧货。
总结: 适用人群: 具有较强学习能力和耐心的开发人员。投入低但是希望拥有较大的伸缩能力的应用。 适用平台: ........(太多而只不再一一列说) 适用应用: Internet/Intranet高可靠性应用、Internet/Intranet与Client/Server结合的应用系 统
学习方式: Java的Doc文档和java站点中的一系文档 Internet的源代码资源 (对不起大家,真的不能提出更好的见议了,再有的就是大家的能力和运气,以及 Inetnet上网友的帮助了)
推荐开发工具: JBuilder Visual Age for java(这个我没用过,但是有人强力推荐) Sun Forte for Java KAWA
推荐开发环境: Windows NT/Windows 2000开发系统 JBuilder 3.5(它能成为Web Server,甚至不再需要其它的工具) Tomcat 3.1 JDK 1.3(可以不安装) Access 2000 P II 266/128M RAM/9G HD
推荐应用环境(最少): RedHat Linux 6.2/MySQL 3.22/Apache 1.3.12/Tomcat 3.1/JDK 1.3Beta PIII 500/512M RAM/9G HD 推荐应用环境(最佳): Solaris 8/Sybase 11/iPlanet Enterprise Web Server 4.1/JDK 1.3Beta Sun Netra T1/1G RAM/18G HD
|