設定とパラメータファイルのバージョンアップ仕組み

本記事は、[C#での設定ファイル管理とパラメータのバージョンアップ]の連載のベースとなる技術として、設定とパラメータファイルのバージョンアップ仕組みについて記載します。アプリケーションを開発するにおいて、アプリケーションのバージョンアップは欠かせないものです。アプリケーションのバージョンアップとともについて来るのが、設定ファイル、パラメータファイルのバージョンアップが伴います。この記載では、設定とパラメータファイルのバージョンアップの基本的な仕組みについて記載します。

設定ファイルのバージョンアップの仕組み

C#でのプログラミングであれ、C/C++のプログラムであれ、プログラミング言語に問わず、基本ルールは大きく変わりありません。管理人の場合は、以下のフロー(ロジック)を使っています。

設定ファイルのバージョンアップ仕組み

  1. まず、ファイルのHeader部分を読み込みます。
    XML,JSON,バイナリファイルなど同じ方法で先頭のHeader部分だけ読み込むと良いです。ファイルをすべて読み込む必要はありません。
  2. 読み込んだHeader部の情報をチェックし、アプリケーションとマッチングするファイルがチェックします。
    もし、ここで、マッチングしない場合は読み込むことができない旨のエラー処理を行います。
  3. 読み込んだファイルはアプリケーションが要求するバージョンのファイルであるかチェックします。起動アプリケーションによっては、最新のバージョンであるかのチェックになります。
  4. 読み込んだファイルが最新バージョンであることから、ファイルをアプリケーションが保持している最新のフォーマット(クラスなど)で読み込みます。
  5. 読み込んだファイルはアプリケーションの最新のバージョンではありませんので、ファイルのHeader部分に書かれていたVersion情報に合わせて読み込みます。
    例えば、アプリケーションはVersion=3で動作しようとするが、読み込んだHeader部分に書かれていたVersionが1であったなら、Version=1として読み込みます。
  6. バージョンアップ
    6-1.読み込んだ情報を次のバージョンにデータ変換を行います。管理人はVersion Conveterと言います。
    6-2.Version Conveterした結果が最新のバージョンであるかを再チェックします。
    Version Conveterしてもバージョンが最新でなかった場合は、もう一度、Version Conveterします。例えば、アプリケーションはVersion=3で動作しようとするが、読み込んだHeader部分に書かれていたVersionが1であった場合、Version Conveterによって、Version=2になります。この時は、まだ、最新のバージョンでないので、もう一度、Version Convterterを行い、あったなら、Version=1として読み込みます。
  7. 最新のバージョンのデータになっているので、アプリケーションで必要な処理を行います。

データファイルの持ち方

・XML、JSONなどのテキストファイルの場合

XMLやJSONなどのテキストファイルの場合は、先頭部分のデータとして持ちます。すると、先頭だけ、読み込むことで、設定情報の変更・追加などに影響を受けず、ただしバージョンファイルとして読み込むことができます。

バイナリファイルの場合

設定情報を独自のバイナリファイルとして扱う場合も、考え方は同じです。ヘッダの文字列の長さはアプリケーションの都合に合わせて変更してください。

バイナリでのバージョン情報

まとめ

管理人の経験上、テキストファイル型のデータ保持方法(XML,JSONなど)も、バイナリファイルのデータ保持方法も、バージョンアップを行うためには、ファイルの先頭がほうが良いです。先頭のヘッダ部分を読み込み、必要なバージョンのファイルであるかをチェックし、バージョンアップを行います。