當前位置:首頁 » 編程語言 » php與aspnet的區別

php與aspnet的區別

發布時間: 2022-12-15 14:57:41

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)。

⑵ ASP.NET和PHP有什麼區別

asp.net是微軟的東西,他的發展前途取決於微軟的態度。
在.net之前,微軟的是ASP。在微軟的大力推廣下,其看起來還是很有前途的。但現在,微軟想推廣asp.net,而ASP成了其障礙。所以從Windows
Server
2003開始,微軟對ASP做了許多限制,比如上傳文件不能超過200KB等。再看看現在,微軟為了推廣Windows
Vista以及最新的Windows
7,對Windows
XP做了些什麼,直接對普通用戶停止了技術支持,就是為了迫使你更換。
如果以後,微軟有了比.net更好的東西。微軟估計會對.net做類似的限制,強制用戶升級。
PHP是完全開源的,其需求更貼近日常的應用,代碼風格類似於C語言,比較容易學習。
速度方面,雖然PHP不是經過編譯的,但在Linux下的實際應用的執行效率肯定要比Windows下的.net快。
運行時的安全性PHP肯定要比微軟的.net要高。不過通常代碼都是沒有保護的。通常需要用商業的Zend軟體來加密。當然這個加密的過程也是種編譯的過程。保護了代碼的同時,還提高了執行速度。新的Zend的加密演算法,目前還沒有成功破解的。而.net如果只做單純的編譯,是很容易被反編譯回來的。
PHP目前有兩個支線,一個PHP4、一個是PHP5。兩個支線都在共同的維護中。這保證過去使用PHP4的系統仍然能保證持續的良好的安全性和功能的更新。

⑶ PHP與ASP,asp.net有什麼不同

進行 Web 開發時,您有許多選擇。這些方法中許多都涉及到預處理 — 即,利用特定的標記將代碼嵌入到 HTML 頁面中,這些標記告訴預處理器,它們包含代碼,並且應對它們作出處理。與 CGI 非常相似,這些代碼在伺服器上運行,並返回一些內容,這些內容表現為發回給瀏覽器的結果 HTML 頁面的部分外觀。開放源代碼腳本語言 PHP 和 Microsoft 的 ASP.NET 框架中的語言都屬於這種類型;JavaServer Pages (JSP) 和 Perl/Mason 也以這種方式運行。

在此,我將重點講述 PHP — Oracle 已選擇合並到其產品中的技術 — 和 ASP.NET。我將概述兩者的各種優勢和弱點,並著重討論那些將幫助您決定開發項目應選擇哪種技術的因素。有很多因素需要考慮,不同的項目可能訴諸於不同的技術。總之,您將看到在價格、速度和效率、安全性、跨平台支持等方面的逐項比較,以及開放源代碼解決方案的優勢。

什麼是 ASP.NET

