Silverlight 3 、.NET RIA Services 與資料存取技術的演進

Silverlight目前有三個版本,這一篇文章,我們大約來看一下,資料存取技術的演進。




原文出處:http://www.kangting.tw/2009/03/silverlight-3-net-ria-services.html



Silverlight目前有三個版本,這一篇文章,我們大約來看一下,資料存取技術的演進。

在Silverlight 1.0的時候,不用說了,那個時代(其實只是一年多以前),什麼叫作資料存取技術?沒有,我們在XAML上面動手腳,加上Ajax,來達到與ASP.NET互動的目的,當然,Silverlight 1.0的重點在多媒體互動內容的呈現,應用程式的開發是它的願景,不是那個時候的主要目標。

Silverlight 2.0的時候,我們可以透過兩個非常重要的技術與後端作溝通了,這兩個技術如下:

 

  • WCF
  • ADO.NET Data Services

WCF本來就是為了支援分散式交易而生的技術,Silverlight在客戶端當然可以直接透過WCF來存取伺服器上面的資源,也因此直接拿來給Silverlight用是很正常,也合理,特別是沒有比較可靠的解決方案時,這是一個不錯的方法。

ADO.NET Data Services,這是一個很長的故事,它根植於ADO.NET Entity Framework所建立的基礎,提供AJAX與Silverlight等技術所需的資料供應服務。

ADO.NET Data Services在Silverlight 2.0的時候,已經可以完整的作到遠端資料的維護存取,同時讓Silverlight與其作互動,但是,在很多方面,無論是複雜度或是資料繫結的方便性上面,用它來實作商用Silverlight系統,還是一個很大的挑戰。 Silverlight 3.0,.NET RIA Services被導入了,這個服務,大幅的簡化了跨網路的多層式架構系統開發實作的難度,同時讓控制項能夠與其建立的服務類別直接進行繫結,以呈現從伺服器端所取得的資料內容。

.NET RIA Services一個很遠大的目標,就是讓Silverlight的多層式架構開發,與兩層式的傳統程式一樣自然,從這一點,身為開發人員的我們,真的應該給微軟一些掌聲,有多層式系統開發經驗的技術人員,對於這一點應該會感到相當的震撼,如果,它真的作到的話,因為,Silverlight透過網路與伺服器作溝通,因此它只能選擇透過多層式架構來發展本身的系統,因為,多層式架構真的比兩層式要困難很多很多,況且Silverlight處理跨越網路的問題 …

.NET RIA Services 讓資料存取功能的開發,簡化到難以置信的地步,以一個最簡單的 DataGrid 資料繫結為例,在ASP.NET 透過 Entity Framework 存取資料來源,建立所需的.NET RIA服務與其作溝通,最後從產生的類別直接取得所需的資料內容,餵給控制項即可,如下式,這樣的一行程式碼,就可以讓我們完成繫結的操作。

MyDataGrid.ItemsSource = context.Products ;

你可以想像,Silverlight經過3.0的釋出之後,RIA的發展,將呈現一個什麼樣的局面,這樣遠大的未來,或許你還在觀望,然而已經太多人磨刀霍霍準備迎向新藍海,景氣真的很糟糕,但這也是一個絕佳的年代,一個 RIA 開始奔騰的年代。