當前位置:編程學習大全網 - 編程語言 - php與asp.net的區別

php與asp.net的區別

1. PHP, Hypertext Preprocessor, 動態網頁開發語言。

PHP,Hypertext Preprocessor,最初在95年問世(那時以前叫Personal Home Page)。PHP最初是制作動態網頁的服務器端腳本語言,但

現在PHP已經可以作為command line運行有GUI的standalone的程序。現在是PHP Group在開發和管理PHP的規則,功能等。但PHP大都用在

dynamic webpage scripting上,好象沒聽過誰用它開發desktop application。

PHP使用率是制作動態網頁的幾種語言(JSP,ASP,ASP.NET, ColdFusion, Ruby, SHTML)中最高的。因為PHP在95年已經問世至今,以有

相當數量的開發者。我們熟知的國際權威百科全書Wikipedia有90%用PHP寫的,而且國外流行多年的“校內網”FaceBook 也全部用PHP寫

的,同時Yahoo, Sony官方,Pepsi百事官方這些網站都是用PHP的。根據維基百科(Wikipedia)的說法,PHP被超過20,000,000的網站所

用,被超過1,000,000的網頁服務器所用。目前到2008五月,PHP最新版本為5.2.6。

PHP不僅使用率高,而且能兼容各類平臺。它可以在大多數網頁服務器上運行(如:MS IIS,Apache),大多數操作系統上運行(如:

Windows, UNIX, Linux)。而且PHP支持很大多數牌子的數據庫:MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Gerneric

ODBC等。

結構方面,雖比JSP,ASP.NET差點,PHP也有很多Framework可用。微軟的ASP.NET結構是出名的,JSP的MVC結構也很厲害,所以開發大網

站ASP.NET,JSP都很快。而PHP Group也為此付出很大努力,來開發自己特有的結構適應不同類型的大網站的需求。常見的PHP的

Framework有:CakePHP, PRADO, Symfony, Zend等。

另外LAMP結構,是PHP最常用的開發模式,即是配合Linux, Apache, MySQL, PHP,合稱LAMP。

2. ASP(Active Server Pages), ASP.NET 兩個分別是 動態網頁開發語言,動態網頁開發語言和結構

(1) 關於ASP的淘汰

ASP, Active Server Pages已經過時了, 但因為其出現的早,96年就有了,所以現在有些中小網站還用(但,使用最多最廣的是PHP,最

初於95年現世。ASP是微軟第壹代動態網頁開發語言,只能在Windows系統 + MS IIS服務器平臺下運行。

Wikipedia, Facebook, 百度等都用PHP,PHP學習的簡單度和ASP差不多;JSP稍微難點,JSP用的壹般都是銀行,購物等安全性較高的網站

,Google也用JSP)。但隨著開發者的各種需求,ASP以後可以被ASP.NET取代,因為微軟停止對其的壹切技術維護與功能更新。ASP.NET是

革新版本的ASP(註意是“革新版本”,而非“改進版本”),或者說是完全新壹代的Dynamic Web Scripting。

ASP代表著傳統的dynamic web scripting,與ASP.NET沒什麽關系,學了確實也沒用。因為ASP不象CGI(Common Gateway Interface),

CGI是動態網站制作的始祖,所有ASP,JSP,PHP什麽的都根據CGI演化而來,而且ASP,PHP,JSP都包含了些 CGI的東西;而ASP卻沒有被

衍生出任何新技術,ASP.NET也不算基於ASP,只能說ASP.NET開發理念,library,功能完全是基於.NET的其它組件。

其實PHP,JSP,ASP明白其中壹種,其它的都很容易學會了。如果非要學學傳統的dynamic web scripting,那就學學PHP吧,不比ASP難,

但比ASP功能多,穩定性好,PHP5運行速度也比ASP快很多(JSP稍難因為要學點 Java)。學了PHP或JSP什麽的,對學ASP.NET有好處,而

且還可以直接用PHP,JSP進行開發。去google差差英文資源,有評價PHP 最好的,有評價JSP最好的,還從沒有聽誰說過ASP最好。

ASP.NET畢竟在.NET中,所以ASP.NET還是有相當地位的。

(2). 關於ASP.NET的優勢

ASP.NET是微軟.NET Framework的壹部分。伴隨.NET 1.0在2002的問世,ASP.NET也出現在動態網頁開發語言的家族中(與

PHP,JSP,ColdFusion, Ruby, SHTML等並行了)。

功能上,ASP.NET比ASP有更強大的library, 更好的穩定性。 ASP.NET可以使用.NET Framework中所有組件(也就是說.NET能實現的,

ASP.NET壹樣能實現),功能上顯然強大於傳統功能單調的ASP。最強的技術支持Web Service, 而且有.NET的所有library做後盾。而且

ASP.NET 在.NET 3.5中還有微軟專門為AJAX開發的功能--ASP.NET AJAX。

結構上,傳統的ASP把所有代碼混為壹團,簡單的用<%%>把HTML和VBScript(或JScript)分開,實現動態輸出 HTML。因為ASP.NET模仿

JSP的MVC網頁結構,微軟為ASP.NET開發了自己的Code-Behind結構,將 presentation(文件拓展名:.aspx)和business logic(文件拓

展名:.cs或.vb等)分離。同時Code-Behind模式也實現了讓ASP.NET開發者用.NET中最普通Winform的開發模式來開發網站,方便非網頁開

