當前位置:編程學習大全網 - 編程語言 - PHP ASP.NET的較量

PHP ASP.NET的較量

 PHP和ASP NET都可以構建復雜的Web應用程序(例如電子商務站點 Intranet和企業門戶) 但兩者之間卻存在若幹重要差別 與PHP不同 ASP NET並不是壹種語言或分析器 而是Microsoft NET Framework中的壹組用於構建Web應用程序和XML Web Service的技術 同PHP壹樣 Microsoft ASP NET頁面在服務器上執行並生成標記(例如HTML WML或XML) 標記將發送給桌面應用程序或移動應用程序 但不同的是 ASP NET為開發Web頁面提供了強大的 面向對象的以及由事件驅動的編程模型 同時仍保留了PHP開發人員所習慣的那種簡單性

 PHP與ASP NET比 ASP NET應用程序是基於強大的面向對象編程(OOP)模式 而不是基於腳本模式 這樣便可以獲得更為嚴謹的OOP功能 例如繼承 封裝和反射 雖然大多數基本的簡單操作可以輕松地從PHP轉換到ASP NET 但要轉換更為復雜的應用程序卻並不這麽簡單 這需要仔細的規劃和考慮 並采用更符合OOP的方法

 本文假設讀者具有PHP方面的經驗 並且對編程和軟件開發有著基本了解 本文首先從代碼方面對兩者的基礎體系結構的差別進行簡單比較 並簡要介紹壹下OOP開發模型 然後比較兩者的功能 最後將使用PHP和ASP NET開發Web應用程序時的語法和常見任務作以對比

 註意 如果您希望跳過有關遷移的詳細信息 而只想嘗試ASP NET的使用 則可以直接跳到建議的後續操作部分

 PHP ASP NET體系結構對比

 閱讀完本文後 通過比較語法和語言 您將了解PHP和ASP NET是很相似的 它們具有類似的功能和語法 但是 從更基本的體系結構層面來講 PHP與ASP NET卻有著很大差別 PHP基於獨立於平臺的處理器/引擎 該處理器/引擎用於分析PHP腳本 提供數據庫連接 符合Internet協議以及提供大多數Web應用程序平臺所常見的眾多其他任務

 ASP NET是基於壹系列技術(如CLR)構建的框架 提供了大量以很好的方式組織的類庫 這些類庫可滿足要在Web應用程序中使用的大多數功能的需要 您還可以輕松地創建各種組件 對該框架進行擴展

 雖然PHP也提供了類似的功能(例如PEAR庫) 但PHP和ASP NET並非完全相同 因為ASP NET框架是完全基於OOP模式和OOP概念構建的 而PHP則不然 這種差別在PHP和ASP NET中類和對象的訪問方式方面表現得猶為明顯

 PHP ASP NET中的面向對象編程

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

 這既有積極的壹面 也有消極的壹面 消極的壹面是 對於某些Web開發人員來說 學習ASP NET要比學習PHP困難些 因為PHP提供的是開發人員創建Web站點時所慣用的腳本模式 但是 使用過OOP語言和/或V的開發人員會發現ASP NET比較親切且易於學習

 ASP NET支持OOP概念的積極的壹面是 ASP NET應用程序的大多數部分都會得到很好的設計 並且能夠對內容 邏輯和數據進行清楚的分隔 因而從應用程序生命周期的長遠角度看 這通常更容易為其提供支持 此外 由於ASP NET本身支持企業技術 例如消息隊列 事務(請參閱 NET Framework的System EnterpriseServices類)SNMP和Web服務 因而可以很容易地開發具有高度可縮放性的強大的應用程序

 要大致了解面向對象編程(從Visual Basic的角度)的主要概念 請參閱Object Oriented Programming in Visual Basic

 PHP ASP NET編譯

 PHP

 請求PHP頁面時 HTML和內聯PHP腳本將編譯為Zend Opcode(Zend操作代碼) Opcode是低級的二進制指令 是提供PHP頁面時實際使用的代碼 編譯後 Zend引擎將運行Opcode(與Java的運行時引擎運行字節碼類似) 然後生成HTML並提供給客戶端

 有許多商業產品可用來通過優化這些Opcode來加快PHP頁面的執行速度 其他提高PHP腳本性能的方法還包括對Opcode和生成的HTML進行緩存

 ASP NET

 當向IIS(Internet信息服務)或其他Web服務器請求 aspx頁面(或ASP NET支持的任何其他擴展名)時 該請求將被傳遞到ASP NET進行處理 如果是第壹次請求該頁面 ASP NET會將其編譯為MSIL(Microsoft中間語言) 然後 CLR(公***語言運行庫)會將此MSIL代碼轉換為機器碼 最後使用這個編譯後的代碼運行該請求 後續的請求將使用相同的機器碼運行(假設該頁面未被修改)

 需要註意的是 因為由CLR生成的二進制代碼已經最大限度地進行了優化 所以不必再使用其他產品來幫助提高性能

 此外還要註意 ASP NET中的所有內容在運行前都被編譯為機器碼 甚至HTML文本也被轉換為字符串常值控件 並按照適當的順序插入到控件樹中

 PHP ASP NET功能對比

  • 上一篇:2023天津機電職業技術學院多少錢
  • 下一篇:2021款寶馬3系到店,波爾蒂芒藍塗裝很時尚,配HUD+采埃孚8AT!
  • copyright 2024編程學習大全網