LINQ in Action

16日思ったより早く、アマゾンから[LINQ in Action]が届きました。早速読み始めました。平易な英文で、辞書なしで拾い読みです。日本語訳の「プログラミング LINQ」よりよほどよさそうです。

なるほど。
まずオブジェクト指向言語(以下OOPといいます)が良いものだという前提で話をすれば(私もOOPはいいものだと思っています)、OOPでリレーショナルデータベースを扱おうとしたり、XMLを扱おうとすると、それぞれのデータソースに対して、それぞれ異なるプログラムを書かなければいけないし、そもそもOOPとリレーショナルデータベースあるいはOOPとXMLは異質なものでしょう。ここにインピーダンスミスマッチがあるのです。

すなわち、
“Data != Object” だし、”XML data != Object”だし、さらにいえば”XML data != Relationa Data”でしょう。
なるほど。

最初の十数ページを読んだところです。
よさそうです。

開発環境をどうするか

Housingの開発にあたって、先ず開発環境をどうするかが問題になります。「パーキング~」はVS2005(VB.NET)+Accessで開発しました。

いろいろ考えた末に言語はVS2008(VB.NET)、データベースはSQL Serverを使うことにしました。本当はC#を使いたかったのですが、「パーキング~」の資産が沢山あって、それを使わない手はないし、C#への書き換えに時間をとられたくないし、開発期間を長くしたくないしという判断が大きく働いて、しぶしぶVBを使うことにしました。

ただし、VBからC#への書き換えはSharpDevelopが使えます。SharpDevelopは簡単に相互変換をやってくれます。ですから本当は、書き換えに時間がかかるというより、C#に慣れるのに時間がかかりそうだというのが本当のところです。

予断ですが、SharpDevelopはなかなかいいと思います。インストール仕様のWIXもVSより進んでいます。なんといっても無料だし、時間があればSharpDevelopでの開発をしたところですが、予想外の出来事があるかもしれないと、VS2008に収まりました。

一方データベースは、扱い安さからいえばAccessですが、データも本格的に構築しなければなりませんので、Sql Server Expressを使うことにしました。ただし開発環境では、メンテのしやすさからSQL Server Developerを使います。

出来るだけ一直線で開発したいのですが、今LINQが気になっていて、すこし勉強しています。マイクロソフトの「プログラミング LINQ」の日本語版を買って読み始めましたが、驚くほど翻訳が悪い。何を言っているか分からない。この原書を取り寄せようかとも思ったのですが、アメリカ・アマゾンではそもそもこの本の評判がイマイチなので、「Linq in Action」を読むことにして、注文しました。

LINQが使えるのかどうか少しだけ勉強して、開発にできるだけ傾注したいと思います。

Housing開発/再開発

アパートの賃貸管理ソフトの開発を、実は約6年前に着手しました。いろいろあって、結局駐車場の賃貸管理ソフトの開発に方向転換して、「パーキング~」として発売ができるところまできました。

そこで、初めに返ってアパートの賃貸管理ソフトの開発に再度挑戦することにしました。

このブログではその奮戦記を書きたいと思っています。開発はおよそ2年見ています。

どのようなことになりますか。

ソフトウェアの開発 Etc

一般の人は知らないことですが、一つのパッケージソフトを完成させるのには、考えもしなかったことに時間をとられます。

何かの役に立つプログラムを開発するのですから、そのことに時間を取られるのは当然ですが、予想外に時間をとられるのが、マニュアルやヘルプの作成であり、製本やCDのラベルのデザインやパッケージとしての体裁作りです。

その中に、インストールプログラムの作成があります。

ソフトウェアの開発では、開発者が書いたプログラムだけでそのソフトが動作する訳ではありません。Windows等コンピュータそのものを動かしている基本ソフトもそうですし、プログラムの開発に係るソフトもそうですし、場合によってはサードパーティから買い込んだソフトがあって、初めて動作します。

開発環境で動作確認した後、パッケージにしてお客様のコンピュータにインストールするわけですが、このとき早い話が開発環境と同じ環境(内容)をお客さまのコンピュータに構築することになります。

これがことの始まりです。

ソフトは常に進歩しています。同じ名前でのソフトもバージョンがどんどん変わっていきます。ソフトの開発者はそれを余り注意もしないで様々なソフトのご厄介になりながら開発していくことになります。

あるソフトAがCというソフトのバージョン2(今C2と書きます)を使って開発し、AとC2をあるコンピュータにインストールしたとします。続いてソフトBがC1を使って開発し、同じくそのコンピュータにインストールします。

このときCはCなので、C2はC1に上書きされC2はなくなってしまいます。するとAがあてにしていたC2はなくなっているのでAがうまく動かなくなる可能性があります。

さらに悪いことには、何かの都合でBのソフトを削除したとします。このときなにかの不具合で、Bが使っていたC1も削除してしまうと、曲がりなりにもそれをあてにしていたAは動かなくなってしまうという訳です。

多少極端に話しましたが、かってはこのようなことをしていました。

数年前にマイクロソフトは、方針を変えました。コンピュータの中にインストーラというソフトが常駐し、誰かがソフトをインストールしようとすると、このインストーラが交通整理をします。

インストールしようとするソフトの拡張子がmsiでは、このような仕組みでソフトをインストールしています。ところでこのインストールパッケージ(msi)ファイルを作るのが結構厄介です。

msiを作ることをサポートするソフトがありますが結構高価なのです。マイクロソフトもこのツールを出していますが強力ではないので、本気で自分でインストールパッケージをつくるとなると、本気モードでかからなければいけません。

「坂の上の雲」を読む 3

私は、明治以降の歴史を知らない。

一つには学校教育の問題である。高校では日本史も世界史も教わり、大学受験も確かに日本史と世界史で受験した。だけど近代の歴史を知らない。その原因の一つは学校ではこの部分は3学期の最後に教えることになり大急ぎで通過してしまうからだし、もう一つは学校教育があえて近代史を腫れ物に触るように扱ったからであろう。私は戦前の生まれで私の時代はそのようなものであったが、今も歴史教育はそうなのであろうか。

私にとって歴史とは、蘇我入鹿や聖徳太子であり、源平であり、戦国の時代であり徳川である。世界史でも同様である。私の世界史はエジプト文明であり、インダス文明であり、唐の時代であり、ギリジャ・ローマの歴史である。早い話、私にとっての歴史とは昔々の歴史物語である。

明治以降の日本の歴史もアラブやイスラエルの問題も詳細には知らない。近代史は血の匂いがし、特に日本のそれは陰惨な匂いがするために、近づきたくないという深層心理が私を近代歴史から遠ざてしまった。

だが本当はそれは間違っている。見たくないところを直視し、正しく判断し、次の世代に正しい考え方をつないでいかなければいけない筈だ。

それにしても司馬遼太郎のこの小説はすべて事実なのだろうか。