關于B/S結構系統開發語言的(de)選擇

發表日期:2009.10.17    訪問人(rén)數:2651

現在主流的(de)網站開發語言無外乎asp、php、asp.net、jsp四種。很多(duō)初學者或客戶對(duì)于用(yòng)于網站開發即B/S結構系統的(de)程序語言選擇比較迷茫,這(zhè)裏綜合我們多(duō)年的(de)開發經驗進行一些分(fēn)析:

網頁從開始簡單的(de)html到複雜(zá)的(de)服務語言,走過了(le)10多(duō)個(gè)年頭,各種技術層出不窮,單個(gè)的(de)主流技術也(yě)在不斷翻新的(de)版本,經常有客戶一來(lái)就問是否A語言運行速度更快(kuài)?是否B語言安全性更高(gāo)?是否C語言是現在最先進的(de)?然後憑自己的(de)主觀想象或者參考一些行業者片面的(de)說法就指定必須用(yòng)某種語言結合某種數據庫來(lái)發開,盲目的(de)認爲這(zhè)樣的(de)開發結果就是最先進的(de)最好的(de)。其實不管ASP、PHP、ASP.net、JSP哪種語言,它們能成爲網站的(de)開發主流語言,就直接說明(míng)著(zhe)這(zhè)四種語言本身并沒有太大(dà)的(de)優缺點,而關鍵在于開發它的(de)人(rén)或公司是否擅長(cháng)于使用(yòng)它和(hé)用(yòng)它做(zuò)出來(lái)的(de)東西是否符合該系統要達到的(de)目的(de),所謂擅長(cháng)的(de)标準,應該就是使用(yòng)該語言的(de)人(rén)能在高(gāo)效率、高(gāo)質量的(de)前提下(xià)實現其所有功能,大(dà)多(duō)數公司團隊或個(gè)人(rén)都有自己擅長(cháng)的(de)程序語言,隻要能通(tōng)過各自擅長(cháng)的(de)語言達到系統建設的(de)目的(de),我們又何必太在乎語言的(de)本身是否優劣,如果說優劣也(yě)隻能是指最終開發出的(de)系統是否考慮完善。下(xià)面我們就對(duì)四種語言進行逐一分(fēn)析和(hé)對(duì)比,看怎樣的(de)條件下(xià)選擇用(yòng)怎樣的(de)語言才能開發出适合自身情況需要的(de)系統搭建。

HTML:當然這(zhè)是網頁最基本的(de)語言,每一個(gè)服務器語言都需要它的(de)支持,要學習(xí),每個(gè)開發者都必須要掌握,這(zhè)個(gè)肯定是開始,這(zhè)裏就不說了(le).

主流網站開發語言之ASP:ASP是微軟(Microsoft)所開發的(de)一種後台腳本語言(請注意ASP是種腳本,嚴格來(lái)說并不是種開發語言,這(zhè)也(yě)是它和(hé)一些語言最大(dà)的(de)本質區(qū)别,),它的(de)語法和(hé)Visual BASIC類似,可(kě)以像SSI(Server Side Include)那樣把後台腳本代碼内嵌到HTML頁面中。ASP在執行的(de)時(shí)候,是由IIS調用(yòng)程序引擎,解釋執行嵌在HTML中的(de)ASP代碼,最終将結果和(hé)原來(lái)的(de)HTML一同送往客戶端。ASP的(de)簡單易用(yòng)是其最大(dà)的(de)特點,特别是和(hé)ACCESS這(zhè)種小型數據庫結合後相當方便,說到這(zhè)裏不得(de)不插說一下(xià)數據庫:

Access:微軟Office帶的(de)小型數據庫系統,一般與Asp,Asp.Net配合使用(yòng)。這(zhè)個(gè)數據庫極度适合小型企業的(de)網站,對(duì)于數據量低于10萬條的(de)網站來(lái)說,完全沒有問題.其實ACESS已經能滿足相當多(duō)的(de)網站數據量需求,不要去盲目的(de)選擇使用(yòng)大(dà)型數據庫,一方面增加不必要的(de)工作量如環境搭建,一方面會增加費用(yòng)。

MYSQL:一種免費的(de)中型數據庫系統,一般與PHP配合使用(yòng).  對(duì)于PHP程序員(yuán)來(lái)說,MYSQL是最好的(de)選擇.
        MSSQL(SQL Server):微軟公司的(de)大(dà)型數據庫系統,一般Asp,Asp.Net使用(yòng),目前比較流行的(de)版本有2000,2005.  網站數據量超過了(le)十萬\二十萬,那就改用(yòng)MSSQL數據庫吧.

