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