セッションフォロー(TechEd T2-405 Part4 & 9/18 TechFildersセミナー)

すみません御報告が遅くなりました。TechEdと先日のTechFildersセミナー(9/18)のフォローです。 TechEdでは、Visual Studio 2010が不慮の事故で落ちてしまい中途半端になってしまった箇所です。 9/18では時間が足りなく、「続きはブログで」と言ったら、アンケートでお叱りを受けましたので、次回からはセッションに絶対納めるようにします、申し訳ありませんでした。 シナリオ.~ 汎用性を考慮するには?  ~ この方向性としては、Persistence Ignorance をシステムアーキテクチャとして取り入れてみることを考えてみたいと思います。 Persistence Ignorance とはデータの永続化に対して、特定のテクノロジーやプロダクトに依存しないことをさしています。 詳細はこちらから http://msdn.microsoft.com/ja-jp/library/dd456853(VS.100).aspx 井上のブログでも紹介しています http://blogs.msdn.com/daisukei/archive/2009/06/02/visual-studio-2010-ef4-poco-part1.aspx Persistence Ignoranceの想定される使用シナリオとして代表的なものは、以下のスライドにある記述などがあげられます。 例えば、システム設計として、ModelFirstで考える場合、当然生成物は一般的なクラス(図)になるでしょうから、PIシナリオが適していると言えます。 しかし、ModelFirstは手段であり目的ではありません。なぜModelFirstを行うか?になると別の話題になってきますので、今回は、まず身近な目的で考えて見ましょう、例えばEFでサポートされないデータストアの使用を、将来的に実装したいなどが考えられるのではないでしょうか? と言うことで、セッションでは、ストアとしてXMLとMS-AccessのMDBファイルを使用して、PIシナリオとして、これらを切り替えてみました。(TechEdでは、その最中にVSが落ちたわけですが・・・) PIを実現するためには、エンティティが特定のプロダクトやテクノロジーに依存しないことが条件になります。しかし、現状のADO.NET EntityFrameworkでは、エンティティの実装(EDM)として、どうしても特定インタフェースを継承しなければなりません。   この話はよくしますが、確認方法としては、前々回でもご紹介した以下のツールを使用して、手動でEFを使用した環境を構築します。 EDM ジェネレータ (EdmGen.exe) http://msdn.microsoft.com/ja-jp/library/bb387165.aspx 具体例は以下が分かりやすいかと思います。 Entity Framework プロジェクトを手動で構成する方法 http://msdn.microsoft.com/ja-jp/library/bb738546.aspx ここで作成した、CSDL、SSDL、MSL、CS(VB)のコードを用いて環境を作成します。(下図) さて、上記のCS(VB)のコードファイルをダイエットしていくと、最終的に以下のようなコードと向き合うことになります。(例はNorthwindデータベースのProductsエンティティです) [EdmEntityTypeAttribute(NamespaceName = “NorthwindModel”, Name = “Products”)]    public partial class Products : IEntityWithChangeTracker ,IEntityWithKey , IEntityWithRelationships   …


Silverlightで開発するデータ駆動アプリケーション(書籍紹介)

同僚のエバンジェリスト鈴木章太郎が監修した書籍を紹介します。 Silverlightで開発するデータ駆動アプリケーション 価格:¥ 3,570 Silverlightでアプリケーションを開発する場合、データをどのように取得するかは大きな命題です。 Silverlightで作るものが、データの扱いが無い、単なる表示用のパーツならば、古(いにしえ)のJavaアプレットと大きな違いはないわけで、.NET Frameworkでの開発が出来るところが最大のメリットなのですから、それを活用しないことにはSilverlightの魅力が伝わりませんよね。 と言いながら、今までこれと言ってまとまった情報がなかったのが実情かと思います。 このブログでも、今後こうしたSilverlightをきちんと業務のアプリケーションで使うためには?という命題について書いていきたいと思っています。


Windows 7の開発をこれから知りたい方に向けて

TechEdのキーノートで、 弊社の大場(↓) もご紹介しましたが、 マイクロソフトでは、Winsows7アプリケーション開発の支援をしたいと考えています。 Windows7アプリケーション開発を支援します http://www.microsoft.com/japan/powerpro/developer/default.mspx 最終的には開発ポータルとしてはMSDN Windowsデベロッパーセンターになるはずですが、 上記のページは、その前のはじめの一歩としてご確認いただければと思います。 Windows7は、今後も多くの情報や活動をおこなっていきますので、どうぞご確認ください。


満員御礼でも裏技?

9/18に開催されるTech Fielders セミナー 東京 [.NET 開発テクノロジーの全体像]がめでたく満席になりました。 http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032423184&Culture=ja-JP その後も何人の方からキャンセル待ちのお話をいただいています。 とは言えキャンセル待ちは不確定なものですけが、裏技をコソっと。 実は、ライトニングトークの登壇者は普通にセミナー参加が可能だったりします。 どうしてもとお考えの方、いかがでしょうか? こちらも締め切りは9/4だったりしますので、迷っている方がいたら直接メールで相談も可能ですよー(ブログからメール可能です)


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

シナリオ2.~ より素早く、より効率よく を 考えてみる  ~ この方向性で.NET RIA Servicesをご紹介します。 N層アプリケーション開発で難儀な点を書き出せば限がありません。 しかしその要因は全て、「層が分離されている点」に集約されることは賛同いただけるでしょうか? 例えば、データのトランスファ、バリデーション、ビジネスロジック、チェンジトラッキング・・・こうした問題は、古き良きクライアント・サーバー開発では、表面化されてこなかったものです。(もちろん問題がなかったわけではありません。) そして、汎用化のために様々なテクノロジーやアーキテクチャが生まれてきましたが、これは開発の複雑さを増す要因でもあったわけです。 そこで、こうした考え方の解決として、ADO.NET Data Servicesは、リソースベースの考え方+LINQを用いました。 一方.NET RIA Servicesは、開発環境から見直しを図ります。 .NET RIA Servicesは調べれば多くの情報があるわけですが、ちょっと難解な書き方が多く本質がぼやけるような気がきますので、一番コアとなっている部分を最初にお話ししますね。 ポイントは、 「クライアントのビルドを行うと、サーバー側のロジック・エンティティが、クライアントに射影される」 クライアント(UI)サイドでは、射影されたロジックや型を使ってデータ処理を行うため、あたかもデータが近くにあるかのように開発を進めることが可能になります。 では、これをベースに、初めての.NET RIA Services を見てみましょう。 ■開発環境 以下をインストールします。 VS2008(Expressも可)英語版: (注意)現状は英語版のみになります。 Microsoft .NET RIA Services July 2009 Preview http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1 http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd ■手順1 Silverlight Business Applicationを新規作成します。(Name:Demo) (別にSilverlight…