翻譯:EasyChen Exlcsoft.com

概觀

開發(fā)界正在進(jìn)行的一個(gè)爭論是PHP和ASP中哪一個(gè)平臺更適合網(wǎng)站開發(fā)。這場爭論由于微軟的ASP.net帶來的巨 " /> 欧美另类成人,99艾草视频在线播放,草草影院www色欧美极品

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

白刃之戰(zhàn):PHP vs. ASP.NET(節(jié)選)-架構(gòu)比較

   作者:Robert Lair and Jason Lefebvr Intensity Software, Inc.

  翻譯:EasyChen Exlcsoft.com

  概觀

  開發(fā)界正在進(jìn)行的一個(gè)爭論是phpASP中哪一個(gè)平臺更適合網(wǎng)站開發(fā)。這場爭論由于微軟的ASP.NET帶來的巨大變化而進(jìn)入了新時(shí)期。和ASP 3.0比起來,ASP.NET采用了全新的設(shè)計(jì),有著很多新的特性和優(yōu)點(diǎn)。究竟ASP.NET 會給phpASP之間的爭論帶來什么樣的影響呢?本文將為你提供這個(gè)問題的答案的相關(guān)信息。

  架構(gòu)比較

  php

  php4.0以Zend Technologies的開源引擎Zend Engine為核心。當(dāng)用戶瀏覽器向一個(gè)由php實(shí)現(xiàn)的網(wǎng)絡(luò)服務(wù)器發(fā)出請求時(shí),這個(gè)請求被傳給Zend Engine,它將對php腳本進(jìn)行編譯。如果編譯順利, 編譯后的代碼將被傳遞給生成發(fā)送給客戶端的最終HTML代碼的Zend Engine Executor。從開發(fā)者角度看,php 4.0的框架既有優(yōu)點(diǎn)也有缺點(diǎn)。

  因?yàn)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php是開源的,所以它得到了很多不同平臺和web服務(wù)器的支持。雖然比以前的php引擎大,Zend Engine仍然是輕便和強(qiáng)壯的。作為擴(kuò)展,php也支持面向?qū)ο螅试S用戶建立自己的類和對象。但是,由于某些原因,php不是真正的面向?qū)ο箝_發(fā)環(huán)境。最好的一個(gè)例子是類成員函數(shù)和屬性的作用域。在php中,一個(gè)類中的所有變量可以從外部讀寫,這使得類的實(shí)現(xiàn)無法隱藏。

  另外,php不是強(qiáng)類型語言(就是說,如果你比較字符4和整數(shù)4,結(jié)果是相同的),這在架構(gòu)大型程式時(shí)帶來問題,也使得程式的調(diào)試變得困難。使得調(diào)試更為困難的是,你甚至不需要聲明變量,這和關(guān)掉explicit 選項(xiàng)的ASP很像。如果php在腳本中遇到新的變量,它只會靜靜的創(chuàng)建它。

  雖然被認(rèn)為是寬松的php框架的靈活性,不過大概每個(gè)開發(fā)者在一些情況下都會花數(shù)小時(shí)去解決由這個(gè)特性導(dǎo)致的BUG。對象在php中是語言級變量。它們在很大程度上被當(dāng)作簡單變量類型處理。(就像整型和字符型變量一樣)當(dāng)進(jìn)行像變量賦值和將對象作為參數(shù)傳遞給函數(shù)的操作時(shí),整個(gè)對象被復(fù)制。這將導(dǎo)致低效。另外,不可預(yù)知的運(yùn)行時(shí)行為會經(jīng)常發(fā)生。

  php缺少一些其它絕大多少現(xiàn)代開發(fā)框架擁有的關(guān)鍵元素。其中最重要的一個(gè)是結(jié)構(gòu)化異常捕捉。雖然可以給進(jìn)程錯(cuò)誤注冊一個(gè)error handler,對于語言本身來說并不方便。由于"try . . . catch"錯(cuò)誤捕捉的缺席,很多php開發(fā)者完全忘記了錯(cuò)誤捕捉或者在很窄的范圍中使用。

  ASP.NET

  ASP.NET的核心是Microsoft .NET框架。這個(gè)框架提供了common language runtime (CLR)和類庫,ASP.NET就建立在這之上。

  當(dāng)ASP.NET資源第一次被請求時(shí),高層語言代碼(像Microsoft Visual Basic® .NET 或者C#)被編譯成Microsoft Intermediate Language (MSIL) code。這個(gè)代碼將由CLR運(yùn)行以產(chǎn)生用于網(wǎng)頁服務(wù)的機(jī)器代碼。

  ASP.NET強(qiáng)制開發(fā)者使用真正的面向?qū)ο蠓绞竭M(jìn)行程式設(shè)計(jì)。所有的對象都是真實(shí)的OO對象,支持如繼承、多態(tài)(方法的重載)和封裝的特性。

  另外,ASP.NET中的所有語言都是強(qiáng)類型的。舉個(gè)例子,要比較整數(shù)4和字符4,你需要先將變量轉(zhuǎn)換為整型,反之亦然。

  ASP.NET采用事件驅(qū)動編程模型,這意味著,代碼片斷由在程式運(yùn)行時(shí)可能發(fā)生的事件聯(lián)系起來。

  舉例而言,在ASP.NET 頁面中的Page_Load()事件放置當(dāng)瀏覽器讀取Web form時(shí)將要運(yùn)行的代碼。有很多附加事件和ASP.NET Page object相聯(lián)系,開發(fā)者可以在它們生命周期中的任何時(shí)間執(zhí)行代碼。同樣的,一個(gè)Web form上的各個(gè)控件都有一系列可在觸發(fā)時(shí)可執(zhí)行代碼的事件。比如,通過在一個(gè)Web form添加一個(gè)button,你可以添加一個(gè)方法(被叫做一個(gè)delegate)來在用戶點(diǎn)擊button時(shí)執(zhí)行。幾乎所有控件都有一個(gè)或者多個(gè)事件。

  

  你可以訪問Microsoft在QuickStart指南中提供的關(guān)于Class Browser的例子,可以在http://samples.gotdotNET.com/quickstart/ASPplus/samples/classbrowser/vb/classbrowser.ASPx在線運(yùn)行它。

  Easy注:這篇文章譯自MSDN,是 白刃之戰(zhàn):php vs. ASP.NET 的一部分。文章的其他部分Easy將視事件和精力選譯部分。

