クロスポスト: Windows Azure のテーブル、BLOB およびキューに関するチュートリアル シリーズと ASP.NET MVC 4 を使用したサンプル アプリケーション


このポストは、1 月 15 日に投稿された Cross-Post: Tutorial Series and Sample Application for ASP.NET MVC 4 with Windows Azure Tables, Blobs and Queues の翻訳です。

編集メモ: 今回は、Tom Dykstra が 2012 年 12 月 20 日に .NET による Web 開発とツールに関するブログ (英語) へ投稿した記事をご紹介します。

昨年 12 月、.NET による Web 開発とツールに関するブログ (英語) では、新しいチュートリアルのシリーズとそれに関連するサンプル アプリケーションを公開しました。これは、ASP.NET MVC 4 および ASP.NET Web API を使用している多層アプリケーションで、Windows Azure ストレージのテーブル、キューおよび BLOB がどのように処理されるかを示すものです。

このサンプルは、Windows Azure のクラウド サービスで実行される電子メール サービスのアプリケーションであり、メーリング リスト、購読者およびメッセージを管理する Web ロールがフロントエンド、電子メールのスケジュールおよび送信をそれぞれ処理する 2 つの Worker ロールがバックエンドとなっています。

アプリケーションの概要についてのチュートリアル 1 本、完成したアプリケーションをダウンロードし実行する方法のチュートリアル 1 本、Visual Studio でゼロからアプリケーションを構築する方法のチュートリアル 3 本、合計 5 本が公開されています。

各チュートリアルへのリンクと各項の内容は以下のとおりです。

  • ストレージのテーブル、キューおよび BLOB を使用する .NET 多層アプリケーション - 1/5 (英語)
    • フロントエンドの概要 (Web ページのスクリーン ショットなど)
    • バックエンドの概要 (アプリケーション アーキテクチャのダイアグラムなど)
    • アプリケーションで使用される Windows Azure テーブル向けのスキーマおよびサンプル コンテンツ
    • キューや BLOB がアプリケーションでどのように使用されるかの説明
    • テーブルおよびキューのデータ ダイアグラム
    • フロントエンドを Web ロールとしてクラウド サービスで実行する場合と Windows Azure Web サイトで実行する場合とのメリットの比較
    • 運用コストに関する説明とコスト最小化のためのオプション
  • Windows Azure の電子メール サービス アプリケーションの構成および展開 - 2/5 (英語)
    • アプリケーションをダウンロード、構成および実行する方法
    • アプリケーションをユーザーの Windows Azure アカウントのステージング環境に公開する方法、および運用環境に昇格させる方法
    • IP 制限を指定して、Windows Azure のアプリケーションへのアクセスを制限する方法
    • Windows Azure ストレージ エクスプローラーと Visual Studio を使用して、Windows Azure 開発ストレージおよび Windows Azure ストレージ アカウントでデータを表示する方法
    • 自動または手動で Windows Azure ストレージ アカウントの資格情報を Visual Studio プロジェクトに追加する方法
    • トレース処理を実行するようにアプリケーションを構成する方法、および Windows Azure ストレージでトレース データを確認する方法
    • Web ロールまたは Worker ロールのインスタンスを追加して、アプリケーションのスケーリングを実施する方法
    • Windows Azure ストレージ アカウントを使用する場合に、開発ストレージを無効化して、プロジェクトの起動時間を短縮する方法
  • Windows Azure の電子メール サービス アプリケーションに使用する Web ロールの構築 - 3/5 (英語)
    • Web ロール 1 つと Worker ロール 1 つで、クラウド サービスのプロジェクトを含むソリューションを作成する方法
    • Windows Azure のテーブル、BLOB およびキューを MVC 4 のコントローラーおよびビューで取り扱う方法
      • 基本的な CRUD 操作の処理方法
      • ファイルをアップロードして、BLOB に格納する方法
      • エンティティの行キーまたはパーティション キーの変更を含む、テーブル データの変更を処理する方法
      • 同時実行による競合の処理方法
      • 再試行ポリシーを設定して、ユーザーに長時間待機させることがないようにする方法
    • 新しいストレージ クライアント ライブラリ (SCL) 2.0 API の使用方法 (プロジェクト テンプレートでは引き続き、既定で 1.7 API が使用されます)
    • SCL 2.0 未対応の診断機能を使用するために SCL 1.7 アセンブリを参照する方法
    • OnStop メソッドのオーバーライドにより、Web ロール インスタンスを正常にシャットダウンする方法
    • 手動ではなくコードを使用して、テーブル、キューおよび BLOB を作成する方法
    • 最大 100 のテーブル操作をバッチで実行して、Windows Azure ストレージのトランザクション コストの削減、効率の向上、アトミック トランザクションの実装を実現する方法
    • クラウド サービスではなく Windows Azure Web サイトで Web フロントエンドを実行する方法
  • Windows Azure の電子メール サービス アプリケーションで使用する Worker ロール A (電子メールのスケジュール処理用) の構築 - 4/5 (英語)
    • Worker ロールで Windows Azure ストレージのテーブルを作成、照会および更新する方法
    • もう 1 つの Worker ロールで処理する作業項目をキューに追加する方法
    • OnStart メソッドを使用して、適切な接続制限を設定する方法、および診断機能を構成する方法
    • OnStop メソッドのオーバーライドにより、Worker ロール インスタンスを正常にシャットダウンする方法
    • Worker ロール インスタンスが予期せずシャットダウンされたときに、送信失敗した電子メールや重複送信された電子メールがないことを確認する方法
    • Windows Azure ストレージのテーブルおよびキューを使用する Worker ロールのテストを実施する方法
  • Windows Azure の電子メール サービス アプリケーションで使用する Worker ロール B (電子メールの送信処理用) の構築 - 5/5 (英語)
    • クラウド サービスのプロジェクトに Worker ロールを追加する方法
    • キューをポーリングする方法、およびキューからの作業項目を処理する方法
      • あらゆるキューの作業項目を 1 つの Worker ロール インスタンスのみで処理する方法
      • 最大で 32 の作業項目を同時に処理して、効率性向上とトランザクション コストの削減を達成する方法
      • Worker ロールで処理しようとすると例外が発生する "有害メッセージ" への対処方法
    • BLOB からテキストをダウンロードする方法
    • SendGrid を使用して電子メールを送信する方法
    • Worker ロール インスタンスが予期せずシャットダウンされたときに、送信失敗した電子メールや重複送信された電子メールがないことを確認する方法

マイクロソフトでは、皆様のフィードバックをお待ちしております。こちらのページ (英語) または各チュートリアルのページまでお寄せください。また、コード ブロックの書式については、今後も改良を続ける予定です。チュートリアルは Markdown で書かれていますが、Markdown から HTML にレンダリングする際に行間とインデントを保持できるように、Visual Studio から Markdown にコードをコピー アンド ペーストする方法を模索しています。この問題の対応策についてのご提案もお待ちしております。

-- Tom Dykstra

Comments (0)

Skip to main content