Web窗體

Web窗體

可以使用 Web 窗體頁來創建可程式的 Web 頁,這些 Web 頁用作 Web 應用程式的用戶界面。Web 窗體頁在任何瀏覽器或客戶端設備中向用戶提供信息,並使用伺服器端代碼來實現應用程式邏輯。Web 窗體頁輸出幾乎可以包含任何支持 HTTP 的語言(包括標準通用標記語言的子集HTML與XML、WML 和ECMAScript (JScript, JavaScript))。

簡介

Web Forms 是三種創建 ASP.NET 網站和 Web 應用程式的編程模式中的一種。

其他兩種編程模式是 Web Pages 和 MVC(Model View Controller 模型-視圖-控制器)。

Web Forms 是最古老的 ASP.NET 編程模式,是整合了 HTML、伺服器控制項和伺服器代碼的事件驅動網頁。

Web Forms 是在伺服器上編譯和執行的,再由伺服器生成 HTML 顯示為網頁。

Web Forms 有數以百計的 Web 控制項和 Web 組件用來創建帶有數據訪問的用戶驅動網站。

特點


基於 Microsoft ASP.NET 技術。在該技術中,在伺服器上運行的代碼動態地生成到瀏覽器或客戶端設備的 Web 頁輸出。有關 ASP.NET 的詳細信息,請參見 ASP.NET 技術背景介紹 。

•兼容所有瀏覽器或移動設備。Web 窗體頁自動為樣式、布局等功能呈現正確的、符合瀏覽器的 HTML。此外,您還可以選擇將 Web 窗體頁設計為在特定瀏覽器(如 Microsoft Internet Explorer 5)上運行並利用多樣式瀏覽器客戶端的功能。

•兼容 .NET 公共語言運行庫所支持的任何語言,其中包括 Microsoft Visual Basic、Microsoft Visual C# 和 Microsoft JScript .NET。

•基於 Microsoft .NET Framework 生成。它提供了該框架的所有優點,包括託管環境、類型安全性和繼承。

•在 Visual Studio 中通過強大的快速應用程式開發 (RAD) 工具受到支持,該工具用於對窗體進行設計和編程。

•可使用為 Web 開發提供 RAD 功能的控制項進行擴展,從而使您能夠快速地創建多樣式的用戶界面。

•具有靈活性,因為您可以向它們添加用戶創建的控制項和第三方控制項。

組件

在 Web 窗體頁中,用戶界面編程分為兩個不同的部分:可視組件和邏輯。如果您以前使用過類似於 Visual Basic 和 Visual C++ 的工具,您將認同在窗體的可視部分和窗體後與之互動的代碼之間存在這樣一種劃分。

視覺元素稱作 Web 窗體“頁”( page)。這種頁由一個包含靜態 HTML 和/或 ASP.NET 伺服器控制項的檔案組成。

Web 窗體頁用作要顯示的靜態文本和控制項的容器。利用 Visual Studio Web 窗體設計器和 ASP.NET 伺服器控制項,您可以按照在任何 Visual Studio 應用程式中的方式來設計窗體。有關更多信息,請參見可在 Web 窗體頁上使用的控制項。

Web 窗體頁的邏輯由代碼組成,這些代碼由您創建以與窗體進行互動。編程邏輯位於與用戶界面檔案不同的檔案中。該檔案稱作“代碼隱藏”檔案,並具有“.aspx.vb”或“.aspx.cs”擴展名。在代碼隱藏檔案中編寫的邏輯可以使用 Visual Basic 或 Visual C# 來編寫。

檔案結構

項目中所有 Web 窗體頁的代碼隱藏類檔案都被編譯成項目動態程式庫 (.dll) 檔案。.aspx 頁檔案也會被編譯,但編譯方式稍有不同。當用戶第一次瀏覽到 .aspx 頁時,ASP.NET 自動生成表示該頁的 .NET 類檔案,並將其編譯成另一個 .dll 檔案。為 .aspx 頁生成的類從被編譯成項目 .dll 檔案的代碼隱藏類繼承。當用戶請求 Web 頁 URL 時,.dll 檔案將在伺服器上運行並動態地為您的頁生成 HTML 輸出。有關更多信息,請參見 Web 窗體頁處理。

有關如何構造 Web 窗體頁的更多信息,請參見 Web 窗體代碼模型。

Web 窗體頁幫助您完成哪些任務

Web 應用程式編程帶來了一些特殊的難題,在對傳統的基於客戶端的應用程式進行編程時,通常不會遇到這些難題。這些難題包括:

