EF、WCF RIA Services 與 Silverlight 4

Silverlight 本身並不在伺服器運作,它是被送到瀏覽器之後,才開始載入於使用者的電腦上面執行,因此執行的效果與一般視窗應用程式無異,這是 Ajax 技術所無法企及的,也因此當我們需要開發同時具有高度敏捷反應以及豐富的互動體驗效果的 Web 應用程式時,以Silverlight 取代 HTML 構成的網頁介面才能滿足我們的需求。

不過,正因為這種特性, Silverlight 與 ASP.NET 的溝通就變的麻煩了,當你要將 ASP.NET 所取的資料與 Silverlight 進行交換傳輸,就必須有一個好用的機制來簡化其中的溝通的過程,隨著 Silverlight 4 釋出的 WCF RIA Services ,正是提供此種服務。

WCF RIA Services ,透過預先建立的實體資料實體物件,來取得資料庫中所儲存的資料,或是將資料回傳至底層資料庫當中。

下圖簡要描述上述提及三種技術之間的關係(點圖可放大):


如你所見的,要能夠妥善的運用 Silverlight 4 與 RIA Services , 瞭解 Entity Framework 是相當重要的一環,當然,我們工作室也因此出版了「Entity Framework 與 LINQ 開發實戰 」。XD

Silverlight 與 Silverlight 4

於 .NET 平台,目前的態勢很明顯,即便在未來幾年, Silverlight 就算不是唯一,也會是發展 RIA 最好的選擇,它有 HTML 5 與 Flash 等技術無法超越的優點。
  • 跨平台與跨瀏覽器
  • 整合完善、生產力極高的開發工具,直接內建豐富的視覺化控制項
  • 可以輕易的相容 HTML ,支援多語言,C#、VB 以及 Ruby 與 Python 等動態語言。
  • 完整的類別庫,支援各種視窗程式功能的建立。
  • 支援數種主流視訊格式,包含高畫質影片輸出。
Silverlight 還在不斷的進化,除了上述的各項特色,目前最新的第 4 版還加入了列印輸出、拖曳與剪貼等必要的功能,同時為了簡化商業級應用程式的發展,提供了 WCF RIA Services 等全新的服務。

Silverlight 4 另外一個比較重要的革新在於對客戶端程式開發的支援,它能夠以 OOB(Out-of-Browser) 的模式執行,脫離瀏覽器的束縛,甚至存取執行電腦上的檔案系統。

Silverlight 4 與 HTML 5

Silverlight 歷經數年的發展,一直到目前的 Silverlight 4 ,我們只針對 1.0 開發了「Silverlight:ASP.NET與AJAX開發實務」這本與 Silverlight 有關的圖書,後續幾個版本因為缺少某些關鍵功能同時更新的速度太過頻繁,因此我們便暫停了相關書籍的撰寫工作。

不過,我們並沒有停止對 Silverlight 的研究。

經過 4 個版本的改良,Silverlight 目前已相當完整,甚至可以開發獨立執行的應用程式,同時支援一套完整的專屬類別庫,是微軟目前唯一可以跨平台、跨瀏覽器,同時支援手機程式發展的開發技術。而在 Silverlight 發展的這幾年,HTML 5 逐漸受到重視,成為 Silverlight 最可怕的競爭技術,除了不需要安裝任何外掛程式,它本身亦是公認的開放式標準,這讓我們曾經一度懷疑,是不是要繼續投資 Silverlight ?當然,現實是第一考量,很快的我們清楚了,目前 HTML 5 存在的一些問題,讓我們在未來至少三到五年,沒有辦法將其運用在專案開發的實作上,只能選擇持續專注在 Silverlight ,這些問題包含了版本的相容性、瀏覽器的支援以及開發的便利性與生產力等等 …

瀏覽器
如果我們開發出來的 RIA 無法在大部份的瀏覽器上面跑,等於跟癈物沒兩樣,很不幸的是,市佔率六成的 IE 並不支援 HTML 5 ,第一個支援 HTML 5 的 IE 9 才剛見到 beta ,要命的是,它不能在 Windows XP 上面跑,這意謂著,我們必須等到 XP 這款 OS 的市佔率低到一定程度,然後大部份人的 Winodws 7 都改用 IE 9 ,才能考慮以 HTML 5 來開發,當然,我們更不可能天真到去說服使用者改用 FireFox 之類的瀏覽器,只因為我們想要用 HTML 5 開發。

開發
即便不考慮瀏覽器的問題,在開發上也是巨大的挑戰,拋棄熟悉的 C# 與 .NET Fraework ,改用 JavaScript 與 HTML ,還有 CSS ,這對於習慣了使用 Visual Studio 的我們,幾乎可以說是癈掉 5 成以上的功力,再加上 HTML 5 與 ASP.NET 後端的整合工作,所需花費的成本讓我們不敢想像,即便完成了,出來的成品還必須考量各種瀏覽器的支援,甚至無法讓大部份的人使用。

當然,HTML 5 還有其它的問題,它甚至還沒有正式完整的規格,儘管時間會解決這些問題,然而我們最缺乏的就是時間了。這也是 HTML 5 儘管在網路上已經炒得沸沸揚揚,我們還是持續深入 Silverlight 的原因。

《.NET 網路與 I/O 技術手冊》-第二版

《.NET 網路與 I/O 技術手冊》的第二版目前已經在進行中了,書籍會在大約 10 月底出版,在.NET領域,我想這是一本很值得開發人員仔細研讀的技術圖書,其中徹底剖析 I/O 架構的來龍去脈,完成這本書的閱讀,未來在你需要的時候,將能夠快速的理解並將各種型式的 I/O 運用在應用程式的開發上面,包含基本的檔案讀寫、資料加解密、壓縮,還有跨越網路的資料存取。

舊版的《.NET 網路與 I/O 技術手冊》是以 VB 語法撰寫,新版的內容我們希望能同時顧及 C# 讀者,因此還在思索最後書籍出版的內容樣式,應該如何呈現才能滿足兩種讀者的需求,希望能讓所有需要瞭解相關技術的 .NET 開發人員都能有機會讀到這本書。

這本書出版之後,我們免費提供一些數量給網友(需自付運費),敬請期待。


相關閱讀:

LINQ 的 VB 語法

考量市場與成本,「Entity Framework 與 LINQ 開發實戰」一書,並沒有辦法出版 VB 語法版本。

在語法方面,LINQ 的 VB 版本相較於 C# ,有很大的差異,如果直接透過 C# 轉換成為 VB 有一定的難度,不過,現在網路上提供的 C# <-> VB 轉換工具,已經具備了 LINQ 語法的轉換功能,對於需要的人來說相當的方便。

這裏提供給讀者的是 developerfusion 網站,這個網站的語法轉換工具支援 LINQ ,考慮以下的語法

IEnumerable list=
from element in collections
select element ;


現在進入developerfusion網站的 C# 轉換 VB 語法的工具網頁,於其中的文字欄位輸入所要轉換的程式碼,按一下「Convert to VB.NET」按鈕,就會出現轉換後的結果了。

如果你想要透過我們的書學習 LINQ ,又需要 VB 版本的 LINQ 語法,這個網站可以滿足你的需求。

網誌存檔