如今當提到 Web 開發時,您有許多選擇。這些方法中許多都涉及到預先處理 — 即,利用特定的標記將代碼嵌入到 HTML 頁面中,這些標記告訴前置處理器,它們包含代碼,並且應對它們作出處理。與 CGI 非常相似,這些代碼在伺服器上運行,並返回一些內容,這些內容表現為發回給瀏覽器的結果 HTML 頁面的部分外觀。開放原始碼指令碼語言 PHP 和 Microsoft 的 ASP.NET 架構中的語言都屬於這種類型;JavaServer Pages (JSP) 和 Perl/Mason 也以這種方式運行。
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 引擎來執行該代碼:
function openFile ($inFile) {
if (file_exists ($inFile)) {
# code to open the file here
} else {
throw new Exception
("Cannot open file:$inFile");
}
}
}