サンプルをSQL Azure対応に変更する
準備が整ったところで、いよいよサンプルのAzureアプリケーションのデータベースを、ローカル環境のSQL Serverからクラウド上のSQL Azureに切り替えます。
[1]SQL Azureの接続文字列を取得する
先程の図7のServer Administrationページの「Databases」タブを表示し、Shopデータベースを選択します。そして、[Connection Strings]ボタンをクリックします。すると、図9のようにADO.NETとODBCの接続文字列がダイアログに表示されます。
サンプルでは、ADO.NETを使用しますので、ADO.NETの接続文字列の右側にある「Copy to clipboard」リンクをクリックし、接続文字列の情報をクリップボードに保存します。
[2]Web.configを編集する
Azureアプリケーション(SQLAzureSampleプロジェクト)のWeb.configを開き、ShopConnectionString接続文字列のconnectionString属性を変更します。[1]でクリップボードに保存した接続文字列を貼り付け、myPasswordの部分を正しいパスワードに修正します。アプリケーションの変更はこれだけです(なお、サンプルコードは、変更前の接続文字列となっています)。
以上の手順を実行し、プロジェクトをビルドし実行してみます。実行結果の画面は今まで通りですが、データベースはクラウド上のSQL Azureになっています。いろいろと操作してみてください。ADO.NETを使用したデータコントロールが発行するSELECT、INSERT、UPDATE、DELETEのSQLステートメントが、SQL Azureでも正しく動作していることが確認できます。
なお、今回のサンプルでは扱いませんでしたが、SqlConnectionクラスやSqlCommandクラスなどADO.NETのライブラリを直接使用しても、簡単にSQL Azureにアクセスすることができますので、ぜひ試してみてください。
クラウド上に配置する
最後に、アプリケーションもクラウド上に配置し、データベースと共にすべてをクラウド化してみましょう。
開発環境のソリューション エクスプローラ上で、SQLAzureSampleプロジェクトを右クリックし、[発行]メニューを選択します。発行が開始され、サンプルのサービスパッケージファイル(SQLAzureSample.cspkg)とサービス構成ファイル(ServiceConfiguration.cscfg)が作成されます。
この2つのファイルをクラウド上に配置します。配置方法の詳細については、シリーズ第2回を参照してください。
まとめ
今回は、Windows Azureにリレーショナルデータサービス機能を提供するSQL Azureと、データベース本体の機能を提供するSQL Azure Databaseについて扱いました。
ADO.NETやデータコントロールを使用してSQL ServerにアクセスするWebアプリケーションが、わずかな修正で簡単にSQL Azureに対応することが理解できたのではないかと思います。