Links to some introductory information about XNA Game Studio 4.0

There was some information announced today at GDC 2010 about the upcoming XNA Game Studio 4.0 release and support it will provide for developing games for Windows Phone 7 Series , Xbox 360 and Windows.  I encourage you to check out some of the links below to start learning about this new version of XNA Game Studio: Introductory post on Michael Klucher’s blog Highlights of new XNA Game Studio 4.0 features on Shawn Hargreaves’ blog Introductory post on the Microsoft blog News item on the XNA Creators Club Online site XNA Game Studio 4.0 fact sheet XNA Game Studio 4.0 FAQ Press information on the XNA Creators Club Online site

Tech・days 2010 デモのフォローアップ 2 遅延ロードとNative SQL 編【T2-305 ADO.NET Entity Framework】

一先ずセミナーや執筆など諸々終わったので一安心・・・・と思ったのもつかの間、残していた事務作業がテンコ盛りの今日この頃です。まぁ、見ないことにして Blog を Update したいと思います。 今日は遅延ロードと Native SQL を扱います。次回は POCO と Self-Tracking Entities を予定しています。 遅延ロード(レイジーロード) 必要になったタイミングで暗黙的にデータを取得する機能ですね。 下記のコード例では6行目の CourseGrades を取得するタイミングで毎回、クエリが発行されます。 (尚、デフォルトで遅延ロードは true になっています。要するに ON 。) このコードでは People の件数と同じだけ CourseGrades を取得するためのクエリが発行されます。 6名のデータが存在すれば、CourseGrades を取得するために 6 回クエリが発行されることになります。 よって、開発者は CourseGrade データのロードを意識しないでよいため楽ちんですが、ラウンドトリップ回数はパフォーマンスに悪影響を与える可能性があるため意識する必要があります。 // デフォルトは true です。 db.ContextOptions.LazyLoadingEnabled = true; var people = db.People; foreach (var p in people) {     Console.WriteLine(p.Name);     foreach (var cg in p.CourseGrades)     {         Console.WriteLine("    " + cg.CourseName + " : " + cg.Grade);     } } 次のように修正してやると一発でデータを取得できます。 var people = db.People.Include("CourseGrades"); もともと遅延ロードについては こちらの記事 にもある通り、次の理由により敢えて実装されていなかったという背景があります。 ・隠されたネットワーク ラウンドトリップは排除すべき ・ロードされるタイミングが異なるためデータ一貫性に問題が発生する可能性がある とはいえ、次のようなメリットがあり「遅延ロードが欲しい!!」というフィードバックが多数寄せられ、EF 4 では実装されることになりました。 ・明示的にロードを意識しなくてよいので楽ちん ・コードが冗長にならない 無闇矢鱈に利用するのでなく、このあたりのメリット、デメリットを理解した上で是非利用してみてください。 以前の記事 もご参考まで。 Native SQL こちらはシンプルにNativeのSQL文が実行できるようになったという機能です。 今のところ、この機能が一番評判がいいような気がするので若干微妙ですが・・・・・・ 本セッションでは対象にしませんでしたが、EF 4 では生成されるクエリの大幅なパフォーマンスチューングが施されており、V1 と比較すると速度の向上が見込めると思います。 しかしながら、システムのある個所だけどうしてもパフォーマンスがでないケース、どうしてもデータベース固有のコマンドが利用したいケース等々あると思います。そのような時に威力を発揮するのがこの Native SQL の機能です。 構文とサンプルソースを以下に示します。 構文 C# public ObjectResult<TElement> ExecuteStoreQuery<TElement>( string commandText, params Object[] parameters ) C# public int ExecuteStoreCommand(     string commandText,     params Object[] parameters )   サンプル(C#) ・ ExecuteStoreQuery using (schooldbEntities db = new schooldbEntities()) {     string name = "井上 大輔";     IEnumerable<Person> schools =                          db.ExecuteStoreQuery<Person>("SELECT * FROM People where name = {0}", name);     foreach (var s in schools)     {         Console.WriteLine(s.Name);     } }   ・ ExecuteStoreCommand string name = "井上 章"; int pid = 3; int count =       db.ExecuteStoreCommand("Update People set name = {0} Where PersonId = {1}", name, pid); 以前の記事 もご参考まで。

Counting Down to Seven: “Platformer” Running on Windows Phone 7

Welcome to another installment of Counting Down to Seven , a series of articles about mobile app development that I’m writing as we count down the days to MIX10 , when we reveal more about the up-and-coming Windows Phone 7 Series . In my last article in the Counting Down to Seven series , I showed you Platformer , the game starter kit that comes with XNA , the toolset/framework for developing games for Windows, XBox and Zune: Let me now show you this – Platformer running on Windows Phone 7: That’s Microsoft’s Eric Rudder , Senior VP Technical Strategy demoing Platformer at the TechEd Middle East conference

Tech・days 2010 デモのフォローアップ 2 デザイナ編【T2-305 ADO.NET Entity Framework】

Visual Studio 2010 RC は Beta 2 と比べるとホント快適ですね。 ここまで改善されるとは・・・・感動です。   本日は Tech・days でお話した最初のテーマである「デザイナ」についてフォローアップします。   複数化、外部キー EDM Wizard でDBオブジェクトを取り込むとき、下図のように2つのチェックボックスが追加されました。 上のチェックボックスが複数化、下のチェックボックスが外部キーです。 複数化は Entity を単数形、EntitySetを複数形に変換してくる機能です。 (元になるDBのオブジェクト名は単数形だろうが、複数形だろうが関係ありません) また「外部キー」は、Entityのスカラプロパティとして外部キーが扱えるようになったという機能です。 どちらも細かい変更点ですが、実際に実装していくと意外と便利だったりします。     また、デザイナのプロパティから、下図のパラメーターを Trueに設定すれば、新しく作成するEntityに対して複数化の機能を有効にすることが可能です。   他にもデザイナで新たにAssocitionを追加する時、外部キーを追加する機能が搭載されました。   ちなみに、セミナーでは pubs サンプルDB を用いて次のような EDM を生成しました。     モデルファースト、複合化 モデルファーストは概念モデル(CSDL)から、論理モデル(LDM)やマッピング(MSL)を生成する機能でした。 手順はCSDLをご自身で定義して、コンテクストメニューから新たに追加された次のコマンドを実行するだけです。 ポイントはここだけですね。 尚、EDMの構成は SchoolサンプルDB のデータ構造を元に構成しています。   複合型はモデルブラウザーからプロパティを一つずつ定義していく方法があります。   また、複数のプロパティを選択して、まとめて複合型として定義することも可能です。     WPF連携 GUI ベースで WPF データバインドが出来る機能です。 Data Sources ウィンドウに表示されるエンティティセットやプロパティをドラッグして画面を構成するだけです。   データソースウィンドウが開いてないならメニューから選択して開いてください。   以上で、デザイナ編は終了です。 次回は関数編です。

I’m speaking at FedScoop’s Roadmap to the Cloud Summit

My team is participating in FedScoop’s Roadmap to the Cloud – Presented by Microsoft on March 9th at the Ronald Reagan Building’s Pavilion room in Washington DC.  I’ll be presenting as part of the Developer Track.  My session is titled “Sharing Government Data through Windows Azure using OGDI & ‘Dallas’.”  My team is responsible for OGDI .  Come check out the event and dev track if you are interested Cloud Computing.  Full details here: http://blogs.msdn.com/publicsector/archive/2010/03/03/fedscoop-s-roadmap-to-the-cloud-summit-march-9-2010-register-today.aspx