三種主流技術是哪三種呢?我主要講一下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
|