AspNet技術(shù)白刃之戰(zhàn):PHP vs. ASP.NET(節(jié)選)-架構(gòu)比較,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 91madou麻豆 | 欧美性色xo影院永久禁欲 | 国产成人精品视频免费大全 | 97色伦图片在线观看 | 久久88综合| 99久久国产综合精品网成人影院 | 91精品欧美综合在线观看 | 又黄又爽又猛大片录像 | 爱搞激情在线 | 九九视频免费精品视频免费 | 福利毛片| 亚洲视频在线观看网站 | 丁香综合在线 | 丁香六月 久久久 | 四虎8848精品永久在线观看 | 久久久亚洲天堂 | 91啦国产 | 国产精品区一区二区三 | 国产成人精品三区 | 伊人网视频 | 国产免费福利 | 中文字幕一区二区在线视频 | 一区二区在线精品免费视频 | 米奇7777狠狠狠狠视频影院 | 波多野结衣一区二区三区高清在线 | 91福利影院 | 久久国产乱子伦精品免费午夜 | 美女扒开双腿让男人爽透视频 | 涩涩色中文综合亚洲 | 色中文字幕在线 | 亚洲精品社区 | 一区二区精品在线观看 | 黄色美女免费看 | 国产欧美性综合视频性刺激 | 日本香蕉网 | 亚洲六月丁香六月婷婷色伊人 | 精品视频免费在线 | 亚洲国产精品自产在线播放 | 国产免费成人在线视频 | 日本青草视频 | 一级做a爰片久久毛片美女 一级做a爰片久久毛片人呢 |