Silverlight

**Microsoft Silverlight** 是微軟所發展的 Web 前端應用程式開發解決方案，是微軟豐富型網際網路應用程式（Rich Internet Application）策略的主要應用程式開發平台之一，以瀏覽器的外掛元件方式提供 Web 應用程式中多媒體（含影音串流與音效串流）與高度互動性前端應用程式的解決方案，同時它也是微軟 UX（使用者體驗）策略中的一環，也是微軟試圖將美術設計和程式開發人員的工作明確切分與協同合作發展應用程式的嘗試之一（另一個為 WPF）。

目前 Silverlight 已經逐步停止被各主流瀏覽器支援，包含 Internet Explorer、Firefox、Opera 與 Safari 等，同時也包括 macOS 作業系統。與 Silverlight 相同的開放原始碼解決方案「Mono」則提供在 Linux 上的支援。

**Microsoft Silverlight** 被視為與 Adobe Flash Player 和 unity 競爭的 web 技術。

台灣微軟為推廣 Silverlight 技術而推出擬人化形象藍澤光。

由於 Silverlight 安全性和效能不甚理想，微軟在 2013 年已明確不再開發新功能，僅修補漏洞，而在 2021 年 10 月 12 日終止其支援。

## 特色

Silverlight 是微軟前端使用者介面技術 Windows Presentation Foundation（WPF）的一個子集，同時也是 XAML（eXtensible Application Markup Language）的子集，具有向量式的繪圖能力，以及多媒體與圖形顯示的支援，開發人員能夠使用宣告式開發（declarating development）來發展 Silverlight 應用程式，而宣告式開發的特性也讓它能夠和設計工具來整合，因此微軟特別為 Silverlight 和 WPF 發展了 Microsoft Expression Blend 工具供設計人員使用。

Silverlight 支援串流媒體能力，特別是針對 Windows Media 的 Streamming Media 支援，以及 MP3 等音效串流支援，讓企業得以使用 Silverlight 發展出多媒體型應用程式，在圖像支援方面，Silverlight 2.0 的 Deep Zoom 技術可以讓大型的圖片或影像得以利用分段下載的瀏覽方式來顯示在前端，台灣國立故宮博物院在 2008 年曾開發出以 Deep Zoom 技術的清明上河圖 Silverlight 版本。

在 Windows 平台上，Silverlight 的底層是透過 XNA Framework 來處理繪圖。一種將 DirectX Graphics 封裝成.Net Framework 的版本的類別庫。

## 版本

### Silverlight 1.0

Silverlight 1.0 由許多核心展示層架構組成，這關係到使用者介面（UI），使用者輸入（user input），基本使用者介面控制元件（basic UI controls），圖形（graphics）和動畫（animation）、媒體播放（media playback），數位權管理（DRM）的支援，以及 DOM 的整合。其組件如下：

* 輸入（Input）：處理諸如鍵盤、滑鼠、手寫筆等輸入裝置的輸入。
* 使用者介面核心（UI core）：管理點陣圖像彩現（包括 JPEG 之類的壓縮圖像）、向量圖形、文字及動畫。
* 媒體（Media）：MP3 的回放、Windows Media 及 VC-1 串流。
* XAML：允許使用 XAML 建立 UI 布局。

一個銀光程式（Silverlight）的起點是從網頁呼叫銀光元件（Silverlight control）開始，必須載入 XAML 檔。The XAML file 包含一個 _Canvas_ 物件，扮演著一個 placeholder 的角色。Silverlight 提供各種不同的幾何基元，像是：線、橢圓以及其它形狀

一個典型的 Silverlight 1.0 程式的 HTML hosting 如下：

### Silverlight 2

2008 年 10 月 13 日，微軟推出了 Silverlight 2.0 的 RTW 版，並提供了相應程式及檔案的下載安裝。

Silverlight 2.0 支援下列新功能特色，彌補了 Silverlight 1.0 所欠缺的功能：

1. 具備一個.NET Framework 縮小版的基礎類別函式庫。
2. 大量內建的 Silverlight 控制項：在 Silverlight 1.0 時，所有 UI 物件都必須透過 XAML 來自行描述繪製，並缺乏許多內建的 Silverlight 向量控制項，針對這點，Silverlight 2.0 強化控制項方面的能力，內建許多向量控制項供開發人員直接使用。
3. Skinning and Templating 外觀模板的進階支援：透過 Skinning and Templating 的支援，可以自訂控制項之外觀與模板，可以迅速及動態地套用不同的外觀。
4. Deep Zoom：一個高解析度的影像縮放技術，能夠在 Silverlight 進行深度的圖片影像縮放功能。
5. 廣泛的網路 Networking 支援能力：舉例來說支援 REST、SOAP、POX、RSS 及標準 HTTP 服務等網路技術的呼叫，這部分對前端的 Silverlight 特別重要，透過網路程式才能存取後端 Server 的資料，以回傳繫結顯示在 UI 之上。
6. 擴展的.NET 語言支援：Silverlight 2.0 不僅僅支援主流的 C# 及 VB 程式開發，亦進一步支援動態語言，例如 IronPython、IronRuby 等等。
7. Silverlight DRM 的支援：Silverlight 2.0 對於影音媒體內容的保護，是透過 DRM 技術來逹成，透過它就可以提供 Content 內容保護。
8. 改善伺服端的延展性及擴展廣告客戶支援：Silverligt 2.0 針對串流傳送資料方式、效率、下載播放方式再進一步強化改善其能力。
9. 活躍的的合作夥伴生態系統：微軟全球知名的 Visual Studio Industry Partners 合作夥伴包括了 ComponentOne LLC、Infragistics Inc 及 Telerik，提供了 Silverlight 2.0 的商業元件，可在 Visual Studio 2008 的環境中使用。
10. 跨平台及跨瀏覽器支援：支援 Mac、Windows 及 Linux 等平台和 Firefox、Safari 與 Windows Internet Explorer 等瀏覽器。