ASP 最新的版本 ASP.NET 並不完全與 ASP 早期的版本後向兼容,因為該軟體進行了完全重寫。早期的 ASP 技術實際上與 PHP 的共同之處比與ASP.NET 與 PHP的共同之處多得多,ASP.NET 是用於構建 Web 應用程序的一個完整的框架。這個模型的主要特性之一是選擇編程語言的靈活性。ASP.NET 可以使用腳本語言(如 JScript、VBScript、Perlscript 和 Python)以及編譯語言(如 VB、C#、C、Cobol、Smalltalk 和 Lisp)。新框架使用通用的語言運行環境 (CLR);先將您語言的源代碼編譯成 Microsoft 中間語言代碼,然後 CLR 執行這些代碼。

這個框架還提供真正的面向對象編程 (OOP),並支持真正的繼承、多態和封裝。.NET 類庫根據特定的任務(例如,使用 XML 或圖像處理)組織成可繼承的類。

除了編程語言和方法之外,當您用 ASP.NET 編程時,可以用 ODBC 來集成資料庫;ODBC 提供了一組一致的調用函數來訪問您的目標資料庫。

優勢和弱點

ASP.NET 的優勢很明顯在於它簡潔的設計和實施。這是面向對象的編程人員的夢想:語言靈活,並支持復雜的面向對象特性。在這種意義下,它真正能夠與編程人員現有的技能進行互操作。

ASP.NET 的另一個優勢是其開發環境。例如,開發人員可以使用 WebMatrix(一個社區支持的工具)、Visual Studio .NET 或各種 Borland 工具(如 Delphi 和 C++ Builder)。例如,Visual Studio 允許設置斷點、跟蹤代碼段和查看調用堆棧。總而言之,它是一個復雜的調試環境。許多其他第三方的 ASP.NET IDE 解決方案也將必然出現。

但是ASP.NET強健性,是以損失效率為代價的。ASP.NET 在內存使用和執行時間方面耗費非常大,這大部分歸因於較長的代碼路徑。對基於 Web 的應用程序,這些局限可能是一個嚴重的問題,因為在 Web 上,您的應用程序可能擴展為每秒成千上萬的用戶。內存使用率還可能成為 Web 伺服器上的一個問題。

什麼是 PHP

PHP 是基於預處理 HTML 頁面模型的一種腳本語言。當 Web 伺服器中的 PHP 預處理器發現像下面這樣的 PHP 語言標記時,將調用 PHP 引擎來執行該代碼:

<?php
代碼
?>

使用過命令式編程語言的編程人員都將會對 PHP 非常熟悉;您會發現它與 Perl、C 和 Java 在語法上很相似。嚴格來講,Java 是一種命令式編程語言,但它也利用了面向對象的結構和概念。PHP 在適宜的時候借鑒了這種結構,但它不是一種純粹的 OOP 語言。

在上面對 ASP.NET 的討論中,我提到了 ODBC 驅動程序,以及在考慮資料庫抽象的情況下如何構建應用程序。在 PHP 中,您也可以使用 ODBC 與資料庫對話,因此您已經有了一系列支持的資料庫可供選擇。也有 MySQL、Oracle 和 Postgres 的原生驅動程序。此外,如果要使用 Oracle,則有一個特殊的 OCI8 庫將提供對 Oracle 更多訪問功能,從而允許您使用諸如 LOB、BLOB、CLOB 和 BFILE 之類的特性。

這時您可能會問「為什麼與資料庫相關的資料庫被稱為 PHP 的特性?」資料庫抽象或獨立性是您在設法構建使用多種資料庫或需要在資料庫間移植(例如,從開發到投產時的移植)的應用程序時所要考慮的一個因素。而這些確實是應該關心和考慮的。

但正如 Tom Kyte 在他的新書 — Effective Oracle by Design (Oracle 出版社) — 中指出的那樣,資料庫相關性將成為您真正的目標,因為這將使您在該技術中的投資最大化。如果您對 Oracle 進行一般的訪問 — 無論通過 ODBC 或 Perl 的 DBI 庫,那麼您將無法使用其他資料庫所不具有的特性。此外,優化查詢在各個資料庫中各不相同。

Zend Technologies 是一家商業軟體公司,它對 PHP 作出了重大貢獻。它創建了一個稱為 Zend Studio 的商業開發環境,這個環境包含了一個復雜的調試器、一個監測器和其他特性。該公司還構建了免費的 Zend Optimizer,它與 Zend Encoder 結合使用來編譯 PHP 代碼,以提升性能。還有其他商業產品,如 Zend Performance Suite,它可以緩存預編譯的 PHP 頁面,從而進一步顯著提升總體性能。

優勢和弱點

到測試版 4 為止,PHP 5 仍然有一些缺點,包括缺少異常和基於事件的錯誤處理常式 — 它們能夠中斷正常的程序流,並將代碼跳轉到一個特殊的錯誤處理部分。Java 也提供了用於錯誤處理的異常,而 C++ 通過 try、catch 和 throw 語法提供異常處理。當然,您仍然可以在 PHP 中管理錯誤,但其結構不是標准化的,因而使得編程人員必須使用自己的工具來決定執行錯誤處理的方式,這將導致更低的一致性並往往導致推倒重來。

另一個弱點是 PHP 的函數名是不區分大小寫的。雖然這不是一個嚴重的缺點,但有些程序員可能會覺得這一特性很討厭。

不過,我的確對 PHP 的對象模型心存疑慮。PHP 不是專門設計為一種面向對象的語言。這些特性中的一部分是後來添加的 — 盡管注意了保持與 PHP 3 的後向兼容性,因此兩種模型的特性都留有一些。實際上,在 PHP 5 中這些弱點中的許多都得到了解決。請留心關注。

PHP 在一些領域中缺少什麼,它就會在擅長的領域中迅速地彌補什麼。價格合理,因此您不需要擔心許可問題。它也是開放源代碼的,因此整個社區將密切關注開發過程:發現錯誤並將其修復。如果有一個特性您不喜歡,那麼您可以修改代碼。此外,PHP 可與 Apache 自然結合:它可以作為一個模塊編譯,或直接編譯成 Apache 二進制文件。

但在 Apache 上運行意味著,利用 PHP,您能夠利用您已經在任意伺服器投資,這是因為 Apache 能夠運行在 Windows、Linux、Solaris 和各種其他 Unix 平台上。此外,使用擁有 Apache 的跟蹤記錄的 web 伺服器意味著安全性能夠保持在最高的優先順序上。最後,PHP 擁有更小的代碼路徑,這意味著更少的分析和執行 PHP 頁面伺服器端代碼,這將帶來更高效的內存和使用率以及更快的運行。

在 PHP 5 中新增了哪些特性?

PHP 5 的第 4 個測試版在 2003 年 12 月底推出,更改日誌清楚地顯示已發現許多錯誤並已將其消除。雖然它仍在進行測試,但它的所有新特性和進步都確實值得關注。

PHP 5 的主要新成就在於它的異常處理和一個新對象,這個新對象引入的特性賦予了 PHP 真正的 OOP。異常處理無疑是 PHP 4 中最顯著的缺憾之一,而 PHP 5 對異常處理的引入無疑是一個成熟的標志。異常處理意味著您在您的軟體中擁有了根據語言定義的和標准化的錯誤處理方法。只需使用 try、catch 和 throw 方法,您的 PHP 代碼就變得更加強健和簡潔。

<?php

class blue {

function openFile ($inFile) {
if (file_exists ($inFile)) {
# code to open the file here
} else {
throw new Exception
("Cannot open file:$inFile");
}
}
}

$blueObj = new blue ();

try {
$blueObj->openFile ('/home/shull/file.txt');

} catch (Exception $myException) {
echo $myException->getMessage ();

# rest of exception handling code here
}

# rest of blue methods here

?>

新的對象模型為用 PHP 編寫的程序帶來許多積極的影響。在 PHP 4 中,當把將一個對象傳遞給函數或方法時,是通過值來傳遞的 — 除非您另行顯式告知 PHP。這個過程意味著必須復制對象的一個副本(內存中的所有數據結構)。這個步驟使用內存,使得訪問變慢和擁塞。而在 PHP 5 中,通常通過引用傳遞對象。

PHP 5 中新的面向對象的特性(包括構造器和析構器)值得關注。與 C++ 和 Java 相同,它們提供了一種標准方法,即通過一個構造器方法來創建對象、分配內存和執行任何必要的設置,並通過一個析構器方法來執行清理。

PHP 5 還引入了對類中方法和變數的更精細控制。在 PHP 4,一切都是公有的:您可以從類外或在繼承類中訪問您類中的變數。在 PHP 5 中,您仍然可以使變數或方法為公有,但您也可以使它們為私有,以使得只能在類本身中使用它們。還可以將它們保護起來,也就是說,可以在類內或在子類中查看方法和變數。

此外,PHP 5 引進了類型提示或更好的類型檢查。當您將一個對象傳遞給一個常式時,PHP 能夠檢查它是否是正確的類型,並在檢查失敗時產生類型不匹配錯誤。

還有其他特性(如靜態方法和變數以及抽象類)。
參考資料:http://www.webzuo.net/child_content/site_programme/php/sp_php028.php?id=123

⑷ PHP和ASP.NET哪個更好

PHP與ASP.NET都是現在很流行的腳本語言,也是當前最為熱門的動態網頁技術的兩個,有很大的應用前景和開發價值。

所以兩個的優劣也是一個「更好」能夠分清的。

先說PHP,PHP是語法簡明,上手快,對現有的各種資料庫都支持良好,在面向對象方面也有著自己的優勢。同時,PHP還有著執行效率高,伺服器壓力小的特點。最好的一點在於,PHP是開源的,有著無數的民間技術高手,貢獻著很多實用的類庫,這也彌補了它在類庫方向的不足。

ASP.NET是微軟.net戰略的重要組成部分,從發布到現在受到人們的交口稱贊。它可以使用C#和VB兩種語言同時編寫,更重要的是,它有著強大的類庫支持,強大的不能再強大的Visual Studio的夢幻般的開發環境,它所提供的大部分的控制項,可以讓一個新手很容易開發出高質量的網頁。但它也有很多的缺點,如Visual Studio和相關的軟體全部是要收費的,而且價格不菲。目前來看,ASP.net只有在Windows平台下進行自如,雖然已經出現了一些第三方的支持,但對asp.net2.0一直沒有完成支持,這也使得你可能使用windows做為你的伺服器操作系統,這也是要收費的。

熱點內容
存儲30介面什麼意思 發布:2025-01-23 23:11:24 瀏覽:670
青少兒編程培訓學校 發布:2025-01-23 23:07:52 瀏覽:264
msc編譯器收費 發布:2025-01-23 23:07:36 瀏覽:580
載入存儲單元翻譯 發布:2025-01-23 23:02:25 瀏覽:849
ftp下載目錄命令 發布:2025-01-23 23:02:22 瀏覽:264
創建用戶腳本 發布:2025-01-23 22:53:01 瀏覽:949
什麼是手機存儲模式 發布:2025-01-23 22:41:57 瀏覽:534
c語言相反數 發布:2025-01-23 22:28:55 瀏覽:187
壓縮網課 發布:2025-01-23 22:13:19 瀏覽:597
網站收錄源碼 發布:2025-01-23 22:04:42 瀏覽:693