Silverlight 2 初覽

  • 22716
  • 0
  • 2011-07-09

摘要:Silverlight 2 初覽

【原文位址】First Look at Silverlight 2
【原文發表日期】 Friday, February 22, 2008 6:41 AM

去年9月,我們發佈了面向Mac和Windows的Silverlight 1.0,還宣佈了在Linux上提供Silverlight的計劃。Silverlight 1.0著重於促進瀏覽器中的豐富媒體場景,支援JavaScript/AJAX程式設計模型。

我們不久將發佈 Silverlight 2 的第一個公開beta,這是個Silverlight的重大更新,將注重於促進富網路應用(RIA)的開發。本貼是我將在以後的幾個月內撰寫的詳細討論相關細節的幾個文章的第一篇。

跨平台/跨瀏覽器的 .NET 開發

Silverlight 2 包含了.NET 框架的一個跨平台,跨瀏覽器版本,促成了在瀏覽器中運行的一個豐富的 .NET 開發平台。開發人員可以使用任何一門 .NET 語言(包括VB, C#, JavaScript, IronPython 和 IronRuby)來編寫 Silverlight 應用。我們將推出Visual Studio 2008 和 Expression Studio的工具支援,來促成建造 Silverlight 方案時開發人員與美工設計師間良好的工作流和整合。

這個即將發佈的Silverlight 2 Beta1 版本提供了能促成精妙的RIA應用開發的一套豐富的功能集。這些功能包括:

  • WPF UI框架: Silverlight 2包括了一個基於WPF的富用戶介面框架,該框架將極大地方便建造豐富的Web應用。其中包括強大的圖像和動畫引擎,以及物件控制項,佈局管理,資料繫結,樣式和模板皮膚這樣高級的UI功能的豐富支援。 Silverligh中的WPF UI框架是與完整的 .NET 框架中的WPF UI框架特性相相容的一個子集,允許開發人員重用技能,控制項,程式碼和內容來同時建造豐富的跨瀏覽器的web應用,以及豐富的桌面Windows應用。
  • 豐富的控制項: Silverlight 2包括了一套豐富的內建控制項,可為開發人員和美工設計師用來快速地建造應用。這個即將發佈的Beta1版本將包括核心的表單控制項(TextBox, CheckBox, RadioButton等),內建的佈局管理面板(StackPanel, Grid, Panel等),常見的功能性控制項(Slider, ScrollViewer, Calendar, DatePicker等),以及資料操作控制項(DataGrid, ListBox等)。內建的控制項支援一個豐富的控制項模板模型,允許開發人員和美工設計師在一起合作建造精美的解決方案。
  • 豐富的Networking支援: Silverlight 2 包含豐富的networking支援。它包括現成叫用REST, WS*/SOAP, POX, RSS, 和標準 HTTP服務的支援。它還支援跨域網路存取(允許Silverlight 客戶端直接存取網上的資源和資料)。Beta1版本還包含了內建的sockets networking 支援。

  • 豐富的基礎類別庫: Silverlight 2 包含了一個豐富的.NET基礎功能類別庫(集合,IO,泛型,執行緒,全球化,XML,本地儲存等)。它包含了允許HTML DOM/JavaScript 與 .NET 程式碼整合的豐富的API。它還包含了 LINQ 和 LINQ to XML支援(允許對資料的輕鬆轉換和查詢),以及本地資料快取和儲存的支援。Silverlight 中的.NET API是完整的 .NET框架的一個相容子集。

Silverlight 2 不要求.NET框架安裝在計算機上就能運行。Silverlight 安裝下載包括了在原裝的Mac OSX 或 Windows機器上允許上述所有功能(還有我們不久將討論的更多的功能)所需的一切。

Silverlight 2 Beta1 版本的大小為4.3MB,在沒有安裝的機器上大概要花4-10秒鐘安裝。Silverlight 2安裝完畢後,你就可以在你喜歡的瀏覽器(IE, FireFox, Safari等等)裡瀏覽 Web,自動運行豐富的Silverlight應用。

Silverlight 2實戰Demo:建造一個簡單的Digg客戶端

為幫助大家盡快地上手Silverlight 2,我決定,建造一個Silverlight應用,然後撰寫一系列按部就班的課程詳細解釋其後的不同程式設計概念(控制項,佈局管理,networking,資料繫結,樣式,用戶控制項,模板等等),也許更有樂趣一些。我還寫了一個課程文章,示範如何把該應用移植到瀏覽器外,把它變成一個使用WPF和完整的.NET框架的桌面應用。

下面是我建造的Silverlight 應用的一些螢幕截圖。這是一個對很受歡迎的Digg.com網站的簡單的搜尋前端,允許用戶輸入要搜尋的主題,然後瀏覽匹配這些主題的Digg故事。

應用中的所有介面都是用 Silverlight的WPF框架建造的,該應用使用Silverlight的網路層和跨網域存取支援,直接叫用Digg REST API進行查詢,然後使用LINQ 和LINQ to XML對傳回的資料進行查詢/轉換成我可以繫結到介面的DiggStory物件 :

該應用支援主從式(Master/Detail)資料交互模型,允許用戶從查詢列表中選擇故事,然後很快地轉入細節部分。一個用戶可以直接從細節表單跳到Digg文章,或者將其關閉,然後挑選另外一個故事來閱讀其細節:

整個應用大概用了35行的C#程式碼和75行的XAML 頁面/用戶控制項標識來實現。它只用了內建於 Silverlight中的用戶控制項和庫。

我的Silverlight 課程

你可以通過閱讀我撰寫的下面這8個課程來學習我是如何建造這個Digg應用的:

這些課程是設計來按順序閱讀的,按部就班地說明建造Digg應用的整個過程(從 VS 2008中的檔案->新專案 開始)。我嘗試著用每個課程來解釋一個或多個程式設計概念。

如果你以前用過WPF,我討論的介面概念會是非常熟悉的。如果你以前沒有用過WPF,這些課程應該對其中的基本程式設計概念提供了一個很好的概述,希望給你提供了足夠的基本知識,在Beta1 出來後,就可以開始使用VS 2008來 建造Silverlight 2應用。

在Beta1 可以下載時,我會在部落格上貼出相關細節。我還會在Beta1 發佈後,把最終的Digg應用上傳到我的網站(以及可以在VS 2008中打開和編輯的程式碼和專案文件)。

希望本文對你有所幫助,

Scott

【譯注】如果哪位有興趣的話,請和我一起翻譯這8個課程,有意者請在本文後面回文,謝謝!