您當前位置>首頁 » 新聞資訊 » 網站(zhàn)建設 >
動态網站(zhàn)Web開(kāi)發用(yòng)什(shén)麽語言δ γ好(hǎo)?PHP、ASP還(hái)是(shì)ASP.NET
發表時(shí)間(jiān):2011-4-13
發布人(rén):葵宇科(kē)技(jì)
浏覽次數(shù):115
動态網站(zhàn)Web開(kāi)發用(yòng)什♥™(shén)麽語言好(hǎo)?PHP、ASP還(hái)是(shì)✔ §ASP.NET。這(zhè)是(shì)一(yī)個(gè)經常被提出的δγ≈©(de)問(wèn)題,并且它很(hěn)容易把人(r' én)們帶入争論Linux還(hái)是(shì)Windows的(de)歧途。這(zh∞∏§¶è)樣的(de)争論事(shì)實上(shàng)反映出了(le)對(duì)于相↔σ(xiàng)互競争的(de)Web開(kāi)發技(jì)術(shù)要(yàε¶'o)進行(xíng)并行(xíng)分(fēn)析是(shì)多(duō)麽困難的(d÷¶e)一(yī)件(jiàn)事(shì)情,而這(zhè→γ)一(yī)難度同時(shí)因為(wèi)開(kāi)發人(rén)員(yuán)γλ 對(duì)任何可(kě)比較操作(zuò)系統的(de)≈×α不(bù)同意見(jiàn)而大(dà)大(dà)增加。
我們來(lái)看(kàn)看(kàn)每一(yī)項技(jì)術₹♥≤(shù)對(duì)于特定Web開(kāi)發以及運行(xíng♦≥$)環境所表現(xiàn)出的(de)優勢。盡管ASP和(hé)PHP的(de)相(xiàng♥∑)似程度大(dà)于其中任庖恢鐘(zhōng)階SP.NET的(de)相↑★(xiàng)似程度,我們還(hái)是(shì)要(yào)討(tǎo)§π★↑論ASP.NET。原因是(shì)開(kāi)發人(rén)員(yuán®™€)常常将其與ASP相(xiàng)混淆,并且σΩ∏£在微(wēi)軟的(de)努力下(xià)ASP.NETφ✘©©的(de)确會(huì)在将來(lái)完全取代ASP。
基本理(lǐ)論——特點概述
ASP——動态服務頁面(Active Serv σπ™er Pages)
微(wēi)軟将ASP引入Windows NT Server 4并将其作(z¶↕÷uò)為(wèi)IISWeb服務器(qì)下(xià)的(de)動×₽态Web應用(yòng)程序的(de)默認使用(yòng)平台。由于它使用(yòng)VBS♦↕cript(VisualBasic語言的(de)一(yī)個βφ(gè)分(fēn)支),ASP立即被熟悉Microsoft IDE—↔"—VisualStudio編程的(de)開(kāi)發人(rén)員(yuán)所追捧。随著(>₹'zhe)腳本語言的(de)不(bù)斷發展,研究人(rén↑€)員(yuán)對(duì)ASP并沒有(yǒu)引入太多↑☆≥(duō)功能(néng)使之加入到(dào)技(jì)術(shù)競争的(de)行✘εΩ₹(xíng)列。因此,在PHP中可(kě)以看(kàn)到(Ω±dào)的(de)諸如(rú)圖像操作(zuò)等功能(n→≤♦πéng)沒有(yǒu)集成到(dào)ASP中。但(dàn)開(kāi)發人(rén)員(yuán÷<)仍然可(kě)以通(tōng)過DLL文(wén)件(jiàn)的(de)形式編寫&₹#xff08;或者安裝)第三方COM對(duì)象來(lái)完成類似的(de)σ§∞工(gōng)作(zuò)。在服務器(qì)自(zì)"≥→身(shēn)允許的(de)情況下(xià)®₹σ↔f0c;通(tōng)過這(zhè)種方式可(kě)以編寫代碼來(lái ♣☆)完成任何動作(zuò)。當然,造成的(de)缺陷是(shì)這(zh™è)将導緻為(wèi)了(le)配置這(zhè)些(xiē)服務開(kāi)¶發人(rén)員(yuán)不(bù)得(de)不(bù)與桌面系統進行(xíng)交互——對∏→≈✔(duì)于Web開(kāi)發人(rén)員(yuán)來(lái)€↔ε說(shuō)這(zhè)項功能(néng)并不(bù)是(shì)必須的(de)。
ASP的(de)優勢是(shì)在企業(yè)環境中微(♦≈wēi)軟服務器(qì)幾乎無處不(bù)在。此外(w∏£π←ài),MS SQLServer同樣具有(yǒu)廣泛的¥× ₽(de)市(shì)場(chǎng),并且能(néng)很(hěn)好<✘★(hǎo)的(de)支持ASP(這(zhè)并不(bù)會(huì)±$←≤讓人(rén)感到(dào)驚奇)。盡管事(shì)實上(©↔shàng)通(tōng)過ODBC可(kě)以兼容任何數(shù)據來σ≠(lái)源,但(dàn)SQLSer σ←ver以及文(wén)件(jiàn)DSN訪問(wèn)(file DSN ac$±↔cess)可(kě)以在代碼一(yī)級得(de)↓&到(dào)實現(xiàn)
PHP——超文(wén)本預處理(lǐ)器(qì)(Hype✘↑ rtext Pre-processor)
PHP是(shì)開(kāi)放(fàng)源代碼服務器(qδ©ì)端的(de)腳本語言,在語法上(shα≈β≈àng)同C語言非常類似。盡管最初是(shì)被設計(jì)用(γ£'yòng)于基于Linux的(de)Apache Web服務器(qì)系統£f0c;現(xiàn)在的(de)PHP已經被移植到(dào)了(le)任何操₩ε作(zuò)系統并兼容任何标準Web服務器(qì)軟Ω₽ 件(jiàn)。由此也(yě)可(kě)以得(de)出PHP的(de)三大(dà)≥₽主要(yào)優勢。首先它是(shì)跨平台的(de)技(jì)術(shù)Ω∞×βxff0c;因此PHP應用(yòng)程序可(kě)以被方便的(de)移植—↓πα¶—當然這(zhè)還(hái)要(yào)取決于諸如(rú)廠(chǎng)商特定數(shù)據庫☆↑λ等需要(yào)集成的(de)額外(wài)組件(jiàn)。這(zhè)樣的(de)可(∏↓kě)移植性還(hái)帶來(lái)了(le)另一(yī)方β∞ 面的(de)優勢,即絕大(dà)部分(fēn)的(de)Web✔α♥主機(jī)提供商都(dōu)會(huì)支持PHP,因此根據需要(yào)更π≈改主機(jī)将會(huì)非常方便。
第二點,由于PHP同C編程語言有(yǒu)很(ε₽✘hěn)多(duō)相(xiàng)似之處,對(duì)于熟悉←>™☆相(xiàng)關語法的(de)開(kāi)發人(rén)員(yuán)來(lái)說(π∑♠shuō),PHP則非常容易上(shàng)↕"β手——這(zhè)種語法同樣在Java、JavaScript₽ 以及Perl中得(de)到(dào)應用(yòng)。第三,由于是(shì)開(k ®₽®āi)放(fàng)源代碼産品,PHP将繼續↑♥快(kuài)速發展,更為(wèi)重要(yào)的(de)是(shì)相(δβ®↕xiàng)關漏洞補丁将免費(fèi)的(de)定期植入到(dào)核心庫中。
此外(wài),在一(yī)些(xiē)特定的(de)編程δ&需求下(xià),PHP對(duì)于開<β(kāi)發人(rén)員(yuán)顯示出了(le±)更為(wèi)誘人(rén)的(de)吸引力。首先,PHP≠&有(yǒu)內(nèi)建庫支持對(duì)于圖片及PDF文(wén)檔的(de)直↕₽♠接創建和(hé)相(xiàng)關操作(zuò)。這(zhè)意味著(zhe)當一(y↓ ¶←ī)個(gè)應用(yòng)程序調用(yòng)包含有( ♣yǒu)anti-aliased類型文(wén)本的(de)動态創建菜單圖像,或者是>γ♦(shì)需要(yào)導出Acrobat格式頁面時(shí),PHΩΩP都(dōu)将是(shì)解決此類問(wèn)題的(de)₹♦↕理(lǐ)想技(jì)術(shù)。盡管這(zhè)些(xiē)功能(néng)在理(lǐ)論上(↓€shàng)也(yě)可(kě)以通(tōng)過其他(tā)與PHP相(xiàng)競争的™₽(de)技(jì)術(shù)獲得(de),但(dα≠©πàn)往往其他(tā)技(jì)術(shù)需要(yào)安裝第三方自(zì)定義組件(jià✘±φn)才能(néng)實現(xiàn)。
另一(yī)點使得(de)PHP成為(wèi)編寫服務器(qì)腳本最佳選₽∑≠¥擇的(de)是(shì)在處理(lǐ)連接mySOL或者Postgres數(φ ∞¥shù)據庫一(yī)類的(de)問(wèn)題時(shí)PHP的(de)良好(hǎo) &♠π表現(xiàn)。盡管對(duì)于mySOL或者Postgres數(shφ∞ù)據庫的(de)訪問(wèn)可(kě)以通(tōng)過AS>≤P技(jì)術(shù)借助ODBC連接來(lái)實現(xiàn)ÿ♣$0c;但(dàn)這(zhè)常常需要(yào)系統管理(lǐ)員(yuán)進行(xíng)額σ 外(wài)的(de)配置。幸運的(de)是(shì),這(zhè)點限φ≈制(zhì)在ASP.NET中得(de)到(dào)了(le)改正∑> c;當需要(yào)建立類似于使用(yòng)MSSQL Serve™←★r的(de)直接數(shù)據庫連接時(shí)可(kě)以通(tōng)過my♥↕SQL提供數(shù)據。
ASP.NET
是(shì)選擇ASP還(hái)是(shì)PHP的(de)争論正在≥♥随著(zhe).NET的(de)崛起而越來(lái)越顯得(de)多(duō)餘。的(dε≥e)确,過去(qù)長(cháng)達數(shù)年(nián)的(de)争論将随π&δ著(zhe)是(shì)選擇Java還(hái)是(shì).NET技(jì)術(shù)Ω♣xff08;或是(shì)兩者)答(dá)案的(de)揭曉而終結。ASP以及ASP.±♥ NET的(de)唯一(yī)聯系是(shì)二者都(dō✔±ε"u)使用(yòng)VBScript。而單獨就(jiù).NET而言,♦Ω它可(kě)以使用(yòng)VBScript以及其他(tā)大(dà)約✘→20種語言。
對(duì)于ASP以及PHP來(lái)說(shuō),将ASP.NET看(k±↓>®àn)作(zuò)是(shì)另外(wài)一(yī)種語言的(de)原因是(s↑£↕hì)它運行(xíng)在完全不(bù)同的(de)構架之上(shàng)。前者是®&®★(shì)翻譯腳本語言,而.NET則是(shì)經過編譯的(de)framewor&Ωk。這(zhè)就(jiù)意味著(zhe)首先Web頁¥αφ面的(de)運行(xíng)速度将會(huì)有(yǒu)極大(dà)提高(gāo)。♠≤≠同時(shí),源代碼更加安全且更為(©wèi)健壯。此外(wài),ASP.NET♠™≤®給Web編程帶來(lái)了(le)新的(de)理(lǐ)念—©₽—即“code-behind頁面”的(de)思想。按照(zhào)code-behind思想♦δxff0c;每一(yī)個(gè)HTML頁面都(dōu)是(shì)由自(zβ←ì)身(shēn)經過編譯的(de)程序化(huà)指令進行(xíng)驅動。因此&£©♠ #xff0c;HTML——或稱之為(wèi)表現(xiàn)層——很(→®✘↔hěn)大(dà)程度上(shàng)脫離(lí)了<γ♣(le)應用(yòng)程序的(de)商業(yè)邏輯。盡>≈管這(zhè)樣的(de)分(fēn)離(lí)也(yě)可(kě)以通(tōng)過P✘HP和(hé)ASP來(lái)實現(xiàn),但(dàn)這(z ♠§hè)并非同ASP.NET一(yī)樣屬于自(zì)身(shēn)←$技(jì)術(shù)的(de)主要(yào)部分(fēn)。
ASP.NET的(de)另一(yī)好(hǎo)處是(βδ≤≠shì)它完整的(de)集成了(le)對(duì)XML以₽₽及Web服務的(de)各種支持。對(duì).NET而言可(kě)以使用( λyòng)非常廣泛的(de)安全以及密碼系統庫,這(zhè↔®)對(duì)于金(jīn)融機(jī)構和(hé)企業(yè)數(shù)據應用(yòng)程'φ↓$序尤為(wèi)有(yǒu)用(yòng)。就(jiù)缺陷而言,即使是₽¶γ(shì)具備豐富經驗的(de)開(kāi)發人(rén)員(yuá✔βφ★n)也(yě)會(huì)發現(xiàn)使用(yòng).NE♥T可(kě)能(néng)把自(zì)己搞糊塗。不(bù)考慮開™φ✔₽(kāi)發者對(duì)于所使用(yòng)的(de)編程語言的(de)熟悉₽≠φ程度,對(duì)于Web開(kāi)發人(rén)員(yuán)來↓₹φ (lái)說(shuō),在程序範例方面難度的&¶'(de)大(dà)幅提升可(kě)能(néng)會(huì)成為(wèi)他(tā)們融入ASP."×←NET的(de)主要(yào)障礙。對(duì)ASP.NET應用(✘•<yòng)程序來(lái)說(shuō)主機(jī)同樣是(shì)個↔ (gè)問(wèn)題,ASP.NET并未同ASP或者PHP一(yī)樣獲得(deε★•♦)了(le)主機(jī)提供商的(de)廣泛支持★β> xff0c;無法在同一(yī)級别上(shàng)展開(kāi)競争↕©。