User:小朱/sandbox1

ASP.NET Dynamic Data Framework
[[File:SPNETlogo.png -->|frameless]]
開發者Microsoft
编程语言.NET 程式語言,例如C#VB.NET
类型Web應用程式
许可协议專有軟體
网站www.asp.net

ASP.NET Dynamic Data FrameworkASP.NET 3.5中新添加的一個快速應用程式開發框架,它可以讓開發人員快速的開發出以資料驅動式 (Data Driven) 的應用程式,並且擁有供開發人員彈性客製化的能力,它可以利用自動推測開發人員設定的資料模型的能力,自動產生必要的使用者介面,簡化開發人員在發展資料驅動式應用程式時的工作量。

原理

ASP.NET Dynamic Data Framework 分為資料模型、使用者介面以及ASP.NET Routing技術三個部份,ASP.NET Routing 技術會將 URL 與資料表定義整合,並決定在現階段要顯示的網頁類型為何;而資料模型 (data model) 可以是LINQ to SQL或是ADO.NET Entity Framework這樣的資料模型來源;使用者介面則是由 Dyanmic Data Framework 預先定義的數種範本,Dynamic Data Framework 會配合 URL 所指向的網頁類型來決定要輸出何種網頁。

Dynamic Data Framework 在處理資料模型與顯示網頁時,會使用推測 (infer) 的機制來決定部份資料內容,像是資料表中若有外部參考鍵(Foreign Key)時,Dynamic Data Framework 會產生一個可供篩選的下拉式清單方塊,並且在資料方格(GridView)中針對對應的欄位顯示超連結以指向其資料表的資料列以查詢對應的資料,其推測規則是:以外部參考鍵所在的資料表中,可以找到的第一個文字欄位來作為顯示的資料(值則是其對應代碼)。

當 ASP.NET Routing 發現 URL 規則是指向 Dynamic Data Framework 的網站時,會將控制權交給存在於 System.Web.DynamicData 命名空間中的DynamicDataHandler處理器中,這個處理器會產生對應的網頁範本路徑,並將它轉交給 UrlRoutingHandler 執行接下來的 ASP.NET 繪製動作。

Dyanmic Data Framework 在各個範本頁面中的控制項均由DynamicDataManager來管理,資料來源在內部會使用LinqDataSource,因此實際的表格或資料集合必須要使用 LINQ 相容的資料來源才可以。LinqDataSource 會自動處理資料的存取,包含擷取與寫入等動作。

技術

ASP.NET Dynamic Data Framework 使用了Scaffolding(自動配置產生)、Templating(範本化)以及中介資料式客制化 (Customization by metadata) 等技術以實現在資料驅動式應用程式的快速開發能力。

自動配置產生

Scaffolding 技術是在 Dynamic Data Framework 中使用的預設範本能力,它利用 ASP.NET 中許多資料繫結控制項 (data bound control) 提供的自動欄位產生能力,以及偵測外部索引鍵產生控制項的能力來生成必要的控制項,開發人員可以在不寫任何一行程式碼的情況下產生足夠的控制項。

使用 Scaffolding 技術所需的頁面範本 (page templates) 都存在網站根目錄中的 DynamicData\PageTemplates 目錄中,共有下列幾個範本:

  • Details.asp:使用 DetailView 控制項,顯示該資料列的所有資料。
  • Insert.aspx:使用 DetailView 控制項的新增模式,讓使用者可新增資料。
  • Edit.aspx:使用 DetailView 控制項的編輯模式,讓使用者可修改資料。
  • List.aspx:使用 GridView 控制項,列出資料表中的所有資料,若資料量大時會啟用分頁。
  • ListDetails.aspx:與 List.aspx 相同,但它在使用者選擇一筆資料時,在 GridView 的下方顯示出 DetailView 以顯示詳細資料,或是直接插入新資料。

範本化

範本化技術

中介資料式客制化功能

參考資料


外部連結