クロスポスト: 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