Welcome to MSDN Blogs Sign in | Join | Help

Microsoft .NET Services November CTP リリース

お疲れさまです。

最近は随分寒くなりましたね。

今日は金曜日だし鍋でも・・・

といきたいところですが、私はとある試合のため減量中。

そんな甘いことは許されないのでした(悲)

 

 

さて、.NET Services の 最新版 SDK が11/5 に公開されました。

詳細は US の Blog を参考にしてください。

Devid Chappell も話していましたが、特にエンタープライズアプリケーションにおいて Cloud  の性質上(一貫性、レイテンシー、SLAなどなど)、みなさんのアプリケーションやソリューション全てをマイグレーションすることは困難で、一部を少しずつ移行していくのが現実解とも言われています。

つまり On-Premise と Cloud をシームレスにつなぐことは必須だと考えてもよいでしょう。

 

 この辺りを実現してくれるのが. NET Services で、このようなサービスを提供していないクラウド事業者との大きな差別化要因にもなり非常に重要です。

とはいえ、日本ではまだまだ情報量が少ないですね。

tech・days 2010 で多くの情報をお伝えできればいいのですが・・・・

と勝手に心配してみました。それでは失礼します。

 

Posted by daisukei | 0 Comments

無償!!Windows Azure ハンズオンラボ開催

Windows Azure のハンズオンラボ(2H)が4日間開催されるようです。

http://www.microsoft.com/japan/msdn/vstudio/campaign/valueup/cloud.aspx

内容は

「Windows Azure の申し込みから、アプリケーションの開発、およびクラウド上でのアプリケーションの公開までを体験いただきます。」

とのことなので初級編ですね。

おそらく直ぐ満席になってしまうのでお早目にお申し込みください。

みなさんも Azure 上でこんなアプリケーションを作ってみてください。

 

Posted by daisukei | 0 Comments
Filed under:

Visual Studio 2010 Beta 2 用 ADO.Net Entity Framework Community Technology Preview リリース!

今日は Microsoft Developer Forum 2009 でしたね。私は会場ではなく自席で Streaming 視聴しました。 Smooth Streaming は相変わらずスゴイですね。

画質が綺麗だし、巻き戻し再生もできる。MS 社員としてではなく単純に利用者として普及してほしいテクノロジーです。

Developer Forum では主に UX、Cloud  が目立っていたように感じました。

大丈夫です、ちゃんと データアクセスも目立たない・・・ところで強化されています。

 

このたび VS 2010 Beta2 用の Microsoft ADO.NET Entity Framework Feature Community Technology Preview 2 がリリースされました。

 下記の機能が含まれています。

  1. Templates for Self-Tracking Entities (N-Tier support)
  2. Code-Only Programming Model that allows you to write Entity Data Model based applications without requiring external artifacts

改良ポイントは以下の通り。

 

Code Only の機能強化ポイント

  • Fine Grained Control over model
    • Specify Navigation Property Inverses
    • Specify Property Facets
    • Complex Types
  • Customizable Mappings
    • Change Table Name, Column Names
    • Specify Custom Inheritance Strategy
    • Entity Splitting
    • Join Table Mapping

細かいところで結構強化されているようですね。

(訳そうと思いましたが、うまく訳せませんでした・・・・・すみません)

 

 

Self-Tracking Entities の機能強化ポイント

・Foreign Key associations

     これは前回解説した Foreign Key への対応です。

・Support for Silverlight 3

     Silverlight 3 + WCF との連携が強化されるようです。

・Databinding support

     WPF、Silverlight とのデータバインディングが強化されるようです。

・Richer concurrency control support:

     ようやく登場。楽観的同時実行をサポートします。

     指定したプロパティのオリジナルの値を持ちまわれるようになります。

・Improved independent association support

     パフォーマンス改善のアプローチ。

     必須でないデータベース ラウンドトリップを避けるために、エンティティ管理手法の再設計が行われました。

・New and improved methods:

     AcceptChanges, StartTracking, StopTracking メソッドが追加、拡張されるようです。

・Generated code improvements and refactoring

     生成されるコード改善、リファクタリング機能の追加

 

 

そのうち、実際にいじって確認してみましょう。

尚、Beta 1 で検証されていた方は POCO template がない!!ことにお気づきではないでしょうか。POCO Templateは次回のリリースで含まれる予定になっていますのでご安心ください。

 

【PHP】Eclipseで作ったアプリケーションを Windows Azure に Deploy したい?

今日は.NETer向けの内容ではありません。

先日開催されたEclipse SummitでPHP、Java developer 向けにマイクロソフトからアナウンスがありました。

詳細はUSの Interoperabilityブログ を参考にしてください。

要は、いままでと同様にEclipse + Java、PHPでアプリケーションを作って、それをAzure上にポンと展開することができるというアナウンスです。まだ中身をみてないので詳細はわかりませんが、Azureのストレージ(Blob、Table、Queue)にも対応しているのではないでしょうか?後で確認します。今後、クラウドも使ってみたいんだけど・・・・というJava、PHP開発者には朗報ですね。

(尚、Windows Azure SDK には cspack.exe というコマンドがあり、これを使うとアプリケーションをWinows Azure cspkg の形にパッキングすることが可能です。)

・Windows Azure Tools for Eclipse for PHP developers:

     www.windowsazure4e.org

・Windows Azure Software Developer Kit (SDK) for Java:

     www.windowsazure4j.org

・Eclipse Tools for Silverlight:

    www.eclipse4SL.org

 

Posted by daisukei | 0 Comments

[お知らせ] Microsoft Tech・Days 2010 “Best of PDC”開催決定

今年開催された Tech・Days が、来年も開催されることが決定しました。

このイベントは USA で開催される Professional Developer Conference の日本版にあたり、とりわけ最新技術に特化した内容をご紹介するイベントです。

(毎年夏に開催されているTech・Edは、どちらかというと、現場で直ぐに役に立つ内容)

1

なんだか場所がマイクロソフトっぽくないですね。

http://www.grandpacific.jp/

今回は Windows Azure Platform、Visual Studio 2010、Windows 7 などが大きなテーマになると思います。

まだ決まっていませんが、私は相変わらず ADO.NET Entity Framework のお話をすることになりそうな予感がしています。

またマイクロソフトがいつもやる「早期申込割引」もあるようなので、参加される方々はお早目にお申し込みください。

来週の木曜日からお申込み可能になります。

2

 

Posted by daisukei | 0 Comments
Filed under: ,

PDC後にWindows Azure セミナーを開催

みなさんお疲れさまです。

Windows 7 が遂に発売ですね(遅いか)。先週土日はWindows 7 博覧会が開催されました。

私も直接業務とは関係ありませんが記念にT&Tコーナーで説明要員として参加しました。

会場の様子

「ベルサール秋葉原2階」になります。

clip_image002clip_image003clip_image004

ちょっと暗いですが、外にあるステージ。噂によると十万人以上集まったとか・・・

clip_image002[4]

とにかく非常に盛り上がっていました!!

そして、次は Windows Azure Platform のラウンチです。来月のPDCで正式発表になります。日本の方々も当然ながら利用して頂くことが可能です。

そこで2009年11月21日(土) 13:30~17:20 にかけて、コミュニティで、PDC Update も含めた Windows Azure の簡単なお話をします。

レベルは200程度ですが、ご興味あればご参加ください。

http://dn-lab.net/tabid/114/Default.aspx

Posted by daisukei | 0 Comments
Filed under: ,

Visual Studio 2010 Beta 2 + Entity Framework 4 を試してみました。

Visual Studio 2010 Beta 2 (English) をインストールしてみました。 

 

こんな画面

 

 

全体的に見た目は Beta 1と大差ないですね。しかし、パフォーマンスがアップしているのでちょこちょこ触ってみても、かなり軽快に動作することが分かります。(Beta 1は正直、遅かったので、、、、、これはうれしい)。246 days remaining と書いてあるので、8カ月間くらいは使えるみたいです。まぁ、それまでにはRTM版になっているとは思います。

 

 

 

 

ちょっとだけ、先日ご紹介した Entity Framework の機能も確認してみましょう。あっ。

 

EDM Wizard

 

Include foreign key columns in the model」なるものが追加されています。これが Entity に対して Foreign Key のプロパティを追加する機能ですね。

 

 

 

 

EDMデザイナ

 

やっぱり Foreign Key employee エンティティのプロパティに追加されています。

ついでに生成された Object Contextの中身をみてみましょう。

 

 

 

ObjectContext コード(C#

やっぱり、、、、「this.ContextOptions.LazyLoadingEnabled = true」と記述してあるので遅延ロードはデフォルト True みたいです。

 

 

 

今後はもう少し他の機能もいろいろと確認していきたいと思います。

 

Demo

ストリーミングでデモが見れます。

EDM Wizard naming the entities with proper plural and singular names and a few minor issues

Impact that Foreign Keys has on Association Mappings

Complex Type

Insert/Update/Delete Stored procs to entities with Complex Types

Creating functions from Stored Procedures that return results which do not map to an entity

Quick look at Model First Design

 

 

 

 

 

 

Entity Framework 4 Beta 2 アナウンス

先日、ご紹介した通り Visual Studio 2010 Beta 2 ダウンロード出来るようになっています。ADO.NET team blogを見ると New features の記載があります。後々検証する予定ですが、ここで簡単にまとめておきます。

 

·    Foreign Keys: エンティティのプロパティとしてForeign Keyが持てるようになります。TechEdでも解説しましたが現行バージョンではForeign Key の操作が大変です。(できないわけではありません)

 

·    Improvements to POCO Support: これはPOCOのサポートですね。Beta 2では細かいところが改良されているみたいです。

 

·    Lazy Loading on by Default in new Models: どうも遅延ロードがデフォルトtrueになるようです。これは、善し悪し。

 

·    EntityDataSource support for Query Extenders and POCO: 現行バージョンASP.NETではEntityDataSourceコントロールを使って簡単にデータバインドできます。.NET 4では Query ExtendersPOCOEntityDataSourceでサポートされます。ちなみにQuery Extenders.NET 4で追加される新機能です。XXXDataSource系のコントロールを拡張するのに使います。

 

·    Support for Binary Keys: エンティティのEntity KeyForeign Keyとしてバイナリデータ型が使えるようです。

 

·    ObjectMaterialized event: オブジェクトが生成されたタイミングで発生するObjectMaterializedイベントに対応するようです。このイベントはスカラ、複合、リファレンスプロパティに値がセットされたタイミングで実行されるようです。どのように使うと便利でしょうか??

 

·    Object Services API improvements to enable N-Tier and Self Tracking Entities: ObjectStateEntryGetUpdatableOriginalValues メソッドが追加されます。N-Tire開発のサポートが目的です。

 

·    Improvements to the generated SQL: SQL Server 上でEntity Framework を使っていて、ためしに生成されるT-SQLをチェックすると、最適化されていないことに気付きます。(泣).NET 4では無駄なNestJoinの削除、その他いろいろ改善されて、最適化されたT-SQLを吐き出すProviderが提供される予定です。

 

·    Navigation Property Management: One-Wayのアソシエーションを生成可能。またnavigation properties の追加や削除が可能です。

 

·    Improved Database Generation: ドメイン駆動促進のためにModel FirstDDLが生成できる機能がBeta 1で追加されました。この辺りも、さらにいろいろ使いやすくなっているようです。またSQL CE がサポートされます。

 

·    New Extensibility APIs: Modelを細かくカスタマイズするためのいろいろなAPIが登場するようです。

 

·    Generation of Complex Types from Stored Procedures: Stored Procedureの出力値マッピングにComplex Typeが利用できるようになってみたいです。

 

·    Greatly Improved Facet Management: 細かいところでエンティティのプロパティ設定、操作方法がシンプルになるようです。

 

·    LINQ to Entities improvements: 以前解説しましたがEntityFunctionsSqlFunctionsクラスの追加、また構文に関してもいろいろと機能追加されます。

 

 

またVS2010 Beta 2からはADO.NET Entity Data Model Designer Extension Starter Kitなるものが使えるようになります。Entity Data Modelのツール類(Entity Designerなど)をカスタマイズしたいという超コアな方に利用して頂きたい一品です。個人的には当分様子見ですね。

 

Microsoft ADO.NET Entity Framework Feature Community Technology Preview 1が含まれないのは残念ですが、大体出揃った感はありますね。

データアクセスもさらに強化!! Visual Studio 2010 Beta2

いろいろと旅をしており、すっかりブログの更新をさぼってしまいました。すみません。

ようやくVisual Studio 2010 Beta2 が公開されましたね。まだ英語版だけですが、近いうちに日本語版も出てくると思います。データアクセス系も近々、検証していきたいと思います。

http://msdn.microsoft.com/en-us/vstudio/default.aspx

 

また、業務の都合上PHPも関連をキャッチアップする必要が出てきたため、Blogでも情報公開していきたいと思います。このBlogでは特にPHP on Azureにフォーカスして情報を提供したいと思います。(多分、興味ない方も多いので、次回からはタイトルに「PHP」、タグに「PHP」を明示しておきます)。

ちなみにマイクロソフトのオープンソースへの取り組みの全体については、下記のブログを参考にしてください。

http://blogs.technet.com/port25j/

 

 

 

尚、PHP on Azure について、ようやく情報が揃ってきたといった状態です。ここで簡単にまとめておきましょう。 

・データアクセス

SQL Server Driver for PHP 1.1

ようやくSQL Azureに対応したDriverがリリースされました。(SQL Server Driver for PHP 1.0は対応していません。) 本バージョンよりUTF-8もサポートされました。多少イジルと便利なOSSAzure上で使えるようになります。

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=ccdf728b-1ea0-48a8-a84a-5052214caad9

 

Microsoft SQL Server Driver for PHP Team Blogのブログは以下

http://blogs.msdn.com/sqlphp/

 

 

・開発環境

Visual Studio 2008

残念ながらVisual Studio では効率的な開発ができないため、アシアルさんなどが提供している3rd パーティ製の製品を利用して頂く必要があります。

http://www.asial.co.jp/vsphp/

 

Expression Web 3

こちらは、インテリセンスなどの機能があり、ある程度は効率的な開発ができるようです。

http://www.microsoft.com/japan/products/expression/products/web_overview.aspx

 

 

・トレーニングキット

Windows Azure Platform Training Kit - October Update(英語)

ここには PHP Azure で使うためのHands-on Labが含まれています。

http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en

 

尚、「Windows Azure Platform Training Kit」についてはCommunityにて日本語化されています。ただし、現時点では一部コマンドに不要なスペースなどが入っているため実行するとエラーが発生します。よってコマンドをコピーする時には英語版の方を利用して頂く方がよいと思います。

http://windows-azure.jp/community/Portals/0/TrainingKit_Online/Labs/WindowsAzurePHP/Lab.html/html/DocSet_default.html

 

【報告】Vector & Microsoft共同セミナー(Windows 7)

お疲れさまです。すでに、ニュースになっていますが「Vector & Microsoft共同セミナー(Windows 7)」に行ってきました。といってもスピーカーではなく会場準備とWindows 7 Touch & Try コーナーの説明要員です。利用前の会場写真をUpします。いかがでしょう?うまく揃っていますか?私も頑張ってならべました。はぁ、それが何??って感じですね。

 

 

 

ところで、明後日TechFieldersセミナに登壇します。あっという間に満員御礼になってしまい大変恐縮ですが.NET開発テクノロジ入門の著者が執筆内容に沿って解説します。ちなみに私は、下記の内容のネタをお伝えします。「小さいところ編」と書いてありますがレベル200の概要になります。「大きいところ編」は小高さんがスピーカーです。

 

 

 

Posted by daisukei | 0 Comments

【お知らせ】Windows Azure セミナー with David Chappell ~クラウドビジネスに踏み出す日~

久々にクラウドです。

10月14日にチャペル&アソシエイツ代表のデビット・チャペル氏をお招きしてWindows Azure Platformセミナーを開催します。チャペル氏は、随分前ですが、、、、Introduction to Cloud Platformホワイトペーパなどを発表され、創世記からクラウドに携わってらっしゃる方です。詳しくはチャペルブログ(英語などをご覧ください。

http://www.davidchappell.com/blog/

 

★セミナー概要

タイトル

Windows Azure セミナー with David Chappell ~クラウドビジネスに踏み出す日~

セミナー概要

マイクロソフトのクラウドコンピューティングのプラットフォームである Windows Azure Platformについて、David Chappell氏による基調講演と、Windows Azure 対応SaaSアプリケーション開発の概要と設計ポイントについてご説明するセッションをお届けします 。ソフトウェア開発企業向けに、日本でWindows Azure Platform の技術をお伝えするセミナー(無償)としては初めての開催となります。是非この機会を逃すことなくご参加ください!

 日時

1014日(水)13:3017:50  (13:00 受付開始)

 会場

セミナー:ベルサール飯田橋

 

http://www.bellesalle.co.jp/bs_iidabashi/images/shikihai.html

 参加費用

 無料 (事前登録制)       登録はこちら→ http://www.microsoft.com/japan/ftd/azure

 対象者

アプリケーションの開発者、開発担当者、プロジェクトマネージャー、システムエンジニア、技術採用権限者

タイムスケジュール

[セミナー]

 

13:00~  受付開始

 

13:3013:40(10) ご挨拶 

 

13:4015:10(90) キーノート :Windows Azure Platform 概要

 

15:2016:30(70) Windows Azure対応SaaSアプリケーション開発の概要

 

16:4017:50(70) Windows Azure対応SaaSアプリケーション設計の考慮点

 

セミナー内容はビジネスカットではなくテクニカルカットになります。最近、よくビジネスモデルに関するお問い合わせを受けますが日本において現時点では不明です。(当然ながらMS社員も知りません)。

クラウドコンピューティングは従来のテクノロジと比較するとメリットも大きいですが、デメリットも非常に多くあります。アーキテクチャは大きく異なりますし、出来ないことも多いです。流行りで安易に手を出してしまう前に、今のうちにしっかりと技術的な特徴をおさえておくべきだと思います。萩原さんのセミナなどは大変参考になるので、事前にご確認ください。特にトランザクションやEventual Consistency、ストレージなど理解してない方はぜひ。

http://www.microsoft.com/japan/powerpro/techdays/searchresult.aspx?SessionID=T1-401

 

Posted by daisukei | 0 Comments
Filed under: ,

Teched 2009 フォローアップ4 【TH-302 ADO.NET Entity Framework vNext】

最近は涼しいですね。もう秋ですか?私の場合、仕事してたら、、、いつの間にか夏が終わっていた(泣)といった感じです。海に行ってません、そもそも日にあたっていません、当然、日焼けもしていません。でも日焼けってあまり人体にはよくないみたいですね。簡単に調べてみました。

 

・免疫機能

  風邪をひきやすくなる。ヘルペス発症などなど

・皮膚

 皮膚の老化を促進、皮膚ガンをまねく

・視力

 視力の衰え、白内障

 

メリットもあるようです。

・ビジュアル

健康的、活動的、爽やかな印象、シャープに見える。

・免疫機能

風邪をひきにくい、疲れがたまりにくい、皮膚アレルギーへ効果・・・あれ????

・精神疲労の回復

 

う~ん、微妙ですね。日焼けについては専門家にまかせるとして、この夏、多くの時間を費やしたVisual Studio 2010ネタをフォローアップしておきましょう。今日は前回、ご紹介できなかったTechEd TH-302で解説した関数のフォローアップをしたいと思います。

 

Canonical Functions

Entity SQL 関数をLINQ to Entitiesでも利用できるようになりました。セミナー中ではLINQ to Entitiesサポート対象外の関数の代替として利用すると便利です。という話をしました。

 具体的に、下記を実行するとAddDays関数未サポートのためエラーが発生します。

 

var query = from o in db.Orders

            select new

            {

                o.OrderCode,

                OrderDate = o.OrderDate.AddDays(1)

            };

 

 そこで下記のように書き換えました。

var query = from o in db.Orders

          select new

          {

              o.OrderCode,

              OrderDate = EntityFunctions.AddDays(o.OrderDate, 1)

          };

 

 

 

Database Functions

これはSQL Server 固有のビルトイン関数をLINQ to Entitiesで活用するためのものです。こんな感じでデータベースのタイムスタンプを取得したりするのに利用できます。

 

var query = from o in db.Orders

          select new

          {

              code = o.OrderCode,

              diff = SqlFunctions.DateDiff("yyyy", o.OrderDate,                                                     SqlFunctions.CurrentTimestamp()),

              user = SqlFunctions.CurrentUser()

          };

 

 

Custom Database Functions

これはDBのユーザー定義関数をLINQ to Entitiesで活用するためのものです。手順は以下の通り。

1.    Edmxファイルを開いて手動でDB Functionのマッピング

SSDLSchema要素以下に記述します。

   <Function Name="AvgPrice" ReturnType="decimal" Schema="dbo">

     <Parameter Name="OrderCode" Mode="In" Type="int" />

   </Function>

 

2.    Edmにマッピングしたスタブ関数を準備

 [EdmFunction("NorthwindJModel.Store", "AvgPrice")]

public static decimal AvgPrice(int OrderCode)

{

      throw new NotSupportedException();

}

 

3.    LINQ to Entitiesで使ってみる

var query = from o in db.Orders

          select new

          {

            ordercode = o.OrderCode,

            avgprice = AvgPrice(o.OrderCode)

          };

Teched 2009 フォローアップ3 【TH-302 ADO.NET Entity Framework vNext】

前回のPostから気になるフィードバックがありました。「年齢と共に睡眠時間が減っているような気がする」というコメントです。確かにそんな気がしますね。私、幼い姪と甥がおりますが、長時間寝ています。飼い猫にいたっては9割方寝ていますね。ということで、ちょっと一般的論を調べてみたのでご参考まで。。。。。

 

・睡眠時間は年齢とともに変化していくのが正常

・睡眠にはレム睡眠(浅い眠り)とノンレム睡眠(深い眠り)が存在

・20代からレム睡眠の時間が増加

・30代からは完全な目覚め及び、目覚めている時間も増加(夜中、目が覚めてしまう)

・40代以降からは目覚めてから眠れなくなることを経験(夜中、目が覚めて眠れなくなる)

・猫の語源は「寝子」。語源の通りよく寝る。

 

年齢とともに睡眠の質がおちているようですね。みなさんはいかがでしょうか。個人的には、今のところ寝付きが悪いだけです。

 

今日はTechEdのセッション「TH-302 ADO.NET Entity Framework vNext Visual Studio 2010 における新機能のご紹介~」のフォローアップです。TechEdはカレントテクノロジー中心なので、新しいテクノロジーネタで、ここまで深くやったのも、このセッションくらいだと思います。ここでは下記のように6つの新機能をご紹介しました。基本的には私のブログで紹介しているのでリンクをご覧ください。関数については一部不足があるため、後日フォローアップします。

 

EDMデザイナ

デルファースト

Pluralization

Complex Type

Entity Framework 本体

POCO

-      Visual Studio 2010 EF4 POCO Part1

-      Visual Studio 2010 EF4 POCO Part2

-      Visual Studio 2010 EF4 POCO Part3

遅延ロード

・関数

-      Model Defined Functions (MDF)

-      Canonical Functions

-      Database Functions

-      Custom Database Functions

Teched 2009 フォローアップ2 【T2- 309 ADO.NET Entity Framework and LINQ データアクセス開発】

お疲れさまです。昨晩は気温が低く仕事も一段落したこともありグッスリ眠れました。9時間くらい寝ましたね。私、6時間くらいは睡眠時間が必要な人間です。みなさんはいかがでしょうか?以前、どこかで見かけた調査結果によると日本人は平均的に睡眠時間がかなり少ないようです(たしか6時間くらい)。例えばオーストラリアは平均8時間睡眠のようです。8時間毎日はちょっと長い気がしますね。個人的には短時間睡眠で活動的な人が羨ましいです。数年前、慣れれば短時間睡眠でも生活可能だと考え、一週間ほど4時間睡眠にチャレンジしました。。。。。。。結果、仕事どころではありませんでしたね。

 

今日はTechEd 2009T2- 309 ADO.NET Entity Framework and LINQ データアクセス開発】のフォローアップです。このセッションでは以下の3点について解説しました。

・概念モデリング

・パフォーマンスチューニング

・例外処理(‘楽観的同時実行処理)

 

1.    デモ環境の準備

デモで使用した環境は以下の通りです。

Windows 7 RTM

Visual Studio 2008 SP1

SQL Server 2008 Express Edition

・データベース

School サンプル データベースの作成 (Entity Framework クイック スタート)

http://msdn.microsoft.com/ja-jp/library/bb399731.aspx

 

2.    概念モデリング

概念モデリングについては下記のチュートリアルをご確認ください。セッションと略、同じ内容です。

http://msdn.microsoft.com/ja-jp/library/cc716693.aspx

 

3.    パフォーマンスチューニング

下記4点ついて、解説しました。

View Generation

http://msdn.microsoft.com/ja-jp/library/bb896240.aspx

 

NoTrackingオプション

http://msdn.microsoft.com/ja-jp/library/system.data.objects.mergeoption.aspx

デモでは下記のように定義しました。

  db.Course.MergeOption = MergeOption.NoTracking;

  db.Course.Where(c => c.Department.Name.Contains("工学部")).ToList();

 

Compiled Query

http://msdn.microsoft.com/ja-jp/library/system.data.objects.compiledquery.aspx

 デモではDelegate関数を下記のように定義しました。

  public static Func<SchoolEntities1, IQueryable<Person>>

      compiledPerson = CompiledQuery.Compile(

                                      (SchoolEntities1 db) =>

                                          (from p in db.Person.Include("Course")

                                           orderby p.Name

                                           where p.OfficeAssignment.Location == "小田急サザンタワー キャンパス"

                                           select p)

                                      );

 

Foreign Key

http://msdn.microsoft.com/ja-jp/library/dd283138(VS.100).aspx

    Visual Studio 2010ではFKもスカラプロパティとして値を取得可能になります。

-      参照系

デモでは下記のようにしてFKを取得しました。

var courseGrade = db.CourseGrade;

 

      foreach (var cg in courseGrade)

      {

          int enrollmentid = cg.EnrollmentID;

          Decimal? grade = cg.Grade;

          int personid = (int)cg.PersonReference.EntityKey.EntityKeyValues.First().Value;

          int couseid = (int)cg.CourseReference.EntityKey.EntityKeyValues.First().Value;

}

 

-      更新系

デモでは下記のようにしてFKをセットしました。

cg.PersonReference.EntityKey = new System.Data.EntityKey("SchoolEntities.Person", "PersonID", personid[i % 10]);

      cg.CourseReference.EntityKey = new System.Data.EntityKey("SchoolEntities.Course", "CourseID", courseid[i % 10]);

   db.SaveChanges();

 

4.    例外処理(楽観的同時実行処理)

http://msdn.microsoft.com/ja-jp/library/bb738618.aspx

 

-      管理者画面のエラーハンドリング

            try

            {

                db.SaveChanges();

            }

            catch (OptimisticConcurrencyException ex)

            {

                StringBuilder msg = new StringBuilder();

 

                // 更新衝突が発生した エンティティ を取得

                foreach (var se in ex.StateEntries)

                {

                    foreach (var ek in se.EntityKey.EntityKeyValues)

                    {

                        msg.Append("key:" + ek.Key + "   ");

                        msg.Append("value:" + ek.Value + " ");

                    }

                }

 

                MessageBox.Show("更新衝突が発生しました:" + msg.ToString());

 

                // 楽観同時制御を無視トラッキングデータをリフレッシュ

                db.Refresh(RefreshMode.ClientWins, db.CourseGrade);

                db.SaveChanges();

            }

 

 

-      一般ユーザー画面のエラーハンドリング

            try

            {

                db.SaveChanges();

            }

            catch (OptimisticConcurrencyException ex)

            {

                StringBuilder msg = new StringBuilder();

 

                // 更新衝突が発生した エンティティ を取得

                foreach (var se in ex.StateEntries)

                {

                    foreach (var ek in se.EntityKey.EntityKeyValues)

                    {

                        msg.Append("key:" + ek.Key + "   ");

                        msg.Append("value:" + ek.Value + " ");

                    }

                }

 

                MessageBox.Show("更新衝突が発生しました:" + msg.ToString());

 

                // DB の最新データでトラッキングデータをリフレッシュ

                db.Refresh(RefreshMode.StoreWins, db.CourseGrade);

            }

 

 

 

Teched 2009 フォローアップ1

お久しぶりです。TechEd 2009も無事に終了しました。私のセッションは立見が出るほどの盛況となり、ご参加頂いた方々には改めて感謝感謝です。

また、ハイレベルなMVPDeveloperの方々とのコミュニケーション、非常に充実したものとなりました。感謝感謝です。

 

尚、今回セッションで利用した最新の資料をSkyDriveに公開しました、必要あればダウンロードしてください。

T2- 309 ADO.NET Entity Framework and LINQ データアクセス開発

TH-302 ADO.NET Entity Framework vNext ~ Visual Studio 2010 におる新機能のご紹介

 

Demo プログラムなどは週いっぱいくらいかけてフォローアップしたいと考えています。

 

More Posts Next page »
 
Page view tracker