簡介:規劃 ASP.NET 網站

更新:2007 年 11 月

在您建立網站之前,請先規劃好網站,再開始建立網頁並撰寫程式碼,這樣更能事半功倍。事先規劃網站可讓您輕鬆建立網站的整體外觀與巡覽外觀。

網站的大小常常決定了您必須進行的規劃事項多寡。一個僅用於提供靜態資訊的小型、簡冊式的網站是比較基本的網站型態,一般只需要稍微規劃便可著手進行。用於存取資料存放區、驗證使用者,且具有當地語系化與存取範圍條件約束的網站則需要較複雜的規劃。手中擁有妥善規劃的藍圖,將為您節省許多開發與維護網站所需的時間。

下列主題涵蓋網站整體相關資訊,包括下列各項資訊:

  • 您選取的網站類型。

  • 您的網站巡覽方式。

  • 針對網站中所有網頁建立一致的外觀與配置的方式。

  • 從資料存放區存取資料的方式。

決定要採用的網站專案類型

您可以在 Visual Studio 2008 中建立兩種專案類型。預設的網站專案模型會使用檔案目錄結構來定義專案內容。這個模型中沒有專案檔,而目錄中的所有檔案都是專案的一部分。

相反地,在 Web 應用程式專案中,只有明確地參考方案專案檔的檔案才是該專案的一部分。這些檔案會顯示在 [方案總管] 中,而且只會在建置 (Build) 期間進行編譯。

在某些情況下,Web 應用程式專案的專案檔比較容易實作。例如,您可以參考不同專案檔中的檔案,藉此將一個 ASP.NET 應用程式分割成多個 Visual Studio 專案。此外,您也可以輕鬆地從專案排除檔案。

當您想要執行下列作業時,請使用 Web 應用程式專案:

  • 將大型的 Visual Studio .NET 2003 應用程式移轉到 Visual Studio 2008。

  • 控制輸出組件的名稱。

  • 使用獨立的類別來參考網頁類別和使用者控制的類別。

  • 使用多個 Web 專案來建置 Web 應用程式。

  • 在編譯期間加入建置前和建置後步驟。

從資料存放區存取資料

ASP.NET 資料繫結可讓您將元件繫結至資料來源,以及繫結至簡單屬性、集合、運算式和方法。這項功能可讓您更彈性地使用來自資料庫或其他來源的資料。

如果網站存取了資料存放區,則您應該考慮使用資料來源控制項,因為這些控制項都是常見資料模式的一部分。這種資料模式會將資料存取程式碼與商務邏輯程式碼,從組成網站展示層的 Web 網頁中分離出來。資料存取層包含用來存取資料存放區的方法。商務邏輯層會將規則加入至資料存取層,例如針對誰能檢視或變更資料進行存取限制。展示層包含使用者用來檢視與修改資料的網頁。如需建議這些圖層的詳細資訊,請參閱逐步解說:在 ASP.NET 中建立資料存取和商業邏輯層

您可以藉由使用 ASP.NET 中的資料來源模式將展示層從資料與商務邏輯中分離出來,以實作此常見的資料模式。您可以使用 LinqDataSourceObjectDataSourceSqlDataSource 等控制項,藉此建立有別於展示層的資料存取層和商務邏輯層。

您應該同時考慮網站是否應該使用記憶體中 (快取) 的資料。如果大部分的應用程式資料都不會常常變更,而且為工作階段或使用者所共用,則您可以將資料保存在 Web 伺服器的記憶體中。這麼做可以減少對資料庫的要求次數,並加快使用者的互動速度。您可以使用 DataSet 類別來建立記憶體內的資料庫。DataSet 物件的另一個好用的地方在於,它能讓應用程式將資料子集從某個或多個資料來源帶到應用程式空間。接著,應用程式就會處理記憶體中的資料,同時保有其關聯性運作方式。

站台巡覽

隨著網站成長,或是當您在網站中移動頁面時,很快地您將無法有效管理所有的連結。ASP.NET 網站巡覽包含伺服器控制項與類別,可讓您為使用者提供一致的方式以巡覽網站。您可以將所有網頁的連接存放在中央位置 (一般為 XML 檔案)。您可以加入 SiteMapDataSource 控制項來讀取網站資訊,以便在每個網頁的清單或巡覽功能表中呈現這些連結。接著,您可以使用 TreeViewMenu 之類的巡覽伺服器控制項來顯示網站資訊。

網站導覽提供者在 ASP.NET 網站巡覽中是很重要的部分。它是一項類別,可與網站導覽資料來源一起使用並公開巡覽資訊。例如,預設 ASP.NET 網站導覽提供者會從名為 Web.sitemap 的 XML 檔取得網站導覽資料,並將該資料直接傳遞至 SiteMapPath Web 伺服器控制項。

定義一致的網站外觀

ASP.NET 中的一些功能可協助您建立並維護一致的網站外觀與設計,例如 ASP.NET 佈景主題和 ASP.NET 主版頁面 (Master Page)。您可以在網站開發早期階段使用這些功能為網站提供一致的外觀。

ASP.NET 佈景主題會在網站中定義網頁和控制項的外觀。ASP.NET 佈景主題可以包含面板檔案,這些檔案會定義 ASP.NET Web 伺服器控制項的屬性設定,並同時包含階層式樣式表檔案 (.css 檔案) 和圖形。藉由套用佈景主題,您可讓網站中的網頁具有一致的外觀。在早期開發階段建立網站的佈景主題或佈景主題集時,您可以將這些佈景主題套用至所建立的每個新網頁。如需佈景主題的詳細資訊,請參閱 ASP.NET 佈景主題和面板概觀

ASP.NET 主版頁面讓您建立頁面配置 (主版頁面),以套用至網站中的選取頁面 (內容頁面)。主版頁面可大幅簡化為網站建立一致外觀的工作。您也可以將主版頁面套疊。例如,您可以使用巢狀主版頁面為整個網站建立一個主版配置,並為網站的個別區段建立另一個主版配置。您也可以搭配佈景主題來使用主版頁面。如需主版頁面的詳細資訊,請參閱 ASP.NET 主版頁面概觀巢狀 ASP.NET 主版頁面

加入 AJAX 功能

ASP.NET 中的 AJAX 功能可讓您使用反應靈敏和熟悉的使用者介面 (UI) 項目,快速建立包含豐富使用者經驗的 Web 網頁。在不使用回傳的情況下,它也能讓您重新整理頁面。AJAX 功能包含用戶端指令碼程式庫,融合了跨瀏覽器 ECMAScript (JavaScript) 和動態 HTML (DHTML) 技術,且與 ASP.NET 伺服器架構開發平台整合。您可以使用 AJAX 功能來改善使用者經驗和 Web 應用程式的效率。如需詳細資訊,請參閱 ASP.NET AJAX 概觀

使用狀態管理功能

HTTP 是沒有狀態 (Stateless) 的通訊協定。每項要求會在抵達時立即加以服務,而要求經過處理後,會捨棄所有資料。即使是來自相同用戶端的個別要求,也不會維護其狀態。但是,對大部分的 Web 應用程式來說,維護所有要求的狀態會很有幫助。

ASP.NET 會提供內建 (Intrinsic) 狀態管理功能,讓您存放頁面要求之間的資訊,例如客戶資訊或購物車的內容。您可以儲存及管理應用程式專屬、工作階段專屬、頁面專屬、使用者專屬和開發人員定義的資訊。ASP.NET 具有好幾項可供選取的狀態管理形式,包含使用 Cookie、檢視狀態、工作階段狀態、應用程式狀態和設定檔屬性。此資訊可獨立於網頁上的任何控制項。

在您規劃網站時,應該考慮將會需要用到哪種形式的狀態管理。如需詳細資訊,請參閱 ASP.NET 狀態管理概觀

快取資料以提升效能

通常您可以將時常存取,並且需要大量處理時間才能建立的資料儲存在記憶體中來提升網站效能。例如,如果應用程式使用複雜的邏輯處理大量資料,然後以報表的形式傳回資料,那麼避免在使用者每次提出要求時重新建立報表,會是較有效率的作法。同樣地,如果應用程式包含可處理複雜資料但是不常更新的網頁,讓伺服器在每次要求時重新建立網頁會降低執行效能。

ASP.NET 快取是一般用途的網站快取工具。它能提供簡單的快取介面,以及用以公開到期日及變更相依性服務的更進階介面。為了協助您在這些情況下提升應用程式效能,ASP.NET 提供兩種快取機制。第一種是應用程式快取,可以讓您快取所產生的資料,例如 DataSet 或自訂報表商務物件。第二種是網頁輸出快取,能夠儲存網頁處理的輸出然後重新使用,而不是在使用者再次要求網頁時重新處理網頁。如果網站設計考慮到需快取特定網頁的話,則您可以建立更有效率的網站。

