セミナー&ライトニングトークのご案内

9/18にTech Fielders セミナー 東京 [.NET 開発テクノロジーの全体像]が開催されます。 http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032423184&Culture=ja-JP 左に見える本「.NET 開発テクノロジー入門」の著者が講師となってセッションをお話いたします。 小高は井上さんと協力してEFについてお話しようかと思います。 井上さんが基本的なところ、小高はPOCOっぽいところでもう少し大きなストーリーをお話する予定です。 また、このセミナーではライトニングトークも行われますので、もしご興味があれば、是非お申込みください。(間違いなく、この本は景品になるはずです!) テクノロジーと全く関係ないネタでも歓迎ですよー。 ちなみに、ライトニングトーク司会は、この本の発起人であるエバンジェリスト松崎です。松崎が司会をするのはTechEdのヒーローラウンジ以来だと思います。 どうぞお楽しみに。

2

技術の理解・正しい運用

TechEdのAsk The Speaker(Q&A)の出来事です。 そこに来てくれた方(2名)は当初、ADO.NET Entity Frameworkのトレードオフについての質問をしに来てくれたのですが、色々とその場でディスカッションさせていただき、最後には「技術を理解して正しく運用しなければ、期待した成果はでない」というところに集約してお互いに納得したのです。 全てを満足する技術は当然ながらないわけで、そのためには、正しく理解することが必要です。EFであれば、データストアを抽象化して開発効率を上げる代わりに、データストアに直結したチューニングなどは難しい面があります。 そうしたことを理解したうえでのフォードバックは本当に身になりますし個人的にも癒されます。 自分のような職種であると、MSのあれがダメ、これがダメというお話を聞くことも多く、それは真摯に受け止めなければなりませんが・・・ と皆まで書こうと思ったのですが、なにやらSQL Server製品チームの北川が、似たような主旨で記事を書いています。 「中堅企業向け オラクル都市伝説シーズン2: 其の一」への反論 http://blogs.technet.com/sqlpm-j/archive/2009/08/27/3277427.aspx このオラクル都市伝説は明記はしていませんが、明らかにSQL Serverのことを対象にしているように思います。もちろんSQL Serverを正しく運用している方からみれば、どこから反論してよいかという内容なのですが、これは個人の問題を超えてしまっているわけで・・・ 他社はともかく、少なくとも弊社サイドでは、正しい情報をわかりやすく、そしてフェアに伝えていかなければならないですね。


TechEdフォロー(T2-405:ADO.NET Entity Framework Part2)

引き続きセッションフォローです。 シナリオ2.~ より素早く、より効率よく を 考えてみる  ~ 汎用性を多少犠牲にしても開発効率をあげる方向性で考えてみます。 ここでは、EFに加えてADO.NET Data Servicesと.NET RIA Serviceを使用します。   どちらも、N層の開発を簡素化することが大きなメリットになっています。 今回、DataServicesについては、Astoria Offlineをご紹介しました。 こちらに関しては、以前ご紹介しています。 http://blogs.msdn.com/tarok/archive/2009/01/30/9384583.aspx (現在AlphaPreviewなのですが、コードなどに全く相違はありません。) セッションのビデオも公開されています。http://www.microsoft.com/japan/powerpro/techdays/searchresult.aspx?SessionID=T3-305 特にAstoria Offlineは、オフライン対応が目的なのですが、簡易N層アプリケーション開発を可能にするテクノロジーとしての側面も十分に備えています。クライアントにあるデータソースは、クライアントのデータ操作をトラックして、あたかもUnit of Workのように働くことが可能です。開発においても、データ操作はクライアントのみで考えればよいため非常に明快です。 例えば、今回のデモではExcelをクライアントとして使用したのですが、データの取得は以下のように行いました。 ExcelWorkbook1.ExpensesDbEntities db; public void LoadData() {     db = new ExcelWorkbook1.ExpensesDbEntities();     var query = from ex in db.Expense                 orderby ex.CreatedDate descending                 select ex;     Globals.Sheet1.expenseBindingSource.DataSource = query;…


TechEdフォロー(T2-405:ADO.NET Entity Framework Part1)

TechEdが無事終了しました。 まずはADO.NET Entity Framework開発セッションで行ったデモをご紹介します。 このセッションはADO.NET Entity Frameworkを多層階層ソリューションで用いるための3つのシナリオでご紹介しました。このブログを通じて、ひとつづつご紹介していきます。 シナリオ1.~ 素直に ADO.NET Entity Framework を使用してみる ~ ドメインモデルとして、そのままEDMを使用するパターンです。 この場合、ビジネス層のメリットはEFのサービスが受けられること、デメリットはシステム全体がEFと密になってしまうことです。 次にサービスレイヤーとしてのメリットは、EDMをVSで作成すると、DataContract属性がついた形でコードがジェネレートされますので、また、DTOを意識せずに、そのままEDMを公開可能です。したがって、とくに工夫しなければ、この形でシステムを構築することになるでしょう。 (2009/9/2変更)デメリットは、DataContextはDataSetのように初めからDTOとして設計されていないため、WCFなどでシリアル化してしまい、一度切り離してしまうと、チェンジトラッキングを行わない問題があります。(通常の使用ではObjectStateManagerが行っています。) このためEFを使用した多層ソリューションは参照系がメインとなるといわれるのです。http://msdn.microsoft.com/ja-jp/data/dd919159.aspx 最後にデータ層としては、プロバイダの対応があれば、どのようなデータストアも対応が可能であり、変更してもアプリケーションの変更は基本的にないはずです。 ここを説明するために、今回はMySQLにデータストアを変更してみました。 MySQL5.1 Community Server http://dev.mysql.com/downloads/mysql/5.1.html 使用したプロバイダは以下です(フリーです)http://dev.mysql.com/downloads/connector/net/6.0.html ツールも使用しました MySQL GUI Tool http://dev.mysql.com/downloads/gui-tools/5.0.html MySQL側にもNorthwindと同じデータベースを作成して、切り替えデモに備えたわけです。 データストア変更の手順ですが、デモで行ったのは接続文字列を変更しただけです。 ・SQLServer用 <add name=”NorthwindEntities” connectionString=”metadata=.\Demo.DAL\Northwind.csdl|.\Demo.DAL\Northwind.ssdl|.\Demo.DAL\Northwind.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=Northwind;Persist Security Info=True;User ID=XX;Password=XX;MultipleActiveResultSets=True&quot;” providerName=”System.Data.EntityClient” /> ・MySQL用 <add name=”NorthwindEntities” connectionString=”metadata=.\Demo.DAL\Northwind.csdl|.\Demo.DAL\Northwind_MySQL.ssdl|.\Demo.DAL\Northwind.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=XX;password=XX;persist security info=True;port=3307;database=northwind&quot;”…


Entity Framework Feature CTP 1

これも少し前なのですが(こればっかりです、すみません) Entity Framework Feature CTP 1がリリースされています。 http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7fd7164e-9e73-43f7-90ab-5b2bf2577ac9 ポイントをば。 ・.NET Framework 4.0 Beta 1.用CTP ・.NET Framework 4.0には含まれない予定 ・みなさんからのフィードバックで別CTPも予定 ・なにか見つけたら、Microsoft Connectにお願い  ・フォーラムはここ(Entity Framework 4.0 Beta.) 実装される機能は以下 1) Better N-Tier Support with Self Tracking Entities おぉ、ようやくですね。変更セットのひきまわしが可能と。 2) POCO (Plain Old CLR Objects) entity code generation via the POCO Template EDMからPOCOのエンティティを作ってくれる機能ですね。モデルファーストというかDDDを促進というか。詳しくはリンクへどうぞ(英語ですが) 3) Writing only code and having it work…