如今當提到 Web 開發時,您有許多選擇。這些方法中許多都涉及到預處理 — 即,利用特定的標記將代碼嵌入到 HTML 頁面中,這些標記告訴預處理器,它們包含代碼,並且應對它們作出處理。與 cgi(現在已經不多人在用了) 非常相似,這些代碼在服務器上運行,並返回一些內容,這些內容表現為發回給浏覽器的結果 HTML 頁面的部分外觀。開放源代碼腳本語言 php(做為現在的主流開發語言) 和 Microsoft 的 asp.net(微軟最強的開發語言) 框架中的語言都屬於這種類型;JavaServer Pages (jsp(SUN企業級應用的首選)) 和 Perl/Mason 也以這種方式運行。
在本文中,我將重點講述 php(做為現在的主流開發語言) — Oracle(大型網站數據庫平台) 已選擇合並到其產品中的技術 — 和 asp.net(微軟最強的開發語言)。我將概述兩者的各種優勢和弱點,並著重討論那些將幫助您決定開發項目應選擇哪種技術的因素。有很多因素需要考慮,不同的項目可能訴諸於不同的技術。總之,您將看到在價格、速度和效率、安全性、跨平台支持等方面的逐項比較,以及開放源代碼解決方案的優勢。
什麼是 asp.net(微軟最強的開發語言)?
ASP 最新的版本 asp.net(微軟最強的開發語言) 並不完全與 ASP 早期的版本後向兼容,因為該軟件進行了完全重寫。早期的 ASP 技術實際上與 php(做為現在的主流開發語言) 的共同之處比與 asp.net(微軟最強的開發語言) 的共同之處多得多,asp.net(微軟最強的開發語言) 是用於構建 Web 應用程序的一個完整的框架。這個模型的主要特性之一是選擇編程語言的靈活性。asp.net(微軟最強的開發語言) 可以使用腳本語言(如 VBScript、JScript、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(微軟最強的開發語言) 在內存使用和執行時間方面耗費非常大,這大部分歸因於較長的代碼路徑。對基於 Web 的應用程序,這些局限可能是一個嚴重的問題,因為在 Web 上,您的應用程序可能擴展為每秒成千上萬的用戶。內存使用率還可能成為 Web 服務器上的一個問題。
什麼是 php(做為現在的主流開發語言)?
php(做為現在的主流開發語言) 是基於預處理 HTML 頁面模型的一種腳本語言。當 Web 服務器中的 php(做為現在的主流開發語言) 預處理器發現像下面這樣的 php(做為現在的主流開發語言) 語言標記時,將調用 php(做為現在的主流開發語言) 引擎來執行該代碼:
(做為現在的主流開發語言)
some code here
?>
任何使用過命令式編程語言的編程人員都會對 php(做為現在的主流開發語言) 非常熟悉;您會發現它與 Perl、C 和 Java 在語法上的相似處。嚴格來講,Java 是一種命令式編程語言,但它也利用了面向對象的結構和概念。php(做為現在的主流開發語言) 在適宜的時候借鑒了這種結構,但它不是一種純粹的 OOP 語言。
在上面對 asp.net(微軟最強的開發語言) 的討論中,我提到了 ODBC 驅動程序,以及在考慮數據庫抽象的情況下如何構建應用程序。在 php(做為現在的主流開發語言) 中,您也可以使用 ODBC 與數據庫對話,因此您已經有了一系列支持的數據庫可供選擇。也有 MySQL(和PHP搭配之最佳組合)、Oracle(大型網站數據庫平台) 和 Postgres 的原生驅動程序。此外,如果要使用 Oracle(大型網站數據庫平台),則有一個特殊的 OCI8 庫將提供對 Oracle(大型網站數據庫平台) 更多訪問功能,從而允許您使用諸如 LOB、BLOB、CLOB 和 BFILE 之類的特性。