天天看點

在 ASP.NET 中建立資料通路和業務邏輯層(轉)   

  • .NET Framework 4        

當在 ASP.NET 中處理資料時,可從使用通用軟體模式中受益。其中一種模式是将資料通路代碼與控制資料通路或提供其他業務規則的業務邏輯代碼分開。在此模式中,這兩個層均與表示層分離。表示層由網站使用者有權檢視或更改資料的頁面組成。

ASP.NET 可通過多種方式提供資料通路、業務邏輯和表示形式之間的分離。例如,資料源模型(包括 LinqDataSource 和 ObjectDataSource 等伺服器控件)可将表示層與資料通路代碼和業務邏輯分離。

另一種模式是将資料通路邏輯直接包括在 ASP.NET 頁(表示層)中。例如,可以在 ASP.NET 頁的代碼隐藏頁中編寫 ADO.NET 代碼,或者使用 SqlDataSource 控件。此方法可将資料通路邏輯與表示層緊密耦合在一起。

建議的方法是将資料通路邏輯與表示層分離。此分離層稱為資料通路層。資料通路層可實作為單獨的類庫項目。但是,您也可以使用 Visual Web Developer 中的工具生成資料通路層。

在 ASP.NET 中建立資料通路和業務邏輯層(轉)   
說明:
在 Microsoft Visual Web Developer 速成版中,不能建立類庫項目。但是,您可以先使用 Visual Basic 速成版或 Visual C# 速成版建立單獨的項目,然後再将該類的輸出作為程式集 (DLL) 包括在網站中。

如果網站要顯示或更新資料,則應先建立資料通路層和業務邏輯層,然後再建立使用者界面。

資料驅動的 Web 應用程式通常使用表示資料的類型化資料集或實體類來添加資料通路層。它還包含強制實施自定義業務規則的業務邏輯層。最後,它使用 ASP.NET 頁添加表示層,并通過母版頁和主題建立通用的頁面布局。本演練示範如何建立資料通路層。

資料通路層包含特定于基礎資料源的所有代碼。其中包括建立資料庫連接配接的代碼,以及發出 Select、Insert、Update 和 Delete 指令的代碼。資料通路層通常包含用于實作通路基礎資料庫資料的方法的類。表示層不直接處理資料,而是為所有資料請求調用資料通路層中的類和方法。

本演練涉及以下任務:

  • 建立 SQL 資料庫和添加資料。
  • 添加充當資料通路層的“Linq to SQL”檔案。
  • 建立用作表示層的頁面。
  • 向頁面中添加在表示層和資料通路層之間通信的 LinqDataSource 控件。

先決條件  

若要完成此演練,需要以下元件:

  • Microsoft Visual Studio 2008 或 Microsoft Visual Web Developer 速成版。有關下載下傳資訊,請參見 Visual Studio Developer Center(Visual Studio 開發中心)網站。
  • .NET Framework 3.5 版。
  • SQL Server Express Edition。如果已安裝 Microsoft SQL Server,則也可以直接使用該軟體。

建立網站  

第一步是建立網站。

建立新的檔案系統網站

  1. 打開 Visual Studio 2008 或 Visual Web Developer 速成版。
  2. 在“檔案”菜單中單擊“建立網站”。

    顯示“建立網站”對話框。

  3. 在“Visual Studio 已安裝的模闆”下選擇“ASP.NET 網站”。
  4. 在“位置”框中單擊“檔案系統”,然後鍵入要在其中儲存網站檔案的檔案夾的名稱。

    例如,鍵入“C:\BasicWebSite”。

  5. 在“語言”清單中,單擊“Visual Basic”或“Visual C#”,然後單擊“确定”。
    在 ASP.NET 中建立資料通路和業務邏輯層(轉)   
    說明:
    您選擇的程式設計語言将成為網站的預設程式設計語言。但是,也可以為每個頁單獨設定程式設計語言。
    Visual Web Developer 将建立該檔案夾以及名為 Default.aspx 的新頁。

