120331 silverlight5新機能早めぐり

52
Silverlight5 新新新新新新新 新新 新新 (@tanaka_733)
  • Upload

    -
  • Category

    Documents

  • view

    2.242
  • download

    6

Transcript of 120331 silverlight5新機能早めぐり

Page 1: 120331 silverlight5新機能早めぐり

Silverlight5 新機能早めぐり

田中 孝佳 (@tanaka_733)

Page 2: 120331 silverlight5新機能早めぐり

自己紹介

Twitter: @tanaka_733お仕事–最近お仕事では Silverlight 触ってないです

趣味で WP7 開発はしてますが– PaaS の開発をしています (Azure じゃないよ )– Java に加えて Node.js や Ruby 始めました

ブログやってます ( 最近テーマがカオス w)–銀の光と碧い空– http://techblog.hilife-jp.info/

Page 3: 120331 silverlight5新機能早めぐり

今日のセッションは・・・

以前ブログに書いた記事– Silverlight 5 新機能のまとめ– http://

techblog.hilife-jp.info/2012/01/silverlight-5.html

これをもとに、新機能をおさらいしようというセッションです

Page 4: 120331 silverlight5新機能早めぐり

サンプルアプリを公開してます

アプリはこちら– http://apps.hilife-jp.info/Silverlight5Samples/– 動画が重いので、 TrickPlay サンプルは除いています– Web サーバーは nginx を使ってます

GitHub に公開中– https://github.com/tanaka-takayoshi/Silverlight5Samp

les– 動画・音声コンテンツは除いています– Pull Request 歓迎– CodePlex の使い方がわかったら移すかも

Git めんどい、という方はこちらの zip を– http://

dl.dropbox.com/u/2842933/Silverlight5Samples.zip

Page 5: 120331 silverlight5新機能早めぐり

Silverlight5 のライフサイクルお仕事に使うのなら知っておくべき情報

Page 6: 120331 silverlight5新機能早めぐり

Silverlight5 のライフサイクル

Silverlight はツール–個別のタスクもしくは限定されたタスクを補助

するユーティリティーまたは機能メジャーバージョンのツールは最低限、サ

ポート終了の 12 ヶ月前に告知Silverlight ランタイムと Silverlight SDK

の最新版に対するアップグレードを提供–下位互換性がある–脆弱性対策・パフォーマンス改善を行う

Page 7: 120331 silverlight5新機能早めぐり

Silverlight5 のライフサイクル

以下のうちどちらか早い方– 2021 年 12 月 10 日–次期バージョン (IE10?) のブラウザのサポー

ト ライフサイクル終了ブラウザごとのサポート対応は、

ブラウザの進化に合わせて更新

Page 8: 120331 silverlight5新機能早めぐり

Silverlight5 のサポートブラウザ

Windows– 1.6GHz 以上の CPU かつ 512MB 以上の RAM– Win7 SP1 or Server 2008 R2 SP1 は

64bit ブラウザに対応– IE7~9– FireFox3.6+– Chrome12+

Mac– 1.83GHz 以上の CPU かつ 512MB 以上の RAM– FireFox3.6+– Safari4+

http://www.microsoft.com/getsilverlight/locale/en-us/html/installation-win-SL5.html

Page 9: 120331 silverlight5新機能早めぐり

メディアサポートの改善メディアサポートは Silverlight の強みの 1 つ

Page 10: 120331 silverlight5新機能早めぐり

低レイテンシなオーディオの再生

効果音が使いやすくなりました今まで–MediaElement のみ–起動に時間がかかる

これから–Microsoft.Xna.Framework.Audio.SoundEf

fect クラスを使えば OK

Page 11: 120331 silverlight5新機能早めぐり

サンプル

SoundEffectView.xaml

音声ファイルのビルドアクションは「リソース」でSoundEffectInstance を using 節でくくってはだめ

Page 12: 120331 silverlight5新機能早めぐり

再生速度の変更

MediaElement で速度が変更できます–いわゆる TrickPlay

PlayBackRate プロパティで変更–ドキュメント上、値の制限はなし

変更すると RateChanged イベントが発生

サンプル– TricPlayView.xaml

Page 13: 120331 silverlight5新機能早めぐり

その他

H.264 形式メディアの H/W デコーディング– H.264 形式でプロテクトされていないメディアのデ

