ページ

2011年9月29日木曜日

[WP7.1] Windows Phone SDK 7.1 のリリースノートに書かれてることで気になったところ

Windows Phone SDK 7.1 の正式版がリリースされましたね。
とりあえず、リリースノート を見てみました。(RC のときはリリースノートは英語のままでしたが、今回はリリースノートも日本語に翻訳されてます)

で、気になったところ。

「その他」のところにちょこっと書かれてるんですが、

  • 「HttpWebRequest オブジェクトの Response.ContentLength プロパティは、65,536 バイトを超えるすべての応答に対して 0xFFFFFFFF を返します」
    ってなんかすごいなw ContentLength プロパティって long(Int64)なのに上限が 65,536って。まぁ、HTTP 的に ContentLength は必ずしもあてに出来るプロパティじゃないから別にいいってことだろうけど。
  • 「XmlnsDefinitionAttribute クラスの使用はサポートされていません。使用すると、アプリケーションが応答を停止する場合があります」
    例外が出るとかじゃなく、アプリがだんまりになっちゃうってこと?まぁ、XmlnsDefinitionAttribute って使ったこと無いけど。
  • 「複数行テキスト ボックスでは、改行文字に \r\n ではなく \r を使用します」
    これは RC にも記述がありましたが、\r\n に決め打ちしてると困ることがあるかも。
  • 「XNA Framework レンダリングを使用する ListBox コントロールは、正常にスクロールしません」
    これも RC にも書いてありました。「ScrollViewer.ManipulationMode="Control"」 をつければ OK と。
  • 「Bing、Marketplace 検索、WebBrowser タスク プロパティで、Unicode 文字が正しく機能しない。 この問題を回避するため、タスクは Unicode 文字を使わずに表記してください」
    まじですか?!
    var searchTask = new MarketplaceSearchTask();
    searchTask.SearchQuery = "日本語";
    searchTask.Show();
    RC のエミュレーターでこうやるとバケバケになります。HttpUtility.UrlEncode("日本語") としてもダメです。これがそのまま正式版になっちゃったってこと?(誤訳かもと思って 英語のリリースノート を見てみましたがまったく同じことが書かれてました)
    ”Bing” っていうのは BingMapsTask の SearchTerm のこと?最近せっかく日本の地図がまともになったのに、BingMapTask で日本語検索できないとしたらがっかりだなぁ。
    WebBrowserTask ってのはどういうことだろ?
    var bworserTask = new WebBrowserTask();
    bworserTask.Uri = new Uri("http://www.bing.com/search?q=" + HttpUtility.UrlEncode("日本語"));
    bworserTask.Show();
    

    ってのが動かないってことは無いよね?(RC ではちゃんと動く。てか、UrlEncode してるんだから Ascii 文字しか使ってないし)WebBrowserTask には他に文字列使うプロパティは無いと思うんだけど?(URL プロパティは Obsolete になってる)

続く 「互換性に影響する変更点」 には結構いろいろ書かれてます。こちらは「理由」や「対処方法」も書かれてますし、一度は読んどいた方がいいかも。

あと、「元に戻された互換性に影響する変更点」 の 「既定では、画像のデコードは UI スレッドではなくバックグラウンド スレッドで発生します」 というのがすごくわかりにくい。RC のリリースノートには 「バックグラウンドスレッドでするようにしたけど、リリース版では元に戻す」 と書いてあったので、7.0 ではデフォルトで UI スレッド → 7.1 ベータではデフォルトでバックグラウンドスレッド → 7.1 正式版ではデフォルトで UI スレッドに戻った、ということなんだと思います。で、バックグラウンドスレッドでやりたいときは自分で BackgroundCreation と指定すればいいということなんじゃないかと。

2011年9月28日水曜日

[WP7] @IT:たった30分で完成。初めてのWindows Phone 7.5アプリ開発

@IT に記事が掲載されました。
たった30分で完成。初めてのWindows Phone 7.5アプリ開発

「WPFやSilverlightでの開発経験がある方に向けて、Windows Phoneでのアプリケーション開発がどのようなものかを紹介」という内容です。よろしければぜひご一読ください。

2011年9月9日金曜日

[WP7] Silverlight for Windows Phone Toolkit August 2011 のサンプルをビルドする

デブサミ関西のセッションでも 「Silverlight for Windows Phone Toolkit はとっても便利」 という話をしたんですが、サンプルを見てみようとするとうまく動かなかったりするので、書いときます。(将来のリリースでは修正されるといいなぁ)

まずは Silverlight for Windows Phone Toolkit August 2011 のソース & サンプルをダウンロード。
http://silverlight.codeplex.com/releases/view/71550
ここの 「Silverlight for Windows Phone Toolkit Source & Sample - Aug 2011.zip」 ってやつです。

ダウンロードして Windows Phone SDK 7.1 が入った環境で PhoneToolkit.sln を読み込んでビルドすれば OK、、、だといいんですが、エラーや警告がでます。

