Share via


Windows Azure Tools for Visual Studio 1.4 と Storage Analytics の紹介~クラウドカバー Episode 54

 

Channle9 の人気番組、クラウドカバー。

今回紹介するのはその Episode 54。 新しくなった Visual Studio 用 Windows Azure 開発ツールである Windows Azure Tools for Visual Studio と、ストレージサービスに新たに追加された機能 Storage Analytics の紹介です♪

 

 

さていつものように最初はニュースから。

 

Announcing The End of The Free Promotional Period for Windows Azure AppFabric Caching

最初のニュースは、AppFabric Caching の無償プロモーション終了のお知らせです(Cloud Cover 本体の放映、およびこのブログのポストともに間に合っていませんが :-) プロモーションは8月1日に終了しています)。

MSDN Subscription 会員な皆様や、導入特別プラン、パートナー向けプログラム Cloud Essential では引き続き 128MB まで無償利用可能ですので、まだ試してなくって、試してみたい!、という方はお試しください。

なお、AppFabric Caching を無償でお試しいただくには、AppFabric の今後リリース予定の新機能をお試しいただく AppFabric Lab を活用頂く、という方法もありますので、こちらもどうぞ。

 

Must have NuGet Packages for Windows Azure Development

Windows Azure 開発で必須となるモジュール(パッケージ)のNuGet (発音は「ニューゲット」という感じ)を使ったゲット方法に関するエントリ。

最初に NuGet 自体を Visual Studio の「ツール」—>「拡張機能マネージャー」からインストールする必要があります。お目当ての Windows Azure 用のパッケージが見つかったら “Install-Package” でどうぞ!

 

Updates to the Windows Azure Platform Training Kit

Windows Azure トレーニングキットのアップデート。

もろもろありますが、最新の Windows Azure SDK である 1.4 に対応したのが最大の目玉。

 

Announcing the August 2011 Release of the Windows Azure Tools for Microsoft Visual Studio 2010

ということで、Windows Azure Tools for Visual Studio のアップデートがいよいよ登場。

開発環境としての強化として、Windows Azure に対するプロファイリング機能の追加、MVC 3 Web Role プロジェクト テンプレートの追加等々、盛り沢山な内容。今回は Windows Azure 上の Guest OS も API も更新はなく、ツール側だけの更新です。

詳しくはこの後。

なお、ツールを入手いただくには、 Web Platform Installer でのインストールがお勧め♪

 

また、「Cloud Nick」こと、Nick Harris のブログでもツールに関する、スクリーンショット満載な詳しい解説が行われていますので、バーチャル ウォークスルーにどうぞ :-)

 

 

ではここからが今回のクラウドカバー本体。Windows Azure Tools for Visual Studio の解説です。

今回追加された新機能ですが、

  1. MVC 3 Web Role プロジェクト

  2. コンフィギュレーションの複数設定

  3. プロファイリング機能

  4. Validation(検証) 機能

の4つに分けて紹介していきます。

 

まず、最初に紹介するのは MVC3 Web Role プロジェクト テンプレートの追加。

image

 

MVC 3 プロジェクトは、Visual Studio 2010 の製品リリースの後に出た追加機能であるため、これまで Windows Azure で使用する際には、MVC 3 のプロジェクトを最初に作って後からクラウドプロジェクトを追加する、とか Accelerator で配置してみるとかの方法をとっていましたが、今回プロジェクトテンプレートが追加されたことで、余分な作業なく MVC 3 なプロジェクトを Windows Azure 上で作成できるようになりました。もちろん Razor 構文も選択できます。

このプロジェクトテンプレートでは、Windows Azure に配置すべきアセンブリの設定も行われています♪

 

そして、このプロジェクトテンプレートでもう一つ特徴になるのが、ASP.NET Universal Provider の利用。ASP.NET Universal Provider は開発中のコンポーネントで、オンプレミスな SQL Server および クラウドな SQL Azure でセッション ステート情報やメンバシップ、プロファイル等の機能を共通で使用できるようにするための機能を提供します(詳しくは ScottHa(スコットハー)こと Scott Hanselman のブログ ポスト “Introducing System.Web.Providers - ASP.NET Universal Providers for Session, Membership, Roles and User Profile on SQL Compact and SQL Azure” を参照ください)。

image

 

中でも Windows Azure 的に大きいのは、この Universal Provider によって、セッションステート情報の格納先として、SQL Azure が選べるようになること。

これまで、マイクロソフトとして正式にクラウドなセッションステート情報格納先としてサポートしているのは、AppFabric Caching だけでしたが、今後この Universal Provider がリリースされれば SQL Azure を格納先として選択できるようになります。

 

ただし、今回の MVC 3 Web Role プロジェクトテンプレートではこのまま Azure に配置してもプロジェクトは正しく動作しません。

 

理由は、デフォルトで使用するデータベースが SQL Express になっているため。そのため、このプロジェクトをローカルで実行しても問題ありませんが、(SQL Express がない) Azure に展開するとエラーになります。

 

そこで、Wade と Steve はACS 使うからメンバシップ機能なんていらないぜ!、とニッコリ笑顔でさくっと Universal Provider を削除。

image

 