コーディングに関して、パフォーマンスが改善しました

DRM Key のローテーティングと Live TV の再生– DRM Key のローテーティングを可能にし、

Live TV の再生を可能にしました。アプリケーションによるメディアの制限– DRM 配信+クライアント側の X509 認証によって、

指定したアプリケーションだけが再生可能なメディアを配信できる。

Page 14: 120331 silverlight5新機能早めぐり

テキストサポートの改善テキストの配置の自由度が増しました

Page 16: 120331 silverlight5新機能早めぐり

RichTextBlock  とオーバーフロー

読み取り専用のリッチテキストのためのRichTextBlock コントロール

RichTextBlock に収まらないコンテンツを RichTextBlockOverflow で表示

http://techblog.hilife-jp.info/2011/09/silverlight-5-6-advancements-in-text.html

Page 17: 120331 silverlight5新機能早めぐり

サンプル

OverFlowView.xamlこういう配置が可能になります

Page 18: 120331 silverlight5新機能早めぐり

そのほか

OpenType と Pixel Snapped – Text テキストをより鮮明にします

外字の表示–外字の表示がより安定的に可能に–参考記事

「お名前を正しく表示できるSilverlight」

印刷–ベクター印刷が可能に

Page 19: 120331 silverlight5新機能早めぐり

次世代ビジネスアプリケーションの構築

Silverlight5 の肝となる新機能

Page 20: 120331 silverlight5新機能早めぐり

PivotViewer

PivotViewer が SDK に入りました大量のデータを可視化使い方はちょっとめんどい・・・–それに見合うだけの価値あり

参考記事– http://tonychampion.net/blog/index.php/

series/pivotviewer-basics/

–※英語です

Page 21: 120331 silverlight5新機能早めぐり

PivotViewer のサンプル

PivotViewer.xaml

Page 22: 120331 silverlight5新機能早めぐり

ダブルクリックの検出

SL4 まではダブルクリックイベントがありませんでした。。。

実現する場合はアプリ側で対応– Click イベントで直前のイベントの

ソースと時刻を保持しておいて比較SL5 では、 MouseButtonEventArgs に

ClickCount プロパティが追加–MouseLeftButtonDown  でチェック

Page 23: 120331 silverlight5新機能早めぐり

ダブルクリックのサンプル

DoubleClickView.xaml

イベントハンドラではなく、コマンドっぽく使いたい場合は・・・

Page 26: 120331 silverlight5新機能早めぐり

サンプル

ItemSearchView.xaml

ViewModel

ViewModel のDescription プロパティを検索キーに指定

Page 28: 120331 silverlight5新機能早めぐり

DataBinding 関連WPF に近づいた DataBinding

Page 29: 120331 silverlight5新機能早めぐり

の前に DataBinding のおさらい

JavaFX(Swing に代わる次世代 JavaUI)や knockout.js にも採用されている概念

View Data

依存関係プロパティ プロパティ

Binding

Page 30: 120331 silverlight5新機能早めぐり

依存関係プロパティの役割とは?

他のデータに基づいてプロパティの値を計算する方法を提供すること

他のデータって?–ユーザー設定などの外部プロパティ– Resource や Style などのテンプレート–他のコントロールのプロパティ–そして、 DataBinding 対象のクラス

Page 31: 120331 silverlight5新機能早めぐり

Silverlight における Binding のモード

OneTime– Binding 時に Data のプロパティで依存関係プロパティを更新

OneWay– OneTime に加え、

Data のプロパティの変更時に依存関係プロパティを更新

TwoWay– OneWay に加え、依存関係プロパティの変更時にData のプロパティを更新

Page 32: 120331 silverlight5新機能早めぐり

Silverlight における Binding のモード

View Data

依存関係プロパティ プロパティ

Binding 時に Reflection でデータ取得

INotifyPropertyChanged を実装し、OneWay もしくは TwoWay ならば、

プロパティの変更通知を受け取る

TwoWay 時は View 側の変更でData のプロパティをReflection により変更

Page 33: 120331 silverlight5新機能早めぐり

DataBinding のデバッグ

XAML でバインディングにブレークポイントを設定して、データ バインディングをデバッグ

Page 34: 120331 silverlight5新機能早めぐり

DataContextChanged イベント

