テスターですが何か?

ホビープログラマ略してHPです

【日本語訳】Building Windows Azure Applications with the Caching Service part13

leave a comment »

このエントリーはMSDNのチュートリアル「Building Windows Azure Applications with the Caching Service」の「Task4 – Configuring the Application for Caching」の日本語訳になります。このコンテンツ、日本語訳全体については、こちらのエントリーを参照してください。

Task4 – Configuring the Application for Caching

このエントリーでは商品情報データソースをインスタンス化するデータソースファクトリーを使用するためにアプリケーションを変更します。キャッシュ層のセットアップを完了させるには、キャッシュプロバイダーを指定するための設定を行う必要があります。

1.ControllerフォルダにあるHomeController.csを開き、Indexメソッドへ移動します。メソッド内にてローカル変数productRepositoryを初期化する行を、以下のようにIProductRepositoryインスタンスを取得するためにDataSourceFactoryを使用するように変更します。

public ActionResult Index()

{

    bool enableCache = (bool)this.Session["EnableCache"];

 

    // retrieve product catalog from repository and measure the elapsed time

    //Services.IProductRepository productRepository =

    //    new Services.ProductsRepository();

    Services.IProductRepository productRepository =

        MVCAzureStore.Services.DataSourceFactory.GetProductsRepository(enableCache);

 

    Stopwatch stopWatch = new Stopwatch();

    stopWatch.Start();

2.DataSourceFactoryの設定を行います、Web.configファイルを開き、以下のappSettingセクションを追加します。追加位置はconfigSection要素のあと、configuration要素の子要素となります。

<configuration>

  <configSections>

    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"

             allowLocation="true" allowDefinition="Everywhere"/>

  </configSections>

  <appSettings>

    <add key="CacheService.Provider" value="InMemory"/>

  </appSettings>

Note: アプリケーションを1インスタンスで稼働させている場合は、インメモリキャッシュが適しているかもしれません。

3.「default」とう名前のdataCacheClientセクションに移動し、[SERVICE-HOST-NAME]部分をこのチュートリアルの最初で設定したWindows Azure Cachingのエンドポイントのホスト名に置き換えます。(例:your-namespace.cache.windows.net) [AUTHORIZATION_INFO]の部分を、Windows Azure Cachingの設定ページからコピーした認証トークン情報に置き換えます。

4.F5キーを押下し、アプリケーションをビルド・コンピュートエミュレーター上で実行して拡張キャッシュ機能のテストを行います。

5.アプリケーション開始時、初期状態ではキャッシュは無効になっています。商品情報のキャッシュ機能を有効化するために[Yes]リンクをクリックして、ページの更新します。キャッシュを有効にする最初のリクエストはデータの取得とキャッシュへの登録を行うため、オーバーヘッドが発生します。

6.[Products]をクリック、または、再度ページの更新を行なってください。今度はアプリケーションがデータの取得をキャッシュから行い、処理時間が短くなっているはずです。.NET Frameworkが提供しているインメモリを使用している場合は、処理時間がミリ秒未満となるでしょう。

7.それではWeb.configファイルのappSettingセクションに移動し、CacheService.Providerを「Azure」に設定しましょう。

  <appSettings>

    <add key="CacheService.Provider" value="Azure"/>

  </appSettings>

Note: アプリケーションを複数のインスタンスで動作させている場合、インメモリキャッシュは最適な選択肢ではなくなります。その代わり、Windows Azure Cachingの分散キャッシュ昨日が有効な選択肢となります。

8.Web.configファイルを保存します。

9.コンピュートエミュレーター上で[Suspend]と[Run]を実行し、設定を反映させます。

10.ブラウザからページを2回更新し、データがキャッシュされるようにします。インメモリキャッシュからWindows Azure Cachingへ変更したため、処理時間が長くなっていることに気づくと思います。(ネットワーク経由のアクセスのため)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。