•實現多樣式的 Web 用戶界面。對於布局複雜且包含大量動態內容和功能齊全的用戶互動對象的用戶界面而言,使用基本的 HTML 功能來進行設計和實現將會既困難又費事。其中尤為困難的是為可能在多個不同的瀏覽器和客戶端設備平台上運行的應用程式創建多樣式的用戶界面。

•客戶端與伺服器的分離。在 Web 應用程式中,客戶端(瀏覽器)和伺服器是不同的程式,它們通常在不同的計算機上運行(甚至在不同的作業系統上運行)。因此,共同組成應用程式的這兩個部分僅共享很少的信息;它們可以進行通信,但通常只交換很小塊的簡單信息。

•無狀態執行。當 Web 伺服器接收到對某頁的請求時,它會查找該頁,對其進行處理,將其傳送到瀏覽器,然後丟棄所有頁信息。如果用戶再次請求同一頁,伺服器則會重複整個過程:從頭開始對該頁進行重新處理。換言之,伺服器不會記憶它已處理的頁。因此,如果應用程式需要維護有關某頁的信息,這就成為一個必須在應用程式代碼中解決的問題。

•未知的客戶端功能。在許多情況下,Web 應用程式可由多個使用不同瀏覽器的用戶進行訪問。瀏覽器具有不同的功能,因此很難創建將在所有瀏覽器上都同樣正常運行的應用程式。

•數據訪問方面的複雜性。對位於傳統 Web 應用程式的數據源進行讀取和寫入可能比較複雜,並且會消耗大量資源。

•可縮放性方面的複雜性。在許多情況下,由於應用程式的不同組件之間缺乏兼容性,用現有方法設計的 Web 應用程式未能實現可縮放性的目標。對於發展周期較短的應用程式,這往往是唯一會導致失敗的地方。

若要解決這些 Web 應用程式的難題,可能需要大量的時間和精力。Web 窗體頁和 ASP.NET 頁框架通過以下幾個方面來處理這些難題:

•直觀、一致的對象模型。ASP.NET 頁框架提供了一種對象模型,它使您能夠將窗體當作一個整體,而不是分離的客戶端和伺服器模組。在此模型中,您可以通過比在傳統 Web 應用程式中更為直觀的方式來對窗體進行編程,其中包括能夠設定窗體元素的屬性和回響事件。此外,ASP.NET 伺服器控制項是基於 HTML 頁的物理內容以及瀏覽器與伺服器之間的直接互動的一種抽象模型。通常,您可以按照在客戶端應用程式中使用控制項的方式使用伺服器控制項,而不必考慮如何創建 HTML 來顯示和處理控制項及其內容。

•事件驅動的編程模型。Web 窗體頁給 Web 應用程式帶來了一種您熟悉的事件處理程式編寫模型,用於為客戶端或伺服器上發生的事件編寫事件處理程式。ASP.NET 頁框架對此模型進行了抽象,使捕獲客戶端上的事件、將其傳輸到伺服器並調用適當方法等操作的基礎機制都是自動的,並對於實施者都是不可見的。這樣就得到了一個清晰的、易於編寫的、支持事件驅動開發的代碼結構。

•直觀的狀態管理。ASP.NET 頁框架自動處理窗體及其控制項的狀態維護任務,它使您能夠以顯式方式維護應用程式特定信息的狀態。這種狀態管理無需使用大量伺服器資源即可實現,而且可以通過向瀏覽器傳送 Cookie 來實現,也可以不通過向瀏覽器傳送 Cookie 來實現。

•獨立於瀏覽器的應用程式。ASP.NET 頁框架支持在伺服器上創建所有應用程式邏輯,使您無需為瀏覽器中的差異而進行顯式編碼。但是,它仍允許您自動利用瀏覽器特定的功能,方法是通過編寫客戶端代碼來提供增強的性能和更豐富的客戶端體驗。

•.NET Framework 公共語言運行庫支持。ASP.NET 頁框架是 ASP.NET 的一項技術。ASP.NET 是基於 .NET Framework 生成的,因此整個框架都可用於任何 ASP.NET 應用程式。您可以使用任何與運行庫兼容的語言(包括 Microsoft Visual Basic、Visual C# 和 JScript .NET)來創作應用程式。此外,數據訪問通過 .NET Framework 提供的數據訪問基礎結構(包括 ADO.NET)得到了簡化。

•.NET Framework 可縮放伺服器性能。ASP.NET 頁框架使您能夠將 Web 應用程式從一台只裝有一個處理器的計算機有效地縮放到多計算機“網路場”(Web farm),而無需對應用程式的邏輯進行複雜的更改。

相關詞條

相關搜尋

熱門詞條

聯絡我們