2011年05月

2011年05月30日

Windows Phone 7:Sql Server Compact Editionを使ってみる

 (以下の記事はWindows Phone 7.1βのものです)

 Windows Phone 7は次期バージョン”Mango”からローカルデータベースが利用可能になる。
 SQL Server Compact Edition(CE)というデータベースでSQLiteのような軽量データベースのようだ。

 「Windows Phone codenamed "Mango" Training Course」にもサンプルがあるが、規模が大きく、データベースの処理だけ簡単に理解というのは難しく感じました。

 というわけで以下に簡単コードを掲載。

DataContextクラスがデータベースを表す



 それでは吉野家のメニューをDB管理する簡単コードを作成します。
 (なぜ吉野家なのかは、完全に趣味です)

 DataContextクラスを利用するには、system.data.linqを参照に加える必要があります。

001


 続いて、以下のUsing句を追加。 

using System.Data.Linq;
using System.Data.Linq.Mapping;
using Microsoft.Phone.Data.Linq.Mapping;


 DataContextクラスを作成。

public class YoshinoyaDataContext : DataContext
{
public Table<Menu> Menu;

public YoshinoyaDataContext(string connection) : base(connection) { }
}


 データベースは一つのテーブルMenuクラスを持っています。
 続いてMenuテーブルを定義。

[Table]
public class Menu
{
[Column(IsPrimaryKey = true)]
public int MenuID { get; set; }

[Column]
public string Name { get; set; }

[Column]
public int Price{ get; set; }
}


 Table、Columnという属性(attribute)を使っています。
 Tableはテーブルを、Columnはそのカラムを表します。MenuIDがプライマリーキーです。
 (この辺はリレーショナルデータベースの知識ですね)

データベースを作成して使用する



 次はデータベースにデータを挿入(insert)して、取得(select)してみましょう。


// DB作成
YoshinoyaDataContext db = new YoshinoyaDataContext("isostore:/yoshinoyaDB.sdf");
if (db.DatabaseExists() == false)
{
  db.CreateDatabase();
}

List<Menu> menus = new List<Menu>
{
  new Menu() { MenuID = 1, Name = "牛丼", Price = 280},
  new Menu() { MenuID = 3, Name = "豚丼", Price = 250},
  new Menu() { MenuID = 2, Name = "卵", Price = 50}
};
// インサート(SubmitChangesを忘れると変更されない)
db.Menu.InsertAllOnSubmit<Menu>(menus);
db.SubmitChanges();

// LINQで取得
var q = from menu in db.Menu
  orderby menu.MenuID
  select menu;

foreach (var tmp_menu in q)
{
  System.Diagnostics.Debug.WriteLine("ID = {0}, Name = {1}, Price = {2}", tmp_menu.MenuID, tmp_menu.Name, tmp_menu.Price);
}


 やはりDBがあるのは良いですね!!

 サンプルソース(要WPDT7.1 Beta)

Windows Phone 7:「Mango」雑感

 Windows Phone 7の次期アップデート「Mango」用のSDKのβ版が利用可能になりました。

 今週末は触り程度しか試せませんでしたが、実機で動かせる日が待ち遠しい機能が満載でした。

001
(色々プロジェクトが増えています)

002
(VBもデフォで利用できます)

 003
(プロジェクトのバージョンは7と7.1の両方が利用可能)

 実機デバッグを試してみると・・・

004
 
Higher version Phone Application is not supported on lower version device.


 実機のバージョンが低いのでサポートされません。
 はやく実機をバージョンアップさせてください。

エミュレーターを日本語にする



 エミュレーターの設定は起動後のSettingから日本語に変更可能です。
 (これだと起動毎に言語設定を変える必要があるのでもっと良い方法があるかも)

005


 「Settings」を選択。

006


 「region+language」

007


 日本語を選択。
 「Tap here to accept changes and restart your phone」をクリック。
 するとエミュレーターが再起動します。

008
(再起動画面)

 009


 おおっ、設定画面が日本語に!!

010


 おーっTextBoxも日本語入力可能ー!!

 新機能を触るのが楽しみです。

2011年05月29日

読書メモ:Silverlight大全

 MicrosoftのSilverlighterが結集して書き上げた書籍「Silverlight大全」が発売されました。

 Amazonで注文したのですが、発売日ではなく2日遅れの土曜日に手元に来ました。

 DSC_0135


 前述の「101 Windows Phone 7 Apps Volume1」とまではいきませんが、最初の感想としては、もうちょっと厚みがある本でも良かったかなというもの。
 著者にMSの精鋭が名を連ねているという期待と、やはり上記書籍のインパクトが尾を引いていた影響ですね。

 内容は色々なテーマを扱った入門書としては、細かい落とし穴へのヘルプもある、まさに「良く知っている人が書いた」書籍でかなり良い部類に入ると思います。

 Windows Phone 7やSketch Flow、Streamingなども扱った書籍はこれまでなかったので嬉しいポイント。

 Silverlight5も動き出したことだし、WP7以外のSilverlightも復習しようという自分にはちょうど良かったです。

 

2011年05月27日

101 Windows Phone 7 Apps Volume1が届きました

 しばらく在庫切れだった101 Windows Phone 7 Apps, Volume I: Developing Apps 1-50がようやく届きました。

 書籍をAmazonで受け取るときは、

 そんな大きな箱いらないよね

 と思ってしまうのですが、今回は納得の大きさ。

写真 2011-05-27 6 52 50

(持ち歩けないですね・・・)

 Silverlight大全も今日発送されたようで、しばらく読む本には困らないなぁ。







