Windows Azureクラウドサービステンプレートを使う
Visual Studio 2010でWindows Azureアプリケーションを作成するためには、「Windows Azure Tools for Microsoft Visual Studio 2010 1.2」をインストールする必要があります。
Windows Azure Toolsを追加インストール済のVisual Studio 2010で新規プロジェクトの作成を行うと、テンプレートに[Cloud]-[Windows Azureクラウドサービス]が追加されており、このテンプレートからWindows Azureアプリケーションが作成できます。
ロールの選択
テンプレートを選択して[OK]をクリックすると、使用するロールの選択ダイアログが表示されます。ASP.NET WebアプリケーションをWindows Azure上で実現するためには、[ASP.NET Webロール]を選択します。
前述のとおり今回のサンプルでは、ASP.NET Webロールに加え、ActiveReportsでPDFを生成するコードの稼働ロールとしてワーカーロールも使います。これは、ワーカーロールはWindowsサービスのようなロールで、負荷の高い処理などはASP.NET Webロールから呼び出すワーカーロール側に設置するのが、Windows Azureの実用的なコード配置の1つの基準だからです。ただし、今回はActiveReportsを使う方法に主眼を置いているため、サンプルコードを少しでもシンプルにするべく非同期ではなく同期呼び出しとしています。
ロールを選択し、右側のリストボックスでロール名を変更したら、[OK]ボタンをクリックします(後から変更するよりも、この時点で名前をつけることをお勧めします)。これで、自動的にWindows Azureアプリケーション用のソリューションが作成されます。
ソリューションの初期状態からの変更
Visual Studio 2010のASP.NET WebアプリケーションテンプレートやASP.NET Webサイトテンプレートには空のテンプレートがあり、不要なaspxファイルが生成されません。しかし、今回のサンプルのようにWindows AzureクラウドサービステンプレートでASP.NET Webロールを生成すると、「Defalut.aspx」「About.aspx」「Login.aspx」ファイルが生成されます。そこで、ASP.NET Webロールから不要なaspxファイルやフォルダを削除して、必要最小限の構成にします。
Default.aspxページを作成
Default.aspxページに、PDFを表示するためのボタンを配置します。Windos Azureアプリケーションといっても、ASP.NET Webロールであれば、ページのデザインはASP.NET Webフォームと同じです。ツールボックスからButtonコントロールをドラッグ&ドロップして、プロパティを設定すれば完成です。
Windows Azureに発行
WebロールのGUIができたので、コンパイルエラーがなければ、ActiveReports関連のコードを組み込む前にWindows Azure上で動作するかどうかをクラウドサービスに発行して動きを確認してみます。
クラウドサービスに発行する前に、利用するためのアカウント設定が必要です。詳しくは筆者ブログのエントリー「Windows AzureをMSDN特別導入プランで無料利用するための設定方法」などを参考にしてください。
クラウドサービスに発行するには、ソリューションエクスプローラーからクラウドサービス定義のプロジェクトを右クリックして、[発行]を選択します。[クラウドサービスをWindows Azureに配置します]を選択し、資格情報などを選んで[OK]をクリックすれば、自動的にWindows Azureに転送が行われ、配置されます。
Windows Azureアプリケーションの実行
発行が完了したら、最後に表示されているWebサイトのURLをクリックすると、Windows Azureアプリケーションをブラウザから呼び出せます。
もちろん、この時点ではPDF作成部分は組み込んでいないので[PDF出力]ボタンをクリックしても何も起こらないのが正常な動作です。ここまで確認できたら、次はActiveReports関連のコードを組み込んでいきます。