テスターですが何か?

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

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

leave a comment »

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

Task3 – Creating a Data Source Factory Class

このエントリーではデータソースのインスタンスを返すファクトリークラスを作成します。ファクトリークラスはアプリケーション設定からどのキャッシュプロバイダーを使用するか決定し、選択されたキャッシュプロバイダーを使用するように適切に設定されたデータソースを返します。

1.「Source\Assets」フォルダにある「AzureCacheProvider.cs」をプロジェクトの「Service\Caching」フォルダへコピーし、MVCAzureStoreプロジェクトへ追加します。

Note: AzureCacheProviderクラスはWindows Azure Cache ServiceをラップしてObjectCacheを実装しています。

2.MVCAzureStoreプロジェクトのServiceフォルダに、クラスファイル「DataSourceFactory.cs」を追加します。

3.新規クラスファイルに、名前空間「System.Configuration」、「System.Runtime.Caching」、「MVCAzureStore.Services.Caching」のインポート設定を追加します。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Configuration;

using System.Runtime.Caching;

using MVCAzureStore.Services.Caching;

4.そして、以下のDataSourceFactoryのコンストラクタと、キャッシュプロバイダーへの参照情報を保持する静的メンバーを追加します。

public class DataSourceFactory

{

    private static readonly ObjectCache cacheProvider;

 

    static DataSourceFactory()

    {

        string provider = ConfigurationManager.AppSettings["CacheService.Provider"];

        if (provider != null)

        {

            switch (ConfigurationManager.AppSettings["CacheService.Provider"].ToUpperInvariant())

            {

                case "AZURE":

                    cacheProvider = new AzureCacheProvider();

                    break;

                case "INMEMORY":

                    cacheProvider = MemoryCache.Default;

                    break;

            }

        }

    }

}

Note: クラスのコンストラクタは設定ファイルから「CacheService.Provider」を読み込み、設定されている値をもとにキャッシュプロバイダーを初期化します。この例では設定のうち2つの値で判断しています、1つはWindows Azure Cachingで、もう1つは.NET4で提供されるデフォルトのメモリキャッシュプロバイダーです。

5.次に、設定されたキャッシュサービスプロバイダーを返す以下のプロパティを追加します。

public static ObjectCache CacheProvider

{

    get { return cacheProvider; }

}

6.最後にキャッシュサービスプロバイダーで初期化されたIProductRepositoryデータソースのインスタンスを返すメソッドを追加します。

public static IProductRepository GetProductsRepository(bool enableCache)

{

    var dataSource = new ProductsRepository();

    if (enableCache && CacheProvider != null)

    {

        return new CachedProductsRepository(dataSource, cacheProvider);

    }

    return dataSource;

}

次は「Task4 – Configuring the Application for Caching」です。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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