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

詳解ADO.NET客戶端開發數據驅動的應用程序

開發 后端
自從Microsoft與jQuery合作以來,ASP.NET AJAX與jQuery就被定位為兩個互補的AJAX庫。既然jQuery已經實現了如此多輕量級的AJAX特性,自然ASP.NET AJAX會繼續專注于富客戶端所需的一些重量級特性。

在ASP.NET AJAX 4.0 Preview 3里面,開發人員能夠接觸到的兩個重要的新特性就是ADO.NET Data Service Client Library以及ASP.NET AJAX Template。對于熟悉ASP.NET服務器端開發但不熟悉客戶端開發的人來說,你可以簡單地把這兩個特性理解為存在于客戶端的DataSource以及ListView,只要把數據通過ADO.NET Data Service輸出到前端,你就可以如同使用DataSource和ListView的組合一樣在客戶端開發數據驅動的應用程序了。

在這篇文章里,我們將來看看如何使用ADO.NET Data Service Client Library,將ADO.NET Data Service暴露的REST數據接口直接拿到客戶端JavaScript代碼中去調用。文章中所用到的示例代碼,可以在這里下載:ASP.NET AJAX 4.0 Preview 3 Demo,然后參考里面的AdoNetDataServiceDemo.aspx。

服務器端準備工作

在我們接下來要講到的示例當中,我們會用到一個SQL Server 2005 Express Edition的數據庫,里面有一張名為OscarWinners的表,記錄的是本年度奧斯卡獲獎名單,字段包括AwardID、Award、Winner、Film。然后我們為這張表創建ADO.NET Entity Model,接著再為它生成的實體類創建ADO.NET Data Service。這些都是在Visual Studio 2008中點幾下鼠標就能完成的操作,就不再詳細解釋了。在ADO.NET Data Service的InitializeService()方法內,我們僅僅給它提供一個最寬松的規則:

config.SetEntitySetAccessRule("*", EntitySetRights.All);

到這里,我們就把服務器端的要做的工作都準備好了。打開你創建的ADO.NET Data Service地址,看看是否輸出了正確的Atom格式數據。如果沒有,請檢查一下你機器上的WCF是否已經正確安裝和配置好了。確保服務器端的準備工作都做好了,然后再進入客戶端的開發工作。

連接Data Service
在客戶端使用ADO.NET Data Service,我們需要接觸到的類只有一個,那就是Sys.Data.AdoNetServiceProxy。首先,我們要連接到ADO.NET Data Service,也就是使用ADO.NET Data Service的URL來實例化此類:

var dataService = new Sys.Data.AdoNetServiceProxy("WebDataService.svc");

然后,我們就可以利用dataService來調用ADO.NET Data Service進行CRUD操作了。

CRUD操作

所有的CRUD操作都在Sys.Data.AdoNetServiceProxy對象上執行,方法分別名為query()、insert()、update()、remove()。在我們的示例當中,會用到query()和update()方法,另外兩個方法是用起來和update()很類似,就不再詳細說明了。

查詢操作

dataService.query("OscarWinners", function(result, context, operation) {
  /* display result */
}, errorHandler);

使用上述語句,我們查詢出了OscarWinners表中的所有數據。隨后的第一個回調函數會在查詢成功時被調用,因此我們可以在其中編寫拼接HTML以顯示結果的邏輯,具體的代碼請參考下載中的AdoNetDataServiceDemo.aspx。第二個回調函數會在查詢失敗時被調用,我們可以編寫一個統一的錯誤處理函數,名為errorHandler,然后將它傳遞給此參數。

如果需要傳遞復雜的查詢參數,使用ADO.NET Data Service的格式就可以了,這可以在MSDN上查到。例如說查詢Slumdog Millionaire這部電影奪取了多少個奧斯卡獎項,然后把獎項按照名稱排序輸出,可以這樣子寫:

dataService.query("OscarWinners?$filter=Film eq 'Slumdog Millionaire'&$orderby=Award", 
function(result, context, operation) {
  /* display result */
}, errorHandler);

更新操作

dataService.update(item, function(result, context, operation) { }, errorHandler);

盡管將查詢結果保存下來成為items集合,并且根據用戶在界面上執行的操作修改item上的屬性,這些邏輯都需要我們手動維護,然而最后將item更新到服務器上則只需要如此簡單的一句調用。

