以下の環境で開発とテストを行います。
- 開発: VirtualBox を使用した MySQL データベースを備えたデスクトップ (すぐに、開発マシンで直接 SQLite を使用)
- ローカル テスト: Mono と MySQL を使用した VirtualBox 上の Linux 仮想マシン
- Azure ステージング: SQL Azure バックエンドを使用した Azure Web サイト ロール
- 別の Azure ステージング: Apache/Mono スタックと SQL Azure をバックエンドとして使用する Linux VM
Visual Studio 2012 発行機能を使用してこれらの環境に発行します。たとえば、FTP 構成を使用してローカル テスト環境に発行し、管理コンソールから Azure 発行プロファイルを既にダウンロードしています。
環境のさまざまな設定を管理する必要があります。主に、接続文字列と方言に関する NHibernate の構成です。しかし、遅かれ早かれ、各環境で異なる Spring Bean を使用する予定です (つまり、クラウドでは、ローカル ファイル システムよりもブロブ ストレージを利用します)。
私はすべての構成を Web.config で定義しているため、Spring を多用して環境が変化したときにコードに触れないように全力を尽くしています。