成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET中的DataSourceControl基類

開發 后端
本文介紹ASP.NET中的DataSourceControl基類,討論的是如何合理的利用DataSourceControl,來簡化我們在頁面的一些數據操作,代替一部分的參數處理工作,并最終取代頁面的后臺代碼文件。

ASP.NET中的DataSourceControl基類

近一段時間以來,我發現博客又掀起了新的一輪討論熱潮,特別是針對WebForm和MVC的討論。這樣的討論可以促進大家的進步,同時也可以讓每個人對每種技術的了解都更加深入。不同的技術都有自己的***實踐,比如WebForm和MVC。如果我們大家在平常的開發實踐中都能遵從每一種技術基本使用原則,而不是濫用,那么我就不信不會得到***效果。

這里,我要討論的是如何合理的利用DataSourceControl,來簡化我們在頁面的一些數據操作,代替一部分的參數處理工作,并最終取代頁面的后臺代碼文件。這個思路,源于在ASP.NET Blogs的一篇文章(我目前已經找不到該文章的鏈接的,大概意思就是講如果利用DataSourceControl來封裝一些復雜的數據處理)和NBearDataSource的基礎上提出來的,目前已經應用了一個網站項目的開發,并且自認為這是一種值推薦的WebForm開發方式。

在ASP.NET 2.0中,提出一種新的數據綁定方式,都就是使用DataSourceControl控件來查詢數據,而數據控件本身只要指定DataSourceID即可以與DataSourceControl關聯,而DataSourceControl本身會調用會根據不同的實現的自動進行參數的指定和查詢的工作。在ASP.NET 2.0,內置提供了ObjectDataSource,SqlDataSource和AccessDataSource。可以說,我們經常使用的都會是 ObjectDataSource,但是由于功能限制的原因,很多情況下都還比較復雜。這時如果僅限于使用系統提供的DataSourceControl,那它的功能基本就廢了。

我對DataSouceControl的實踐是將不同模塊(或數據查詢)統統封裝成一個一個的DataSourceControl。DataSourceControl基類可以是ObjectDataSource,也可以是直接從System.UI.DataSourceControl繼承而來,在抽象方法的基礎進行實現。但是建議還是要一個處理公有邏輯的DataSourceControl基類,比如如果你使用NBear解決方案,那么你可以從NBearDataSource繼承而來;或者如果你使用LINQ,則可以創建一個LINQDataSource。以NBearDataSource為例來解析這樣做的好處:

1)在NBearDataSource中,對數據的查詢,我們只要指定實體類型,然后根據條件參數生成WhereClip,然后調用NBearDataSource.Filter方法,即可完成一個簡單實體的查詢。不需要調用Gateway查詢接口。

2)在NBearDataSource中,在數據提交時(新增和修改)轉入的數據賦值到對應的實體對象中。比如如果你使用FormView與DataSourceControl結合使用進行新增修改數據,那么FormView里提交的字段,你就不需要一個一個的去從輸入控件中去獲取,使用Bind雙向綁定,在DataSourceControl就可以得到所有輸入字段值。而NBearDataSource更是會把所有提交的字段,都給我們賦值到一個指定的實體對象中,直接就可以保存到數據庫了

3)每個DataSourceControl,根據自己的功能不同,可以靈活進行修改的控制。并作為頁面,與邏輯服務的橋梁。

在這樣的實踐中,DataSourceControl是整個數據展示的核心,也是一個橋梁。可能相當于MVC中的C吧。但是這在網站型的項目當中應用有以下一些優勢:

1)它可以與任何的數據綁定控件緊密的配合,在最合適時間進行數據的查詢和綁定工作,不需要用戶用工干預。防止了很多情況下重得綁定的可能。

2)使用DataSourceControl,可以讓后臺很多為了數據綁定而寫的代碼,包括分頁代碼,統統退休。

3)使用DataSourceControl,可以方便的讓某一部分數據在不同的頁面進行復用,而不用提供復雜的查詢條件和所需的查詢接口調用。

4)DataSourceControl可以封裝查詢參數的傳遞。比如你的查詢參數是從URL而來,那么你完全就可以把參數的處理交給DataSourceControl了。

