これまでに、.Net 版の LiquiBase に対する少なからぬ興味が持たれてきましたが、まだ動作するものはありません。このページでは、.Net 版の現在の状況とロードマップの概要を提供します。もっと情報が必要だったり、援助をしていただける方は、the LiquiBase .Net 版フォーラムまでどうぞ。
最初の(もしかしたら長期の)目的は、.Net 版と Java 版の LiquiBaseでできるだけソースコードを共有することです。LiquiBase には、どのプラットフォーム化に関係なく、”if creating a table of database type X, use this SQL” といったたぐいのロジックが大量に存在しています。ロジックをできるだけ性格で完全なものにするために、liquibase の多くの部分はクロスプラットフォームな言語で書かれています。利用可能なオプションを評価して、IKVM.NET を利用して Java のバイトコードを .Net にすることにしました。
Java 版の LiquiBase に多くの労力を割く計画のため、主要な Java の LiquiBase 開発者は、2010年の後半までは、質問に答えたりする以上の、一般的なアーキテクチャや方向性について以上の貢献は行えません。
メモ: このドキュメントをぜひ改善してください。
LiquiBase のソースコードは下記よりチェックアウトできます http://liquibase.jira.com/svn/CORE/trunk
liquibase.jira.com の有効なアカウントを持つ人であれば誰でも、コードをコミットできます。それらはプロジェクトの開発者によってレビューされます。
IKVM は、Javaのバイトコード(ソースコードファイルではなく)を、.Net の IL にコンパイルするため、変更を行ったり、コアライブラリーを変更したりするには、Javaでの開発環境が必要です。
これらをダウンロードしてインストールします :
Just unzip the file to where you want it installed
.Net 版が熟成してきたら、プレコンパイルされ、IKVM直前のビルドで、Javaの開発環境を必要としないものを提供する予定です。
LiquiBase レポジトリには、core-clr フォルダフォルダがあり、Visual Studioのソリューションファイルを含む.net の実装コードが格納されています。
liquibase のコアとなるパッケージやメソッド名は、最初の文字が小文字になる Java の命名規則に従っていることに気づくでしょう。いつかは、.net に対応したファサードを作って、ほとんどの場合はそれらを隠蔽したいと考えています。どれだけ簡単なのかはわかりませんが、戻り値の型やパラメータなどを探すときには気にとめておく必要があります。いつの日か、LiquiBase を統合するときの最初の段階として、LiquiBase.LiquiBase という C# クラスを作成し、liquibase.LiquiBase の Java クラスと同じようにしたいと考えています。