読者です 読者をやめる 読者になる 読者になる

kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

Silvelight 3 の新しいフィーチャー

前のエントリーでリンクした MIX09 のWhat's New In Microsoft Silverlight 3のビデオをざっと見てみました。結構長いので、いったん全部キャッシュしてから見た方がよいです。

ツール関係

H.264/AAC/MP4 のコーデックをサポート

  • GPU によるアクセラレーション
  • ブラウザーとフルスクリーンモードで動作
    • デモではEnableGPUAcceleration true などをXAMLで設定してました。

Perspective 3D

  • 2Dオブジェクトを3D空間に配置して回転させたりすることが可能に
    • Movieを再生しながら回転させるデモ
    • データバインドされた DataGrid を回転して裏返して鏡像のまま文字入力したりするデモ
  • Animation Easing をサポート(CircleEase, SineEase etc.)
    • DoubleAnimation.EasingFunction などとXAML 書いたら3D回転にエフェクトがついていました。

Effects and Pixel Shaders

  • BluerEffects
    • ポップアップ画面が出ると元の画面がぼんやりしたエフェクトになるデモ
  • Pixel APIs
    • 動的なbitmap生成
    • Visual Tree を bitmap にレンダリング
    • visual 要素をクローンする(Dragg effectなどに用いる)
    • Movieを再生しながらサムネール画像を一定間隔でを生成するデモ

MPEG1からサムネール画像を切り出すアプリ(MFCアプリ)を昔作ったことがあるのですが、ブラウザー上でこんなに簡単に作れてしまうとは・・・

  • Raw Audio/Video APIs
    • Dragイメージを動的に生成するデモ
    • 複数の動画をマルチレイヤー?で再生しながら合成するデモ

Local Messageing

  • {同一ページ内 | 同一ブラウザー内の異なるタブ間 | 異なるブラウザー間 }で Silverlight アプリ同士の通信が可能
    • 実装は共有メモリー/名前付きパイプ/文字列ベースのメッセージ
    • 4つのブラウザーをタイル表示して一つのスクリーンのようにアニメーションを再生するデモ
    • FirefoxChrome間でチェスを実行するデモ

UI Frameworkの進化

  • Merged Resource Dictionaries
  • スタイルベースで実行時のスタイル変更が可能に < WPF のプログラミングモデルに近づいた?
  • Multi-select ListBox
  • "handled" routed events のリスニングが可能に
  • VSM Invalid states < Visual State Manager によるバリデーション機能?
    • TextBox, CheckBox, ComboBox, ListBox, RadioButton などで使える模様

新しいコントロール

  • DockPanel
  • Expander
  • Label
  • TreeView
  • ViewBox
  • WrapPanel
  • ChildWindow
  • DatePickerTextBox
  • TabPanel

Silverliht "Out of the Browser"

MS 版 Chrome Application + Google Gears ですね。以前予想したようにブラウザーからデタッチ(切り離し)されつつも Sandbox で動作するアプリが作れるようになりました。

その他では、SaveFileDialog(分離ストレージ以外のフォルダーにファイルを保存可能)もサポートされています。ClearType サポートなどテキストレンダリング系や、Web Service 関連機能も進化しているようです(Web Serviceはこちらの解説が詳しいです)。
SEO Support や N-Tier data Support などのおもしろそうなフィーチャーも紹介されていました。

(追記)N-Tier data Support に関しては、Microsoft .NET RIA Services March '09 Previewにpdfのドキュメントがありました。シリアライズなどを意識せずに、Server Tier と Presentation Tier でエンティティを共有したりする技術みたいです。クライアントサイドでは、型とかデータ長などのチェックをして、サーバーサイドでビジネスロジックを含むチェックをするという作りをしなくてもよくなって、生産性高まり、プログラムがすっきりするようです。

メディア系を中心に多くの機能が追加され、WPF のフィーチャーも多く取り込まれ、RIA 関係技術の集大成となった感のある Silverlight。MS 内でも WPF よりも戦略的に重要なフレームワークとして位置づけられているように思われます。