月別アーカイブ: 2009年07月

8 posts

Programming Entity Framework

ブツブツ文句を言いながら[Programming Entity Framework]の7章まで読み進みました。この本のいいところは、VS2008SP1に沿ってEntitiy Frameworkを解説している点です。7章ではリアリティのあるビジネスモデルを設定して、8章以降でこのモデルを操作します。

ウィザードを使えばEDM(ADO.NET Entity Data Model)を容易に作ることができますが、実際に使うには相応の調整が必要のようで、その意味ではこの本の解説は貴重です。

「16章(約500ページ)までは読みたい」と思っています。現在150ページを過ぎたあたりですので、先はまだまだです。

.NET Framework3.5でC#とVBの言語拡張がありました。これもよさそうなのでボチボチ使いたいと思います。

LINQあるいは[ADO.NET Entity Framework]

そもそもLINQあるいは[ADO.NET Entity Framework]はこれからどうなっていくのでしょうか。
[ADO.NET Entity Framework]に対して、多くのテスターが不信任を出しています。
http://japan.zdnet.com/sp/feature/07microsoft/story/0,3800083079,20376043,00.htm

それでもマイクロソフトは[ADO.NET Entity Framework]の開発を進めていくそうです。
[ADO.NET Entity Framework]のいい解説書もない中、今この技術に飛びつくのは得策でしょうか。
もう少し時間がたてば答えがはっきりするでしょう。

いまそのことは横に置いて、勉強中の私がこの時点で理解している限りで、この技術の俯瞰図を描いてみようと思います。

リレーショナルデータベースの問い合わせ、変更等の操作の方法として、リレーショナルDBが考案されて以来SQLがあります。SQLはデータベースを直接操作します。

ADO.NETでは、DBとの非接続の技術が導入されました。すなわち、一度プログラムでメモリ上(Dataset)にデータを取り込んで(DBの接続を切断し)、その後でまとめてDBに返す方法です。これもアプリケーションプログラムでDBを直接管理します。

[ADO.NET Entity Framework]でも直接DBを操作する方法は残っていますが(EntityClient)、その上にビジネスロジックのEntityを操作することでDBそのものを操作をする方法が提案されました。
その操作手段として、まずEntitySQLというT-SQLに似た文字列式があります。EntitySQLはこのどちらのレイヤでも動作します。

これに対して[LINQ to Entity]はいわゆるLINQ構文で、VS2008ではインテリセンスが作動しますし、コードの生産性は非常に高まると思われます。

私は[ADO.NET Entity Framework]についてはまだ初心者ですが、自分で書いてみると、ADO.NETで一つのクエリを発行するのに、コネクションを開き、データセットを定義し…とかの前準備が沢山必要であることを考えるといかに少ないコードですむかということを痛感します。

細かいことはまだわからないことが多々ありますが、(プロジェクトによっては)十分使う価値があると思います。

Dell Studio 540

注文したDell Studioが11日届きました。予定では2週間となっていたのですが、1週間余りで届きました。
中国で組み立てて、船便で送るようです(ついでですが、サポートも中国?)。

それにしても、Amazonも2週間とかの予告で、「しょうがないか」と思っていると、予想より早く来ます。
アマゾンで一度、待っている間にキャンセルしたことがありましたが(勿論合法的、悪意なしです)、いまこれらの会社はキャンセルさせないように早く送っているのでしょうか。

Studio 540(HDD 500G)でパーティションを自分で切り替えました。大した問題はありませんでした。
一点を除いて満足です。
一点とは、解像度が1440 * 900 より大きく出来ません。
原因はCPU切り替え機を使っているのですが、このケーブルがVGAなのです。切り替え機がいけないのかVGAがいけないのか分かりませんが、ともかくうまくいきません。DVIでディスプレイと直接接続すれば問題ありません(VGAでの検証はまだしていません)。
なんとか解決したいのですが…。

これまで、メーカーのコンピュータを余り買いませんでした。
自由に改造をしたいから、最初から自分で組み立てていました。

しばらく自分で組み立てていなかったので、今組み多立てるとなると少し勉強をしなければなりません。
今回は、時間をとられたくないし、面倒だと思ったからDellに発注しました。

解像度の問題を除けば、このコンピュータには満足です。
その理由の第一は、音がほとんどしないということです。

これまで自分で組み立てると、電源に金を使っていないので、ファンの音が大きく「こんなものか」と諦めていたのですが、やはり少し余裕をもってコンピュータを作らないといけないと、変に納得しています。

