自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP ASP.NET的較量

開發(fā) 后端
PHP ASP.NET之間的較量是什么呢?他們有什么特點(diǎn)呢?PHP ASP.NET對(duì)于不同的編程學(xué)習(xí)者是有什么誘惑呢?那么本文就向你介紹這方面的情況。

PHP和ASP.NET都可以構(gòu)建復(fù)雜的Web應(yīng)用程序(例如電子商務(wù)站點(diǎn)、Intranet和企業(yè)門戶),但兩者之間卻存在若干重要差別。與PHP不同,ASP.NET并不是一種語言或分析器,而是Microsoft .NET Framework中的一組用于構(gòu)建Web應(yīng)用程序和XML Web Service的技術(shù)。同PHP一樣,Microsoft ASP.NET頁面在服務(wù)器上執(zhí)行并生成標(biāo)記(例如HTML、WML或XML),標(biāo)記將發(fā)送給桌面應(yīng)用程序或移動(dòng)應(yīng)用程序。但不同的是,ASP.NET為開發(fā)Web頁面提供了強(qiáng)大的、面向?qū)ο蟮囊约坝墒录?qū)動(dòng)的編程模型,同時(shí)仍保留了PHP開發(fā)人員所習(xí)慣的那種簡單性。

PHP與ASP.NET比,ASP.NET應(yīng)用程序是基于強(qiáng)大的面向?qū)ο缶幊?OOP)模式,而不是基于腳本模式。這樣便可以獲得更為嚴(yán)謹(jǐn)?shù)腛OP功能,例如繼承、封裝和反射。雖然大多數(shù)基本的簡單操作可以輕松地從PHP轉(zhuǎn)換到ASP.NET,但要轉(zhuǎn)換更為復(fù)雜的應(yīng)用程序卻并不這么簡單,這需要仔細(xì)的規(guī)劃和考慮,并采用更符合OOP的方法。

本文假設(shè)讀者具有PHP方面的經(jīng)驗(yàn),并且對(duì)編程和軟件開發(fā)有著基本了解。本文首先從代碼方面對(duì)兩者的基礎(chǔ)體系結(jié)構(gòu)的差別進(jìn)行簡單比較,并簡要介紹一下OOP開發(fā)模型,然后比較兩者的功能,***將使用PHP和ASP.NET開發(fā)Web應(yīng)用程序時(shí)的語法和常見任務(wù)作以對(duì)比。

注意:如果您希望跳過有關(guān)遷移的詳細(xì)信息,而只想嘗試ASP.NET的使用,則可以直接跳到建議的后續(xù)操作部分。

PHP ASP.NET體系結(jié)構(gòu)對(duì)比

閱讀完本文后,通過比較語法和語言,您將了解PHP和ASP.NET是很相似的,它們具有類似的功能和語法。但是,從更基本的體系結(jié)構(gòu)層面來講,PHP與ASP.NET卻有著很大差別。PHP基于獨(dú)立于平臺(tái)的處理器/引擎,該處理器/引擎用于分析PHP腳本、提供數(shù)據(jù)庫連接、符合Internet協(xié)議以及提供大多數(shù)Web應(yīng)用程序平臺(tái)所常見的眾多其他任務(wù)。

ASP.NET是基于一系列技術(shù)(如CLR)構(gòu)建的框架,提供了大量以很好的方式組織的類庫,這些類庫可滿足要在Web應(yīng)用程序中使用的大多數(shù)功能的需要。您還可以輕松地創(chuàng)建各種組件,對(duì)該框架進(jìn)行擴(kuò)展。

雖然PHP也提供了類似的功能(例如PEAR庫),但PHP和ASP.NET并非完全相同,因?yàn)锳SP.NET框架是完全基于OOP模式和OOP概念構(gòu)建的,而PHP則不然。這種差別在PHP和ASP.NET中類和對(duì)象的訪問方式方面表現(xiàn)得猶為明顯。

PHP ASP.NET中的面向?qū)ο缶幊?

雖然PHP和ASP.NET都為應(yīng)用程序開發(fā)提供了OOP模式,但它們對(duì)各種OOP概念(例如封裝和多態(tài))的支持卻存在差別。例如,PHP僅支持部分封裝(例如,支持在類中聲明方法和字段)和部分多態(tài)(沒有重載和抽象)。此外,由于PHP的類中不存在私有(private)、公有(public)或受保護(hù)(protected )函數(shù)等概念以及重載,因此PHP也不支持這些概念及其訪問。OOP純粹主義者可能會(huì)說,ASP.NET以及各種語言也沒有完全支持OOP模式中的所有概念,對(duì)于使用OOP的大多數(shù)語言(如C++和Java)來說,情況確實(shí)如此。

這既有積極的一面,也有消極的一面。消極的一面是:對(duì)于某些Web開發(fā)人員來說,學(xué)習(xí)ASP.NET要比學(xué)習(xí)PHP困難些,因?yàn)镻HP提供的是開發(fā)人員創(chuàng)建Web站點(diǎn)時(shí)所慣用的腳本模式。但是,使用過OOP語言和/或V的開發(fā)人員會(huì)發(fā)現(xiàn)ASP.NET比較親切且易于學(xué)習(xí)。

ASP.NET支持OOP概念的積極的一面是,ASP.NET應(yīng)用程序的大多數(shù)部分都會(huì)得到很好的設(shè)計(jì),并且能夠?qū)?nèi)容、邏輯和數(shù)據(jù)進(jìn)行清楚的分隔,因而從應(yīng)用程序生命周期的長遠(yuǎn)角度看,這通常更容易為其提供支持。此外,由于ASP.NET本身支持企業(yè)技術(shù),例如消息隊(duì)列、事務(wù)(請(qǐng)參閱.NET Framework的System.EnterpriseServices類)SNMP和Web服務(wù),因而可以很容易地開發(fā)具有高度可縮放性的強(qiáng)大的應(yīng)用程序。

要大致了解面向?qū)ο缶幊蹋◤腣isual Basic的角度)的主要概念,請(qǐng)參閱Object-Oriented Programming in Visual Basic。

PHP ASP.NET編譯

PHP

請(qǐng)求PHP頁面時(shí),HTML和內(nèi)聯(lián)PHP腳本將編譯為Zend Opcode(Zend操作代碼)。Opcode是低級(jí)的二進(jìn)制指令,是提供PHP頁面時(shí)實(shí)際使用的代碼。編譯后,Zend引擎將運(yùn)行Opcode(與Java的運(yùn)行時(shí)引擎運(yùn)行字節(jié)碼類似),然后生成HTML并提供給客戶端。

有許多商業(yè)產(chǎn)品可用來通過優(yōu)化這些Opcode來加快PHP頁面的執(zhí)行速度。其他提高PHP腳本性能的方法還包括對(duì)Opcode和生成的HTML進(jìn)行緩存。

ASP.NET

當(dāng)向IIS(Internet信息服務(wù))或其他Web服務(wù)器請(qǐng)求.aspx頁面(或ASP.NET支持的任何其他擴(kuò)展名)時(shí),該請(qǐng)求將被傳遞到ASP.NET進(jìn)行處理。如果是***次請(qǐng)求該頁面,ASP.NET會(huì)將其編譯為MSIL(Microsoft中間語言)。然后,CLR(公共語言運(yùn)行庫)會(huì)將此MSIL代碼轉(zhuǎn)換為機(jī)器碼。***使用這個(gè)編譯后的代碼運(yùn)行該請(qǐng)求。后續(xù)的請(qǐng)求將使用相同的機(jī)器碼運(yùn)行(假設(shè)該頁面未被修改)。

需要注意的是,因?yàn)橛蒀LR生成的二進(jìn)制代碼已經(jīng)***限度地進(jìn)行了優(yōu)化,所以不必再使用其他產(chǎn)品來幫助提高性能。

此外還要注意,ASP.NET中的所有內(nèi)容在運(yùn)行前都被編譯為機(jī)器碼。甚至HTML文本也被轉(zhuǎn)換為字符串常值控件,并按照適當(dāng)?shù)捻樞虿迦氲娇丶渲小?

PHP ASP.NET功能對(duì)比

下圖對(duì)PHP和ASP.NET中的某些主要功能進(jìn)行了比較。

PHP和ASP.NET的功能對(duì)比

PHP和ASP.NET的功能對(duì)比圖1 
PHP和ASP.NET的功能對(duì)比圖2 PHP和ASP.NET的功能對(duì)比圖3 PHP和ASP.NET的功能對(duì)比圖4

PHP ASP.NET之間的較量就向你介紹到這里,關(guān)于PHP ASP.NET之間的比較,可以在使用過程中對(duì)他們?cè)俅握J(rèn)識(shí)。

【編輯推薦】

  1. ASP.NET數(shù)據(jù)庫編程技術(shù)淺析
  2. ASP.NET筆試題小匯總
  3. ASP.NET筆試題淺析
  4. PHP與ASP.NET比較的淺析
  5. ASP.NET JSP PHP之間的取舍
責(zé)任編輯:仲衡 來源: cnblogs
相關(guān)推薦

2009-07-28 14:30:35

ASP.NET JSP

2009-07-28 14:10:14

2010-02-07 09:28:09

2009-09-16 09:14:46

ASP.NETPHP

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2010-03-03 17:12:56

Ubuntu ASP.

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-27 10:35:33

TypeConvertASP.NET

2009-07-29 11:19:03

JavaScriptASP.NET

2009-07-29 14:52:12

IScriptContASP.NET

2009-07-29 16:33:28

GreeterLogiASP.NET

2009-07-27 15:48:43

2009-07-01 09:27:22

ASP.NETJSPPHP

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-07-29 17:11:25

ASP.NET ISA

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-29 17:29:46

ASP與ASP.NET

2009-07-22 18:03:00

ASP.NET ASP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)