連接配接至資料庫  

下一步是使用“伺服器資料總管”視窗連接配接至 Visual Web Developer 中的資料庫(在 Visual Web Developer 速成版中,該視窗名為“資料庫資料總管”)。通過在“伺服器資料總管”中建立資料庫連接配接,可以添加表、存儲過程、視圖及其他資料庫元素,所有這一切都在 Visual Studio 中進行。另外,您還可以檢視表資料或建立查詢,此操作可手動完成,也可以使用查詢生成器視窗完成。

在本演練後面将為資料通路層生成類型化資料集,屆時必須在 Visual Web Developer 中建立指向資料庫的連接配接。您可以手動提供連接配接資訊。但是,Visual Web Developer 可以簡化此過程,因為它會自動填充已在“伺服器資料總管”中注冊的資料庫清單。

在本演練中,将建立一個新資料庫以跟蹤各個任務項。

建立新的 SQL Server Express 資料庫  

在本節中,将建立一個新的 SQL Server Express 資料庫,以存儲待辦事項清單中的任務資訊。

向網站中添加資料庫

  1. 在“解決方案資料總管”中,右擊網站的名稱,然後單擊“添加新項”。

    将顯示“添加新項”視窗。

  2. 選擇“SQL 資料庫”,并将資料庫命名為“Tasks.mdf”。
  3. 單擊“确定”。
  4. 當 Visual Web Developer 詢問是否應将該資料庫存儲在 App_Data 檔案夾中時,請單擊“是”。

為 Tasks 資料庫建立架構和示例資料

您可以使用資料庫設計和編輯功能為存儲任務項的表建立架構。

為 Tasks 資料庫定義架構并添加資料

  1. 在“解決方案資料總管”中打開“App_Data”檔案夾,然後輕按兩下 Tasks.mdf。

    随即将在“伺服器資料總管”中打開“Tasks”資料庫節點。

  2. 右擊“表”檔案夾,然後單擊“添加新表”。

    将顯示表定義視窗。

  3. 在表中建立以下列:
    列名 資料類型 屬性
    taskId int 不為 null
    name nvarchar(50) 不為 null
    dateCreated datetime 不為 null
    isComplete bit 不為 null
  4. 選擇 taskId 列所在的行,右擊該行,然後單擊“設定主鍵”。
  5. 選擇 taskid 行,然後在“列屬性”視窗中找到“辨別規範”[Identify Specification]部分。
  6. 打開該部分,然後将“(是辨別)”設定為“是”。
  7. 儲存該表,将其命名為“TasksList”,然後關閉表定義視窗。
  8. 在“伺服器資料總管”中右擊該表,然後單擊“顯示表資料”。

    将顯示一個編輯視窗,您可以在其中檢視、添加和編輯資料。

  9. 向該表中添加四到五個記錄。

    您無需指定 taskId 列的值,因為它是辨別列,是以會被自動指派。

  10. 關閉編輯視窗。

建立資料通路層和業務邏輯層  

若要為剛才建立的資料庫建立資料通路層和業務邏輯層,可以有多種方式。在本演練中,将建立一個表示資料庫實體的類。随後,您可以将自己的業務邏輯添加到這些生成的類中(在本演練中,将不向類中添加業務邏輯)。

在本演練中,将使用語言內建查詢 (LINQ) 處理資料。LINQ 将面向對象的程式設計原則應用于關系資料。LINQ 提供了一種用于在不同類型的資料源中查詢和更新資料的統一程式設計模型,并将資料功能直接擴充到 C# 和 Visual Basic 語言中。有關 LINQ 的更多資訊,請參見語言內建查詢 (LINQ)。

您将使用 LINQ to SQL 類作為資料通路層。此外,還要使用 Visual Web Developer 中的“對象關系設計器”視窗生成表示資料的實體類。

将 Tasks 資料庫映射到 SQL 資料上下文類