### Silverlight 3

2009 年 7 月 10 日，微軟正式放出 Silverlight 3 RTW（3.0.40624.0）的下載，改進包括：

1. 平滑影片流技術： 
微軟表示其新影片流功能提高了瀏覽器上的影片品質，已經可以和電視影片相比。Silverlight 3 的平滑影片功能已經在流行音樂天王邁克。傑克遜的悼念晚會、溫布林登網球公開賽網路直播上大顯身手。
2. 數位版權管理： 
Silverlight 3 在數字內容保護上做了提高。內容生產商從發布內容之始就可以跟蹤並保護其發布的內容。
3. 現場感： 
Silverlight 3 支援更強大的 3D 顯示功能，新增加的一些功能可以用於圖片的深度縮放，現場感更強。
4. 可在瀏覽器之外執行： 
在 2007 年剛推出 Silverlight 的時候，使用 Silverlight 必須基於瀏覽器。在 Silverlight 3 中已經沒有這種限制，用 Silverlight 3 開發的應用可以直接執行。
5. 升級的 Expression Studio 3： 
Expression Studio 是微軟提供給開發者開發 Silverlight 應用的工具套件。新發布的 Silverlight 3 升級了 Expression Studio，提供了新工具 Sketchflow。
6. 增強對企業使用者的支援。

### Silverlight 4

1. 支援 Google Chrome 瀏覽器
2. 支援網路攝像頭和麥克風
3. 支援列印功能
4. 強化滑鼠的右鍵與滾輪功能
5. WCF RIA Services：WCF RIA Service Preview，內建於 Visual Studio 2010 的開發環境。
6. 執行效能較 Silverlight 3 快 200%
7. 與 HTML 整合
8. 支援脫離瀏覽器功能
9. data binding 再加強
10. 動畫效果再加強
11. 剪貼簿（Clipboard）與拖曳功能
12. 視界放大（Deep Zoom）
13. H.264 的內容保護

### Silverlight 5

2010 年 12 月 2 日有 Silverlight 更新的傳聞，Silverlight 5 beta 英文版於 2011 年 4 月 13 日釋出，而正式版本於 2011 年 12 月 9 日公布。

Silverlight 5 的新功能有：

* 支援 GPU 加速影像壓縮
* 內建 3D graphics
* 改善電源管理
* 內建遠端控制
* 更快的程式啟動（application startup）
* 提供 64 位元的瀏覽器
* 加強 Visual Studio 2010 的使用者介面自動化測試
* 文字檢錯系統
* 可以讓開發人員在 data-binding 時設定偵錯中斷點

## 開發工具

Silverlight 的開發工具分為兩個部份：

* 設計人員：使用 Microsoft Expression Blend 來進行設計。
  * Expression Blend 2.0 支援 Silverlight 1.0 的設計。
  * Expression Blend 2.0 Service Pack 1 支援 Silverlight 2.0 的設計。
* 開發人員：使用 Microsoft Visual Studio 來開發。
  * Visual Studio 2008 支援 Silverlight 1.0 的應用程式開發。
  * Silverlight Tools for Visual Studio 2008（外掛於 Visual Studio 2008 SP1）支援 Silverlight 2.0 的應用程式開發。

Eclipse 也有支援 Silverlight 開發的計畫。

## 版本歷史

## 藍澤光

藍澤光是由臺灣微軟分公司推出的 Microsoft Silverlight 萌擬人化代言人，在臺灣及日本地區影響較大。隨著微軟對於 Silverlight 5 的產品支援已經逐步結束，官方活動小組已經於 2014 年 9 月宣布，使藍澤光轉型成為 Microsoft Azure 的台灣區虛擬化代言人。

## 瀏覽器相容性

下表為各作業系統及各大網頁瀏覽器對於 Silverlight 各版本的支援性

## 參考資料

## 外部連結

* 官方網站
* Silverlight 終止支援的說明與常見問題 （頁面存檔備份，存於網際網路檔案館）
* Microsoft Silverlight Release History （頁面存檔備份，存於網際網路檔案館）
* MSDN Silverlight Dev Center
* The Official Microsoft Silverlight Site
* CNET - _More than meets the eye in Microsoft plan_
* Silverlight 1.1 is Now Silverlight 2.0 （頁面存檔備份，存於網際網路檔案館）（2007/11/29）
* Silverlight - ProgWiki （頁面存檔備份，存於網際網路檔案館）
* ScottGu's Blog （頁面存檔備份，存於網際網路檔案館）
* Comparison between Silverlight, Flash and HTML5 （頁面存檔備份，存於網際網路檔案館）