normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Azure Storage Table with ASP.NET MVCのサンプル

せこせことASP.NET MVCでAzure Storage Tableを使うサンプルコードを作成し、Twitter上で「ほしい人は居るかなぁ?」発言をしたところ、思ったよりもほしい人が多そうなので公開してみます。稚拙なコードも有ると思いますが、突っ込みも希望。

サンプルの概要

簡単なCRUDアプリケーションの機能を提供しています。Twitter風に見えないこともありませんが、きっと気のせいです。Repositoryパターンは適用しましたが、Service層相当の物は作っていません。TransactionScope相当の処理も入れようと思いましたが、あえて入れてません(サンプルをシンプルにする為)。

  • サンプルアプリケーションのURL
  • サンプルアプリケーション実行の前提環境
  • サンプルアプリケーションの機能
    • 発言機能(Create)
    • 発言一覧取得機能(Read)
    • 発言内容修正機能(Update)
    • 発言内容削除機能(Delete)
  • サンプルアプリケーションのスクリーンショット

サンプルでの注意点1 ServiceConfiguration.cscfgを編集すること

以下の<>で囲まれた部分について、自身のWindows Azure上でのアカウント名、AccountSharedKeyを設定してください。

<?xml version="1.0"?>
<ServiceConfiguration serviceName="CloudServiceTableMvc" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
  <Role name="MvcTableApp">
    <Instances count="1" />
    <ConfigurationSettings >
      <Setting name="BlobStorageEndpoint" value="http://<アカウント名>.blob.core.windows.net/" />
      <Setting name="QueueStorageEndpoint" value="http://<アカウント名>.queue.core.windows.net/" />
      <Setting name="TableStorageEndpoint" value="http://<アカウント名>.table.core.windows.net/" />
      <Setting name="AccountName" value="<アカウント名>" />
      <Setting name="AccountSharedKey" value="<ポータルサイトに表示されるキー>" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

サンプルでの注意点2 ASP.NET MVC 2 Previewに対応したDLLがローカルコピーになっているか確認すること

Windows Azure本番環境にアプリをデプロイした際に、本番環境に対応していないDLLを使用する処理を実行すると例外が発生する or Dr.Watosonとお会いする羽目になります。ASP.NET MVC 2 Previewを使用するためには、以下のDLLのローカルコピープロパティがTrueになっている必要があります

  • System.Web.Abstractions
  • System.Web.Mvc
  • System.Web.Routing

設定する場所は以下になります。