在 Windows Form 和 Web Form 之間選擇
更新:2007 年 11 月
當您開始開發具有使用者介面的應用程式時,可以使用 Windows Form 或 Web Form。兩者在開發環境內部都有完整的設計階段支援,同時提供豐富的使用者介面和進階的應用程式功能以解決商務問題。由於這項功能完全相同,因此您可能很難決定特定應用程式適用哪一個技術。
特定的應用程式考量可讓選擇明朗化。例如,如果您是在建立供大眾透過網際網路存取的電子商務網站,那麼可能要使用 Web Form 網頁來開發應用程式。如果您是在建置需要進行大量處理且必須快速回應的應用程式,而需要利用用戶端電腦的完整功能 (例如辦公室產能應用程式),則可以使用 Windows Form。不過,在其他情況下,您可能不容易作出選擇。
以下各小節將討論每個技術的功能和特性,藉此協助您判斷那一項最適合您的應用程式。
何時要使用 Windows Form
當您想要讓用戶端應用程式負責應用程式中大多數的處理負荷時,可以使用 Windows Form 開發程式。這些用戶端應用程式包括舊版 Visual Basic 和 Visual C++ 中以傳統方式開發的 Win32 桌面應用程式。其中的範例包括繪圖或圖形應用程式、資料輸入系統、銷售點系統及遊戲。
這些應用程式完全倚賴桌上型電腦的處理能力以及高效能內容顯示能力。有些 Windows Form 應用程式可能是完全獨立的 (Self-Contained),並且在使用者電腦上執行整個應用程式處理。遊戲通常是以這種方式撰寫。其他的應用程式可能是較大型系統的一部分,而桌上型電腦主要是用來處理使用者輸入。例如,銷售點系統通常需要在桌上型電腦上建立複雜、可回應的使用者介面,但又要連結至執行後端處理的其他元件。
由於您是在 Windows 架構的基礎上建置 Windows Form 的 Windows 應用程式,因此這個應用程式能夠存取用戶端電腦上的系統資源,包括本機檔案、Windows 登錄、印表機等等。您可限制存取層級來避免因非法存取產生的任何安全風險或潛在問題。此外,Windows Form 可以使用 .NET FrameworkGDI+ 圖形類別來建立圖形式豐富的介面,而這通常是資料採擷或遊戲應用程式的要件。
何時要使用 Web Form
使用 ASP.NET Web Form 可以建立主要具有瀏覽器使用者介面的應用程式。這當然包括可透過全球資訊網公開取得的應用程式,例如電子商務應用程式。不過,除了建立網站之外,Web Form 還有更多用處 - 許多其他應用程式也適合當做「精簡型前端」使用,例如網際網路架構的員工手冊或福利應用程式。任何 Web Form 應用程式都具備一項優點,那就是它沒有散發成本。使用者都已經安裝好他們唯一需要的應用程式 — 瀏覽器。
Web Form 應用程式是不需要平台的,也就是說,它們是「直接接觸」的應用程式。使用者無需考慮瀏覽器類型,甚至使用的電腦類型,就可與您的應用程式互動。同時,您可最佳化 Web Form 應用程式以利用最新瀏覽器 (例如 Microsoft Internet Explorer 6.0) 的內建功能來增進效能和回應性。
注意事項: |
---|
大多數情況下,這個最佳化功能是內建於您使用的 Web Form 元件。這些元件可自動偵測瀏覽器層級,然後再根據偵測結果來呈現網頁。 |
Web Form 應用程式提供的部分功能甚至在非 Web 內容中都是很有用的。由於 Web Form 應用程式倚賴 HTML,所以適用於可處理大量文字的任一種應用程式,尤其是注重文字格式的應用程式。瀏覽器架構的應用程式通常會限制存取使用者的系統資源,當您想要防止使用者存取某部分的應用程式時,這項限制會使得 Web Form 應用程式變得很有幫助。
比較 Windows Form 和 Web Form
下表將一一比較不同的應用程式準則,並比較 Windows Form 和 Web Form 技術處理這些準則的方式。
功能/準則 |
Windows Form |
Web Form |
---|---|---|
部署 |
Windows Form 允許以 ClickOnce 進行 「不需接觸」的部署,您可在使用者電腦上直接下載、安裝並執行應用程式,而不需變更登錄。如需 ClickOnce 的詳細資訊,請參閱 ClickOnce 部署概觀。 |
Web Form 沒有用戶端部署;因為用戶端只需要瀏覽器。伺服器必須執行 Microsoft .NET Framework。您可更新伺服器上的程式碼來更新應用程式。 |
圖形 |
Windows Form 包括 GDI+,這能夠啟用遊戲中和其他富有圖形環境中的複雜圖形。 |
Web Form 上所使用的互動式或動態圖形需要往返伺服器以進行更新。可以在伺服器上使用 GDI+ 以建立自訂圖形。 |
回應 |
您可在用戶端電腦上完整執行 Windows Form;它們可為需要高度互動的應用程式提供最快的回應速度。 |
如果您知道使用者擁有 Internet Explorer 5 (含) 以後版本,Web Form 應用程式便可利用瀏覽器的動態 HTML (DHTML) 功能,來建立內容豐富、可回應的使用者介面 (UI)。如果使用者有其他瀏覽器,則大部分的處理 (包括與 UI 相關的工作,例如驗證) 需要往返於 Web 伺服器,而可能影響回應性。 |
表單和直書/橫書控制項 |
Windows Form 格線定位會提供控制項位置上精確的二維控制項 (x 和 y 座標)。 若要在 Windows Form 上顯示文字,請您將文字插入至控制項 (例如 Label 控制項、TextBox 控制項或 RichTextBox 控制項)。格式設定則是受到限制。 |
Web Form 是以 HTML 樣式流程配置為基礎,因此支援網頁配置的所有功能。它有特別豐富的文字格式支援。 您可充份管理控制項配置 (但有一些限制,例如沒有重疊控制項)。如果使用者有可啟用 DHTML 的瀏覽器,您便可以利用二維 (x 軸和 y 軸) 配置來指定更精確的配置。 |
平台 |
Windows Form 需要用戶端電腦執行 .NET Framework。 |
Web Form 只需要瀏覽器。可啟用 DHTML 的瀏覽器可以使用額外的功能,但 Web Form 可設計成與所有瀏覽器搭配使用。Web 伺服器必須執行 .NET Framework。 |
存取本機資源 (檔案系統、Windows 登錄等等) |
應用程式在允許之後可以對本機電腦資源擁有完整的存取。必要時,可精確地限制應用程式不能使用特定資源。 |
瀏覽器安全性可防止應用程式存取本機電腦上的資源。 |
程式撰寫模型 |
Windows Form 是以用戶端、Win32 訊息幫浦模式為基礎,其中元件的執行個體 (Instance) 是由開發人員建立、使用和捨棄。 |
Web Form 倚賴多數時間為非同步且中斷連接的模型,其中的元件彈性地與應用程式前端結合。您通常會透過 HTTP 叫用應用程式元件。這個模型可能不適用於需要從使用者端取得極大輸送量的應用程式,或具有大量交易的應用程式。同樣地,Web Form 應用程式可能也不適用於需要高階並行控制 (例如,封閉式鎖定) 的資料庫應用程式。 |
安全性 |
Windows Form 會在程式碼存取安全性的實作上使用權限,以保護電腦資源和機密資訊。這樣可謹慎地顯露功能而同時又能維持安全性。例如,對「列印權限」而言,它在某個層級可能只能從預設印表機列印,而在另一個層級則可從任何印表機列印。利用 ClickOnce,開發人員可輕鬆設定應用程式應該或不應該向用戶端要求的權限。如需詳細資訊,請參閱 ClickOnce 部署和安全性。 |
是否能存取 Web 應用程式資源的授權通常是藉由驗證要求者的認證 (例如,名稱/密碼配對),根據不同的 URL 來控制的。Web Form 允許開發人員控制執行伺服器應用程式碼時所使用的識別。應用程式可利用要求實體的識別來執行程式碼,這稱為模擬。應用程式也可以根據要求者的識別或角色來動態修改內容。例如,管理員可存取站台,或比權限較低的人接收到較高層級的內容。 |