多層式架構資料應用程式概觀
N-Tier 資料應用程式是一種分隔成多「層」(Tier) 的資料應用程式。 N-Tier 應用程式也稱為「分散式應用程式」和「多層應用程式」,會將處理分隔成在用戶端和伺服器之間散發的不同層。 當您開發存取資料的應用程式時,應該將組成應用程式的各層劃分清楚。
典型的 N-Tier 應用程式包含展示層、中介層 (Middle Tier) 和資料層。 區分 N-Tier 應用程式中各層最簡單的方式,就是對要包含在應用程式中的每一層建立不同的專案。 例如,展示層可能是 Windows Form 應用程式,而資料存取邏輯則可能是位於中介層的類別庫。 此外,展示層可以透過服務 (例如,服務) 與中介層內的資料存取邏輯進行通訊。 將應用程式元件區分為不同層,可以提高應用程式的可維護性與延展性 (Scalability)。 不需重新設計整個方案,就能使套用至單一層的新技術變得更容易採用。 此外,N-Tier 應用程式通常會將敏感性資訊儲存在中介層,中介層會與展示層做好完善的隔離。
Visual Studio 內含多項功能,可幫助開發人員建立 N-Tier 應用程式:
DataSet 設計工具 提供 [DataSet 專案] 屬性,可讓您將資料集 (資料實體層) 和 TableAdapter (資料存取層) 區分至不同的專案。
物件關聯式設計工具 (O/R 設計工具) 可提供設定,將 DataContext 和資料類別產生至不同的命名空間。 這麼做可以對資料存取和資料實體層進行邏輯劃分。
LINQ to SQL 可提供 Attach 方法,讓您將應用程式中各層的 DataContext 集合起來。 如需詳細資訊,請參閱 使用 LINQ to SQL 的 N-Tier 和遠端應用程式。
[設定資料同步處理] 對話方塊 (可幫助您設定遠端資料庫和 [本機資料庫快取] 之間的同步處理) 可提供進階組態選項。 這個選項可讓您將伺服器與用戶端設定成不同的專案。 如需詳細資訊,請參閱逐步解說:將本機資料庫快取加入至 N-Tier 應用程式。
如需觀看相關示範影片,請參閱影片 HOW TO:建立 N-Tier 資料應用程式 (英文)。
展示層
「展示層」(Presentation Tier) 是使用者與應用程式進行互動的那一層。 其中通常也包含其他應用程式邏輯。 典型的展示層元件包含下列各項:
資料繫結元件,例如 BindingSource 和 BindingNavigator。
資料的物件表示,例如在展示層中使用的 LINQ to SQL 實體類別。
本機資料庫,例如可以使用偶爾連接的應用程式 (本機資料庫快取)中的 Microsoft Synchronization Services for ADO.NET,而與資料層中的伺服器進行同步處理的 [本機資料庫快取]。
下圖顯示 Visual Studio 中可用的功能和技術,以及可能適用於 N-Tier 應用程式之展示層的地方。
展示層
展示層通常會使用服務參考 (例如,Visual Studio 中的 Windows Communication Foundation 服務和 WCF 資料服務應用程式) 來存取中介層。 展示層不會直接存取資料層。 展示層會經由中介層中的資料存取元件與資料層進行通訊。
中介層
「中介層」(Middle Tier) 是展示層和資料層用來彼此通訊的那一層 (Layer)。 典型的中介層元件包含下列各項:
商務邏輯,例如商務規則 (Business Rule) 和資料驗證。
資料存取元件和邏輯,例如下列各項:
資料的物件表示,例如 LINQ to SQL 實體類別。
通用應用程式服務,例如驗證、授權和個人化。
下圖顯示 Visual Studio 中可用的功能和技術,以及可能適用於 N-Tier 應用程式之中介層的地方。
中介層
中介層通常會使用資料連接,連接至資料層。 這個資料連接通常會儲存在資料存取元件中。
資料層
「資料層」(Data Tier) 基本上是儲存應用程式資料的伺服器 (例如,執行 SQL Server 的伺服器)。
下圖顯示 Visual Studio 中可用的功能和技術,以及可能適用於 N-Tier 應用程式之資料層的地方。
資料層
您無法從展示層中的用戶端直接存取資料層。 相反地,中介層內的資料存取元件可用於進行展示層和資料層之間的通訊。
N-Tier 程式開發說明
下列主題提供使用 N-Tier 應用程式的相關資訊:
HOW TO:將資料集和 TableAdapters 分成不同的專案
使用 LINQ to SQL 的 N-Tier 和遠端應用程式