FrameworkElement.DataContextChanged  イベントで、DataContext が変更された通知を受けることができます

Page 36: 120331 silverlight5新機能早めぐり

UpdateSourceTrigger 列挙体の追加

今までの TextBox– Binding された Text の変更は、

TextBox のフォーカスを抜けたとき–リアルタイム Validation をしたい場合などは面倒

UpdateSourceTrigger にPropertyChanged が追加

サンプル– TextUpdateView.xaml

Page 37: 120331 silverlight5新機能早めぐり

そのほかの機能追加

暗黙的な DataTemplateStyle で Setter.Value  プロパティが

使用可能にカスタムマークアップ拡張– IMarkupExtension(Of T)  インターフェイス

を使用して、カスタムマークアップ拡張を作れます

Page 38: 120331 silverlight5新機能早めぐり

グラフィックの改善3D が使えるようになりました…が、はまりどころが

Page 39: 120331 silverlight5新機能早めぐり

3D グラフィックス

ハードウェア アクセラレーションが適用された 3-D グラフィックを使用する機能を導入

XNA Games Studio 4.0 グラフィックス ライブラリのコアを導入– レンダー ターゲット– XNA ビルトイン エフェクト– 深度 / ステンシル バッファー– マルチ サンプル アンチエイリアシングのサー

フェイス構成設定DrawingSurface コントロールで描画

Page 40: 120331 silverlight5新機能早めぐり

開発するには・・・

さおさんのブログが入り口にいいかと– http://

blog.livedoor.jp/haruka_sao/archives/51953482.html

が、 Express ユーザーは要注意!–そのままだとできません–テンプレートが出てこない・・・– Content の読み込みが鬼門

おすすめしませんが、以下の手順で

Page 41: 120331 silverlight5新機能早めぐり

Express ユーザーが開発するには

サンプルプロジェクトを元にします– Silverligh5 Toolkit をインストール–下記のフォルダの zip を解凍

C:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Toolkit\dec11\Source

–適当に選んで VWD Expres で開く– Content プロジェクトは開かない

VC# Express か テキストエディタで。。。

Page 42: 120331 silverlight5新機能早めぐり

起動するには

URL をファイルパス (file://) ではなく、http:// で開くようにすること– aspx か html をデバッグ起動の対象に指定

最初の起動時は失敗する。–動かした状態で、–右クリック > Silverlight を選択–アクセス許可 タブ–該当 URL の 「 3D グラフィックス : … 」

を許可に設定

Page 43: 120331 silverlight5新機能早めぐり
Page 44: 120331 silverlight5新機能早めぐり

ここから先は時間があれば・・・

Page 45: 120331 silverlight5新機能早めぐり

信頼されたアプリケーションにおける機能の追加

セキュリティ上の制約が緩和されます

Page 46: 120331 silverlight5新機能早めぐり

複数Window のサポート

信頼されたブラウザー外実行アプリケーションで、複数Window を表示可能

非モーダルのダイアログ ボックスなどが作成できます

Page 47: 120331 silverlight5新機能早めぐり

ブラウザ内における完全な信頼

いままでブラウザ外実行でしか使えなかったいくつかの機能がブラウザ内でも使える

WebBrowserNotificationWindow 

Page 48: 120331 silverlight5新機能早めぐり

制限されないファイルシステムへのアクセス

System.IO が使えますファイルシステムのどの場所でも

アクセス可能

Page 49: 120331 silverlight5新機能早めぐり

ネイティブ統合

P/Invoke のサポート

Page 50: 120331 silverlight5新機能早めぐり

Silverlight5 のパフォーマンス改善パフォーマンスもあがりました

Page 51: 120331 silverlight5新機能早めぐり

パフォーマンス改善一覧

ネットワークのバック グラウンド スレッドを使用することによって、ネットワークの待機時間が削減されます。 これは、クライアントの HTTP Web 要求を使用するシナリオで有用です。

ユーザー コントロールとリソース ディクショナリの XAML パーサーの改善。

64 ビットのブラウザーのサポート。ハードウェアのデコードと H.264 メディアの保護され

ていないコンテンツでの表示のパフォーマンスが向上します。

Silverlight アプリケーションの起動時間を改善するためのマルチコア JIT のサポート。

Page 52: 120331 silverlight5新機能早めぐり