在我給出的示例代碼中,我自己寫了一個InPlaceEditBehavior,也就是所謂的“就地編輯器”,能夠讓用戶點擊顯示文本后把顯示文本變成輸入框。然后我把這個InPlaceEditBehavior綁定到每一條記錄顯示的Winner字段和Film字段的span上,使得這些span都能接收用戶輸入。最后,我為InPlaceEditBehavior添加了一個onchanged事件,并在該事件的處理函數中完成更新item以及調用update()的操作。

小結

在這篇文章里,我簡單地介紹了ADO.NET Data Service Client Library的易用性,并且通過一個具體的示例說明了如何用它來節省大量的數據交互代碼。

如果你曾經寫過AJAX-Enabled WCF Service,你應該知道把實體類暴露為WCF Service接口是多么麻煩的事情,就算每個實體類就簡單地支持CRUD方法,你也必須手動編寫這4個方法。ADO.NET Data Service相當于幫你把這一切都做好了,只要給它實體類和規則,它就幫你生成一個Data Service。另外,通過AJAX-Enabled WCF Service所包括的數據接口,會自動生成一大堆客戶端代理類,而ADO.NET Data Service Client Library則只有一個固定的代理類,客戶端代碼體積不會隨著接口復雜度的增加而增加。

說了ADO.NET Data Service Client Library的那么多好處,那么這個示例中又有什么做得不夠好的地方呢?我覺得最難維護的地方就是獲取到數據后拼接HTML的代碼了,人手寫的HTML拼接代碼難免容易出錯,而且日后更新起來也很麻煩,出錯了調試時也不容易定位問題。

原文鏈接:http://www.cnblogs.com/cathsfz/archive/2009/03/11/1408290.html

【編輯推薦】

  1. ASP.NET Web Forms 4.0中雙向Routing支持
  2. ADO.NET中容易混淆的概念
  3. 使用ASP.Net 3.5的Ajax與Web服務開發實例
責任編輯:彭凡 來源: <a href="http://cathsfz.cnblogs.com">cathsfz.cn..
相關推薦

2011-07-21 09:07:16

ADO.NET

2009-12-21 13:38:29

ADO.NET應用程序

2010-01-04 13:56:50

ADO.NET應用程序

2009-10-29 13:16:15

ADO.NET應用程序

2009-12-23 17:30:54

ADO.NET應用程序

2009-12-23 16:57:35

理解ADO.NET

2009-12-23 10:18:21

ADO.NET 應用程

2009-12-24 14:06:22

ADO.NET 應用程

2009-12-28 16:50:28

ADO.NET應用程序

2009-12-18 16:56:05

ADO.NET應用程序

2009-12-24 14:12:33

2009-12-18 17:29:40

ADO.NET應用程序

2009-12-30 15:06:22

ADO.NET分析

2011-10-09 13:38:14

數據庫

2009-11-13 15:33:58

ADO.NET數據對象

2011-05-20 11:31:07

ADO.NET

2009-12-29 16:12:25

ADO程序員

2009-12-21 16:45:41

ADO.NET程序

2024-06-18 13:17:02

數據庫框架

2009-11-13 09:45:54

ADO.NET程序集
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 射欧美| 久久久国产一区二区三区 | 亚洲精选久久 | av网站免费看 | 国产激情偷乱视频一区二区三区 | 成人国产精品久久 | japan21xxxxhd美女| 精品日韩在线 | 久草福利 | 亚洲精品一区二区在线观看 | 九九热最新地址 | 国产高清视频在线播放 | 国产第一亚洲 | 亚洲精品成人av久久 | 日韩成人在线免费视频 | 日韩综合在线 | 三级成人片 | 日韩精品一区二区三区在线观看 | 欧美久久一区二区 | 中文字幕一区在线观看视频 | 最新av在线网址 | 99精品久久久 | 成人精品国产免费网站 | 91欧美精品成人综合在线观看 | 精品九九 | 日韩国产精品一区二区三区 | 亚洲欧美日韩在线不卡 | 日韩在线中文字幕 | 亚洲一区二区在线播放 | 国产欧美一区二区三区日本久久久 | 韩国精品一区 | av片免费 | 亚洲成人一区二区三区 | 欧洲一区视频 | 一区二区视频在线 | xxxcom在线观看 | 日韩在线一区二区三区 | www在线| 欧美一级在线免费观看 | 亚洲精品国产成人 | 乱一性一乱一交一视频a∨ 色爱av |