マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

マイクロソフトの提供する RIA フレームワークである。

  • クロスブラウザ・クロスプラットフォームを謳い、
    ランタイムは Windows だけでなくMac や Linux(Monoプロジェクト)にも提供され、
    多くのプラットフォームに対応している(対応しようとしていた時期があった)。
  • また、ユーザインターフェース構築には WPF と共通の XAML を使うが、扱える機能に差異がある。

サポート

終了

Silverlight は Microsoft Edge でも Chrome でもサポートされない。

  • マイクロソフトは、2021 年に Silverlight 5 のサポート終了日を設定しているが、
    Silverlight 5 をもって、Silverlight の開発終了の可能性も報道されている。
  • 従って、将来性は無いと考えられるため、新規採用は控えた方が良い。

参考

引用

  • (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/

リンク

特徴

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

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

機能の差異

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

  • 「Silverlight」でカットされた機能
    • サポートされない機能
    • 制限付きの機能
  • 「WPF」⇔「Silverlight」間で差異のある機能
  • 「Silverlight』の独自の機能

などがある。

ザックリ纏めると。

サポートされない機能

  • フロードキュメント
  • 動的リソース
  • コントロール
    • 基本的なコントロール
    • ドキュメント コントロール
    • メニュー、ツールバー、ステータスバー コントロール
    • ナビゲーション フレームワークのコントロール
    • Chrome(外観)、Decorator(効果)コントロール
    • その他 コントロール
  • その他
    • TileBrush?.TileMode?プロパティ
    • ITypedList?BindingList?<T>、InstanceFactory?
    • MarkupExtension?基本クラス
    • ValueConversion?属性
    • Electronic Documentation Management(EDM)

制限付きの機能

  • 依存関係プロパティ
  • データバインディング
  • 要素ツリー
  • トリガ
  • コマンド実行
  • 3Dグラフィックス
  • Freezable
  • マルチタッチAPI

差異のある機能

独自の機能

  • Deep Zoom
  • ブラウザ外実行
  • コントロール
  • API

セキュリティ

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

2種類のコード

アプリケーション内のセキュリティのコンテキストで見ると、「Silverlight」のコードは、

  • 「プラットフォーム コード」:
    • 「Silverlight」ランタイムおよび SDK によって提供されるAPI
  • 「アプリケーション コード」:
    • プラットフォーム コードを使用して作成されたコード

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

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

セキュリティ レベル

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

「セーフ クリティカル」とユーザ操作

  • なお、「アプリケーション コード」から「プラットフォーム コード」の
    「セーフ クリティカル」を呼び出す場合、悪意のあるコードが不正に
    ローカル リソースにアクセスすることを防ぐため、ユーザ操作を必須とする機能がある。
    • 例えばファイル システムへアクセスする場合には、ユーザ入力を伴う、OpenFileDialog?を表示してパスを取得する必要がある。
    • なお、ユーザ入力なしでファイル システムへアクセスすると、SecurityException?が発生する。
  • ユーザ操作が必要な「セーフ クリティカル」機能の例
    項番機能説明
    ファイル システムへのアクセスファイル システムへのアクセスは制限されるためFileDialog?からユーザが開始する必要がある 。
    全画面表示全画面表示モードは、ユーザが開始する必要がある。終了方法についてのメッセージが表示される 。
    Webカメラ・マイクのサポートSilverlight 4以降、Web カメラ・マイクがサポートされた。
    Web カメラ・マイクの使用は、ユーザが開始し、セキュリティ プロンプトでアクセス許可を付与する必要がある 。
    印刷Silverlight 4 以降、印刷がサポートされた。
    印刷はユーザが開始する必要がある 。
    クリップボードへのアクセスSilverlight 4 以降、クリップボードへのアクセスがサポートされた。
    クリップボードへのアクセスは、ユーザが開始し、セキュリティ プロンプトでアクセス許可を付与する必要がある。
    現在のページが閉じられるか、ユーザが別の操作に移った時点でアクセス許可は終了する 。

参考

基礎(MSDN)

@IT > HTML5 + UX

Silverlight開発を始めるための基礎知識

http://www.atmarkit.co.jp/fwcr/index/index_silverlight.html

Silverlight 2で.NET技術をカッコよく使おう

@IT > Insider.NET

無償環境でSilverlight 2アプリを開発しよう!

http://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_index/index.html

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

さらに進化を遂げたSilverlight 3 > Silverlight 3、ここがすごい!

連載:Silverlight 3実践プログラミング

http://www.atmarkit.co.jp/fdotnet/chushin/silverlight3develop_index/index.html

CodeZine?


Tags: :.NET開発, :WPF/Silverlight, XAML


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-23 (金) 16:57:32 (90d)