主流網站開發語言之PHP: Php和(hé)Asp一樣也(yě)是,也(yě)是屬于腳本語言,一般連接的(de)數據庫爲MySql數據庫,當然它也(yě)能和(hé)Access數據庫和(hé)MsSql(SqlServer)數據庫等其他(tā)數據庫連接。PHP的(de)源代碼完全公開,PHP屬于免費軟件,也(yě)就是說他(tā)的(de)資源是free的(de)。 Php從安全性上比Asp要好,當然這(zhè)裏說的(de)是相對(duì)而言,一個(gè)好的(de)程序員(yuán)把安全性做(zuò)好的(de)話(huà),都差不多(duō),不過Php的(de)安全性要比Asp要好,爲什(shén)麽這(zhè)麽說呢(ne)。這(zhè)裏主要原因是這(zhè)樣的(de),PHP的(de)搭建服務器環境相對(duì)複雜(zá)(需要安裝Apache + MySql + PHP),而Asp的(de)搭建環境比較簡單(隻需要安裝IIS就可(kě)以了(le)),所以學PHP的(de)門檻比Asp的(de)門檻要高(gāo),所以很多(duō)人(rén)就偏向Asp學習(xí)的(de)人(rén)就多(duō)了(le),自然研究Asp漏洞的(de)人(rén)就多(duō)了(le),而PHP會的(de)人(rén)就少,所以研究漏洞的(de)人(rén)就更少了(le),從這(zhè)點來(lái)說PHP的(de)安全性比ASP的(de)安全性要高(gāo)些。而且還(hái)有一點就是 Apache 的(de)環境最好是Unix,當然Windows下(xià)也(yě)是可(kě)以安裝的(de)。

平台無關性是PHP的(de)最大(dà)優點,但是在優點的(de)背後,還(hái)是有一些小小的(de)缺點的(de)。如果在PHP中不使用(yòng)ODBC,而用(yòng)其自帶的(de)數據庫函數(這(zhè)樣的(de)效率要比使用(yòng)ODBC高(gāo))來(lái)連接數據庫的(de)話(huà), 使用(yòng)不同的(de)數據庫,PHP的(de)函數名不能統一。這(zhè)樣,使得(de)程序的(de)移植變得(de)有些麻煩。不過,作爲目前應用(yòng)最爲廣泛的(de)一種後台語言,PHP的(de)優點還(hái)是異常明(míng)顯的(de)。

主流網站開發語言之ASP.NET:ASP.net是Microsoft.net的(de)一部分(fēn),作爲戰略産品,不僅僅是 Active Server Page (ASP) 的(de)下(xià)一個(gè)版本;它還(hái)提供了(le)一個(gè)統一的(de) Web 開發模型,其中包括開發人(rén)員(yuán)生成企業級 Web 應用(yòng)程序所需的(de)各種服務。ASP.NET 的(de)語法在很大(dà)程度上與 ASP 兼容,同時(shí)它還(hái)提供一種新的(de)編程模型和(hé)結構,可(kě)生成伸縮性和(hé)穩定性更好的(de)應用(yòng)程序,并提供更好的(de)安全保護。可(kě)以通(tōng)過在現有 ASP 應用(yòng)程序中逐漸添加 ASP.NET 功能,随時(shí)增強 ASP 應用(yòng)程序的(de)功能。ASP.NET 是一個(gè)已編譯的(de)、基于 .NET 的(de)環境,可(kě)以用(yòng)任何與 .NET 兼容的(de)語言(包括 Visual Basic .NET、C# 和(hé) JScript .NET.)創作應用(yòng)程序。另外,任何 ASP.NET 應用(yòng)程序都可(kě)以使用(yòng)整個(gè) .NET Framework。開發人(rén)員(yuán)可(kě)以方便地獲得(de)這(zhè)些技術的(de)優點,其中包括托管的(de)公共語言運行庫環境、類型安全、繼承等等。ASP.NET 可(kě)以無縫地與 WYSIWYG HTML 編輯器和(hé)其他(tā)編程工具(包括 Microsoft Visual Studio .NET)一起工作。這(zhè)不僅使得(de) Web 開發更加方便,而且還(hái)能提供這(zhè)些工具必須提供的(de)所有優點,包括開發人(rén)員(yuán)可(kě)以用(yòng)來(lái)将服務器控件拖放到 Web 頁的(de) GUI 和(hé)完全集成的(de)調試支持。微軟爲ASP.net設計了(le)這(zhè)樣一些策略:易于寫出結構清晰的(de)代碼、代碼易于重用(yòng)和(hé)共享、可(kě)用(yòng)編譯類語言編寫等等,目的(de)是讓程序員(yuán)更容易開發出Web應用(yòng),滿足計算(suàn)向Web轉移的(de)戰略需要。ASP.net 的(de)速度 是 ASP不能比拟的(de)。ASP.net 是編譯語言,所以,當第一次加載的(de)時(shí)候,它會把所有的(de)程序進行編譯(其中包括 worker進程,還(hái)有對(duì)語法進行編譯,形成一個(gè)程序集),當程序編譯後,執行速度幾乎爲0,而ASP是把代碼交給VBScript解釋器或Jscript解釋器來(lái)解釋,當然速度沒有編譯過的(de)程序快(kuài)了(le)。

主流網站開發語言之JSP:JSP和(hé)Servlet要放在一起講,是因爲它們都是Sun公司的(de)J2EE(Java 2 platform Enterprise Edition)應用(yòng)體系中的(de)一部分(fēn)。

Servlet的(de)形式是HTML代碼和(hé)後台程序分(fēn)開的(de),是服務器接到客戶端的(de)請求後,進行應答(dá),打開一個(gè)線程(Thread),将結果發送給客戶。由于線程與線程之間可(kě)以通(tōng)過生成自己的(de)父線程(Parent Thread)來(lái)實現資源共享,這(zhè)樣就減輕了(le)服務器的(de)負擔,所以,Java Servlet可(kě)以用(yòng)來(lái)做(zuò)大(dà)規模的(de)應用(yòng)服務。

雖然在形式上JSP和(hé)ASP或PHP看上去很相似——都可(kě)以被内嵌在HTML代碼中。但是,它的(de)執行方式和(hé)ASP或PHP完全不同。在JSP被執行的(de)時(shí)候,JSP文件被JSP解釋器(JSP Parser)轉換成Servlet代碼,然後Servlet代碼被Java編譯器編譯成 .class 字節文件,這(zhè)樣就由生成的(de)Servlet來(lái)對(duì)客戶端應答(dá)。所以,JSP可(kě)以看做(zuò)是Servlet的(de)腳本語言(Script Language)版。

由于JSP/Servlet都是基于Java的(de),所以它們也(yě)有Java語言的(de)最大(dà)優點——平台無關性,也(yě)就是所謂的(de)“一次編寫,随處運行(WORA – Write Once, Run Anywhere)”。除了(le)這(zhè)個(gè)優點,JSP/Servlet的(de)效率以及安全性也(yě)是相當驚人(rén)的(de)。因此,JSP/Servlet雖然在國内目前的(de)應用(yòng)并不廣泛,但是其前途不可(kě)限量。

在調試JSP代碼時(shí),如果程序出錯,JSP服務器會返回出錯信息,并在浏覽器中顯示。這(zhè)時(shí),由于JSP是先被轉換成Servlet後再運行的(de),所以,浏覽器中所顯示的(de)代碼出錯的(de)行數并不是JSP源代碼的(de)行數,而是指轉換後的(de)Servlet程序代碼的(de)行數。這(zhè)給調試代碼帶來(lái)一定困難。所以,在排除錯誤時(shí),可(kě)以采取分(fēn)段排除的(de)方法(在可(kě)能出錯的(de)代碼前後輸出一些字符串,用(yòng)字符串是否被輸出來(lái)确定代碼段從哪裏開始出錯),逐步縮小出錯代碼段的(de)範圍,最終确定錯誤代碼的(de)位置。

如今主流的(de)Web服務器軟件主要由IIS或Apache組成。IIS支持ASP且隻能運行在Windows平台下(xià),Apache支持PHP,CGI,JSP且可(kě)運行于多(duō)種平台,雖然Apache是世界使用(yòng)排名第一的(de)Web服務器平台,但是衆所周知,Windows以易用(yòng)而出名,也(yě)因此占據不少的(de)服務器市場(chǎng)。

vb一般指vb6.0,是傳統的(de)win32編程。vb.net和(hé)asp.net是基于微軟.net平台的(de)語言。說java好主要是因爲java的(de)j2ee部分(fēn)做(zuò)企業級開發很強大(dà),而且跨平台。c#是.net平台上最好用(yòng)的(de)語言,現在隻能運行在windows系統。 web開發方面.net和(hé)j2ee的(de)競争很激烈,難說以後鹿死誰手。 現在做(zuò)網站大(dà)部分(fēn)都是asp.net或jsp的(de),asp.net容易上手,比較普及,但是平台單一,jsp雖然上手難,但是跨平台,安全性高(gāo)。

 

我們常用(yòng)的(de)開發組合:

 

IIS環境下(xià)

1.ASP+ACCESS

2.ASP+SQL SERVER

3.ASP.NET+ACCESS

4.ASP.NET+SQL SERVER

APACHE環境下(xià)

5. JSP +Oracale

6.JSP+MYSQL

7.PHP+MYSQL

總結對(duì)比:

                  asp       asp.net         php         jsp
主要适用(yòng)          網站      網站管理(lǐ)系統    網站        管理(lǐ)系統
網站規模          小型      大(dà)中小          中小型      大(dà)中
學習(xí)難度          簡單      中              簡單        難
開發速度          快(kuài)        中              快(kuài)          慢(màn)
國内流行程度      較        較              較          一般

可(kě)以說在ASP.net的(de)推出并随著(zhe)微軟的(de)強勢支持下(xià),同爲微軟産品的(de)ASP在微軟停止對(duì)其更新後,确實快(kuài)過時(shí)了(le),在未來(lái)jsp和(hé)asp.net将會有巨大(dà)的(de)潛力,但PHP憑借其開源的(de)特性也(yě)會占有一定份額。 因此在國内來(lái)說,ASP.net和(hé)PHP在大(dà)多(duō)數的(de)網站應用(yòng)中現在已經是主流中的(de)主流,JSP一般用(yòng)于一些超大(dà)型的(de)網站開發或者管理(lǐ)系統開發。

綜上所述,我們評價其速度也(yě)好,安全性也(yě)好,開發難易度也(yě)好,成本投入也(yě)好等等都是相對(duì)而言,都是相對(duì)于一個(gè)B/S系統的(de)發展需要和(hé)适合自身條件投入而言。如果要用(yòng)ASP+MSSQL開發一個(gè)新浪或者163這(zhè)種巨型門戶網站也(yě)不是不可(kě)以,但如果要這(zhè)樣做(zuò)我們也(yě)可(kě)以使這(zhè)種組合夠速度、夠安全,但這(zhè)會增加開發者巨大(dà)的(de)工作量去研究配合提高(gāo)它的(de)速度、安全性、和(hé)考慮負載的(de)均衡。經常看到有些公司打出用(yòng)JSP建站的(de)口号,以此爲賣點,客戶不要盲目覺得(de)JSP就是最先進的(de),也(yě)許ASP是一把小刀(dāo),JSP是一把菜刀(dāo),用(yòng)來(lái)削個(gè)蘋果不見得(de)是更大(dà)的(de)菜刀(dāo)适合吧,一些網絡公司或軟件公司用(yòng)不成熟的(de)JSP技術做(zuò)出來(lái)的(de)東西那不叫JSP,不叫J2EE,不見得(de)後綴名爲JSP的(de)就能真正發揮了(le)JSP的(de)所有特性,因此國内經常看到一些JSP網站速度其慢(màn),甚至效果不如ASP。JSP本身的(de)特性就決定了(le)用(yòng)這(zhè)種語言來(lái)開發畢将是高(gāo)成本的(de)投入,那些花很少的(de)成本做(zuò)個(gè)JSP站點我們肯定要持懷疑的(de)态度來(lái)認真審視,而花出高(gāo)達幾倍甚至數十倍的(de)成本來(lái)硬撐個(gè)JSP小站點我想也(yě)不是一般人(rén)能夠接受的(de),所以選擇怎樣的(de)組合完成怎樣的(de)事以達到怎樣的(de)目的(de)才是重點,也(yě)許這(zhè)也(yě)不僅僅是這(zhè)個(gè)行業的(de)特點,也(yě)适用(yòng)于其他(tā)行業。

成都網站建設資料請點擊【成都網站建設公司介紹

成都網站設計案例請點擊【成都網站設計案例

馳創數碼
緻力打造互動品牌,提供精準營銷服務

立即咨詢

網站建設客服微信

掃一掃,添加微信咨詢

免費咨詢

400-602-8610

  • 地址:成都市高(gāo)新區(qū)錦城(chéng)大(dà)道666号奧克斯廣場(chǎng)B座902
  • 其他(tā)咨詢熱(rè)線:028-86666423 028-8666413
  • 郵箱:service@chichuang.com
  • 傳真:028-86666493