ところで、DellのHPをみていたら本体1万5千円のコンピュータが出ていました。
一般ユーザには充分です。

環境が整ったので、Entity Frameworkの勉強を早くして、開発に邁進したいとも思います。

O’reilly “Programming Entity Framework”

O’reillyの”Programming Entity Framework”を読み始めましたが、少し失望しています。

この本は余り真面目に書いていない。先に読んだ”LINQ in Action”(以下LIAと書きます)のように本の構成がしっかりしていなくて「やっつけ仕事」に思えます。順序だって解説をしていないのです。

例えばラムダ式についてもほんの数行しか記述が無い。
例えば、次のquery expression

string[] words = { “hello”, “wonderful”, “linq”, “beautiful”, “world” };
var shortWords =
from word in words
where word.Length <= 5
select word;

と、次のC#の式との関係の説明もない。
var shortWords =
words
.Where(word => word.Length <= 5)
.Select word;

このC#で、ドットで繋がったコードが何なのか、何の説明もない(LIAではC#3.0の拡張メソッドで、query operatorとして説明がある)。

こんなに分厚いのに、順序だった解説をしないで、色々な話題が次々に出てくる。私は先にLIAを読んでいたからいいけれど、初心者も読者の対象にしているという割には不親切な解説です。
長所はVS2008SP1にそって解説していますので、そのマニュアルと考えれば、及第というところでしょうか。
どちらにしても、今のところまだEntity Frameworkの解説書が殆どでていないので、消去法ではいけば「止むを得ない」というところでしょうか。

話が変わります。
パッケージソフトのマニュアルを作成したのですが、説明に貼り付けた画面画像が不鮮明でどうしたものかと悩んでいます。
画像が大きくて、そのままの大きさでマニュアルに貼り付けることが出来ないため、Photoshopで縮小していますが、縮小するとどうしても文字がつぶれてしまいます。
ソフトから起動するHelpは、マイクロソフトの仕様ではHTMLで作成しなければなりません。
ということは、画像はjpeg等のラスターデータになります。
従って、マイクロソフトがHelpの仕様を変えない限り、画像は縮小を変えないか、縮小すれば画像が不鮮明になるのは「しょうがない」と諦めるしかないと結論づけています(マイクロソフトはSilverlightを発展させてこの問題を解決してくれるかも知れない?)。

現在はマニュアルもHelpと同じようにHTMLで作成して、Pdfに変換していますが、Htmlにする必要はないので、こちらは「工夫した方がいいかな」と思っています。
TEXというUNIXの世界で使われていた無料のドキュメント作成ソフトがあります。インストールしましたが、フォントの設定が悪く、スムースに動作しません。ただし、問題はTEXを使って画像の問題が解決するかどうかです。

Pdfはベクトルデータですので、貼り付ける画像をPdfにする手はありますが、これも縮小の割合に限界があります。
まだ悩みは続いています。

風が吹けば桶屋が儲かる

そもそも私は、新しいプロジェクトを始めるにあたって、LINQが使えるかどうか調査をしたのです。その結果は、コンピュータを一台買い、Windows 7をインストールすることになりました。

ことの顛末は、
->LINQは使えそうだ
->ADO.NET Entity FrameWorkを動かしてみる
->私のコンピュータはVS2008のエンティティ画面でモデルブラウザを表示すると必ずシステムダウンする
->マイクロソフトにバグ報告をすると同時に、新しいコンピュータを注文する
->届くのに2週間かかる
->それまで待っておれない。手持ちの環境で動作するようにする
->OSを変える
という訳でWindows 7 RCをインストールし、続いてVS2008やSLQ Server 2008をインストールしました。
Windows 7 ではグラフィックボードが認識されなくて、縦の解像度が800以下なのが気にいりませんが、モデルブラウザを表示しても、システムダウンすることはなさそうです。

私は、エクスプローラでファイル構造をツリーで表示するのが好きなのですが、Windows 7ではどうすればツリー構造を表示できるのでしょうか。

話が変わります。一ついいことがありました。
アマゾンに今月一日「Programming Entity Framework」を注文しました。12日の配達予定になっていましたので、アメリカから送ってくるのだろうから仕方ないと思っていましたが、本日届きました。

例によって米アマゾンでの評価を見て注文しました。O’reillyのSafariシリーズの一冊です。O’reillyの本は字が詰まっていますし、800ページ近い本ですので、これだけで少し気後れします。

一見してEntity Frameworkについてしっかり書いてあるようです。気楽に必要なところを拾い読みしましょう。なんとかEntity Frameworkをものにしたいと思います。