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

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 開始奔騰的年代。

6 則留言:

kiwi 提到...

MyDataGrid.ItemsSource = context.Products ;
真叫人期待啊..有了這個和ASP.NET AJAX寫起來就差不多了...

康廷數位 提到...

這是真的哦,而且是徹底的三層式架構
等到中文版出來,再來看相關的實作囉

Mr. Da-Dai 提到...

不知道您有沒有涉獵過 ZK framework..
感覺就像是 .net版的ZK framework~~

康廷數位 提到...

我沒有玩過,不過問了一下Google,
你說的是否是那一套open-source的Ajax Web Framework

如果指的是這個的話,可以說是完全不一樣的東西。

Ajax與Silverlight是兩個完全不同的世界,前者是一種為了強化舊技術的不足而提出的修補技術,後者則是一種推翻舊技術的革命性新技術,這兩者差不多是平行線了。

.NET RIA Services可以視為Silverlight而生的資料存取技術,將Ajax的思維帶進來學習,可能會增加學習上的障礙,玩Silverlight的時候,Ajax 建議還是暫時忘了它吧 …

兩棲動物的小中中 提到...

關於「在ASP.NET 透過 Entity Framework 存取資料來源」,小弟補充一點,還能透過「LINQ to SQL 類別」來存取資料來源~

康廷數位文教網 提到...

ASP.NET 的資料存取方式相當多樣化,可以選擇的方式也很多XD