まず、「Xap パッケージ化に失敗しました。オブジェクト参照がオブジェクト インスタンスに設定されていません。」 というエラーが発生する件。
これは、PhoneToolkitSample プロジェクトの Image フォルダにある画像ファイルのファイル名が文字化けしているのが原因です。
私の環境だと København.jpg と Mürren.jpg が文字化けしてました。
ファイル名をリネームしてやるなりして、ちゃんと参照できるようにしてあげてください。

それから、「Silverlight for Windows Phone Toolkit - Aug 2011.msi」 の方でセットアップした Microsoft.Phone.Controls.Toolkit.dll には PhoneTextBox が入っていないようです。なのでこの dll を参照した状態では PhoneToolkitSample をビルドすることはできません。
もし PhoneTextBox 関連のエラーが出るようなら PhoneToolkitSample の 参照設定でいったん Microsoft.Phone.Controls.Toolkit への参照を削除し、参照の追加で 「Microsoft.Phone.Control.Toolkit プロジェクト」 への参照を追加しなおしてください。dll への参照ではなくて、プロジェクトへの参照です。「Silverlight for Windows Phone Toolkit Source & Sample - Aug 2011.zip」 に入っているソースコード版の Toolkit には PhoneTextBox がちゃんとあるのでこれでビルドできるようになります。

あと、「プロジェクト 'Microsoft.Phone.Controls.Toolkit' を参照できません。参照されるプロジェクトは、異なるフレームワーク ファミリー (Silverlight) を対象としています。」 という警告が出ます。これを消すには Microsoft.Phone.Controls.Toolkit.Design プロジェクトと Microsoft.Phone.Controls.Toolkit.VisualStudio.Design プロジェクトの参照設定にある Microsoft.Phone.Controls.Toolkit への参照を一度削除し、Microsoft.Phone.Controls.Toolkit プロジェクトをビルドした結果できあがる Microsoft.Phone.Controls.Toolkit.dll (Bin フォルダの下にあります)への参照を追加してやれば OK です。(こっちはプロジェクトの参照ではダメで、dll への参照にしてやる必要があります)

これでサンプルを動かすことが出来るんじゃないかと思います。
(他にも警告が出ていますが、それらは無視しても大丈夫そう)

[イベント] デブサミ関西に行ってきた

2011/9/7 神戸で開催された Developers Summit 2011 Kanai に行ってきました。
今回は 「【B-5】 ついに日本上陸! Windows Phone 7.5 アプリケーション開発」 というタイトルでセッションを担当させて頂きました。
もちろん、スピーカーとしてだけでなく、他のセッションも全部聞くつもりです。。。

。。。と、思ってたんですよ。
しかし、最近仕事がいろいろと忙しく、結局この日も担当セッションのちょっと前に到着、到着後もスピーカー控え室でお仕事の続き、となってしまいまったく他のセッションを受講することはできませんでした。とっても残念。

さて、自分のセッションについて。
内容自体は 2011/6/19 の VSUG DAY 2011 Summer のときのセッション 「はじめてのWindows Phone 7 アプリケーション開発」 のアップデート版です。VSUG DAY のときは 「Mango ではこうなる予定」 という状況でしたが、その後 8/18 に Windows Phone SDK 7.1 RC 日本語版 がリリースされ、8/25 には世界初の(そして、現時点では世界唯一の) Windows Phone 7.5 搭載機 IS12T が AU からリリースされ、という状況を受けてのアップデートです。セッション資料も VSUG DAY のときに作ったものを細々とアップデートして使いました。(使い回しともいいますが(笑))
こういう風に同じような内容のセッションを 2回やるというのは今回が初めてでした。やっぱり 2回目になるとかなり余裕を持ってお話できますね。まぁ、自分に余裕があると感じただけで、聞かれている方がわかりやすかったのかどうかは何とも言えませんが(汗)
そうそう、会場に行って初めて知ったんですが、手元を映すカメラが用意されてました。これで WP7.5 の実機を映しながらデモを行うことができました。ただ、こういう機材があるって知らなかったので、あんまり活用できてなかったですね。すっかり頭の中ではエミュレーターだけでデモをするつもりで段取り作っちゃってましたから。今にして思うとせっかく実機を映せるんだからもっと使えばよかったなぁ。
Twitter でもつぶやきましたが、「【A-5】 関西ITコミュニティ集まれ!デブサミ名物コミュニティLT大会」 と被ってたので、ほとんどの人はそっちに行くかなぁと思ってたんですが、想像以上にたくさんの方に来て頂けました。もちろん、LT 大会はもっとたくさんの人だったんでしょうけどw
セッションに参加してくださった皆さん、ありがとうございました。ちょっとでも参考になれば幸いです。

今回のデブサミ関西のセッション資料は以下にアップロードされています。私のもしておきました。
http://www.slideshare.net/event/developers-summit-2011-kansai

終了後は懇親会。
大いに盛り上がりました。
二次会にも参加して夜遅くに帰宅。

他の方のセッションにまったく参加できなかったのは残念でしたが、それでもとても楽しい一日でした。
スピーカーの皆さん、スタップの皆さん、参加された皆さん、お疲れ様でした。そして、ありがとうございました。