在新的Net Framework 平台上Microsoft發布了LINQ(C# VBNet )集成語言查詢(LanguageIntegrated Query)也就是通過編程語言來查詢數據
*數據庫 (LINQ to SQL)
*DataSet 數據集(LINQ to Dataset)
*XML文檔 (LINQ to XML)
*實體對象 (LINK to Entities)
本文將演示如何在ASPNET 平台上使用LINQ to SQL構建多層的Web應用程序在當前的編程領域中創建NTier應用程序成為一般的要求且NET Framework 提供了靈活的支持一般而言NTier應用程序有如下幾個層 表示層 業務邏輯層 數據訪問層 數據庫層每一層均完成特定的任務本篇文章中介紹的架構和經典的NTier相似不過數據庫層替換新的DataLinq 層使用LINQ to SQL 完成數據操作
圖基於LINQ to SQL的NTier架構
架構思考
如果你有大型ASPNET項目的經歷你可能會注意到更多的時間花在寫組件代碼而不是Web頁面代碼有時組件的設計和管理成為一個費時的過程你可能正遇到架構方面的問題尋找最好的方式來設計Web應用程序
我寫這篇文章的想法是介紹一個好的設計模式並不是得到一個結論或者聲明這是一個最好的NTier應用程序的設計模式因為對於架構設計每一個開發人員總是有自己的觀點所以任何合適的架構闡述都是有爭議的然而如圖所示分離不同的代碼到不同的層總是一個好的實踐按這樣組織代碼可以更方便地維護和擴展應用程序
在圖中你可以看到業務組件分割到不同的層組織代碼最好的方法是為每一個業務組件創建不同的類庫(Class Library)Visual Studio允許在同一個Solution中創建多個項目因此我們可以在同一個Solution中加入ASPNET 應用程序和類庫Class Library項目當你在編譯Solution時每一個項目都會生成在bin目錄下生成一個assembly程序集文件方法我們可以手動復制DLL文件到應用程序的bin目錄方法增加項目引用當你編譯Solution時第二種方法可以自動更新應用程序bin目錄的程序集文件通過這種方式組織代碼可以更容易修改/更新項目的特定代碼也容易從不同的Server上遷移代碼我不想深入探討架構這裡我通過截屏來解釋如何實現
假定你已經具備經典層架構應用程序的設計經驗我告訴你如何建立層與層之間的引用關系接著你可以自己建立項目引用圖上的箭頭符號說明了不同層之間的交互說明如下
() 數據訪問層引用Data Linq 層( 開源小組注 原文說還需要引用業務外觀(Business Facade)層原文有誤)
() 業務外觀(Business Facade)層引用Data Linq 層和數據訪問層因為業務外觀層使用Data Linq層的業務實體來創建表實體(後面進行詳細討論)同時調用數據訪問層的方法
() 表現層引用Data Linq層和業務外觀層
From:http://tw.wingwit.com/Article/program/net/201311/12345.html