Visual Studio 8.0 β2からSilverlightアプリケーションをする方法として一番簡単なものは、Silverlightプロジェクトをアクティブにしてデバッグ実行すること。Silverlightアプリケーション作成ウィザードで生成されたテストページをてブラウザがローカルファイルとして読み込み、ブラウザとデバッガが通信してデバッグできる。
しかし、BrowserHttpWebRequestクラスで通信しようとすると問題が起きる。クロスサイトスプリクティング防止のため、ローカルファイルとして読み込まれたページから同クラスを用いた通信はできないよう制限されているので、正常ロジックを通すことができない。
そこで、テストページをローカルファイルとしてではなくHTTP通信経路で取得するようにして、そのページをデバッガで追うための手順をwebで探した。
ところが本家の手順を踏んでもまっさらなページが表示されるだけでデバッグできない。他の情報を当たってもテキトーな方法を書いたものしかみつからない(“ここ”など)。困ってるのは自分だけなのなぁ、と試行錯誤と情報の断片の掻き集めとを続けて、ようやくそれらしい方法がわかった。
使用したもの
(以下は http://silverlight.org/GetStarted/ からリンクが張られている)
- Visual Studio 2008 β2
- Silverlight 1.1 Alpha Refresh
- Microsoft ASP.NET Futures (July 2007)
- Microsoft Silverlight Tools Alpha Refresh for Visual Studio (July 2007)
デバッグ手順
-
Visual StudioでSilverlightプロジェクトを含むソリューションを開く
-
ソリューションエクスプローラで、ソリューション項目を右クリックして、[Add] – [New Project...]を選択
-
ASP.Net AJAX Features Web Applicationプロジェクトを作成
-
ソリューションエクスプローラで、作成した ASP.NET プロジェクト項目を右クリックして、コンテキストメニューから Add Silverlight Link を選択
-
確認ダイアログで OK をクリック
-
default.aspx をダブルクリックしてコードをエディタに表示させる
-
<body>開始タグに続けて次のコードを追加
-
ASP.NET プロジェクト項目で右クリックし、Properties をクリック
-
Webページで、Specific Port を選択し、適当なポート(22000)を指定して通信ポートを固定
-
Silverlightアプリケーションの通信部分のコードに記述したURLをテスト用に書き換える。(http://example.com/data.xml -> http://localhost:22000/data.xml)
-
ASP.NET プロジェクト項目で右クリックし、Set as Startup Project をクリック
-
default.aspx を右クリックして、Set as Start Page をクリック
-
F5でデバッガ起動。Silverlight デバッグを有効にしたいかどうか確認されたら、Yes をクリック
これでSilverlightアプリケーションのコードをデバッガで追えるようになっているはず。
コメントはまだありません