5)DataSourceControl在數據提交時字段的自動映射方面非常的有優勢,。

6)DataSourceControl非常靈活,如果我們的頁面外觀上不需要變動,只是在數據源需要進行一些修改,那么這時只需要修改DataSourceControl即可。

這樣做以后,項目中可能會有很多DataSourceControl,但是同時我們可以減少的是頁面后臺代碼,讓偶爾的一些服務器代碼寫在aspx文件中,讓頁面更易于維護,不用編譯就可以生效。同時如果你把DataSourceControl放在一個獨立的Library中,那它的復用就更加的容易了。

同樣的,這樣模式也不是到處都能用的。只適用于WebForm的數據綁定控件。(對于數據綁定控件的性能我就不再多說了。老趙已經解釋了非常清楚了,重復一點數據綁定控件生成HTML的性能完全沒有問題,特別是它的組件化的思想非常的優秀。)

***,給出一種最為簡單的復用。比如你的項目中有很多的枚舉類型,在頁面上你要顯示這些枚舉可能會需要一些代碼。這時候我們可以寫一個 EnumDataSource,只要在頁面上給EnumDataSource指定一個枚舉的類型,這時由EnumDataSource去讀取枚舉相關的名稱,值和中文描述。對于所以有的枚舉都使用EnumDataSource來綁定,不管是DropDownList還是CheckBoxList,那么你是不是覺得的非常的簡單呢?以上介紹ASP.NET中的DataSourceControl基類。

【編輯推薦】

  1. 微軟發布ASP.NET MVC 2預覽版 多項功能更新
  2. ASP.NET服務器自定義控件安全準則
  3. ASP.NET編程規范之編碼規范淺析
  4. 關于ASP.NET Session的一點認識
  5. ASP.NET編程工具ASP.NET Web Matrix詳細介紹
責任編輯:佚名 來源: 老趙點滴
相關推薦

2009-07-22 18:08:00

ASP.NET基類

2009-07-28 17:38:02

ASP.NET多態抽象基類

2009-07-24 10:10:22

ASP.NET

2009-07-24 16:17:42

WebRequestEASP.NET

2009-07-29 13:57:53

創建SlideShowASP.NET

2009-08-05 18:17:16

ASP.NET控件開發基類

2009-07-22 17:45:35

ASP.NET教程

2009-07-27 13:01:28

TreeViewASP.NET

2009-07-31 09:58:20

URL映射ASP.NET

2009-08-04 18:05:37

動態編譯ASP.NET

2009-07-22 17:55:52

2009-07-20 17:21:43

Session狀態ASP.NET

2009-08-04 17:30:23

cookieless屬ASP.NET

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-23 16:20:48

HTTP協議ASP.NET

2009-07-30 13:28:55

ASP.NET中的ja

2009-09-11 09:09:00

ASP.NETAdRotator控件

2009-07-31 10:08:33

OutputCache

2009-07-20 13:32:24

ScriptManagASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产精品国产偷麻豆 | 日韩久久综合 | 一级黄色短片 | 精品一区二区在线观看 | 亚洲一区二区三区免费视频 | 国产一区二区三区在线视频 | 黄色片a级 | 久久国产精品99久久久久 | 日本中文字幕在线观看 | 日本精a在线观看 | 伊人欧美视频 | 天堂亚洲| 国产精品久久久久久一区二区三区 | 在线中文字幕视频 | 久久综合伊人 | 精品国产31久久久久久 | 国产成人精品在线 | 三a毛片 | 一区二区三区在线免费观看 | 欧美午夜一区 | 欧美午夜在线 | 亚洲天堂色 | 狠狠插天天干 | 激情久久av一区av二区av三区 | 天天色天天色 | 国产精品亚洲成在人线 | 亚洲福利在线观看 | 伊人久久免费 | 巨大荫蒂视频欧美另类大 | 国产高清精品一区二区三区 | www国产成人免费观看视频,深夜成人网 | 久久国品片 | 精品毛片在线观看 | 国产91综合 | 四虎影视一区二区 | 久久久久久成人网 | 一级毛片免费 | 精品久久久久久亚洲综合网 | 亚洲一区三区在线观看 | 日韩视频在线播放 | 毛片免费视频 |