備註
類別 DataSet 和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的數據。 這些技術特別適用於可讓使用者修改數據並將變更保存回資料庫的應用程式。 雖然數據集是經過證實的成功技術,但新 .NET 應用程式的建議方法是使用 Entity Framework Core。 Entity Framework 提供更自然的方式,以表格式數據作為物件模型使用,而且具有更簡單的程序設計介面。
多層式數據應用程式是指數據應用程式被分為多個層級。 也稱為「分散式應用程式」和「多層應用程式」,多層式應用程式會將處理區隔成在用戶端與伺服器之間分散的離散層。 當您開發可存取資料的應用程式時,應該在組成應用程式的各層之間清楚區分。
典型的多層式應用程式包含表示層、仲介層和數據層。 分隔多層式應用程式中各層的最簡單方式,是針對您想要包含在應用程式中的每一層建立離散專案。 例如,表示層可能是 Windows Forms 應用程式,而數據存取邏輯可能是位於仲介層中的類別庫。 此外,表示層可能透過類似 Web 服務的系統,與中介層中的數據存取邏輯進行通訊。 將應用程式元件分成個別層會增加應用程式的可維護性和延展性。 它透過更輕鬆地引進可應用於單一層級的新技術,而無需重新設計整體解決方案。 此外,多層式應用程式通常會將敏感資訊儲存在中間層,以保持與表示層的隔離。
Visual Studio 包含數個功能,可協助開發人員建立多層式應用程式:
數據集提供 DataSet Project 屬性,可讓您將數據集(數據實體層)和 TableAdapters(數據存取層)分隔成離散專案。
Visual Studio 中的 LINQ to SQL 工具提供將 DataContext 和數據類別產生至個別命名空間的設定。 這可讓資料存取和資料實體層在邏輯上分隔。
LINQ to SQL 提供 Attach 方法,可讓您將來自應用程式中不同層的 DataContext 整合在一起。 如需詳細資訊,請參閱 使用 LINQ to SQL 的多層式和遠端應用程式。
展示層
表示層是使用者與應用程式互動的階層。 它通常也會包含其他應用程式邏輯。 一般呈現層元件包括下列項目:
資料系結元件,例如 BindingSource 和 BindingNavigator。
數據的物件表示,例如用於表示層的 LINQ to SQL 實體類別。
表示層通常會使用服務參考來存取仲介層(例如 Visual Studio 應用程式中的 Windows Communication Foundation 服務和 WCF 數據服務)。 表示層不會直接存取數據層。 表示層會透過仲介層中的數據存取元件,與數據層通訊。
中介層
仲介層是表示層和數據層用來彼此通訊的層。 典型的中介層元件包括下列各項:
商業規則,例如商務規則和數據驗證。
資料存取元件和邏輯,例如:
數據的物件表示,例如 LINQ to SQL 實體類別。
常見的應用程式服務,例如驗證、授權和個人化。
下圖顯示 Visual Studio 中可用的功能和技術,以及它們可能適合用於多層式應用程式的中間層。
中介層
中間層通常透過資料連接來連接到資料層。 此數據連線通常會儲存在數據存取元件中。
數據層
資料層 基本上是儲存應用程式資料的伺服器 (例如,執行 SQL Server 的伺服器)。
以下插圖顯示 Visual Studio 中可用的功能和技術,以及它們如何整合到 n 層應用程式的數據層。
數據層
無法直接從表示層中的用戶端存取數據層。 相反地,仲介層中的數據存取元件用於進行展示層和數據層之間的通訊。
多層式開發的說明
下列主題提供使用多層式應用程式的相關信息: