「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>WPF/Silverlight]]

* 目次 [#ne060f2f]
#contents

*概要 [#jb4cb2d1]
マイクロソフトの提供する RIA フレームワークである。~

-クロスブラウザ・クロスプラットフォームを謳い、~
ランタイムは Windows だけでなくMac や Linux([[Mono]]プロジェクト)にも提供され、~
多くのプラットフォームに対応している(対応しようとしていた時期があった)。

-また、ユーザインターフェース構築には [[WPF]] と共通の [[XAML]] を使うが、扱える機能に差異がある。

*サポート [#x69be52b]

**終了 [#t6e7d260]
Silverlight は Microsoft Edge でも Chrome でもサポートされない。

***Silverlight 5 [#n1de66e3]
-マイクロソフトは、2021 年に Silverlight 5 のサポート終了日を設定しているが、~
Silverlight 5 をもって、Silverlight の開発終了の可能性も報道されている。

-従って、将来性は無いと考えられるため、新規採用は控えた方が良い。

***OpenSilver [#j784f31b]
2020年3月11日辺りにアナウンスされた新しい技術(情報)。

-Silverlightで開発したアプリケーションを
--WebAssemblyにコンパイルし、
--現在のブラウザで動かせるようにするもの。

-現時点では「謎」技術~
(謎のまま終わりそうな気もしている)。

-参考

--OpenSilver~
https://opensilver.net/

--WebAsseblyを使ってSilverlightをオープンソースで実装~
する「OpenSilver」プロジェクト | OSDN Magazine~
https://mag.osdn.jp/20/03/17/143000

--Silverlightアプリを現代ブラウザーに復活させる~
「OpenSilver」 - Computerworldニュース:Computerworld~
https://project.nikkeibp.co.jp/idg/atcl/19/00001/00099/

**参考 [#qc625a2c]

***引用 [#s6162fc4]
- (1)
 『ActiveX』のサポートはMicrosoft Edgeで終了されており、それにはSilverlightのサポートの廃止も含まれる。
 その理由としては(中略)、HTML5の拡張仕様をベースとする実行可能でセキュアなメディアソリューションの登場などが挙げられる」
 
 cf. マイクロソフト、新ブラウザ「Edge」で「Silverlight」をサポートせず - CNET Japan
 http://japan.cnet.com/news/service/35066918/

- (2)
 「Microsoftが、Webページでのメディア再生にSilverlightの使用をやめてHTML5ベースの技術に移行することを推奨している
 (・・・中略・・・)
 デバイスやプラットフォームの種類が増加するにつれサポートが困難になっており、脆弱性の修正にも時間がかかる。
 
 cf. Microsoft、Silverlightの使用中止を推奨
 http://it.srad.jp/story/15/07/05/0012241/

***リンク [#def98ca6]
-Microsoft Silverlight サポート ライフサイクル ポリシーのお知らせ~
http://support.microsoft.com/gp/lifean45/ja

-Silverlight 5 をもって、Silverlight の開発終了の可能性が報道されている。~
--Microsoft Silverlight - Wikipedia~
http://ja.wikipedia.org/wiki/Microsoft_Silverlight~
---Will there be a Silverlight 6 (and does it matter)  ZDNet~
http://www.zdnet.com/blog/microsoft/will-there-be-a-silverlight-6-and-does-it-matter/11180

-Microsoftの今後のロードマップ:~
「Silverlight 6」は2014年前半頃、「Office 16」は2015年に登場か?!~
http://taisy0.com/2013/01/05/13097.html

*特徴 [#p46a05ea]
[[WPF]]と同じ[[XAML]]+.NET(VB、C#などの.NET言語)によって開発・実装を行うが、以下の点が通常のWPFと異なる。

-RIAであるためサンドボックス化されたコンテキストの内部で実行される。
-ランタイム配付の軽量化のためランタイムが.NET、[[WPF]]と異なる(機能が制限されている、若しくは差異がある)。
-ビデオやオーディオの独自の再生プレイヤーを持つ
--WMV / WMA標準の「Windows Media Player」ではなく、独自の再生プレイヤーを持っているため、クライアントPCへの「Windows Media Player」のインストールは不要
--デジタル著作権管理 (DRM) を Silverlight アプリケーションに組み込むと、さまざまなシナリオで、コンテンツの保護を強化し、より安全な配信を行うことができる。

**機能の差異 [#i4491fc9]

-MSDN > Silverlightの概要 > WPFとの互換性~
http://msdn.microsoft.com/ja-jp/library/cc903925.aspx

「WPF」 → 「Silverlight」の機能の差異として、

-「Silverlight」でカットされた機能
--サポートされない機能
--制限付きの機能

-「WPF」⇔「Silverlight」間で差異のある機能
-「Silverlight』の独自の機能

などがある。

ザックリ纏めると。

***サポートされない機能 [#ya49f30e]
-フロードキュメント
-動的リソース

-コントロール
--基本的なコントロール
--ドキュメント コントロール
--メニュー、ツールバー、ステータスバー コントロール
--ナビゲーション フレームワークのコントロール
--Chrome(外観)、Decorator(効果)コントロール
--その他 コントロール

-その他
--TileBrush.TileModeプロパティ
--ITypedList、BindingList<T>、InstanceFactory
--MarkupExtension基本クラス
--ValueConversion属性
--Electronic Documentation Management(EDM)

***制限付きの機能 [#r3896efe]
-依存関係プロパティ
-データバインディング
-要素ツリー
-トリガ
-コマンド実行
-3Dグラフィックス
-Freezable
-マルチタッチAPI

***差異のある機能 [#mfb2af66]
-サブピクセル レンダリング
-印刷機能
-XAMLの処理~
MSDN > Silverlight > XAML > SilverlightバージョンとWPFとの間のXAML処理の相違~
http://msdn.microsoft.com/ja-jp/library/cc917841.aspx

***独自の機能 [#u3fd6883]
-Deep Zoom
-ブラウザ外実行
-コントロール 
-API

**セキュリティ [#c3bdbd4d]
「Silverlight」アプリケーションは、「サンドボックス」と呼ばれる「部分信頼」のセキュリティ境界内で動作するため、~
通常の.NETアプリケーションと比べて制限がある(ただし、「ブラウザ外実行」では、昇格されたアクセス許可を要求できる)。

-MSDN > Silverlight > セキュリティ > Silverlightアプリケーションのセキュリティ モデル~
http://msdn.microsoft.com/ja-jp/library/dd470128.aspx

-ブラウザ外実行(Out of Browser)
--MSDN > Silverlight >アプリケーション モデルとプログラミング モデル > ブラウザ外実行のサポート~
http://msdn.microsoft.com/ja-jp/library/dd550721.aspx

--MSDN Blogs > Akira Onishi's weblog > Silverlight 4 Beta進化のポイント:2つのOut of Browser~
http://blogs.msdn.com/b/aonishi/archive/2009/11/27/9929316.aspx
>→ trustedモードにするとWindows限定でCOMの呼び出しが可能になる。ただし、実際には署名を施す必要がある。

***2種類のコード [#xbe0bd22]
アプリケーション内のセキュリティのコンテキストで見ると、「Silverlight」のコードは、
-「プラットフォーム コード」:
--「Silverlight」ランタイムおよび SDK によって提供されるAPI
-「アプリケーション コード」:
--プラットフォーム コードを使用して作成されたコード

という2種類のコードに大別できる。

実行するコードがどちらの種類に属するかは、「Silverlight」ランタイムが自動的に検知する。

***セキュリティ レベル [#pd4758d6]
-「Silverlight」コードには、以下の3つのセキュリティ レベルがある。
|項番|セキュリテ・レベル|機能|h
|1|透過的|「透過的」 セキュリティ レベルのコードには、次の制限がある。&br;・P/InvokeやCOM相互運用機能を介してアンマネージ コードを呼び出すことができない 。&br;・クリティカルなコードやデータ(下記、項番3を参照のこと)にはアクセスできない。&br;・検証可能なタイプ セーフ コード である必要がある。|
|2|セーフ クリティカル|「セーフ クリティカル」 セキュリティ レベルのコードは、&br;「クリティカル」 セキュリティ レベルのコードの上位に位置し、呼び出しを安全に保つ働きをする。|
|3|クリティカル|「クリティカル」 セキュリティ レベルのコードは、&br;ファイル システムへの書き込みなど、「サンドボックス」で制限された操作を実行できる。|

--「アプリケーション コード」
---「透過的」セキュリティ レベルのコードに該当し、
--「プラットフォーム コード」
---「透過的」、「セーフ クリティカル」、「クリティカル」のどのセキュリティ レベルのコードにも成り得る。

***「セーフ クリティカル」とユーザ操作 [#a378bf5c]
-なお、「アプリケーション コード」から「プラットフォーム コード」の~
「セーフ クリティカル」を呼び出す場合、悪意のあるコードが不正に~
ローカル リソースにアクセスすることを防ぐため、ユーザ操作を必須とする機能がある。
--例えばファイル システムへアクセスする場合には、ユーザ入力を伴う、OpenFileDialogを表示してパスを取得する必要がある。
--なお、ユーザ入力なしでファイル システムへアクセスすると、SecurityExceptionが発生する。

-ユーザ操作が必要な「セーフ クリティカル」機能の例
|項番|機能|説明|h
|1|ファイル システムへのアクセス|ファイル システムへのアクセスは制限されるためFileDialogからユーザが開始する必要がある 。|
|2|全画面表示|全画面表示モードは、ユーザが開始する必要がある。終了方法についてのメッセージが表示される 。|
|3|Webカメラ・マイクのサポート|Silverlight 4以降、Web カメラ・マイクがサポートされた。&br;Web カメラ・マイクの使用は、ユーザが開始し、セキュリティ プロンプトでアクセス許可を付与する必要がある 。|
|4|印刷|Silverlight 4 以降、印刷がサポートされた。&br;印刷はユーザが開始する必要がある 。|
|5|クリップボードへのアクセス|Silverlight 4 以降、クリップボードへのアクセスがサポートされた。&br;クリップボードへのアクセスは、ユーザが開始し、セキュリティ プロンプトでアクセス許可を付与する必要がある。&br;現在のページが閉じられるか、ユーザが別の操作に移った時点でアクセス許可は終了する 。|

*参考 [#g9e9bb52]
**基礎(MSDN) [#b92a8a2a]
-MSDN > Silverlight~
http://msdn.microsoft.com/ja-jp/library/cc838158.aspx
--Silverlightの概要~
http://msdn.microsoft.com/ja-jp/library/bb404700.aspx
---Silverlight 4の新機能~
http://msdn.microsoft.com/ja-jp/library/dd772166.aspx
---Silverlightのロードマップ~
http://msdn.microsoft.com/ja-jp/library/bb404708.aspx
---Silverlightのアーキテクチャ~
http://msdn.microsoft.com/ja-jp/library/bb404713.aspx
---サポートされているオペレーティング システムとブラウザ~
http://msdn.microsoft.com/ja-jp/library/dd229102.aspx
---既存のSilverlightアプリケーションを確実にSilverlight4で動作させる~
http://msdn.microsoft.com/ja-jp/library/cc645049.aspx
---共通言語ランタイム~
http://msdn.microsoft.com/ja-jp/library/cc265151.aspx
---WPFとの互換性~
http://msdn.microsoft.com/ja-jp/library/cc903925.aspx
---Silverlight 3を対象とした場合のWPFとの互換性~
http://msdn.microsoft.com/ja-jp/library/ff607291.aspx
---WindowsおよびMacintoshにおけるSilverlightの相違点~
http://msdn.microsoft.com/ja-jp/library/ff607291.aspx

**@IT > HTML5 + UX [#r83a1e7c]
***Silverlight開発を始めるための基礎知識 [#zc09ae1b]
http://www.atmarkit.co.jp/fwcr/index/index_silverlight.html
-第1回 Silverlight開発を始めるための基礎知識~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight01/silverlight01_1.html 
-第2回 SilverlightならWeb上で高精細な動画再生も簡単?~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight02/silverlight02_1.html 
-第3回 Silverlightのリッチなグラフィックス描画サンプル集~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight03/silverlight03_1.html 
-第4回 シンプルで機能的なSilverlightのアニメーションとは?~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight04/silverlight04_1.html 
-第5回 Windows Live APIをSilverlightでマッシュアップ!~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight05/silverlight05_1.html 
-第6回 デスクトップや.NET技術をSilverlightでカッコよくしよう~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight06/silverlight06_1.html 
-最終回 百花繚乱なSilverlightのオープンソースプロジェクト集~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight07/silverlight07_1.html 

***Silverlight 2で.NET技術をカッコよく使おう [#q6eced9e]
-第1回 ついにRTWされたSilverlight 2は1.0と何が違うの?~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight2_01/silverlight2_01_1.html 
-第2回 無料Visual Studioで始めるSilverlight 2超入門~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight2_02/silverlight2_02_1.html 
-第3回 デザインツールで始めるSilverlightアニメ/グラフィック~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight2_03/silverlight2_03_1.html 
-第4回 Silverlight 2で落書きアプリを作るための5つのテク~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight2_04/silverlight2_04_1.html 
-第5回 最新の画像処理技術PhotosynthとDeepZoomを使う~
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight2_05/silverlight2_05_1.html

**@IT > Insider.NET [#n6601588]

***無償環境でSilverlight 2アプリを開発しよう! [#l4d01eb8]
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_index/index.html

-特集:Silverlight 2アプリを開発しよう!

--(前編)ついに登場!Silverlight 2正式版。その概要を押さえよう!
---1. Silverlight 2アプリケーションを動かしてみよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2intro_01/silverlight2intro_01_01.html
---2. Silverlight 2の特徴を押さえよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2intro_01/silverlight2intro_01_02.html
---3. Silverlight 2の仕組みと開発方法を理解しよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2intro_01/silverlight2intro_01_03.html

--(後編)無償環境でSilverlight 2アプリの開発を始めよう!
---1. Silverlight 2開発環境を作ろう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2intro_02/silverlight2intro_02_01.html
---2. hello, worldを表示しよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2intro_02/silverlight2intro_02_02.html
---3. 画面のレイアウト方法を押さえよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2intro_02/silverlight2intro_02_03.html
---4. イベントを制御しよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2intro_02/silverlight2intro_02_04.html

-連載:続・無償環境でSilverlight 2アプリを開発しよう!
--第1回 動きのあるSilverlightアプリを作ろう
---1. 文字列をドラック&ドロップするサンプルを動かそう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_01/silverlight2develop_01_01.html
---2. ドラッグ&ドロップを開発しよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_01/silverlight2develop_01_02.html
---3. アニメーションを利用しよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_01/silverlight2develop_01_03.html
---4. 動画を利用しよう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_01/silverlight2develop_01_04.html

--第2回 Webサービスを利用するSilverlightアプリを作ろう
---1. サンプルを動かそう~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_02/silverlight2develop_02_01.html
---2. サンプルの概要と画面(XAML)側コードのポイント~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_02/silverlight2develop_02_02.html
---3. コードビハインド側コードのポイント~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_02/silverlight2develop_02_03.html

--第3回 ファイルを利用するSilverlightアプリを作ろう
---1. Silverlightアプリでの情報の永続化の考察~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_03/silverlight2develop_03_01.html
---2. コードビハインド側コードのポイント~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_03/silverlight2develop_03_02.html
 
***さらに進化を遂げたSilverlight 3 > Silverlight 3、ここがすごい! [#x70fd07e]
-1. Silverlight 3の概要と開発環境~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight3intro/silverlight3intro_01.html
-2. 新機能1:ナビゲーション・フレームワーク~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight3intro/silverlight3intro_02.html
-3. 新機能2:アウトオブブラウザ体験~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight3intro/silverlight3intro_03.html
-4. 新機能3:Perspective 3D、新機能4:Element-to-Elementバインディング~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight3intro/silverlight3intro_04.html
-5. そのほかの新機能~
http://www.atmarkit.co.jp/fdotnet/vblab/silverlight3intro/silverlight3intro_05.html

***連載:Silverlight 3実践プログラミング [#x1dac3d5]
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_index/index.html

-ナビゲーション・フレームワークとChildWindowコントロール
--1. ナビゲーション・フレームワークとは~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_01/silverlight3develop_01_01.html
--2. ナビゲーション・フレームワークの使い方~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_01/silverlight3develop_01_02.html
--3. ChildWindowコントロールとは/その使い方~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_01/silverlight3develop_01_03.html

-SaveFileDialogとBitmap API
--1. SaveFileDialogとBitmap APIを利用したサンプル~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_02/silverlight3develop_02_01.html
--2. サンプル・アプリのソース・コード解説~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_02/silverlight3develop_02_02.html

-ネットワーク監視APIとブラウザ外実行
--1. ネットワーク監視API~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_03/silverlight3develop_03_01.html
--2. ブラウザ外実行~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_03/silverlight3develop_03_02.html

-LocalConnection APIと動的なスタイリング
--1. サンプルを動かしてみよう~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_04/silverlight3develop_04_01.html
--2. サンプル・アプリのソース・コード解説~
http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_04/silverlight3develop_04_02.html
 
**CodeZine [#k935437a]
-Silverlight 3徹底入門~
http://codezine.jp/article/corner/330
--Silverlight 3がやってきた~
http://codezine.jp/article/detail/4432
--Silverlight 3に新しく追加されたコントロール~
http://codezine.jp/article/detail/4513
--デザインツールの進化 ― Expression Blend 3入門~
http://codezine.jp/article/detail/4573
--Silverlightのオフライン機能による新しい可能性~
http://codezine.jp/article/detail/4702
--Silverlight 3で作る業務アプリケーションの要 「ナビゲーション フレームワーク」~
http://codezine.jp/article/detail/4810
--Silverlight 3で強化されたグラフィックとメディア機能~
http://codezine.jp/article/detail/4953
--Silverlight 3で強化されたスタイルと値の検証~
http://codezine.jp/article/detail/5146
--Silverlight 3で強化された実行環境~
http://codezine.jp/article/detail/5147

----
Tags: [[:.NET開発]], [[:WPF/Silverlight, XAML]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS