Guthrie氏のブログを翻訳したものです。氏の許可を得て転載しています。1の基調講演を行う機会がありました(ここでそのビデオが見られます)。RCツールのリリースを発表しました。7アプリケーションを構築するために、現在SilverlightとXNAをどのように使用できるのかということを初めて話す機会も持てました。7のコード・デモを行いました。World”アプリケーションと“Twitter”のデータ・スナッキング(data-snacking)アプリケーションです。これらのアプリケーションは簡単に作成でき、数分で出来上がります。以下はご自分のマシン上でビルドするためのステップです。[注:ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。CTPを必ずインストールしてください。RCへのアドオンが含まれています。RC起動し、“ファイル”->“新しいプロジェクト”を選択します。Phone”という新しいカテゴリが含まれたプロジェクト・テンプレートのタイプの一覧が通常どおり表示されます。最初のCTPでは、2つのアプリケーションのプロジェクト・テンプレートがあります。Application”テンプレートで、これを今回の例で使用します。Application”テンプレートで、これはマスター/詳細Phoneアプリケーションのための基本的なレイアウトを提供します。図1新しいプロジェクトを作成後、そのデザイン画面とマークアップが表示されます。UIが表示されていて、アプリケーションの開発中に、どのように表示されるのかを簡単に確認できる点に注目してください。Studioでなじみのある、ツールボックス、ソリューション・エクスプローラ、プロパティのペインもあります。図2HelloWorldアプリケーションでは、ツールボックスからテキストボックスとボタンを追加するところから始めます。Webおよびデスクトップ上のSilverlightに対して、同じデザイン体験が得られることをご確認ください。デザイン画面上でコントロールを簡単にリサイズ、配置、整列できます。プロパティの変更はプロパティ・ペインで簡単に行えます。world”に変更します。図3その後、ボタンをダブルクリックし、コードビハインド・ファイル(MainPage.xaml.cs)にイベント・ハンドラを作成して、コードを記述します。図4まずアプリケーションのタイトル・テキストを変更します。このプロジェクト・テンプレートにはtextBlockListTitleという名前のテキストブロックとして、このタイトルが含まれています(“list”という言葉が含まれている現在の名前は間違っています。これは最終リリースで修正されます)。これに対してコードを書くときには、利用可能なメンバがIntelliSenseに表示されます。”+テキストボックスusernameのTextプロパティを設定します。Worldアプリケーションに対して、すべての必要なコードがそろいました。アプリケーションを配置および起動させるためには2つの方法があります。実際のデバイスそのものへ配置するか、またはビルトインのPhoneエミュレータを使用できます。図6Phoneエミュレータは実際、PhoneのOSをバーチャル・マシン内で動かしているため、デバイス上で行っているようにエミュレータでも同じ開発を体験できます。このサンプルでは、ただ[F5]を押すだけで、エミュレータを使用したアプリケーションのデバッグを開始できます。world”アプリケーションをデバイス上で動いているのとまったく同じように実行します。図7エミュレータのツールバーからエミュレータ実行の設定変更が可能なことをご確認ください。これは右上にあるフローティングしているツールバーです。これにはエミュレータをリサイズ/ズームする機能や、2つの回転ボタンがあります。ズームではアプリケーションを非常に細かな詳細までズームできます。図8方向ボタンでは、横長モードでアプリケーションがどのように見えるかを簡単に確認できます(方向変更サポートはデフォルトのテンプレートにビルトインされたばかりです)。図9エミュレータは[F5]のデバッグ・セッション間で再利用できる点に注目です。毎回の配置でエミュレータを起動する必要がないということです。再利用したいのにエミュレータをたまたまシャットダウンしてしまったときのためにダイアログを追加しました。実行しているエミュレータ上からアプリケーション起動では、配置と実行に3秒しかかかりません。Worldアプリケーションでは、“username”テキストボックスをクリックしてフォーカスを移動させましょう。これによりソフトウェア入力パネル(SIP)が自動的に開きます。メッセージを入力することも、エミュレータを使用しているので、テキストをタイピングすることもできます。7のマルチタッチで動作するため、もしタッチスクリーンがあるなら、スクリーンを直接押すことによって、デバイスの反応を試すことができます。10”に更新されます。Studioでの体験をPhone開発にも提供します。ボタンのイベント・ハンドラにブレークポイントを設定でき、再度ボタンを押せば、デバッガにより中断できます。World”だけでやめるのではなく、続いては簡単なTwitterクライアント・アプリケーションに進んでみましょう。デザイン画面に戻って、ListBoxを追加します。このとき、デザイナのスナップラインを使用して、デバイスのスクリーンにフィットし、Phoneのスクリーン領域を最大利用するようにします。ボタンを“Lookup”という名前に変更します。World”のコード行を削除して、Twitterのフィードを非同期にダウンロードするWebClientネットワーク・クラスを利用します。これには合計で3行のコードが必要です。非同期のDownloadStringAsyncメソッドの呼び出しそのDownloadStringAsync呼び出しでは、“username”のテキストボックスからテキストを取り出し、TwitterのUriにクエリ文字列として追加して渡します。このフィードはXML形式により各ユーザーの最新の投稿を取り出します。この呼び出しが完了すると、DownloadStringCompletedイベントが発生し、記述しておいたtwitter_DownloadStringCompletedイベント・ハンドラが呼び出されます。図14Twitterの呼び出しから戻ってきた結果はXMLベースの形式になっています。XMLにより、XMLフィードのデータにアクセスするシンプルなクエリを作れます。このライブラリを使用するには、まずアセンブリへの参照を追加する必要があります(ソリューション・エクスプローラの参照設定フォルダ上で右クリックし、“参照の追加”を選択します)。System.Xml.Linq”名前空間の参照を追加します。図16そしてプロジェクトにTwitterItemという簡単なヘルパー・クラスを追加します。TwitterItemには3つの文字列メンバ、UserName、Message、ImageSourceを持たせます。XMLを使用してTwitterから戻ってきたXML文字列をパースします。クエリで行うことは、クエリ文字列として引き渡したユーザー名によって、各Twitter投稿の3つのキー情報を切り出します。それらは、プロフィール画像のImageSource、つぶやきであるMessage、そしてUserNameです。XMLの各つぶやきに対して、Linqクエリから返されたIEnumerable<XElement>の中に新しいTwitterItemを作成します。生成されたTwitterItemのシーケンスを、ListBoxのItemsSourceプロパティに割り当てます。図18アプリケーションを完成させるには、もう1つステップが必要です。Main.xamlファイルで、ListBoxにItemTemplateを追加します。デモでは、ユーザーのプロフィール画像やつぶやき、およびユーザー名をデータバインドにより表示する、シンプルなテンプレートを使用しました。/></StackPanel></StackPanel></DataTemplate></ListBox.ItemTemplate></ListBox>これで、再度[F5]を押すと、エミュレータを再利用し、アプリケーションを再実行できます。アプリケーションが起動し、Twitterのユーザー名を入力してボタンを押すと結果が見られます。私のTwitterユーザー名(scottgu)を使用してみましょう。ListBoxにTwitterItemの結果が得られます。図19マウスを使って(タッチスクリーン・デバイスの場合には指で)、ListBoxの項目をスクロールしてみてください。エミュレータ内ではとても速く動くことが分かります。これはエミュレータがハードウェア・アクセラレートを使うためで、実際のPhoneハードウェア上で得られるのと同じくらい高速なパフォーマンスがでます。Phoneアプリケーションを非常に簡単で楽しく構築できるようになります。Fishなど)が過去数週間で構築したキラー・アプリケーションのプロトタイプをいくつか公開しました。1基調講演でそれらの実際の動きが確認できます。7におけるSilverlight利用の将来性とポテンシャルを見せ始めていると思います。この後、数週間、数カ月にわたり、多くのブログ投稿でよりたくさんのものをカバーしていく予定です。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。