安全性的基礎架構

除了 .NET Framework 的安全性功能外,ASP.NET 還提供驗證和授與使用者存取權,以及執行其他安全性相關工作的安全性基礎結構。您可以使用 IIS 所提供的 Windows 驗證來驗證使用者。或者,您可以使用 ASP.NET 表單驗證和 ASP.NET 成員資格來管理驗證。此外,您也可以使用 Windows 群組管理或透過自訂角色資料庫與 ASP.NET 角色來管理 Web 應用程式的存取資源授權。您可以根據應用程式的需求,輕鬆地移除、加入或取代這些配置。如需詳細資訊,請參閱下列主題:

ASP.NET 一律以特定的 Windows 識別執行,因此您可以使用 Windows 的功能 (如 NTFS 檔案系統存取控制清單 (ACL)、資料庫使用權限等等) 保護應用程式的安全。如需 ASP.NET 執行所在之識別的詳細資訊,請參閱設定 ASP.NET 處理序識別ASP.NET 模擬

其他考量

本節中的主題將涵蓋您在開始編寫網站程式碼之前應該同時考量的事項。請在規劃時將這些主題所涵蓋的資訊納入考量範圍,幫助您節省時間並使您的網站符合今日各項的 Web 標準。

協助工具

協助工具程式設計是設計和開發應用程式的處理序,這些應用程式與電腦的作業系統搭配使用,以適應特定的障礙使用者 (例如,行動障礙或視力障礙)。ASP.NET 可以協助您建立能夠由行動不便人士存取的 Web 應用程式。無障礙 Web 應用程式可讓使用者利用輔助技術 (例如,螢幕助讀員) 使用 Web 網頁。無障礙 Web 應用程式有下列優點:

  • 它們擁有最廣泛的使用者。

  • 它們涉及的設計原則經常會讓所有使用者都受益,而不只是行動不便人士。

  • 它們滿足了許多要求所有 Web 應用程式都無障礙之機構的需求。

了解了網頁可及性方針,以及 ASP.NET 如何協助您滿足這些方針之後,您便可以為行動不便人士建立更易於互動的應用程式。如需協助工具指南的詳細資訊,請參閱ASP.NET 中的網頁可及性支援

在大多數情況下,ASP.NET 控制項會呈現標記以建立符合協助工具標準的網頁,或者公開為使網頁無障礙而設定的屬性。不過,ASP.NET 控制項有時會呈現不符合所有可及性標準的輸出。如需詳細資訊,請參閱 ASP.NET 控制項和網頁可及性

全球化和當地語系化

全球化是指設計和開發適用於多個文化之應用程式的過程。當地語系化是為指定的文化特性 (Culture) 和地區設定 (Locale) 自訂應用程式的過程。如果您要建立可供全世界的人都能閱讀的 Web 網頁,則必須讓閱讀者可以選擇以自己的母語檢視網頁。ASP.NET 可讓您建立根據瀏覽器的慣用語言設定或使用者的明確語言選擇,來取得內容和其他資料的網頁。這項內容和其他資料也稱為資源,而這類資料可以儲存在資源檔或其他資源中。在 ASP.NET Web 網頁中,您可以設定控制項從資源取得其屬性值。在執行階段,資源運算式會由適當資源檔中的資源所取代。如需詳細資訊,請參閱 ASP.NET Web 網頁資源概觀

建置個別頁面並先行編譯

建置頁面或網站屬於開發站台的一部分,並可用來幫助您找出可能會在站台的任何位置中發生的編譯時期錯誤。雖然建置作業確實會編譯頁面,但它不會產生您可部署的組件。

您可以將網站中的所有檔案複製到實際執行伺服器 (Production Server),即可在不進行編譯的情況下部署站台。當使用者要求實際執行伺服器中的頁面時,ASP.NET 將會動態編譯站台,有效地以建置處理序在 Visual Studio 中所執行的相同步驟進行工作 (ASP.NET 會快取產生的輸出,這樣每次發出要求時就不需要重新編譯頁面)。

如果您要將站台編譯到組件及其他可以部署的檔案,則可以選擇發行站台。發行和建置所執行的編譯步驟都相同,但發行會將輸出儲存到您接著可以部署至實際執行伺服器的資料夾和子資料夾。

如需詳細資訊,請參閱Visual Web Developer 中的網站部署

請參閱

概念

ASP.NET 概觀