XAMLデザインビューの削除
Silverlight 3 Toolsでの大きな変更点にVisual StudioのXAMLデザインビューの削除があります。Silverlight 2 Toolsや3 Toolsのベータ版までは、XAMLの内容をVisual Studioのデザインビューで確認することができましたが、Silverlight 3 Toolsの正式版ではこれが削除されています。このためVisual Studioだけではデザイン時にXAMLのプレビューを行うことができなくなりました。
どうやら、前述のナビゲーションアプリケーションなどの新しいXAMLへの対応が不十分であったため、今後のリリースに力を入れるためにSilverlight 3 Toolsではリリース直前に削除されたようです。もともとVisual StudioのXAMLデザインビューはおまけ程度の再現力しかなかったため、きっぱりと対応をあきらめVisual Studio 2010への対応に力を入れたのは正しい判断だったと筆者は考えています。
正式にはデザインビューはサポートされなくなりましたが、実際はサポートされていないだけでSilverlight 2 Tools相当のデザインビューは削除されずに残っています。
図5はSilverlight 2 ToolsでXAMLデザインビューを表示する方法です。ただこの方法で表示されるデザイナービューは前述したとおりおまけ程度の再現力しかありませんのであまり期待しない方がいいでしょう。
マウスカーソルをVisual StudioのXAMLエディターの「1」の位置に持って行くと「2」のようにアイコンが変化します。「2」の状態のままドラックして引き上げると「3」の画面が表示されます。表示された「Resume loading the designe」のリンクをクリックすると隠されていたデザインビューが表示されます。
ASP.NET Silverlight コントロールの削除
Silverlight 3 SDKからは、Silverlight 2 SDKにはあった、ASP.NETのSilverlightコントロール(asp:silverlightとasp:media)が削除されています。このコントロールは単にSilverlightのobjectタグをJavaScriptで記述するためのものでしたが、ASP.NETで利用する場合とほかのサーバー技術で利用する場合で記述の方法が違ったり、プログラマがもっとフレキシブルにobjectタグを書けた方がいいのではないかという考えからリリースからは削除されました。
例えばリスト1はSilverlightコントロールを利用したSilverlight呼び出しの例です。
<asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:Silverlight ID="Silverlight1" runat="server" Width="100%" Height="100%" Source="ClientBin/SilverlightApplication3.xap" OnPluginError="onSilverlightError" BackColor="white" MinimumVersion="3.0" AutoUpgrade="true"> <PluginNotInstalledTemplate> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="マイクロソフト Silverlight を入手" style="border-style:none"/> </a> </PluginNotInstalledTemplate> </asp:Silverlight>
SilverlightコントロールはScriptManagerコントロールが出力するJavascriptを利用するため、必ずページ内にScriptManager(Proxy)を配置する必要があります。
Silverlighコントロールの詳しい説明はMSDNのSystem.Web.Silverlightを参照してください。
この例では画面いっぱいにClientBin以下にあるSilverlightアプリケーションを表示しています。またSilverlight内でエラーが発生した際に実行するJavascriptの関数や接続したユーザーがSilverlightをインストールしていない場合のナビゲーションなどを設定しています。
続いてobjectタグを記述したバージョンを確認しましょう。
<div id="silverlightControlHost"> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/SilverlightApplication3.xap"/> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="minRuntimeVersion" value="3.0.40624.0" /> <param name="autoUpgrade" value="true" /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="マイクロソフト Silverlight を入手" style="border-style:none"/> </a> </object> </div>
objectタグの記述の違いこそあれ、Silverlightアプリケーションの指定やエラー時の記述のほとんどはasp:Silverlightで記述したものと変わらないことが分かると思います。