さて、クラウドカバーの中ではこれでおしまいなのですが、Wade が後日 Universal Provider を Windows Azure 上で使用する際の手順を「Deploying the Windows Azure ASP.NET MVC 3 Web Role 」にまとめていますので、ぜひこちらも確認ください。

 

また、Windows Azure 上のアプリケーションでのセッションステートの格納先選択肢に関して、Windows Azure の MVP である亀渕さんが情報をまとめられているのでぜひご覧ください–> 「Windows AzureのWeb Roleでセッションを共有する」(その前の4回ものの Universal Provider に関するエントリもぜひ)。

 

さて、2つ目の話題は、複数設定可能になったコンフィグレーション。

クラウド プロジェクトにおいて各 Role プロパティを確認すると、コンフィグレーションの選択、追加が可能になています。

image

 

クラウド プロジェクトのファイル構成でも、cfcfg ファイルが Cloud と Local の2つあります。

image

 

コンフィギュレーションを追加したいときには、既存のコンフィギュレーションを選択してから「Create Copy」でコピーを作成します(素のままでの新規作成はできないようです)。

image

 

コンフィギュレーションの設定でもっとも使いそうなのは、データベース接続のための ConnectionString。ローカル実行の際は SQL Express を、クラウドでの実行の際は SQL Azure をポイントするように設定しておくことで、配置の際のうっかりミスを減らせそうです。

 

これに関連して、今回のツールから Azure プロジェクトの発行(展開)メニューが変更されています。

これまで、「発行」を選択した後に、パッケージを作成するのみか、実際に Azure に配置するかを選択していましたが、今回のツールではそれを最初に選択するようになりました。

image

 

メニューから「Package」を選択した際には、パッケージの作成のみが行われます。次のようなダイアログが立ち上がり、コンフィギュレーションの選択と、Remote Desktop の設定を行うことが可能です。

image

ここで作成したパッケージファイルは、Windows Azure ポータルからマニュアルで Windows Azure 上へ配置することが可能になります。

 

一方、「発行」を選択した際のダイアログは、これまでより精悍さ(?)を増した感じで立ち上がってきます。

image

ここでもこれまでの「発行」の際のオプション選択等に加え、コンフィギュレーションの選択が可能になっています。また、下のほうをよく見ると、"Enable Profiling” というメニューが。

 

ということで、話題は主要な追加機能の3つ目、プロファイリングの話へ。

※ Windows Azure のプロファイリングを行う際には、Visual Studio 2010 Premium Edition または Ultimate Edition のプロファイリング機能を利用しています。

実際に “Enable Profiling” を選択したうえで、右側にある詳細メニューのリンクをクリックすると、プロファイリング手法の選択ダイアログが立ち上がります。

image

 

詳しい話は Nick のブログ「Using the New Windows Azure Tools v1.4 for VS 2010」で、ということで、さっそくしばらく動作させた Web Role インスタンスにおける実際のプロファイル結果を見てみましょう。

 

プロファイル結果は、サーバーエクスプローラーで、プロファイルを確認したいインスタンスを選択し、右クリックで表示されるメニューから “View Profiling Report” を選択することで確認できます。

image

 

しばらくするとプロファイルのデータが Azure からローカルへダウンロードされ、以下のようなレポートが表示されます。

image

 

 

さて、いよいよ最後に紹介するのは、Validation (検証)機能。

Azure への展開時にやってしまいがちなミス、たとえば必要なアセンブリの組み込みを忘れてしまう、といったことを防ぐため、Visual Studio でできる限りのチェックをしますよ、という機能。

 

ためしに MVC 3 Web Role プロジェクトで、Razor のアセンブリをプロジェクト発行時に含めない設定にすると、以下のように警告が。

 

image

 

アセンブリのほか、接続文字列の内容も確認してくれるようです。

 

ということで、さまざまな機能強化が行われた Windows Azure Tools for Visual Studio。

是非 Web Platform Installer から入手して、お試しください!

 

最後は恒例の Tip of the Week!

image

 

今週は Windows Azure Tools のほかにももう一つのリリース、ストレージ サービスにおける新 API のリリースがありました。この API はストレージの使用状況のログ、およびメトリクスを取得するための機能(Storage Analytics の機能)を提供します。

Announcing Windows Azure Storage Analytics

 

ログ機能はデフォルトでオンになっているわけではなく、明示的に設定する必要があります。

具体的には、どのストレージ(Blob、キュー、etc)に対して、どのようなログ(書き込み、読み込み、etc)をとるかを、Storage Service Properties の設定で行うことになります。

 

また、取得されたログ情報は Azure のストレージ(Table と Blob)に適宜保存されますが、こちらに関しては通常のストレージ使用時と同様に課金が行われますので留意ください。

 

Storage Analytics の API 自体は HTTP/REST な API での提供ですので、プログラムからも簡単に利用することが可能です。

image

 

なお Steve による Storage Analytics の解説、および今回のクラウドカバーで Steve が使用していたアプリケーションのコードが Steve のブログエントリ「Playing with the new Windows Azure Storage Analytics Features」にありますので、こちらもご参考にどうぞ。

 

以上で、クラウドカバー Episode 54、Windows Azure Tools for Visual Studio と Storage Analytics の紹介は終了です。

それでは!