アプリケーションデータの保存場所

Posted on :| コメント (0)

 ほとんどすべてのソフトには設定項目が存在し、データを保存する必要があります。 その保存の方法はWindowsの世代を経るごとに移り変わりました。大きく分けてINIファイルに保存、レジストリに保存、 XMLファイルに保存とあります。それぞれ一長一短あります。

(1)INIファイルに保存

 Windows 3.1の頃から利用されてる方法で、 システム設定もWin.IniやSystem.iniといったINIファイルに保存されていました。中身はテキストファイルなので、 ほとんどのアプリケーションに利用しやすいという反面、データ数が増えると読み込みに時間がかかるという欠点があります。
 ファイルの保存場所の多くは、アプリケーションのインストールフォルダ直下となっています。

 この方式の利点は、アプリケーションと一緒に管理できるため、 システムに密接に関わっていないアプリケーションはコピーすればそのまま別のPCでも使えるという利点があります。
 レジストリを汚さない方式として、日本人には受けがよい方式でもあります。

(2)レジストリに保存

 Windows95から登場した方式で、User.Dat、 System.Datといったシステムファイルにデータを保存する方法です。 レジストリへのアクセスはレジストリエディタや専用のAPIを使う必要があります。
 システムすべての設定が格納されていますので、レジストリが不正だったり破損するとOSが起動しなくなったり、動作不良を起こします。 また、レジストリが肥大化するとOSの動きが遅くなったり、起動までに時間がかかるようになります。

 レジストリの利点は設定値がすべて1カ所に格納されるため、管理がしやすいという事にあります。 あるアプリケーションがExcelやWordなど別のアプリケーションの設定を参照することも可能です(最近のバージョンはXML等に移行しているので、 すべての設定を確認することはできません)。

 レジストリはシステムと一体化しているため、アプリケーションの設定を新しい環境に持ち越すには、 レジストリの内容を書き出しておく必要があります。

(3)XMLに保存

 最近推奨されている方法で、INIファイルの代わりにXMLで出力します。中身はXML言語で書かれたテキストファイルです。
 保存場所はWindowsXPの場合、C:\Documets And Settings\ユーザー名\ApplicationDataフォルダに保存されます。 アプリケーションと同じフォルダにXML形式で保存しているソフトもありますが、推奨されてません。

 この形式のメリットは、シリアライズという技術を使えば、データの保存読み出し処理を少ないコードで簡単に記述できる点にあります。 あとは、データベースと同じように扱えるという利点もあるようですが、吉田はこちらは試したことがないので、言及しません。

 Windowsのバージョンがあがるにつれ、アプリケーションデータの保存場所はどんどん変わってきたわけですが、 常々疑問に思っているのは、ユーザーの利便性がないがしろにされているのではないかという点です。

 書き込まれたデータが増えればOSの起動が遅くなるレジストリは論外として、INIファイルもXMLも本質的には同じものです。 ただ、保存場所が違っています。確かに、ユーザーごとに設定を変える必要のあるアプリケーションはDocuments And Settingフォルダに保存するのもいいと思いますが、ほとんどの場合、同じ設定を使う方が都合のよいアプリケーションばかりです。

 そのようなアプリケーションの場合、 データがアプリケーションのインストールフォルダに一緒においてあるというのが何よりもメリットだと思っています(競馬ソフトのなかにはデータベースにようにサイズが大きいものがあるので、 これらは別ドライブに移動できるように配慮する必要はある)。

 というのも、バックアップを取っておけば新しいパソコンで稼働させるのも楽になる上、 バックアップ自体もやりやすくなります(Documents And Settingsフォルダに保存するやり方は、 不慣れな人間には敷居が高すぎる)。

 XMLにしても今はここに保存するのがトレンドだという論調の記事はよく見かけますが、 なぜXMLに保存しなければならないのかまで言及した記事はほとんど見たことがありません(どこかにあるのかもしれませんが)。 XML自体にも利点はありますが、設定値をバージョンアップ時に増やしたり、不要な設定項目をカットするには、 INIファイルの方が便利であるといえます。

 アプリケーション設計者がやり方を選択できるならよいのですが、 Vistaではアプリケーションのインストールフォルダ(デフォルトであるProgram Files)に対してファイルやフォルダの追加ができなくなりました。つまり、 ユーザーの使い勝手の悪い方向へ改悪されていると言うことです。
 Microsoftはもう少し、ユーザーの視点に立った設計をしてもらいたいものです。

 吉田は可能な限りユーザーの利便性にたった設計をしていくつもりですが、Vista対応が必要なアプリケーションは、 フォルダを移動する必要があるため、その分使い勝手は悪くなってしまいます。XMLにしてもINIファイルほど使い勝手がよくないので、 今後も研究が必要ですね。

コメント

コメントフォームに記入し投稿してください





Search
最近の記事
カテゴリー
過去の記事
Comments
TrackBacks
Feed
Powered by