「[[マイクロソフト系技術情報 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プロジェクト)にも提供され、多くのプラットフォームに対応している(対応しようとしていた時期があった)。
Mac や Linux([[Mono]]プロジェクト)にも提供され、多くのプラットフォームに対応している(対応しようとしていた時期があった)。
-また、ユーザインターフェース構築には [[WPF]] と共通の [[XAML]] を使うが、扱える機能に差異がある。

*特徴 [#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;現在のページが閉じられるか、ユーザが別の操作に移った時点でアクセス許可は終了する 。|

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

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

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

**参考 [#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

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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS