国产精品久久久久久久久久,国产午夜视频在线观看,中文字幕av久久爽av蜜月交换,夜夜高潮夜夜爽国产伦精品,国产特级毛片AAAAAAA高清

購物車中還沒有商品,趕緊選購吧!
首頁  >  產品更新  >  PHP和ASP.NET的全面性能對比---資深與權威人士的分析結果
PHP和ASP.NET的全面性能對比---資深與權威人士的分析結果

這是一(yi)篇(pian)在2009年寫的(de)關于(yu)PHP與(yu)ASP.NET在速度,安全,性能,優勢劣勢,發(fa)展前(qian)景、應用(yong)狀況等(deng)方面(mian)進行全面(mian)對比分析(xi)的(de)文章,包(bao)含了包(bao)括Joe等(deng)資深的(de)優秀編(bian)程人員的(de)測試和分析(xi)結果(guo),是一(yi)份(fen)比較(jiao)中(zhong)立和權威的(de)php與(yu)asp.net的(de)權威分析(xi)博文。


思途智旅也(ye)有(you)自己程(cheng)序(xu)(xu)語(yu)言選擇的觀點,以及為什么我們最終選擇了PHP程(cheng)序(xu)(xu)。


思途旅游網站建設程序的核心技術團隊曾經是資深的C#工程師,以及精通ASP.NET程序工程師,他們曾經任職于諾亞舟、新蛋、美國GE以及宏華石油等大型企業的技術骨干。我們在對PHP和ASP.NET進行多次討論和測試后,思途CMS的程序最(zui)終選擇了PHP+MYSQL。


但是(shi),誠如我們的(de)技(ji)術總(zong)監翟工所講(jiang),APS.NET和PHP是(shi)各有所長的(de),不(bu)能(neng)簡單用好壞,安(an)全與否來評價(jia)。再好的(de)語言,由不(bu)同的(de)技(ji)術工程師(shi)開發出來,安(an)全,性能(neng)也(ye)往往是(shi)有很大區別的(de)。


因此,好(hao)的(de)(de)(de)程(cheng)序開發,關鍵還是(shi)在(zai)于經驗的(de)(de)(de)積累,開發標準的(de)(de)(de)統(tong)一、完(wan)備(bei)的(de)(de)(de)測(ce)試,以及開發者(zhe)能力強弱等直接相關。所以不能簡(jian)單的(de)(de)(de)說(shuo)(shuo)哪個語言程(cheng)序好(hao),或者(zhe)哪個不好(hao),這是(shi)外行人的(de)(de)(de)說(shuo)(shuo)法(fa)。


不(bu)(bu)過,不(bu)(bu)得不(bu)(bu)說,針(zhen)對不(bu)(bu)同(tong)的(de)語言,不(bu)(bu)同(tong)的(de)版本,在同(tong)樣(yang)的(de)開(kai)發環境下(xia),也會呈現(xian)出不(bu)(bu)能的(de)優勢與(yu)劣勢。從(cong)這個角度來說,將ASP.NET與(yu)PHP拿來比較肯定是(shi)(shi)有必要(yao)的(de),也正是(shi)(shi)經過了這樣(yang)的(de)測試(shi)與(yu)比較,思(si)途CMS的(de)程序最終選(xuan)擇(ze)了PHP+MYSQL。


總的來說(shuo)(摘錄:來源(yuan):

  • 關于性能:筆者會(hui)闡述影響性能的(de)(de)種種因素(su),其結果會(hui)證(zheng)明因為速(su)度而選(xuan)擇(ze)一(yi)種編程(cheng)語(yu)言在大多數(shu)情況下是毫無意義的(de)(de)。

  • 關于可拓展性:筆者會闡述影響可(ke)拓(tuo)展(zhan)性的因(yin)素,但實際上,只要編程(cheng)方法正確,兩種語言的可(ke)拓(tuo)展(zhan)性能都十分強大。

  • 關于成本和技術支持:由于 PHP 是開源的,通常運行在 LAMP(即 Linux,Apache,MYSQL 和 PHP)這些開源平(ping)臺上。因(yin)此,在提(ti)供最(zui)具成本效益(yi)的解決方(fang)案和提(ti)供大(da)量的資源及支持(chi)方(fang)面,PHP 是優于 ASP.NET 的。

  • 關于平均部署時間(即附加成本):使用 ASP.NET 進(jin)行編碼需要的代碼量(liang)是使用 PHP 的兩(liang)倍,因(yin)此(ci)使用 PHP 部署時間成本更(geng)低(di),速度更(geng)快。

  • 其實,高(gao)(gao)效、易用(yong)、快速、更低成本,運行平臺的(de)(de)(de)安(an)全性高(gao)(gao)應該是PHP最好的(de)(de)(de)注腳,這就(jiu)是為什么網頁程(cheng)序語言(yan)選(xuan)擇中,超過70%的(de)(de)(de)網站(zhan)程(cheng)序員選(xuan)擇了PHP的(de)(de)(de)原因。

  • 國內(nei)外主流(liu)CMS系統(tong)都不約而同(tong)的(de)選擇(ze)的(de)PHP,比如DEDE、ecshop、dz,當然包括stourwebcms等(deng)等(deng)

  • ?

以下是轉載的php與asp.net的測試比較文章,相信這樣的專業文章可以為您選擇電商網站程序語言提供參考。

來源:

誰是速度之王?

  剛剛在9月編程語言排行榜上取得歷史性(xing)突破的(de)(de)PHP在Web開發領(ling)域最到(dao)的(de)(de)對(dui)手可(ke)能(neng)就(jiu)是基于微軟.NET技術(shu)的(de)(de)ASP.NET。近日,微軟的(de)(de)Joe Stagner在博客上發表了一系列文章比(bi)較(jiao)了PHP和ASP.NET性(xing)能(neng)方(fang)面的(de)(de)文章,引起了來自雙方(fang)程序(xu)員的(de)(de)大量(liang)回應。Joe表示,他(ta)會將這樣的(de)(de)測試持續下(xia)去,并尋(xun)求更為合適的(de)(de)方(fang)式,以獲得對(dui)實際項目來說盡(jin)可(ke)能(neng)有參考(kao)價值的(de)(de)結論。

  Joe在(zai)博客中稱,一般來說,作(zuo)性(xing)能測試的目的是(shi)要嘗試證明一方(fang)比令一方(fang)要快(kuai)。我受雇于微軟,同時編寫PHP和ASP.NET代碼。我在(zai).NET出(chu)現之(zhi)前(qian)就在(zai)使用PHP,兩個東西我都很喜歡。

  所以,我(wo)(wo)很難(nan)說(shuo)出哪個(ge)更好(hao)。當(dang)我(wo)(wo)說(shuo)PHP好(hao)話(hua)時,我(wo)(wo)的(de)微(wei)軟(ruan)同事們會(hui)寫信來批(pi)評我(wo)(wo),而(er)當(dang)我(wo)(wo)發(fa)表傾向于ASP.NET的(de)言論(lun)時,我(wo)(wo)的(de)PHP朋友們會(hui)說(shuo)我(wo)(wo)是微(wei)軟(ruan)的(de)托。

  我進(jin)行這個(ge)測(ce)試是因為每個(ge)人(ren)都對PHP的性能有自己的看(kan)法(Windows vs. Linux & 5.2 vs. 5.3),卻沒人(ren)能給(gei)出明確的數據。

  ASP.NET比拼PHP的測試環境如(ru)下:

  所(suo)有的測(ce)試都在同一臺機器上運(yun)行(擁(yong)有4G內存和60G 7200轉硬盤的Toshiba Tecra M5)。

  Ubuntu 9和(he)Windows Server 2008標準版(ban)分別安裝于獨立(但相同)的硬盤中。

  Linux使用(yong)Apache2,Windows使用(yong)IIS 7作為(wei)各自(zi)的(de)Web服務器。

  雙方(fang)的(de)操作系統都進行了完整的(de)patch或升(sheng)級。

  雙(shuang)方(fang)的(de)(de)系統和運(yun)行時都沒有進行額(e)外的(de)(de)性能增強(qiang)。

  從實(shi)驗結(jie)果上看(kan),PHP在Linux和Windows的(de)執(zhi)行性能各(ge)有千秋:

  純(chun)粹的語(yu)句執行在Windows上表現更好。

  函數調用在Windows上更快。

  對(dui)象的(de)創建和訪問,對(dui)于(yu)PHP 5.2來(lai)說在Linux上更(geng)快(kuai),但是對(dui)于(yu)PHP 5.3來(lai)說則是Windows更(geng)快(kuai)。

  類庫調(diao)用在Linux上快(kuai)(kuai)得多(如在Ubuntu上進行(xing)加密要比(bi)Windows要快(kuai)(kuai)3到5倍(bei))。

  Linux與Windows平臺對比

  在Linux上訪問文件性能(neng)略高于Windows,不(bu)過Windows上文件復制的(de)性能(neng)要比Linux慢60%,可能(neng)是ACL高級安(an)全的(de)緣故。

  在Linux上(shang)訪問(wen)MySQL要(yao)比Windows快(kuai)不(bu)少,而且(qie)在Windows上(shang)運行PHP 5.3的(de)(de)情況(kuang)則更為惡劣(不(bu)過從下面PostgreSQL的(de)(de)情況(kuang)上(shang)來(lai)看,這(zhe)應該是糟糕實現的(de)(de)緣故)。

  PostgreSQL在兩個平(ping)臺上的(de)性能(neng)非常接近(1000個操(cao)作的(de)差距(ju)在0.06秒之內)——無論是(shi)PHP 5.3還是(shi)PHP 5.2,Windows上表現都略(lve)勝一籌。

  Windows上PHP 5.2訪問MS SQL Server的性能(neng)稍遜(xun)于在Linux上訪問MySQL(此時還沒有面向PHP 5.3的SQL Server支持)。

  對于(yu)純粹的(de)PHP執行性能來說(shuo),Linux和(he)Windows相差無幾(ji),這(zhe)不會成為(wei)(wei)選(xuan)擇(ze)Linux或Windows作為(wei)(wei)部署平(ping)臺(tai)的(de)決定性因素。如果(guo)你在構建一(yi)個應用程序,那(nei)么PostgreSQL可能是更(geng)好的(de)選(xuan)擇(ze)。因為(wei)(wei)它在兩個平(ping)臺(tai)上(shang)的(de)表現都很優秀(xiu)。

  如果(guo)你的應用程序必須使用MySQL,那么選擇(ze)Windows就需要(yao)早些(xie)計劃擴展性(xing)問題了(個人認(ren)為Sun不太可能為Windows優化(hua)MySQL的性(xing)能)。

  PHP的第(di)(di)一個(ge)版本的SQL Server驅(qu)動程序要比MySQL或PostpreSQL要慢一些,但這(zhe)應該不會(hui)成為(wei)問題。第(di)(di)二個(ge)版本的驅(qu)動器正在(zai)開發之中(zhong),它會(hui)帶來性能提升。

  在Joe看(kan)來,全面來看(kan),PHP和IIS團隊(dui)在執行性能(neng)上已經做的(de)非常(chang)成(cheng)功(gong),接下(xia)來就需要各開源程序的(de)團隊(dui)(Drupal、WordPress、Joomla等(deng)等(deng))為各平(ping)臺(tai)進(jin)行性能(neng)優化了(le)。

  不過,除(chu)了文件復(fu)制操作之外(wai),ASP.NET在性能(neng)方面全面于PHP(無論部署在Linux還是Windows上面):

  Linux上(shang)訪問MySQL的(de)性能(neng)(neng)稍稍優(you)于Windows上(shang)訪問SQL Server的(de)性能(neng)(neng)(使用普通的(de)數據類型和SELECT語句)。但是這里(li)的(de)差距幾乎可以忽略不計。

  ASP.NET(C#)操作,如(ru)對(dui)象使用(yong),類庫調用(yong)等等,其性能都遠高于PHP。對(dui)于這個測試結果,Joe補充道:

  我知道我的一些(xie)PHP朋友和(he)Linux伙計們要跳出來駁斥(chi)我的測試和(he)結果了(le)。

  我一直在思考,這(zhe)樣的性能(neng)比較(jiao)是否需要加入一些高(gao)級的優(you)化選項(xiang)。不(bu)過(guo).NET方(fang)(fang)面也有(you)例如多線(xian)程,異步請求,和各(ge)種緩存方(fang)(fang)式可(ke)以使(shi)用

  請(qing)注意——我并(bing)沒有(you)說“ASP.NET更快,所以(yi)你不應該使(shi)用PHP!”,我使(shi)用認為,PHP過于簡單導(dao)致(zhi)對某(mou)些高級(ji)應用來說有(you)些舉步(bu)維(wei)艱,就(jiu)像(xiang)ASP.NET在項目早期會有(you)學習方面的復(fu)雜(za)性。

  對我來說,PHP最令人興奮(fen)的地方不是它(ta)的語(yu)言/平臺(tai),而是成千上萬聰明的PHP開(kai)發人員,以及各種優秀的項目(如(ru)Drupal、Joomla、WordPress、PHPBB、Nuke等等)。

  可(ke)以這么認為(wei),PHP在Windows和Linux上(shang)的性能處于同一個水平上(shang),我現在終于可(ke)以為(wei)Windows編(bian)寫那些(xie)我盼望著許(xu)多年的PHP類庫了。

  Joe還(huan)公開了測試(shi)代(dai)碼(ma)。他表(biao)示,如果你對這(zhe)個(ge)測試(shi)的結果有疑義,可以親自進行這(zhe)個(ge)實(shi)驗,或是編寫你自己的測試(shi)代(dai)碼(ma)進行試(shi)驗。

  文章發(fa)布之(zhi)后,許多(duo)網友對這(zhe)一測試(shi)結果發(fa)表了(le)看(kan)法(fa)。Joe基本上逐一回復了(le)其中的主要觀(guan)點(dian):

  “我使(shi)用ASP.NET只是因(yin)為我喜歡Visual Studio IDE”——我個人認為Visual Studio是最有生(sheng)產力的開發工具。但是,PHP的有不錯的選擇(ze)。我使(shi)用Zend Studio,PHPEd,Komodo,Delphi for PHP,這些都很不錯。我討厭Eclipse,不過(guo)Zend也在這方面為PHP開發做了(le)不少擴展。

  應該(gai)比較(jiao)ASP的(de)性(xing)能(neng)——不(bu)用了,謝謝。舊(jiu)式的(de)ASP與(yu)目前的(de)PHP與(yu)ASP.NET差距太大了。做(zuo)這(zhe)種比較(jiao),似乎是在建(jian)議使用ASP開發新項目,我強(qiang)烈不(bu)建(jian)議你這(zhe)么做(zuo)。

32位與64位系統對比

  32位(wei)與64位(wei)系統之間的(de)(de)比較——這些測(ce)試的(de)(de)目的(de)(de)并不是為了體現64位(wei)系統上(shang)的(de)(de)性能差距(ju)。今后的(de)(de)測(ce)試我(wo)會增(zeng)加64位(wei)的(de)(de)場(chang)景。

  “PHP丑(chou)陋至(zhi)極”——哦,我不同(tong)意。舊式ASP要丑(chou)陋多了。你可以(yi)寫(xie)(xie)出(chu)非常(chang)可怕而丑(chou)陋的(de)(de)PHP代碼,也可以(yi)寫(xie)(xie)出(chu)丑(chou)陋而可怕的(de)(de)C#或(huo)VB代碼。同(tong)樣(yang),你也可以(yi)寫(xie)(xie)出(chu)優雅的(de)(de)C++樣(yang)式的(de)(de)PHP。這完(wan)全只和(he)開發人(ren)員的(de)(de)技能有(you)關。

  應該使(shi)(shi)用Windows上(shang)的(de)Apache進行測試(shi)——Apache是Linux上(shang)的(de)服務器,不過我認為如(ru)果你在Windows上(shang)不使(shi)(shi)用IIS 7則會損(sun)失(shi)太(tai)多(duo)(duo)太(tai)多(duo)(duo)東西了。

  “有(you)辦(ban)法在Win2K8中(zhong),在不(bu)損失(shi)安全(quan)性的前提(ti)下加(jia)快文(wen)(wen)件復(fu)制(zhi)(zhi)性能(neng)嗎?”——似乎不(bu)行(xing)。我認(ren)為這涉及到(dao)Windows服務器上的ACL系統。我以(yi)后可能(neng)會測試通過(guo)數據(ju)流讀(du)取文(wen)(wen)件的性能(neng),有(you)些東(dong)西的性能(neng)可能(neng)會有(you)所改善。不(bu)過(guo),Web應用程序(xu)一般不(bu)會編程來復(fu)制(zhi)(zhi)大量文(wen)(wen)件。

  “PHP一直是(shi),也(ye)永遠只是(shi)一個半專(zhuan)業(ye)(ye)(ye)性質的(de)環境”——這種說法狗(gou)屁不通。PHP平臺上有許多(duo)(duo)專(zhuan)業(ye)(ye)(ye)的(de),高質量的(de)應用(yong)程序,也(ye)有很多(duo)(duo)我非常尊(zun)敬的(de)開發人員。是(shi)否專(zhuan)業(ye)(ye)(ye)是(shi)開發人員的(de)問(wen)題,不是(shi)PHP或ASP.NET的(de)問(wen)題。

  “我(wo)(wo)認為(wei)比較(jiao)沒有opcode緩存(cun)的(de)PHP很(hen)不公(gong)平,.NET是(shi)(shi)(shi)編譯執行的(de),而PHP需要(yao)每次(ci)都解釋并‘編譯’頁(ye)面”——我(wo)(wo)同意這個(ge)(ge)測(ce)試(shi)(shi)可(ke)能不夠(gou)完整,但是(shi)(shi)(shi)我(wo)(wo)不認同這個(ge)(ge)邏輯(ji)。我(wo)(wo)測(ce)試(shi)(shi)PHP的(de)方(fang)式,就和下載安裝的(de)方(fang)式一樣。我(wo)(wo)的(de)虛(xu)擬主(zhu)機也沒有安裝op-code緩存(cun)。而事(shi)實上,ASP.NET自帶(dai)這個(ge)(ge)特(te)性也并不意味著測(ce)試(shi)(shi)是(shi)(shi)(shi)不公(gong)平的(de),這是(shi)(shi)(shi)因(yin)為(wei)PHP缺少這個(ge)(ge)特(te)性——不過這個(ge)(ge)要(yao)求(qiu)很(hen)合理(li),我(wo)(wo)正在準備(bei)新(xin)的(de)測(ce)試(shi)(shi)。

  “說(shuo)PHP不(bu)是(shi)一個‘專(zhuan)業的(de)’語言很沒道理,因為幾乎所有(you)最(zui)大的(de)站(zhan)點都(dou)是(shi)用(yong)PHP構(gou)建的(de)”——這種說(shuo)法(fa)是(shi)沒道理,不(bu)過說(shuo)那些(xie)(xie)站(zhan)點“幾乎都(dou)是(shi)”用(yong)PHP構(gou)建的(de)也(ye)是(shi)錯誤的(de)。有(you)些(xie)(xie)是(shi),有(you)些(xie)(xie)不(bu)是(shi)。

  如果你們看(kan)到這一(yi)數據之后對ASP.NET信心倍增我(wo)自然很高興。如果我(wo)不認(ren)為.NET是開(kai)發Web應(ying)用程序來說是一(yi)種更(geng)好的選(xuan)擇——至少不屬(shu)于(yu)其它平臺(tai),那么我(wo)也不會在微軟工作了。

  但是……如果你因為這些數(shu)據而忽視PHP,也(ye)是錯誤且幼(you)稚的行為。

  從純技術角度來說,我認為(wei).NET遠比PHP強(qiang)大,但這并不意味(wei)著PHP不夠強(qiang)大。在我看來,PHP的(de)力量體現(xian)在眾多的(de)應用(yong)(yong)程序以及(ji)可用(yong)(yong)的(de)框架。

  大約一(yi)周(zhou)以后(hou),Joe公(gong)開(kai)了第(di)二次測(ce)試(shi)的結果。與(yu)前一(yi)個(ge)測(ce)試(shi)相比,第(di)二個(ge)測(ce)試(shi)主要有以下兩個(ge)改變:

  為Linux和(he)Windows上安裝了op-code緩存,并重新(xin)運行了大部分(fen)測試。

  由于一些依賴項的問題,PHP 5.3 + APC的測試(shi)平臺(tai)變(bian)成了Debain 5操作系統(tong)。

  對于第二次測試及其結果,Joe解釋到:

  從結(jie)果(guo)上看,Ubuntu和(he)Debian上運行(xing)PHP的性能(neng)差距可以忽略不計。部分(fen)條(tiao)目的性能(neng)有些細小的改進,有些則有25%的提高,但是(shi)總體來說其效果(guo)比我(wo)想象中要來得低。

  使用APC之后(hou),一些條目的(de)運行反而變(bian)慢(man)了(le),不過我認(ren)為這(zhe)只是(shi)(shi)機器所(suo)造成的(de)誤差。請注意(yi),表格中(zhong)顯(xian)示(shi)的(de)不是(shi)(shi)第一次的(de)結果(guo),都是(shi)(shi)經過兩(liang)次刷新(xin),確認(ren)是(shi)(shi)在緩存(cun)命中(zhong)時(shi)得(de)到的(de)結果(guo)。

  我認(ren)為現在的測試(shi)非常公平。

  空的(de)循環測試和(he)空的(de)函數(shu)執行(xing)非常重(zhong)要,因(yin)為這反映了語言或平臺的(de)基礎消耗。這是處(chu)頁(ye)面(mian)傳輸等性(xing)能(neng)開銷外的(de)性(xing)能(neng)消耗,是一個重(zhong)要的(de)考慮方面(mian)。

  我的一(yi)些PHP朋(peng)友(you)也認(ren)可這個測試的準確性,不過給出了非常有見(jian)解的補充(chong):

  ASP.NET在(zai)性能上的(de)不(bu)會對我有什么影(ying)響。PHP是我的(de)最愛,我的(de)應用(yong)程(cheng)序(xu)已經足夠快(kuai)了。沒錯,ASP.NET在(zai)基(ji)礎性能上是比較快(kuai),但是我的(de)應用(yong)程(cheng)序(xu)可以通過優(you)秀的(de)頁(ye)面(mian)實現和JavaScript實踐(jian)把這部(bu)分性能補(bu)回來。

  此外(wai),根據上(shang)一次實驗的(de)結果(guo),在(zai)Windows平臺上(shang)運行PHP時,在(zai)MySQL和文件(jian)的(de)訪(fang)問上(shang)有一些(xie)性能(neng)問題,微軟許多(duo)團隊(dui)都(dou)向(xiang)我獲(huo)取(qu)了(le)相關信息。希望(wang)這(zhe)些(xie)數據都(dou)夠轉變為切實的(de)改(gai)進(jin)。

  Joe表示,他將收(shou)集大(da)家認為(wei)更公平(ping),更有意(yi)義(yi)的測試場景。以下是他所(suo)計劃的測試項目:

  實際(ji)頁面測(ce)試(shi):循(xun)環,函數調用和(he)對象操作是一(yi)類測(ce)試(shi),不過(guo)頁面的整體呈現則是另一(yi)種(zhong)有意義的測(ce)試(shi)。

  負載測試:哪(na)一(yi)個(ge)環境可以同時處理更大量(liang)的請求。

  在負載測試中,哪一方的性(xing)能會下降地更快。

  在各種(zhong)情(qing)況下,64位平臺的(de)表(biao)現如何。

  國內也曾(ceng)經進行過PHP在Linux和Windows平臺上的性能測試(shi)。微軟在WordCamp China 2009大會(hui)上公開了之(zhi)前與康盛創想合作進行的性能評估(gu)結果:在Windows Server 2008 + IIS上運行PHP,從平均(jun)相應(ying)時間,每秒處理的請求數,以及數據吞(tun)吐量等多方便均(jun)優于Linux + Apache的托(tuo)管方式。

  asp.net和php哪個更好

  asp.net是微軟(ruan)的(de)(de)東西,他的(de)(de)發展前途(tu)取決于微軟(ruan)的(de)(de)態度。

  在.net之(zhi)前,微(wei)(wei)軟的(de)(de)是(shi)(shi)ASP。在微(wei)(wei)軟的(de)(de)大力推(tui)廣(guang)下,其看起來還是(shi)(shi)很有前途的(de)(de)。但(dan)現在,微(wei)(wei)軟想推(tui)廣(guang)asp.net,而ASP成了(le)(le)其障(zhang)礙。所以從Windows Server 2003開始(shi),微(wei)(wei)軟對ASP做了(le)(le)許(xu)多限制,比(bi)如上(shang)傳文(wen)件(jian)不能超(chao)過200KB等。再(zai)看看現在,微(wei)(wei)軟為了(le)(le)推(tui)廣(guang)Windows Vista以及最新的(de)(de)Windows 7,對Windows XP做了(le)(le)些什么(me),直接對普通用戶停止(zhi)了(le)(le)技術支(zhi)持,就是(shi)(shi)為了(le)(le)迫使你更換。

  如果(guo)以(yi)后,微(wei)軟有了比.net更(geng)好的東西。微(wei)軟估計會對.net做(zuo)類似(si)的限(xian)制,強(qiang)制用戶升級。

  PHP是(shi)完全(quan)開(kai)源的(de),其需求(qiu)更貼近日常的(de)應用(yong),代碼風(feng)格類似于(yu)C語言,比(bi)較容易學習(xi)。

  速度方(fang)面(mian),雖然(ran)PHP不是經過(guo)編(bian)譯的(de)(de)(de),但在Linux下(xia)的(de)(de)(de)實(shi)際應用(yong)的(de)(de)(de)執行效率肯定要比Windows下(xia)的(de)(de)(de).net快。

  運行時的(de)(de)(de)安全性PHP肯(ken)定要比微軟(ruan)的(de)(de)(de).net要高(gao)(gao)。不過(guo)通常(chang)代(dai)碼都(dou)是(shi)沒有(you)保護的(de)(de)(de)。通常(chang)需要用(yong)商業的(de)(de)(de)Zend軟(ruan)件來加(jia)密(mi)。當然這個(ge)加(jia)密(mi)的(de)(de)(de)過(guo)程也(ye)是(shi)種編譯的(de)(de)(de)過(guo)程。保護了代(dai)碼的(de)(de)(de)同時,還提(ti)高(gao)(gao)了執行速度。新的(de)(de)(de)Zend的(de)(de)(de)加(jia)密(mi)算法,目前還沒有(you)成(cheng)功破解的(de)(de)(de)。而(er).net如果只做單純的(de)(de)(de)編譯,是(shi)很(hen)容易被反編譯回來的(de)(de)(de)。

  PHP目前有(you)兩個(ge)支線,一個(ge)PHP4、一個(ge)是PHP5。兩個(ge)支線都在共同的(de)(de)維護中(zhong)。這保(bao)證過(guo)去(qu)使用PHP4的(de)(de)系統仍然能(neng)保(bao)證持續的(de)(de)良好的(de)(de)安全性和功能(neng)的(de)(de)更新。

  ASP.NET與PHP哪個更有發展前途一點?

  簡 介

  ASP全名Active Server Pages,是一個(ge)WEB服(fu)務(wu)器端的開(kai)發(fa)環境,利(li)用(yong)它可以產生(sheng)和運行動態的、交(jiao)互的、高性能的WEB服(fu)務(wu)應用(yong)程序。ASP采用(yong)腳本語言VBScript(Java script)作為自己的開(kai)發(fa)語言。

  PHP是一(yi)種跨平(ping)臺的(de)(de)服務(wu)器(qi)端的(de)(de)嵌入式腳(jiao)本語(yu)言(yan)。它(ta)大量地(di)借用(yong)C,Java和Perl語(yu)言(yan)的(de)(de)語(yu)法, 并耦合PHP自(zi)己的(de)(de)特性,使(shi)WEB開發(fa)者能夠快速地(di)寫出(chu)動態生成頁面。它(ta)支持目前絕大多數數據庫。還(huan)有(you)一(yi)點(dian),PHP是完全免費的(de)(de),不用(yong)花錢,你可(ke)(ke)以(yi)從PHP官方站(zhan)點(dian)(http: //www.php.net)自(zi)由下載。而(er)且你可(ke)(ke)以(yi)不受限制地(di)獲(huo)得(de)源碼,甚(shen)至可(ke)(ke)以(yi)從中加進你自(zi)己需要的(de)(de)特色。

  JSP是(shi)Sun公司推出的(de)(de)新一(yi)代站(zhan)點(dian)開(kai)發語言,他完全解決了目前ASP,PHP的(de)(de)一(yi)個通病——腳本級執行(xing)(據說PHP4也已經在(zai)Zend的(de)(de)支持下,實(shi)現編譯運行(xing))。Sun公司借助自己(ji)在(zai)Java上的(de)(de)不凡造詣,將Java從Java應用程(cheng)序和(he)Java Applet之外,又有新的(de)(de)碩(shuo)果,就(jiu)是(shi)JSP——Java Server Page。Jsp可以在(zai)Serverlet和(he)JavaBean的(de)(de)支持下,完成功(gong)能強大的(de)(de)站(zhan)點(dian)程(cheng)序。

  三(san)者(zhe)都提供在(zai) HTML代(dai)(dai)碼(ma)中(zhong)混合某種程序(xu)(xu)代(dai)(dai)碼(ma)、由語言(yan)(yan)引擎(qing)解釋執(zhi)行(xing)程序(xu)(xu)代(dai)(dai)碼(ma)的(de)(de)(de)能力。但JSP代(dai)(dai)碼(ma)被編(bian)譯成 Servlet并由Java虛擬機解釋執(zhi)行(xing),這(zhe)種編(bian)譯操作僅在(zai)對JSP頁面(mian)的(de)(de)(de)第一(yi)次請求(qiu)時發(fa)生。在(zai)ASP 、PHP、JSP環境下(xia),HTML代(dai)(dai)碼(ma)主要負責描(miao)(miao)述信息的(de)(de)(de)顯示樣式,而程序(xu)(xu)代(dai)(dai)碼(ma)則用(yong)來描(miao)(miao)述處(chu)理邏輯。普通的(de)(de)(de) HTML頁面(mian)只依賴于Web服務(wu)(wu)器,而ASP 、PHP、JSP頁面(mian)需要附加的(de)(de)(de)語言(yan)(yan)引擎(qing)分析和執(zhi)行(xing)程序(xu)(xu)代(dai)(dai)碼(ma)。程序(xu)(xu)代(dai)(dai)碼(ma)的(de)(de)(de)執(zhi)行(xing)結果被重新嵌入到HTML代(dai)(dai)碼(ma)中(zhong),然(ran)后一(yi)起(qi)發(fa)送給瀏覽(lan)器。ASP 、PHP、JSP三(san)者(zhe)都是(shi)面(mian)向Web服務(wu)(wu)器的(de)(de)(de)技術,客戶端瀏覽(lan)器不需要任何附加的(de)(de)(de)軟件支持。

  技術特點

  ASP:

  使用(yong)VBScript 、 JScript等(deng)簡單易懂的(de)腳本語言(yan),結合HTML代碼,即可快(kuai)速(su)地完成網站的(de)應用(yong)程(cheng)序。

  無須(xu)compile編譯,容易(yi)編寫,可在服務(wu)器端直接執(zhi)行。

  使(shi)用普通(tong)的(de)(de)文本(ben)編輯器,如Windows的(de)(de)記事本(ben),即可進行編輯設計。

  與瀏覽(lan)(lan)器(qi)無關(guan)(Browser Independence), 用戶(hu)端只(zhi)要使用可執(zhi)(zhi)行(xing)HTML碼的瀏覽(lan)(lan)器(qi),即可瀏覽(lan)(lan)Active Server Pages所設計的網頁(ye)內(nei)容。Active ServerPages 所使用的腳本語(yu)言(yan)(VBScript 、 Jscript)均在WEB服務器(qi)端執(zhi)(zhi)行(xing),用戶(hu)端的瀏覽(lan)(lan)器(qi)不需要能夠執(zhi)(zhi)行(xing)這些(xie)腳本語(yu)言(yan)。

  Active Server Pages能與任何(he)ActiveX scripting語(yu)言相容。除了可使用(yong)VB Script或JScript語(yu)言來設計外,還通過(guo)plug-in的(de)(de)方式,使用(yong)由第(di)三(san)方所(suo)提(ti)供的(de)(de)其他腳(jiao)本(ben)語(yu)言,譬如REXX 、Perl 、Tcl等。腳(jiao)本(ben)引擎是處理腳(jiao)本(ben)程序的(de)(de)COM(Component Object Model) 物件(jian)。

  可使用服務器端的(de)(de)腳本來產生客(ke)戶端的(de)(de)腳本。

  ActiveX Server Components(ActiveX 服務器(qi)元件 )具有無限可擴充(chong)性。

  可以使用(yong)Visual Basic 、Java 、Visual C++ 、COBOL等編程語言(yan)來(lai)編寫你所(suo)需(xu)要的(de)ActiveX Server Component 。

  PHP:

  數據庫連接

  PHP可(ke)以(yi)(yi)(yi)編(bian)(bian)譯(yi)成(cheng)具有與許(xu)多數(shu)據庫(ku)相連接(jie)的函數(shu)。PHP與MySQL是現在絕佳的組(zu)合。你(ni)(ni)還可(ke)以(yi)(yi)(yi)自己編(bian)(bian)寫外圍的函數(shu)去間接(jie)存取數(shu)據庫(ku)。通過這(zhe)樣的途徑當你(ni)(ni)更(geng)換使用的數(shu)據庫(ku)時,可(ke)以(yi)(yi)(yi)輕松(song)地(di)更(geng)改編(bian)(bian)碼以(yi)(yi)(yi)適(shi)應這(zhe)樣的變化。PHPLIB就是最常用的可(ke)以(yi)(yi)(yi)提供(gong)一般事(shi)務需(xu)要的一系列基庫(ku)。但PHP提供(gong)的數(shu)據庫(ku)接(jie)口支持彼此不統一,比(bi)如對(dui)Oracle, MySQL,Sybase的接(jie)口,彼此都(dou)不一樣。這(zhe)也是PHP的一個弱點。

  面向對象編程

  PHP提(ti)供了類和對象。基于web的(de)編程工作非常需(xu)要面向對象編程能力。PHP支持構造器(qi)、提(ti)取(qu)類等。

  JSP:

  將內(nei)容的生成(cheng)和顯示進行分(fen)離

  使用JSP技術,Web頁(ye)面(mian)開發人(ren)員(yuan)可以使用HTML或(huo)者(zhe)XML標(biao)(biao)(biao)識來(lai)設計(ji)和(he)格式化最終頁(ye)面(mian)。使用JSP標(biao)(biao)(biao)識或(huo)者(zhe)小腳(jiao)本(ben)來(lai)生成(cheng)頁(ye)面(mian)上的(de)(de)動(dong)態(tai)內容(rong)(rong)。生成(cheng)內容(rong)(rong)的(de)(de)邏輯(ji)被(bei)封裝(zhuang)在(zai)標(biao)(biao)(biao)識和(he)JavaBeans組(zu)件中,并且捆綁在(zai)小腳(jiao)本(ben)中,所有的(de)(de)腳(jiao)本(ben)在(zai)服務器端運行。如(ru)果(guo)核(he)心邏輯(ji)被(bei)封裝(zhuang)在(zai)標(biao)(biao)(biao)識和(he)Beans中,那(nei)么其他人(ren),如(ru)Web管理人(ren)員(yuan)和(he)頁(ye)面(mian)設計(ji)者(zhe),能夠編輯(ji)和(he)使用JSP頁(ye)面(mian),而不影(ying)響(xiang)內容(rong)(rong)的(de)(de)生成(cheng)。

  在服務器(qi)(qi)端,JSP引擎解釋(shi)JSP標識和(he)小腳本(ben),生成所(suo)請(qing)求的(de)(de)內容(例如(ru),通過訪(fang)(fang)問JavaBeans組件(jian)(jian),使用JDBCTM技術訪(fang)(fang)問數據(ju)庫(ku),或者(zhe)(zhe)(zhe)包含(han)文件(jian)(jian)),并且(qie)將(jiang)結果以HTML(或者(zhe)(zhe)(zhe)XML)頁面的(de)(de)形式發送回瀏覽器(qi)(qi)。這有助于作(zuo)者(zhe)(zhe)(zhe)保護自己的(de)(de)代碼,而又保證(zheng)任何基于HTML的(de)(de)Web瀏覽器(qi)(qi)的(de)(de)完全可用性。

  強調(diao)可重用的組件(jian)

  絕大多數JSP頁面依賴于可重用(yong)的(de)(de)(de),跨平臺的(de)(de)(de)組(zu)(zu)件(jian)(jian)(JavaBeans或(huo)者Enterprise JavaBeans組(zu)(zu)件(jian)(jian))來執(zhi)行(xing)應(ying)用(yong)程序所(suo)要(yao)求的(de)(de)(de)更(geng)為復(fu)雜的(de)(de)(de)處理。開(kai)發(fa)(fa)人員能夠共享和(he)交換執(zhi)行(xing)普通操作的(de)(de)(de)組(zu)(zu)件(jian)(jian),或(huo)者使(shi)得(de)這些組(zu)(zu)件(jian)(jian)為更(geng)多的(de)(de)(de)使(shi)用(yong)者或(huo)者客戶團體所(suo)使(shi)用(yong)。基于組(zu)(zu)件(jian)(jian)的(de)(de)(de)方法(fa)加速了總(zong)體開(kai)發(fa)(fa)過程,并(bing)且使(shi)得(de)各種組(zu)(zu)織在他們現有的(de)(de)(de)技能和(he)優化結果的(de)(de)(de)開(kai)發(fa)(fa)努(nu)力中(zhong)得(de)到平衡。

  采用標識簡化頁面開發

  Web頁(ye)面開發人員(yuan)不(bu)會都是(shi)熟悉腳本(ben)語言(yan)的編程(cheng)人員(yuan)。JavaServer Page技術封裝了許(xu)多功能,這些功能是(shi)在易用的、與(yu)JSP相關的XML標識中(zhong)進行動態內容(rong)生成所需(xu)要的。標準的JSP標識能夠(gou)訪(fang)問和(he)實例化JavaBeans組(zu)件(jian),設置(zhi)或者檢索(suo)組(zu)件(jian)屬性,下載Applet,以(yi)及執行用其他方法更難于編碼和(he)耗時(shi)的功能。

  通(tong)過開發(fa)定(ding)制化標識庫,JSP技術(shu)是可以(yi)擴展(zhan)的(de)(de)。今后,第三方開發(fa)人員(yuan)(yuan)和其他人員(yuan)(yuan)可以(yi)為常用功能(neng)(neng)創建自(zi)己(ji)的(de)(de)標識庫。這使得Web頁面開發(fa)人員(yuan)(yuan)能(neng)(neng)夠使用熟悉的(de)(de)工具和如同標識一樣的(de)(de)執行特定(ding)功能(neng)(neng)的(de)(de)構件來工作(zuo)。

  JSP技(ji)術很容(rong)易整(zheng)合到多種應用(yong)體系(xi)結構中,以利用(yong)現存的工(gong)具和(he)技(ji)巧,并且擴展到能夠(gou)支持企業(ye)級的分(fen)布式應用(yong)。作為采用(yong)Java技(ji)術家族的一(yi)部分(fen),以及(ji)Java 2(企業(ye)版體系(xi)結構)的一(yi)個(ge)組成部分(fen),JSP技(ji)術能夠(gou)支持高度復(fu)雜的基于Web的應用(yong)。

  由于JSP頁(ye)面(mian)(mian)的(de)內置腳本語(yu)言是基于Java編程語(yu)言的(de),而且(qie)所有的(de)JSP頁(ye)面(mian)(mian)都被編譯(yi)成為Java Servlet,JSP頁(ye)面(mian)(mian)就具(ju)有Java技(ji)術(shu)的(de)所有好處,包(bao)括健壯的(de)存儲管(guan)理和安全性(xing)。

  作為Java平臺(tai)的(de)(de)一部分,JSP擁(yong)有Java編程語(yu)言“一次編寫,各處運(yun)行”的(de)(de)特點。隨(sui)著越來越多的(de)(de)供應(ying)商將JSP支(zhi)持添加(jia)到(dao)他(ta)們的(de)(de)產品中,您可以使用自己所選擇的(de)(de)服務器和工(gong)(gong)具(ju),更改工(gong)(gong)具(ju)或服務器并(bing)不影響當前的(de)(de)應(ying)用。

  應用范圍

  ASP是(shi)Microsoft開發(fa)的動態(tai)網(wang)頁語言,也繼承(cheng)了微軟產品的一貫傳統——只能(neng)運(yun)行于(yu)微軟的服務(wu)器產品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上(shang)。Unix下也有(you)ChiliSoft的插件來支持ASP,但是(shi)ASP本身的功能(neng)有(you)限,必(bi)須通過ASP+COM的組合來擴(kuo)充(chong),Unix下的COM實(shi)現(xian)起來非常困(kun)難。

  PHP3可在Windows,Unix,Linux的Web服務器上正常運行,還支持IIS,Apache等通用(yong)(yong)Web服務器,用(yong)(yong)戶更換平(ping)臺時,無需變(bian)換PHP3代碼,可即拿(na)即用(yong)(yong)。

  JSP同PHP3類似,幾乎(hu)可(ke)以運行(xing)于所有(you)平(ping)(ping)臺(tai)(tai)。如Win NT,Linux,Unix. NT下IIS通過一個(ge)(ge)插件(jian),例如JRUN或者ServletExec,就能支(zhi)持(chi)JSP。著(zhu)名的(de)Web服(fu)務(wu)器Apache已經能夠支(zhi)持(chi)JSP。由于Apache廣泛(fan)應用(yong)在NT、Unix和Linux上,因此JSP有(you)更廣泛(fan)的(de)運行(xing)平(ping)(ping)臺(tai)(tai)。雖(sui)然現在NT操作系統占了很(hen)(hen)大的(de)市場(chang)份(fen)額,但是在服(fu)務(wu)器方面Unix的(de)優勢仍然很(hen)(hen)大,而新(xin)崛(jue)起的(de)Linux更是來(lai)勢不(bu)小。從(cong)一個(ge)(ge)平(ping)(ping)臺(tai)(tai)移植到另外一個(ge)(ge)平(ping)(ping)臺(tai)(tai),JSP和JavaBean甚至(zhi)不(bu)用(yong)重新(xin)編(bian)譯,因為Java字節碼都是標準的(de)與平(ping)(ping)臺(tai)(tai)無關的(de)。

  性能比較

  有人做(zuo)過試(shi)驗,對這三種語言分別做(zuo)循環性(xing)能(neng)測試(shi)及存取(qu)Oracle數據庫(ku)測試(shi)。

  在循(xun)環(huan)性能(neng)測(ce)(ce)試中,JSP只用(yong)了(le)令人吃驚的四(si)秒(miao)鐘就結束了(le)20000*20000的循(xun)環(huan)。而ASP、PHP測(ce)(ce)試的是2000*2000循(xun)環(huan)(少一個數量級),卻分別用(yong)了(le)63秒(miao)和(he)84秒(miao)。(參(can)考PHPLIB)。

  數據庫測試(shi)中(zhong),三(san)者分別對 Oracle 8 進行(xing) 1000 次 Insert,Update,Select和Delete: JSP 需要(yao)(yao) 13 秒(miao)(miao),PHP 需要(yao)(yao) 69 秒(miao)(miao),ASP則 需要(yao)(yao) 73 秒(miao)(miao)。 前(qian)(qian)景分析 目前(qian)(qian)在(zai)國內(nei)PHP與ASP應(ying)用(yong)(yong)最(zui)為(wei)廣泛(fan)。而JSP由于(yu)是一種較(jiao)新的技(ji)術,國內(nei)采用(yong)(yong)的較(jiao)少(shao)。但在(zai)國外,JSP已(yi)經(jing)是比(bi)較(jiao)流行(xing)的一種技(ji)術,尤(you)其(qi)是電子(zi)商務類的網站,多采用(yong)(yong)JSP。

  采用PHP的(de)網(wang)站如新浪網(wang)(sina)、中國(guo)人(Chinaren)等,但由于PHP本身存(cun)在的(de)一(yi)些(xie)缺(que)點,使得它不適合應用于大型(xing)電子商(shang)務(wu)站點,而更適合一(yi)些(xie)小型(xing)的(de)商(shang)業站點。

  首先,PHP缺乏規模支(zhi)(zhi)持。其次,缺乏多層結(jie)構支(zhi)(zhi)持。對于大負荷站點(dian),解決方法(fa)只有一(yi)個:分(fen)(fen)布(bu)計算。數(shu)據庫(ku)、應用(yong)邏輯層、表示邏輯層彼此分(fen)(fen)開,而且同(tong)層也可以根據流量分(fen)(fen)開,組成二(er)維陣列。而PHP則缺乏這種(zhong)支(zhi)(zhi)持。還有上面提到(dao)過(guo)的一(yi)點(dian),PHP提供的數(shu)據庫(ku)接口支(zhi)(zhi)持不統一(yi),這就使得它不適(shi)合運用(yong)在電(dian)子商務中。

  ASP和(he)JSP則(ze)沒(mei)有以(yi)上缺陷,ASP可以(yi)通過(guo)(guo)Microsoft Windowsd的(de)(de)COM/DCOM獲(huo)得(de)ActiveX規(gui)模(mo)支(zhi)持(chi),通過(guo)(guo)DCOM和(he)Transcation Server獲(huo)得(de)結構支(zhi)持(chi);JSP可以(yi)通過(guo)(guo)SUN Java的(de)(de)Java Class和(he)EJB獲(huo)得(de)規(gui)模(mo)支(zhi)持(chi),通過(guo)(guo)EJB/CORBA以(yi)及眾多廠(chang)商的(de)(de)Application Server獲(huo)得(de)結構支(zhi)持(chi)。

  三(san)者中,JSP應該是(shi)未來發展的(de)(de)(de)趨勢。世界(jie)上一(yi)些大(da)的(de)(de)(de)電(dian)子商(shang)務解(jie)決方案提供商(shang)都采用(yong)JSP/Servlet。比較(jiao)出名的(de)(de)(de)如IBM的(de)(de)(de)E-business,它的(de)(de)(de)核心是(shi)采用(yong)JSP/Servlet的(de)(de)(de)Web Sphere;西方另外一(yi)個非(fei)常著名的(de)(de)(de)電(dian)子商(shang)務軟件提供商(shang),Intershop,它原來的(de)(de)(de)產(chan)品Intershop1,2, 3, 4占據了主要(yao)的(de)(de)(de)電(dian)子商(shang)務軟件份額。

  綜(zong)上所述,jsp應(ying)該更有(you)前途!

  PHP與ASP.NET優劣勢分析

  不(bu)(bu)管你是不(bu)(bu)是已經選(xuan)擇了PHP,根據它在如下表格(ge)中在價格(ge)、速(su)度、效率、安(an)全性、平臺支持性和(he)開源與(yu)否上的(de)(de)(de)表現(xian),我們都(dou)能判(pan)斷出它的(de)(de)(de)強項是遠(yuan)勝于弱點的(de)(de)(de)。唯一不(bu)(bu)足的(de)(de)(de)是缺少面向對象(xiang)的(de)(de)(de)支持。然(ran)而,這(zhe)是個相對次要的(de)(de)(de)缺陷,雖(sui)然(ran)不(bu)(bu)可忽視語(yu)言(yan)的(de)(de)(de)結構,可是最終(zhong)來說(shuo),優秀的(de)(de)(de)編(bian)碼還是歸結于反(fan)復(fu)實踐、執行(xing)、好習慣(guan)和(he)紀律(lv)。

  價格(ge):我不會(hui)單純考(kao)量首次投資(zi)的(de)(de)價格(ge),拿(na)PHP來說,顯然是(shi)(shi)免費(fei)的(de)(de),但我們也要考(kao)慮(lv)開發、維(wei)護和調試的(de)(de)成(cheng)本,你(ni)可能(neng)還要購(gou)買Zend優化引擎。對于ASP,你(ni)在(zai)一(yi)開始就(jiu)要投資(zi)購(gou)買產(chan)品,而(er)且(qie)你(ni)還會(hui)在(zai)額(e)外的(de)(de)技術上開銷,比如購(gou)買圖(tu)形處(chu)理的(de)(de)類庫,或是(shi)(shi)其它。但從長遠來看,PHP不會(hui)要求你(ni)去繳納升級費(fei)用或是(shi)(shi)購(gou)買更(geng)多的(de)(de)license。任(ren)何曾(ceng)經接觸過license的(de)(de)人都會(hui)知(zhi)道公司往(wang)往(wang)會(hui)在(zai)確保產(chan)品的(de)(de)兼(jian)容性上花費(fei)大量時間和金錢(qian)。此外,發現bug并得到(dao)(dao)修復的(de)(de)反饋處(chu)理情(qing)況也不盡相同,這其實也可換算為時間的(de)(de)消(xiao)耗,進而(er)影響到(dao)(dao)整個開發的(de)(de)成(cheng)本。

  速(su)度和效率:就像我前面(mian)所提(ti)到(dao)的(de)(de),ASP.NET是(shi)一個允許你使(shi)用(yong)多種不同編程(cheng)語言(yan)的(de)(de)框架。此(ci)外(wai),它(ta)還號稱擁有(you)(you)出色(se)的(de)(de)面(mian)向對象編程(cheng)模型。確實如此(ci),可是(shi)這(zhe)卻帶來了(le)速(su)度上的(de)(de)降低。談(tan)到(dao)它(ta)的(de)(de)這(zhe)些(xie)優(you)點(dian),對于相同功(gong)能的(de)(de)頁面(mian)來說(shuo),比起(qi)PHP, 運行(xing)(xing)于ASP的(de)(de)頁面(mian)需要其(qi)服務器分析(xi)、執行(xing)(xing)更(geng)多的(de)(de)代(dai)碼。而PHP是(shi)“快餐型”的(de)(de)解決方案,先將功(gong)能搞(gao)定(ding),還有(you)(you)很多健壯性(xing)上的(de)(de)問題可以(yi)留到(dao)2.0或(huo)是(shi)3.0里進行(xing)(xing)補充(chong),而且它(ta)的(de)(de)核心代(dai)碼得到(dao)編譯的(de)(de)優(you)化(hua),程(cheng)序可以(yi)高速(su)運行(xing)(xing)。速(su)度并非唯一的(de)(de)考量,內存的(de)(de)耗用(yong)也(ye)很重(zhong)要。

  安全(quan)性(xing):ASP.NET運行于IIS之上(shang),這是個(ge)曾無數次遭(zao)受攻擊(ji)的(de)系統,幾乎(hu)每周IT的(de)新聞上(shang)都會有類似(si)消息(xi)。實(shi)際上(shang),它已(yi)成為一(yi)項(xiang)負(fu)債,不管整個(ge)市場投了多少(shao)美元(yuan)在(zai)上(shang)面,很多IT的(de)專(zhuan)業(ye)人士已(yi)經(jing)拒絕將他(ta)們的(de)網絡暴露于IIS Web服務器之下。而PHP與Apache工(gong)作(zuo)在(zai)一(yi)起,它擁有良好的(de)速度(du)、可靠(kao)性(xing)的(de)表現,還有過(guo)硬的(de)安全(quan)性(xing)。

  平臺(tai)支持性(xing):ASP.NET起初運(yun)(yun)行于(yu)(yu)IIS,現(xian)在也可(ke)以(yi)運(yun)(yun)行于(yu)(yu)Apache,而Apache能運(yun)(yun)行于(yu)(yu)所有平臺(tai)。PHP天(tian)生就是(shi)設計運(yun)(yun)行于(yu)(yu)Apache上,所以(yi)你有很多被證明是(shi)可(ke)靠(kao)的平臺(tai)去選(xuan)擇。

  開源與否(fou):開源并非只是那(nei)些(xie)理想(xiang)主義程序(xu)員們的(de)專利,也不是那(nei)些(xie)想(xiang)要在license上節(jie)省(sheng)幾十(shi)美(mei)元的(de)公司所(suo)特有的(de)。當你(ni)碰到所(suo)購買的(de)軟件本身的(de)bug的(de)時候(hou),開源可就是天賜良品。

  無論是(shi)(shi)用ASP.NET還是(shi)(shi)PHP,都可能有很(hen)多用戶用你(ni)的(de)軟件(jian)并發(fa)(fa)現bug。對于ASP.NET,這些bug就要經過一(yi)個官僚的(de)過程來告知,修(xiu)復,驗證,然(ran)后再(zai)等到下(xia)一(yi)個補(bu)丁時發(fa)(fa)布。而PHP的(de)修(xiu)復和發(fa)(fa)布都很(hen)快。任(ren)何看過開(kai)源開(kai)發(fa)(fa)的(de)人都知道新的(de)產品發(fa)(fa)布或是(shi)(shi)補(bu)丁經常(chang)是(shi)(shi)幾天內的(de)事情而不(bu)是(shi)(shi)商業軟件(jian)那樣的(de)幾周或幾個月。如果你(ni)認(ren)為那還不(bu)夠快的(de)話,如果你(ni)愿意,你(ni)也可以自己直接修(xiu)復。

  技術分析:.NET的優勢與劣勢

  .NET Framework自2002年(nian)(nian)(nian)3月(yue)在日(ri)本國內上(shang)市(shi)以(yi)來(lai),至今已一(yi)年(nian)(nian)(nian)有余。據估計(ji)標(biao)準集成.NET Framework的(de)OS--Windows Server 2003將于2003年(nian)(nian)(nian)5月(yue)在日(ri)本上(shang)市(shi)。隨著.NET環境的(de)完善,作(zuo)為足以(yi)抗衡Java的(de)系(xi)統構筑基礎,開發人員需要認識.NET Framework。下(xia)面筆者就(jiu)來(lai)分析一(yi)下(xia).NET的(de)優勢與劣勢。

  XML Web服務(wu)并未成為普及.NET的(de)導火(huo)索

  此前人們一(yi)直在想(xiang):“對.NET來(lai)說,是否存在不同于Java的、獨特的應(ying)用領域和市場?”。

  業內普遍(bian)認為,微軟(ruan)新一代系統(tong)構(gou)(gou)筑環境--.NET Framework是(shi)在研究Java的基(ji)礎(chu)上開(kai)發(fa)出來(lai)的。不(bu)僅功能和架構(gou)(gou)相似(si),而且由于是(shi)在Java之后開(kai)發(fa)出來(lai)的,因(yin)此Java所沒有的功能更是(shi)隨處可見(jian)。比如(ru)在Web應用(yong)中實(shi)現事件驅動型(xing)應用(yong)程序功能等。

  不過(guo)雖(sui)說如此,如果只是告(gao)訴用(yong)戶“.NET Framework比Java好得多(duo)”,那么Java開(kai)發(fa)人員特意轉而使(shi)用(yong).NET Framework的動機不會(hui)太強。

  由于Java已經先行積(ji)(ji)累了廣泛的(de)應用成果(guo),積(ji)(ji)累了很(hen)多足以(yi)彌補其缺點的(de)經驗以(yi)及平臺工具。只(zhi)要(yao)不出現(xian)Java難以(yi)應用的(de)用途和市場(chang),那么(me).NET Framework就(jiu)很(hen)難阻止(zhi)Java的(de)進一步發展。

  .NET的(de)優勢(shi):企業信息系(xi)統部門可(ke)自行編(bian)程(cheng)

  剛開始,微軟就(jiu)把易于(yu)開發(fa)XML Web服(fu)(fu)(fu)務(wu)(wu)作為.NET的(de)(de)(de)(de)優勢(shi)而(er)大(da)加(jia)宣傳。以XML Web服(fu)(fu)(fu)務(wu)(wu)為前(qian)提而(er)設計的(de)(de)(de)(de).NET與Web服(fu)(fu)(fu)務(wu)(wu)具(ju)有極高的(de)(de)(de)(de)親和(he)性(xing)。但(dan)XML Web服(fu)(fu)(fu)務(wu)(wu)的(de)(de)(de)(de)產生卻比較晚。盡管業(ye)內對它的(de)(de)(de)(de)期(qi)待和(he)關(guan)注程度較高,但(dan)由于(yu)可充分利用XML Web服(fu)(fu)(fu)務(wu)(wu)的(de)(de)(de)(de)“可賺錢的(de)(de)(de)(de)”業(ye)務(wu)(wu)模(mo)式尚未確立,所以目前(qian)與Web站點相比其市(shi)場仍微不足道。其中(zhong),Java方面也正在加(jia)緊完善便于(yu)開發(fa)XML Web服(fu)(fu)(fu)務(wu)(wu)的(de)(de)(de)(de)功能。

  那么,是否存(cun)在.NET的(de)(de)獨(du)特用(yong)途呢?筆(bi)者通過采訪所(suo)得到的(de)(de)一(yi)(yi)個答案是:.NET開發工具(ju)--Visual Studo.NET的(de)(de)易用(yong)性使得它在Java很(hen)難(nan)實現的(de)(de)“用(yong)戶企業(ye)(信息系統(tong)(tong)部(bu)門(men))也可(ke)編程的(de)(de)系統(tong)(tong)”上超人一(yi)(yi)頭。筆(bi)者認(ren)為可(ke)能還存(cun)在其他這(zhe)樣的(de)(de)領(ling)域(yu)。當然,盡管.NET的(de)(de)標(biao)準語言VB.NET和C#都(dou)與(yu)Java一(yi)(yi)樣復雜,但(dan)是Visual Studo.NET卻很(hen)好(hao)地(di)消除了這(zhe)種(zhong)復雜性。

  比如,日本蘭碧(bi)兒(NOEVIR)只靠自己的(de)信(xin)(xin)息系(xi)統(tong)(tong)部門就完(wan)成(cheng)了(le)Web代理店支援系(xi)統(tong)(tong)的(de)從企(qi)劃到編程的(de)全(quan)部工作(zuo)。日本一家系(xi)統(tong)(tong)集成(cheng)商曾表示,此前導入Java系(xi)統(tong)(tong)的(de)用戶企(qi)業中“選用.NET的(de)信(xin)(xin)息系(xi)統(tong)(tong)部門就有望自行開(kai)發或對(dui)系(xi)統(tong)(tong)進行修改”。

  筆(bi)者認(ren)為,由于Java本(ben)身較(jiao)為復雜,且不易學習掌(zhang)握,因此(ci)“用戶企(qi)業(ye)只負責企(qi)劃,而將(jiang)編程工作完全(quan)委托給集成商的(de)現象非常普遍”。

  在COBOL和VB(客(ke)戶商/服務器)的(de)(de)全(quan)盛時期(qi),信息系(xi)統(tong)(tong)部(bu)門自(zi)(zi)己(ji)編程(cheng)、對系(xi)統(tong)(tong)進行(xing)部(bu)分修改(gai)和功能追加是很正常的(de)(de)事(shi)情(qing)。如果連(lian)細(xi)小的(de)(de)系(xi)統(tong)(tong)修改(gai)都(dou)要外包(bao),那(nei)么系(xi)統(tong)(tong)的(de)(de)維護成(cheng)本(ben)自(zi)(zi)然會很高,因此就將(jiang)失去靈活性。甚至(zhi)于還有可能削(xue)弱(ruo)信息系(xi)統(tong)(tong)部(bu)門的(de)(de)業務能力。說到企劃(hua),聽起(qi)來好聽,但如果連(lian)大(da)體的(de)(de)情(qing)況也不(bu)了解(jie),恐怕與開發(fa)商交涉(she)都(dou)很困難。這也許就是Java的(de)(de)一個“弊端”吧。

  此(ci)外,“成本比Unix低”以(yi)及“可以(yi)充分利(li)用Windows技術資源”等原因也在加速.NET Framework的(de)(de)普(pu)及。作為客戶端/服務器系統(tong)的(de)(de)開(kai)(kai)發環(huan)境,VB的(de)(de)后(hou)續語言--.NET中的(de)(de)“Windows Form”最具(ju)競爭力。越(yue)來越(yue)多(duo)的(de)(de)系統(tong)集成商開(kai)(kai)始(shi)選擇這一工具(ju)構(gou)筑系統(tong)。

  .NET的劣勢:應用成果少、開放性差

  反過來說,.NET的劣(lie)勢(shi)則在(zai)于在(zai)大型系(xi)統(tong)中的應用成果少、缺乏“開放(fang)性(xing)”。

  對于應(ying)用(yong)成果來說(shuo),今后其數量將會不斷增加。據悉,日本Kabu.com證券將在2003年度內利用(yong).NET Framework全面重新構(gou)(gou)筑該公(gong)司目前利用(yong)ASP構(gou)(gou)筑的系統。

  在(zai)“開放性”方面又將(jiang)會如何呢(ni)?Java普(pu)及的(de)主要因(yin)素很(hen)(hen)多(duo),但筆者認為其中最關鍵的(de)在(zai)于“開放性”。由于可各種OS上運(yun)行,而且(qie)很(hen)(hen)多(duo)開發商(shang)還(huan)提(ti)供了Web應用服務器和開發工(gong)具,因(yin)此用戶可以隨(sui)意選擇(ze)。而開發商(shang)則(ze)通(tong)過(guo)在(zai)功能和性能方面相互競爭來(lai)不斷(duan)提(ti)高產品水平。

  而.NET Framework怎么樣呢?只(zhi)要想應用于(yu)業務(wu)系統中,其OS實際(ji)上則只(zhi)能(neng)限于(yu)Windows。盡管(guan)微軟已經提供了(le)FreeBSD版.NET Framework,但其目的僅限于(yu)學術研究。

  今后(hou)人們所能期(qi)待的(de)是Mono Project。Mono Project是指(zhi)完全(quan)獨立于(yu)微軟、正在開(kai)發(fa)開(kai)放源碼版.NET Framework的(de)計劃。主導該計劃的(de)是一家名為Ximian的(de)Linux企業(ye),這家公司成功地(di)開(kai)發(fa)了Linux標準桌面環境(jing)GNOME,目前已受到業(ye)界的(de)廣泛關(guan)注。

  2003年1月該(gai)(gai)計(ji)劃(hua)還發布了運行Web應用程(cheng)序ASP.NET的Web服務(wu)軟件XSP。盡管很多功(gong)能(neng)仍在開發之中,但目(mu)前(qian)開發工作進展順利。目(mu)前(qian)正面向Linux和Windows進行開發。據(ju)Mono Project稱,由于(yu)該(gai)(gai)軟件依賴于(yu)Linux的部分不多,因此能(neng)夠輕松地向其他(ta)UNIX OS移(yi)植。

  能否形成像Mono一(yi)樣的開(kai)(kai)放環境將是.NET普及的關(guan)鍵所(suo)在(zai)。微(wei)軟目(mu)前(qian)(qian)已經向業界標準(zhun)(zhun)化機構ECMA(歐洲計算機制造商協(xie)會)提交了.NET標準(zhun)(zhun),此(ci)舉(ju)表明(ming)微(wei)軟將采用開(kai)(kai)放標準(zhun)(zhun)。但目(mu)前(qian)(qian)尚不清(qing)楚此(ci)舉(ju)只(zhi)是單純(chun)的一(yi)種姿態,還(huan)是真(zhen)的要(yao)開(kai)(kai)放.NET。這就要(yao)看微(wei)軟今后是否能夠繼續公開(kai)(kai)足夠的相關(guan)標準(zhun)(zhun)和信息了。

  ASP.NET和PHP性能對比

  經過一些篩(shai)選(xuan),只選(xuan)擇(ze)一些代表(biao)性的看(kan)法進(jin)行翻譯, 對于英(ying)文不(bu)是太好的朋(peng)友比(bi)較(jiao)有(you)用, 如果有(you)翻譯和(he)知識點(dian)上的錯誤,請指出。

  首先, 排除(chu)偏激(ji)和未(wei)經測(ce)試的(de)看(kan)法, 讓我們來看(kan)看(kan)interscape和ttuttle怎么說

  interscape(MVP) :

  PHP是一個(ge)腳(jiao)本語言, 而ASP.NET是一個(ge)面向對象(xiang), 編(bian)譯性的(de)(de)語言。你不(bu)(bu)能讓PHP在一個(ge)WINDOWS程序(xu)中(zhong)運(yun)行, 但是你可以拷貝(bei)ASP.NET的(de)(de)代碼(ma)并(bing)把(ba)它放到(dao)WINFORM程序(xu)里面, 而不(bu)(bu)用太(tai)大的(de)(de)修改。 但是如果你要談及所有情況下(xia)的(de)(de)性能, 也許(xu)PHP會(hui)(hui)好一些, 不(bu)(bu)過我會(hui)(hui)為WEB開發選擇OOP(面向對象(xiang)編(bian)程)而不(bu)(bu)是step-thru(順(shun)序(xu)編(bian)程)腳(jiao)本編(bian)程方式。

  ttuttle:

  我(wo)不想(xiang)去做任(ren)何(he)專橫武斷(outrageous)的聲明(ming), 但是讓我(wo)們來看一下(xia)一些事實:

  PHP已經被證明比(bi)ASP3.0稍微(wei)快一些

  ASP.NET比ASP3.0快(kuai)3~5倍(一(yi)種類(lei)似于PHP的解(jie)析性腳本語言)(注:ttuttle這句出(chu)自于//www.asp.net/whitepaper/whyaspnet.aspx)

ASP.NET可(ke)以(yi)存放在(zai)緩存(Output Caching)中, 當頁面第一次被訪問和編譯后, 它可(ke)以(yi)從(cong)緩存中得到。 沒有任何頁面處理器(qi)會比(bi)緩存更(geng)快。

  在默(mo)認安裝(zhuang)下,ASP.NET是編譯性語言, 而PHP和ASP3.0則是解釋性語言。

  面對這兩種孑(jie)然(ran)不同的(de)解釋, 我再(zai)來看(kan)(kan)看(kan)(kan)ScottGu和 wysiwyg 還有 Xanderno怎么說

  ScottGu( s的版主):

  ASP.NET是編譯(yi)性質而(er)不(bu)是解釋性質的。 所以語句(ju)可以被(bei)轉換為更快的執行時間。

  而PHP方(fang)面也(ye)有ZEND在出售其收費的(de)編譯(yi)器ADD-ON.

  然而(er), 我們已(yi)經(jing)看到Nile benchmark(注:一(yi)種測試的性能基準,可(ke)以參看其白皮書//www.gotdotnet.com/team/compare/Nile %20Benchmark%20Results.doc)中, ASP.NET和(he)SQL這種組合(he)的速度比PHP和(he)MYSQL快 2~3倍, 且近乎5倍快于PHP和(he)ORACLE的運行效率(即便ZEND編(bian)譯器和(he)緩存器已(yi)經(jing)安裝)

  wysiwyg:

  雖然這個主題是ASP.NET VS PHP, 但是我來說一下我測試的事實卻是 ASP要稍快于
  ASP.NET在ASP中, 這(zhe)段代碼用了2秒

  ...................
  .....store order info in myRS.....
  .....store customer info in myTable.....
  ....................
  Do while not myRS.eof
  myTable.open "select customername from tblCustomer where customerID=" &
  myRS.fields("CustomerID&quot, myConnection
  myArray(0,ubound(myArray,2))=myRS.fields("Ordernumber&quot
  myArray(1,Ubound(myArray,2))=myRS.fields("OrderDate&quot
  myArray(2,Ubound(myArray,2))=myTable.fields("CustomerName&quot
  myTable.close
  myRS.movenext
  loop

  而ASP.NET用了40秒

  trace.warn("open conn: " & now)
  ...................
  .....store order info in datatable myDataTable.....
  .....store customer info in datatable myCustomer.....
  ....................  
  myDataView=new DataView(myCustomer)
  for each myRow in myDataTable.rows
    myDataview.rowFilter="CustomerID=" & myRow("CustomerID&quot
    myRow("CustomerName&quot=myDataview(0).row("Customername&quot
  next
  trace.warn("finish looping: " & now)

  我很希望自己的結(jie)果是(shi)ASP.NET快于(yu)ASP, 但是(shi)確相反, 誰能告訴我為什么??

  (注: wysiwyg認(ren)為(wei)他自己(ji)做(zuo)是(shi)測(ce)試,但是(shi)沒有說明計算機和(he)操作系統和(he)測(ce)試環境的(de)詳細情況,也沒說明是(shi)否(fou)屬于哪一(yi)級別的(de)壓力測(ce)試)

  Xanderno:

  在我的不(bu)完善的測(ce)試中, 采用(yong)ACT 作為(wei)一(yi)種(zhong)方法。 在一(yi)臺配置低機器上面, 用(yong)ASP通過(guo)

  一個SQL SERVER上的數據庫(ku)獲取數據, 每秒(miao)種(zhong)(zhong)我可(ke)以獲得10~15頁數據 。 同樣的函數, 用ASP.NET, 每秒(miao)種(zhong)(zhong)我卻(que)可(ke)以獲得30~40頁數據, 使用輸出(chu)緩存(output caching)后,

  它上升為(wei)120頁/秒。

  微(wei)軟提供一(yi)系列壓力測試工具(ju)。 VS.NET企業版便有ACT, 如果你沒有VS企業版, WACT也(ye)是一(yi)種可行(xing)的方法(fa).WAST website --  

============================

  從(cong)以上(shang)三(san)人的(de)看法, 也許(xu)大家(jia)已經得出較為(wei)正確的(de)答案。 然而這(zhe)些并不(bu)是(shi)第一次在ASP.NET和PHP運行效率的(de)討(tao)論。其他討(tao)論, 還可以參看Debate - .NET V. PHP: Top 6 Reasons to Use NET()

  還有Top 10 .NET Myths Exposed()。

  當(dang)然你有時間, 還可(ke)以(yi)看看由Owendo Technology做的Web Application Server Panorama(Web應用(yong)程序服務(wu)器全景)報告。這是一篇長達279頁(ye)的報告。( )。

  此外,還有(you)人(ren)問了這樣一個問題"VB.NET和C#哪個更快?"

  Daniel P. 這樣回答: 他(ta)們并沒有區別(bie), VB.NET和C#都是轉換成(cheng) IL-Code(中間(jian)語言(yan)代碼)---用來編(bian)譯(yi)主程序(xu)的。

  (注: 這種說(shuo)法不(bu)一定正確, 兩者的(de)編譯器是不(bu)一樣(yang)的(de), 而(er)且這個結(jie)論也沒有經(jing)過(guo)嚴格的(de)壓力(li)測試)

  最后, 也許大家總是(shi)覺(jue)得程序(xu)員之間這種討論看(kan)起來很funny, 很多(duo)人總是(shi)帶有(you)主(zhu)觀性進行討論, 連一些編程大師級的老外也像小孩子一樣在爭論。 但是(shi)沒有(you)自己所愛的語言(yan), 沒有(you)這種狂(kuang)熱又(you)怎會(hui)有(you)技術的進步。


文章轉摘自:

?

相關閱讀
說明

贊   7

有一點幫助   0

沒有幫助  

參與評論

他們說...

胡鶯諾

內容真長。

陳小成

其實更重要的是,有很多程序人員選擇學習和使用php,這就為企業經營管理,二次開發自己的php電子商務網站提供了強有力的人才資源保障。

陳小成

途牛也是采用的php:

陳小成

美團采用的是php 馬蜂窩采用的是php //www.taobao.com/index.php 淘寶采用的是php

陳小成

非常多的網站都使用了php,比如: 百度(前端用php,后臺核心都用C/C++), 優酷, 騰訊, 51job.com, DEDECMS(織夢) sohu.com(前端用php,后端還是java/c++做), sina.com, 163.com, tom.com, YAHOO.com, 阿里巴巴, 美國國家宇航局NASA,民用信息發布系統等, "

胡鶯諾

回復@陳小成:哦 謝謝小成師父
積分獲取更多
思途CMS系統更新動態
  • 2025-08-07
    1、【功能優化】發票展示優化
    2、【BUG修復】供應商新版驗單核銷和退款后,主訂單狀態未同步
    3、【功能優化】提現微信轉賬更新優化
    4、【新增功能】新版移動端驗單發布
查看更多

掃一掃官方微信號

加入微信
在(zai)線客服
微信咨詢
微信咨詢
現在咨詢,獲取演示賬號
企業logo小米
立即掃碼加我微信
電話咨詢(xun)
咨詢電話
028-61558715
預約(yue)演示