CIO
|
PCDIY!
|
旗標圖書
|
旗景數位影像
|
讀者服務
首 頁
即時新聞
業界動態
最新活動
企業採購
精選文章
線上教學
品牌活動
程式碼下載
雲端運算智庫
最近新增的
精選文章
AP內建AI引擎 Mist Cloud平台分析能力強 Juniper Mist AI領先全球 改善WiFi穩定、效能首選
解決IT供應鏈攻擊
內部威脅的七個警訊
遠百以專案辦公室推動數位體驗
多廠牌與多重電信業者網路架構的挑戰與機會
德明科大啟用電貿暨AI實習基地 ViewSonic ViewBoard 智慧互動電子白板 扮要角
淺談計算誤差
秀傳醫療體系統 以Lenovo HyperConverged HX 超融合架構扎穩智慧醫療發展基礎
模組化設計 偵測率達99.99% 全面防杜惡意郵件入侵 首選Cellopoint Email UTM
滿足網路管理與檔案安全傳輸需求,Ipswitch的MOVEit及WhatsUp Gold一次完整提供
來自學界的資料分析利器 - Weka 與 R
北醫建置肺癌資料庫,透過深度標註訓練AI,協助醫師早期發現癌症
北榮AI門診上路!人工智慧判讀腦瘤,有效縮短醫師確診時間
台灣智慧機器人玩具聯盟攜手英閱音躍研創 推廣T. Robot程式教育,協助國中小學扎根培養運算思維
一場與時間賽跑的戰役 ,人工智慧加速心血管疾病診斷
最多人點閱的
精選文章
免費IT建置--Linux系統操作與管理
免費IT建置--網頁伺服器的完美組合LAMP(下)
初探Hadoop開放原始碼平台環境
Linux下的防火牆(基礎篇)
免費IT建置--檔案共享與檔案伺服器
Linux下的防火牆(進階篇)
N.Y.BAGELS CAFE善用SAP Business One
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 影片播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 線上查詢匯率
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 擲骰子遊戲
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 音樂播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 來電黑名單
免費IT建置--網頁伺服器的完美組合LAMP(上)
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 繪圖板範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ Matrix應用範例
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
新一代 .NET Framework 4.0的4大主軸(4)
把Dynamic Data整合到Web Forms
文/董大偉
Dynamic Data技術從.NET 3.5時代出現之後,就受到了不少開發人員的關注,其中DataAnnotations機制及相關的概念,也擴展應用到了MVC和Silverlight應用程式開發中,讓前端使用者介面與後端資料庫徹底隔離。最新的ASP.NET 4.0,Dynamic Data技術甚至可直接整合到傳統Web Forms中,對於需要設計大型資料庫應用系統的開發人員來說,將會有相當大的助益。
在ASP.NET 4當中的Dynamic Data技術,可以建立所謂的Data-Driven Applications,其中的DataAnnotations Attribute、Control Template、Field Template等機制,讓開發人員可以透過模板建立可在不同資料庫(表)正常運行的Web應用程式,不需再像過去ASP.NET Web Forms的資料庫存取機制,還必需再重新截取資料結構或重新設計Template Field。
舉個較實務的例子,專案中常會需要針對不同資料表建立CRUD(Create、Read、Update、Delete)等功能,如果能夠用一個相同的模板,在面對不同資料表時可以完全不需要修改程式碼,即可正常運作,豈不是相當便利!
過去ASP.NET透過FormView、DetalsView等控制項開發出來的網頁恐怕不可能做到,而Dynamic Data Web Site則是針對這需求而來,這就是Dynamic Data技術將提供給開發人員的好處。
此外,也提供支援新的Display Attribute,以及針對ADO.NET Entity Framework中的Many-to-Many Relationships的支援,甚至相容於既有的程式中,均讓Dynamic Data技術可以更廣泛的應用在已開發的專案當中。
讓現有網站支援Dynamic Data機制
以往要建立一個所謂的ASP.NET Dynamic Data應用程式,等於要把過去建立好的網站砍掉重練,對於開發人員來說恐怕相當為難,或許也因為如此,Dynamic Data Web Site這個功能一直都無法得到開發人員的重視與利用。
有鑑於此,在這次新版的ASP.NET 4.0當中,我們可以針對傳統的Web Forms型態網站,直接加入Dynamic Data支援,讓DetailsView、GridView之類的控制項可以直接享有DataAnnotations所帶來的種種好處。
舉例來說,我們可以讓過去相當熟悉的DetailsView直接加入Dynamic Data支援,透過DetailsView控制項新支援的EnableDynamicData方法,即可讓使用者介面的呈現直接參考Customers物件的MetaData。
請注意,Customers物件是透過LinqToSql建立Data Model中的資料表,也就是Entity。開發人員可以在Visual Studio 2010當中,輕易的透過Designer來設計這些Entity。(圖1)
圖1:透過LinqToSql建立Data Model的資料表。
完成之後,Visual Studio 2010會自動產生需要的指令碼。但這樣建立好的Entity並沒有經過DataAnnotations的修飾,所以欄位名稱以及驗證方式都尚未建立。因此,要為該Entity建立相對應的 Metadata,用來描述Customers中的欄位的呈現方式以及驗證機制。
建置並執行結果如圖2,呈現出的DetailsView就是透過CustomerMetadata所描述的結果,不僅欄位的標題就是在[Display(Name = "…", Order = …)]修飾字中所撰寫,欄位也依照Order參數的順序排列。而且你會發現ReadOnly和Required修飾字都各自發揮了效果,如果使用者沒有輸入客戶名稱,還會出現我們在CustomerMetadata中所描述的錯誤訊息!
圖2:此DetailsView即透過CustomerMetadata所描述的結果。
上述的動作,把資料在使用者介面層的呈現與驗證方式,都撰寫在CustomerMetadata中(Model層),用意在於:
1.使用者介面層(上例中是DetailsView),與繫結的資料(Customer資料表)完全無關,將兩者之間的相依性降到最低。程式碼給DetailsView什麼樣的DataSource,DetailsView就會忠實且自動地呈現出相對應的欄位。
2.DetailsView在呈現(或處理)資料時,將會參考CustomerMetadata中所描述的DataAnnotations修飾字,由修飾字決定資料在DetailsView中的呈現方式和驗證方式。
3.由於DataAnnotations撰寫在CustomerMetadata中,Entity若有微幅修改(或透過Designer重新截取或設計欄位),也不會需要完全重新建立Metadata。 千萬別小看這樣的功能,如此一來,整個DetailsView的繫結對象完全依照程式碼中的DataSource來決定,就可以用同一個.aspx頁面維護所有的資料表了,再也不需要針對每一個資料表設計一組DetailsView及一個.aspx頁面。
這整個架構就是Dynamic Data的核心精神,此概念也同時影響了MVC以及Silverlight應用程式,如今的Silverlight應用程式中也開始廣泛使用DataAnnotations技術了。
ASP.NET 4.0中的Dynamic Data應用程式
整個Dynamic Data應用程式的重點在使用者介面層與Data Model脫鉤,讓相依性降低到接近零,如此一來,就可以用同一套模板維護各種不同的實體(Entity)對象,也就是說,寫一套模板就能處理各種不同資料表。
當你在Visual Studio 2010當中建立Dynamic Data應用程式之後,會看到專案結構如圖3。其實整個重點在Templates,在這幾個資料夾底下,已經包含了各式各樣的預設模板,透過這些模板已經可以應付絕大部分的需求。因此當你建立好DynamicData專案,並設置了DataModel之後,不須撰寫任何一行程式碼,即可出現資料表的編輯畫面。
圖3:Dynamic Data應用程式專案結構。
如圖4,每一個各種不同形式的欄位,是依照資料型別自動產生的,欄位的模塊就是定義在FieldTemplates裡面的每一組.ascx檔案。當然輸入欄位前的標題以及驗證方式,都可以透過我們撰寫在Metadata裡面的DataAnnotations修飾字來定義。
圖4:自動產生不同形式的欄位。
此外,4.0版當中還針對Field Templates增加了URLs與E-mail Addresses模塊,一樣只需要透過修飾字來設定即可使用。
結語
進入到ASP.NET 4.0時代,Dynamic Data技術增加如DataAnnotations機制,確實讓開發人員對於建構大型資料庫Web應用程式有了更好的選擇。凡此種種,足以發現微軟在Dynamic Data技術上所注入的投資,同時也是開發人員值得關注的部分。
回首頁...
關於RUN!PC
|
廣告刊登
|
聯絡我們
|
讀者服務
|
雜誌訂閱
|
出刊&補寄時間
-- Copyright© FLAG INFORMATION CO., LTD. 旗訊科技(股)公司. All rights reserved. 本站圖文著作權所有 未經授權 不得任意轉載使用 --
-- 請使用1024*768螢幕解析度,IE 7.0或firefox 3.0以上瀏覽器,以達到最佳閱讀效果--