Microsoft Developer Forum 2011に参加しました

 月曜日(5月23日)にMicrosoft Developer Forum 2011に参加してきました。

 大きな目的は3つあって、

 ・Windows Phone 7の情報
 ・スティーブ バルマーに元気をもらう(わかる人にはわかるw)
 ・お世話になったMSの方にご挨拶

 後述しますがうち一つは歯がゆい感じで終わってしまったのですが、非常に楽しいイベントでした。

クラウド、ナチュラルユーザーインターフェイス、HTML5+JS



 今回の発表は全体的にクラウドであったり、各種デバイス(スマフォ、タブレット、組み込み)も含めたインターフェイス(Natural User Interfaceと言っていたかな)や開発の話題と、いわゆるPCにフォーカスした話はほとんどありませんでした。

 技術者としてそういう技術の流れにフォーカスできているかというと、まだまだですね。

 VisualStudioにはHTML5+jsのオーサリングツールとしても期待!!

DSC_0122
(通訳用のヘッドホン、しばらくこれもらったの忘れてて一生懸命に英語のリスニングw)

DSC_0121
(いただきましたWindows Phone 7のDVD)

 期待のWindows Phone 7ネタは「明日、重大な発表があるよ!!」ということで、今回は控えめ。
 (明日いうなら先行で日本だけ今日言ってくれよw とか思った人は多いはず)

 *その日はわかりませんでしたが、新しいバージョンのWindows Phone 7のSDKが翌日(24日)発表されました。この辺は後程レビューします!!

デベロッパー! デベロッパー! デベロッパー!



 そしてスティーブ バルマー登壇。
 毎度ながら、ジャンプしたり、大きな身振り手振り、人に伝えるというのは言葉だけじゃないというのを強く実感させてくれます。

 そして、これがないと来た気がしない

 デベロッパー! デベロッパー! デベロッパー!

 も叫んでくれました。

DSC_0123



クラウディア登場



 クラウドガールの主人公(多分)も登場。
 音声で大場さんと掛け合いしたのですが、大場さんのちょっと馴染めてない感が、お役目ご苦労様でした!!と言いたくなりました。

DSC_0125
(写真撮影もありました、あれこの方・・・)

 勉強会などでお世話になったMSの方にも挨拶。
 次回のHokuriku.NETにはぜひ大西さんをご招待ください!!

お土産もいただきました



 今回は色々とお土産もいただきました。

DSC_0128
(WP7はもらいものではないです)

 たくさんやる気をもらって、WP7も大きな動きが出てきたので、アプリ開発も記事ももっともっと発表していきたいと思います。

 MSの皆様開催準備お疲れ様でした!!
 当日お相手してくださった皆様本当にありがとうございました!!

2011年05月09日

Windows Phone 7:自作メディアプレイヤーを作成する方法

 Code RecipeにあったWindows Phone 7 のメディア プレイヤーを Silverlight から利用するがわかりやすかったので紹介します。

 Windows Phone 7のSilverlightはXnaのライブラリも利用可能なのですが、今回のサンプルはその参考にもなりますね。

 ポイントはSilverlightだけどXnaの作法にのっとって定期的にUpdateを呼び出してあげる必要があるところですかね。
 (Code Recipeの該当ページは日本語でわかりやすく書かれていますので、ここではコードを出した解説はしません)

 このサンプルをもとに自作プレイヤーが作れそうです。


(参考)
Code Recipeにはほかにも日本語で書かれたWindows Phone 7の解説記事がたくさんありますのでありがたいですね

FxUG@広島で皆様から頂きましたお金を募金しました

 報告が遅れましたが、4月のFlexユーザーグループ勉強会in広島で参加者から頂きました災害募金のお金を日本赤十字社に募金いたしましたので報告いたします。

001


 参加された皆様ありがとうございました!!

2011年05月08日

Windows Phone 7のアップデートが来ました

 前回の大型アップデート(通称NoDo)とはことなりすぐにアップデート終了しました。

 バージョンは7.0.7.390.0から7.0.7392.0に上がりました。

 アップデート内容ってどっかで確認できるのかな?

002


VisualStudio2010SP1がインストールできない

 タイトルのような状態になりました。
 どうも詳細ログを見るとWebインストーラーがファイルをダウンロードするのに失敗している模様。

 ISO版が無いかなと思い探したら、

001


 ダウンロードページ下部にISO版を落とせるリンクがありました。
 こちらをダウンロードして実行すると無事終了。

2011年05月07日

SVG GirlでIE9のパフォーマンスを体験

 見れるようになったのは知ってたんですが、会社のPCのOSがXPなのでIE9がインストールできないというMS製品自縄自縛(IE9、WP7開発環境などMS製品がXPで利用できない状態を勝手に命名)のため確認が遅れました。

 アメリカで開催されたMIX11で紹介されたSVG Girl(日本のカヤックさん御謹製!!)は震災で暗いムードだった日本の.NET開発者に熱い活力を与えてくれました。少なくとも自分は日本もやるねと感じました。

 MIX11の頃は紹介動画だけでしたが、今はWebで実際に動くのを見ることができます!!

002

(入口、IE9で見てね的な感じですがFireFox4でも見れました。Chromeだとフルスクリーンになりませんでした。あと、PCのスペックによってはもたつくかも)

001

(最初の動画はHTML5ですかね、Silverlightかと思いましたが・・・)

003

(これどういう開発を行ったのかツールが気になります)

 SVGもこれから目が離せない技術になるのでしょうかねぇ。
 もはや手打ちでゴリゴリかけない体になった私としては良いIDEの登場を祈るばかりです。
 

Profile

シーラカンス

Recent Comments
QRコード
QRコード
livedoor Readerに登録
RSS
livedoor Blog(ブログ)