若要建立資料通路層,首先要向項目中添加類型化資料集。

建立 Tasks 表的類

  1. 如果網站中還沒有 App_Code 檔案夾,請在“解決方案資料總管”中右擊相應的項目,再單擊“添加 ASP.NET 檔案夾”,然後單擊“App_Code”。
  2. 右擊 App_Code 檔案夾,然後單擊“添加新項”。

    顯示“添加新項”對話框。

  3. 在“Visual Studio 已安裝的模闆”下,選擇“LINQ to SQL 類”模闆,然後将該檔案重命名為“Tasks.dbml”。
  4. 單擊“添加”。

    此時将顯示“對象關系設計器”視窗。

  5. 在“伺服器資料總管”中,将 TasksList 表拖到“對象關系設計器”視窗中。
  6. 儲存 Tasks.dbml 檔案。

    Visual Web Developer 将在“App_Code”檔案夾中 Tasks.dbml 的下方建立 Tasks.dbml.layout 檔案。此外,它還會建立 Tasks.designer.cs 或 Tasks.designer.vb,具體取決于您所使用的程式設計語言。

  7. 在“解決方案資料總管”中,打開 Tasks.designer.cs 或 Tasks.designer.vb 檔案。

    請注意,該代碼包含名為 TasksDataContext 和 TasksList 的類。TasksDataContext 類表示資料庫,TasksList 類則表示資料庫表。TasksDataContext 類的無參數構造函數将從網站的配置檔案 (Web.config) 中讀取資料庫連接配接字元串。

  8. 打開 Web.config 檔案。

    請注意,Tasks 資料庫的連接配接字元串已添加到 connectionStrings 元素中。

  9. 關閉類檔案和 Web.config 檔案。

建立和配置 LinqDataSource 控件  

現在您已擁有一個資料庫表以及若幹表示資料庫實體的類,下面便可以使用 ASP.NET 網頁上的 LinqDataSource 來通路資料庫。LinqDataSource 控件通過 ASP.NET 資料源控件結構向 Web 開發人員提供 LINQ 功能。

LinqDataSource 控件用于建立在資料庫中選擇、插入、更新和删除對象的代碼。業務邏輯可以調用這些類來執行資料庫函數并應用業務邏輯規則。

建立和配置 LinqDataSource 控件

  1. 打開或切換到 Default.aspx 頁。
  2. 切換到“設計”視圖。
  3. 從“工具箱”的“資料”頁籤中,将 LinqDataSource 控件拖到網頁上。

    您可以将 ID 屬性保留為 LinqDataSource1。

  4. 在“LinqDataSource 任務”[LinqDataSource Tasks]智能标記面闆中,單擊“配置資料源”。
  5. 在上下文對象清單中,選擇“TasksDataContext”,然後單擊“下一步”。
  6. 在清單中,選擇“TasksList(表<TasksList>)”[TasksLists(Table<TasksList>)],然後單擊“完成”。
  7. 在“LinqDataSource 任務”智能标記面闆中,選中“啟用删除”、“啟用插入”和“啟用更新”複選框。

    請注意,您不必為選擇資料指定任何資料庫指令。

  8. 運作該頁。

    該頁将顯示您在本演練前面輸入的資料。

後續步驟  

本演練闡釋了如何使用“LINQ to SQL 類”模闆和 LinqDataSource 伺服器控件建立應用程式的資料通路層和業務邏輯層。您為網站頁通路資料建立了一種既靈活、又不直接綁定到網站表示層的方法。

主題演練:建立支援 AJAX 的資料應用程式使用 LinqDataSource 控件建立支援 AJAX 的 Web 應用程式,以用于顯示和更新 Tasks 資料庫中的資訊。

請參見  

任務

演練:建立支援 AJAX 的資料應用程式

概念

ASP.NET 演練精選

轉載于:https://www.cnblogs.com/yun217/p/5071117.html