發者制作動態網站。所以ASP.NET更容易維護,比ASP更適合於Enterprise Level 的大網站開發。

由於ASP.NET比JSP,PHP等更接近於.NET Winform的開發。如Tree View, Datagrid View(即高級Table)等高級UI,都可以直接用

ASP.NET中的Web Control來實現,這比傳統的使用JavaScript + XTHML + CSS的DHTML開發方式簡單不少,也更好維護。同時ASP.NET開發

這可以定義自己的User Control,制作自己特別的壹種UI(如網站LOGO,版權等部分),而且此User Control可以被存為.ascx文件,方

便讓每壹頁(.aspx)來使用。

運行速度上,ASP.NET模仿了JSP的預編譯機制(Pre-Compile)。使編譯好的代碼(MSIL語言)在網頁服務器上運行。這樣比傳統的ASP,傳統

PHP(PHP4以前版本)更快,因為傳統的ASP是直接運行開發者寫的Script,相當於每運行壹次,就得編譯壹次那麽慢。 ASP.NET可以用

VB, C#, J#等所有.NET Framework的語言開發.(但其實每種語言做的東西都壹樣... 就象山東話, 東北話, 寫出來都是中文:)

不過ASP.NET對出學者可能有點難. 因為它其實在模擬desktop application development,即Winforms開發的模式, 不象傳統的JSP,

PHP, ASP這樣容易明白。傳統的Dynamic Server Scripting, 象PHP 5, 這是現在最簡單的, 最有效的了。( 那個JSP也不難. 如果有錢

還可以考慮下Adobe ColdFusion。)

ASP.NET的新潮的Dynamic Server Scripting, 在其帶動下SUN也推出自己的JavaServer Faces (其實是拓展JSP,但JSF無法取代JSP), 和

ASP.NET很象, 也有很多Web Control(JTable, JTree),同時JSF也曾強了對WEB SERVCIE的支持, 也很適合ENTERPRISE LEVEL 的網站。

(3). ASP與ASP.NET的優劣總結:

-- ASP已經被微軟停止更新;ASP.NET卻在.NET(1.0, 2.0, 3.0, 3.5)中突飛猛進;

-- ASP在96年出現,並沒有引領壹個潮流,PHP,ColdFusion都出現於95年,引領了整個潮流;ASP.NET引領新的動態網站開發潮流,SUN

的JSF(JavaServer Faces)就是與ASP.NET極其相似;

-- ASP大多被用在是中小網站;PHP被Wikipedia, Facebook, 百度所用,JSP被GOOGLE所用;

-- ASP不支持Web Service; ASP.NET支持Web Service。要是了解.NET中的Web Service在大組織系統中的重要性,就能立桿見影的看出差

-- ASP開發AJAX比較麻煩;而ASP.NET專門用AJAX控件,更方便。要是了解Web 2.0,那麽AJAX是什麽地位,就不用我說了吧。

-- ASP.NET模仿JSP,是pre-compile的;ASP不compile,直接運行Script的速度顯然沒有compile之後的快。

-- ASP.NET的唯壹缺點,就是開發用的IDE--Visual Studio Professional比較貴(express版免費的功能太少);ASP的唯壹優點是,其

學起來最簡單,跟PHP壹樣簡單,比JSP簡單,更比ASP.NET簡單幾倍。

3. .NET Framework

.NET Framework的概念就大了。.NET Framework是微軟開發的壹種軟件開發技術。主要用來開發MS Windows系統上的各類軟件。.NET主要

包含壹個龐大的library(解決常見編程問題)和壹個virtual machine(管理程序的運行)。可以說Windows是微軟的命根:),所

以.NET就是微軟占領軟件市場的關鍵。

.NET Framework的library叫做BCL, Base Class Library,包含了在各種領域的大範圍的編程需要,如user interface用戶界面,data

access數據接入,database connectivity, cryptography, web application development網站開發,numeric algorithms數學計算,

network communications網絡交流等。開發者利用各種BSL來構成自己的代碼,進而開發出多樣的應用程序。

.NET寫出的程序在CLR, Common Language Runtime上運行。CLR是壹個application virtual machine來幫助運行開發者寫的程序。CLR提

供很多重要功能,如:security安全,memory management內存管理,exception handling錯誤控制。

BSL,CLR構成了強大的.NET Framework。

.NET Framework主要安裝在Windows Server 2008, Windows Vista。小版本的.NET Framework還安裝在Windows Mobile系統上。但是家用

Windows XP等系統壹樣可以安裝.NET Framework來運行用.NET寫的程序。

平時在學校學習,通常學習.NET中的三個主要技術:Winforms(桌面應用程序開發,就是平時普通程序如QQ,Skype可以用它,但其實QQ

用C,C++寫的), ASP.NET(網頁,平時在IE,FireFox上看的網頁可以用它), ADO.NET(接入數據庫,處理相關數據)。但.NET不是壹種

語言。寫.NET程序可以用任何.NET支持的語言,如:C#, VB.NET, J#等等。明白其中壹種就可以了。

.NET概念挺大,東西也非常非常多。與之相似的技術有SUN的Java技術(分三個技術部分Java SE, Java EE, Java ME)。

  • 上一篇:機器人有什麽用?
  • 下一篇:不懂代碼也可以搭建網站平臺,網站搭建有哪些
  • copyright 2024編程學習大全網