2009/07/11のブログです。


昨日、私はSilverlight 3の実力とExpression BlendのRelease Candidate版に
ついてアナウンスしました。


Silverlight 3の新しい特徴と改善点はブラウザ外でSilverlightアプリケー
ションの実行をサポートします。H.264/AAC/MP4 media playbackやGPU
サポート、pixel shadersを含むpixel API、perspective 3D、Silverlight
アプリケーション間のローカルメッセージング、改良されたビジネス
オブジェクトフレームワーク、SEOサポート、ベターなテキストクオリティ
などがあげられます。継続して革新を続けているVisusual Studioや
Expression Blend、Silverlight 3はcutting-edge Rich Internet Applications
やメディア体験をつくれるように.NET開発者を手厚くサポートします。

本日、私はこれらの特徴をより深く紹介しようと思います。


Perspective 3D


Perspective 3D Silverlightで2D要素から3D体験をつくれるよう開発者を
サポートします。Perspective 3Dはスクリーンのreal estateの操作性も
大きく改善しています。改良された視覚的効果とスクリーンのユーティラ
イズをどのように使っているかのシンプルなイメージビューを紹介します。
同じタイミングで示すのは、メインのイメージに完全なresolutionnを、
パースペクティブビューで片方または複数のイメージをあげているものです。


3Dプロジェクションのイメージを与えることで、ImageのProjectionプロパティ
で、PlaneProjectionをセットすることができます。PlaneProjectionは
あたかも3D空間にいるような要素を扱えるようにプロパティをセットします。
RotationYのプロパティを70にしてオブジェクトをY-Axisに沿って垂直に
70度に回転させます。これはあたかも回転がスクリーン上でperpendicular
に回転しているように作ったエレメントが現れるような効果があります。
次に、私たちは他のイメージとして正しくルームを作ってエレメントを
移動したいと考えます。これをするために、私たちは、GlobalOffsetXや
GlobalOffsetZプロパティをセットします。イベント作用をセットして、
パースペクティブ3Dのエレメントを設定するようにして、パースペクティブ
3D DataGridやTextBoxが3Dの変形に適合して完全に機能します。
最後にアプリケーションになるようにして、私たちは、4つのイメージを
わずかな角度で変形して進めます。イメージは左右に移動して異なる
GlobalOffsetXを左右に移動させます。

<UserControl x:Class="P3DSample.MainPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation "

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml ">

<Grid x:Name="LayoutRoot" Background="Black">

<Image Source="Image01.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image02.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image03.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image04.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image00.jpg" Stretch="None" />

</Grid>

</UserControl>


最終的なイメージは以下のとおりです。


Databinding Improvements

ElementNameバインディングは、開発者にUIElementをバインドし、イベント
ハンドラを記述する替わりにXAMLを定義します。Silverlight 3では、新しい
BindクラスにElementNameと呼ばれる新しいプロパティを用意しています。
ElementNameがセットされると、バインディングエンジンは特定のエレメント
をバインディングソースとして利用します。Pathプロパティはソース上の
プロパティを参照してUIElementをバインドします。もしElementNameの
ポイントがDependencyPropertyへのポイントにセットされるとバインディング
エンジンはDependencyPropertyの変化をリッスンし、バインディングの更新に
そって対応します。ここにXAMLセグメントを記載し、Sliderコントロールが
ElementNameバインディングを利用している様子のイメージを紹介します。


<Grid x:Name="LayoutRoot" Background="Black">

<Grid.RowDefinitions>

<RowDefinition/>

<RowDefinition Height="50"/>

</Grid.RowDefinitions>

<Image Source="Image01.jpg" Stretch="None" >

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image02.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="-70" GlobalOffsetX="-225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image03.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="300" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image04.jpg" Stretch="None">

<Image.Projection>

<PlaneProjection RotationY="70" GlobalOffsetX="225" GlobalOffsetZ="-100"/>

</Image.Projection>

</Image>

<Image Source="Image00.jpg" Stretch="None" Opacity="{Binding ElementName=slider, Path=Value}" />

<Slider x:Name="slider" Grid.Row="1" Width="200" Maximum="1" Minimum="0" />

</Grid>


XAMLによるUIのイメージを紹介しました。slider changesを移動することでBlue Dragonの
イメージが完全にopaqueに透過されるようopacityを変更しています。

Out of Browser Support


Silverlightのブラウザ外部のサポートで、Silverlightの生成を
開発者が作れる点をサポートしました。これはブラウザ外部で
アプリケーションの実行を許容し、アプリケーションのAppManifest.xml
ファイルを編集できます。VisualStudioで、このファイルはソリューション
エクスプローラのプロパティノードに位置し、AppManifest.xmlファイルは
以下のように記述できます。


<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment "

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml " >

<Deployment.Parts>

</Deployment.Parts>

<Deployment.OutOfBrowserSettings ShortName="My Silverlight Application">

<OutOfBrowserSettings>

<OutOfBrowserSettings.WindowSettings>

<WindowSettings Title="My Silverlight Application" />

</OutOfBrowserSettings.WindowSettings>

<OutOfBrowserSettings.Blurb>Description of my app</OutOfBrowserSettings.Blurb>

</OutOfBrowserSettings>

</Deployment.OutOfBrowserSettings>

</Deployment>


みなさんがアプリケーションを実行するとき、右クリックのコンテキストメニューで、
“Install My Silverlight Application onto this computer…”のような表示を
したいときがあると思います。これは以下のように、左の隅でコンテキストメニューを
みることができます。

もし皆さんがメニューアイテムをクリックして、みなさんのマシンにアプリケーション
をインストールしたいとします。以下のようにブラウザ外部からみることができます。


みなさんは ブラウザのバージョンの外部でアプリケーションのバージョンを閉じたいと
します。もしスタートメニューを開いたら、スタートからプログラムでアプリケーション
を起動できるショートカットを見つけることができると思います。皆さんは
ネットワークにつなげなくてもアプリケーションを起動することができます。


これらがSilverlight3の特徴です。より詳細な情報はこちらからごらんできます。

Namaste!