テスターですが何か?

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

Developing a Windows Azure Data Application Using Code First and SQL Azure (part1) 日本語訳

leave a comment »

このエントリーはMSDNのラーニングコンテンツ「Developing a Windows Azure Data Application Using Code First and SQL Azure」のModule1(Create the road trip application and run it locally)の日本語訳になります。このラーニングコンテンツ、日本語訳の全体についてはこちらのエントリーを参照してください。

——————————-

チュートリアル:Code FirstとSQL Azureを使用したWindows Azureデータアプリケーション開発

第一部: アプリケーションを作成し、ローカルで実行させる

 

目的

このパートでは、Windows Azureクラウドプロジェクト(ASP.NET MVC3 Web Role、データモデルの作成にEntity Frameworkを利用)を作成し、ローカルのWindows Azure Compute Emulator上で動作させる

 

チュートリアルの流れ

image

 

1. 管理者権限で Visual Studio 2010、または、Visual Web Developer 2010を起動します。管理者権限で起動するためには、右クリックし[管理者として実行]を選択します。

2. Visual Studioの[ファイル]メニューから[新規作成]-[プロジェクト]を実行します。Visual Web Developerの場合は、[ファイル]メニューから[新しいプロジェクト]を実行します。

3. 「新しいプロジェクト」ダイアログから、[インストールされたテンプレート]-[Visual C#]-[Cloud]を選択します。

4. [Windows Azure プロジェクト]をクリックします。必要に応じてソリューションが保存される場所を指定してください。新規作成するプロジェクトの名前を「AzureRoadTrip」とします。新しいプロジェクトダイアログは以下のようになります。

image

5. [OK]ボタンをクリックし、新しいプロジェクトダイアログを閉じます。

6. [新しい Windows Azure プロジェクト]ダイアログで[ASP.NET MVC3 Web ロール]を選択後、[>]をクリックしてWebロールをWindows Azure ソリューションに追加します。「MvcWebRole1」という名前の新しいプロジェクトがWindows Azure ソリューションに表示されます。画面は以下のようになります。

image

7. MvcWebRole1を右クリックし[名前の変更]を選択して「AzureRoadTripSite」とプロジェクト名を変更してください。

8. [OK]をクリックします。

9. [新しい ASP.NET MVC3 プロジェクト]ダイアログで[インターネットアプリケーション]を選択します。

image

10. [OK]をクリックします。

 

ソリューションには2つのプロジェクトが含まれています。1つが「AzureRoadTrips」というWindows Azure プロジェクト、もう1つが「AzureRoadTripSite」というMVC3プロジェクトです。MVC3プロジェクトはWebロールとしてWindows Azureプロジェクトに関連付けられています。このことはAzureRoadTripプロジェクトのRoleディレクトリを見ることでわかります。それでは、アプリケーションの開発を始めましょう。

Entity Framework(EF)の一部である、Code Firstと呼ばれるアプリケーションのデータモデル作成のための強力な機能を使います。この機能によって、通常の記述をしたクラスから、Entity Frameworkがデータベースとテーブルを作成してくれます。

 

11. ソリューションエクスプローラーを展開してModelsフォルダを表示してください。Modelフォルダを右クリックし、[追加]-[クラス]を選択して新しいソースファイルを追加します。(以下の画面キャプチャー参照)ファイル名を「RoadTripModels.cs」としてください。

image

12. ソースファイルに2つのクラスを作成します。1つはデータモデルの定義、もうひとつはCodeFirstのためのデータベースコンテキストです。まず、デフォルトで作成されたRoadTripModelsクラスを削除し、以下のように旅行の情報を表すコードを実装します。

 
public class Stage  {
      public int ID { get; set; }
      public string StartLocation { get; set; }
      public string StopLocation { get; set; }
      public string Comments { get; set; }  }  

 

13. 2つめのクラスはデータベースコンテキストクラスです、Entity Frameworkがデータベースを作成するために必要です。Using構文を追加して、System.Data.Entity名前空間をインポートし、以下のコードを同じファイルに追記します。

 
public class RoadTripContext : DbContext {
     public DbSet<stage> Stages { get; set; }  
}  

 

これでEntityFrameworkがデータベースとStageテーブルを作成するための準備は完了です。

14. ソリューションをビルドし、Controllerフォルダを右クリック-[追加]-[コントローラー]をクリックして、「StageController」という名前のコントローラーを追加します。

image

 

15. コントローラーの追加ダイアログが表示されます。MVC3のスキャフォールディングの利点を生かします。テンプレートに「Entity Frameworkを使用した、読み取り/書き込み操作とビューのあるコントローラー」を選択します。スキャフォールディング機能はモデルクラスとデータコンテキストクラスを使用してコードを自動生成します。モデルクラスに「Stage」を、データコンテキストクラスに「RoadTripContext」を選択します。そして以下画面キャプチャーの[追加]をクリックすると、スキャフォールディング機能によってCRUDアクションを実行するコントローラーが自動生成されます。

clip_image011

 

16. アプリケーションを実行する前に、Windows Azure Compute Emulator上で実行されるWebアプリケーションの実行設定を変更する必要があります。デフォルトではWebロールはIIS上で動作しますが、IISはアカウント「Network Service」で動作するため、SQL Server Expressにデータベースを作成する権限がありません。「ServiceDefinition.csdef」ファイルの<Site>セクションをコメントアウトし、アカウント「Network Service」で動作するIISではなく、認証済みアカウントで動作するHosted Web Core上でWebロールが動作するように設定します。あとでWindows Azure上へデプロイする前にこの変更はもとに戻しますが、今は以下のように「ServiceDefinition.csdef」ファイルを変更します。

  
<webrole name="AzureRoadTripSite">     
    <!--<Sites>
        <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
            </Bindings>
        </Site>
    </Sites>-->
    <endpoints>
        <inputendpoint name="Endpoint1" protocol="http" port="80" />
     </endpoints>
     <imports></imports> 
</webrole> 

 

17. これで、F5キーを押下して試しにアプリケーションを動作させることができます。2つの方法でアプリケーションを開始させることができます。1つはローカルで動作させる方法、もう一つはAzure Compute Emulator上で動作させる方法です。Azure Compute Emulatorはその名の通り、ローカルのアプリケーションをWindows Azure上で動いているようにエミュレートします。エミュレーターでは、アプリケーションを実行しているインスタンスの様子を見ることもできます。ただしCompute Emulator上でのアプリケーションの起動はやや時間がかかります。

18. ブラウザから、<TOPページ>/Stage へ移動すると、以下のようなページが表示されるはずです。

image

 

19. [Create New]リンクをクリックして、以下のようにいくつかデータを登録してみてください。

image

 

image

 

再び「<TOPページ>/Stage」を表示すると、データが永続化されていることに気づくと思います。アプリケーション実行時に、Entity Framwork Code First機能によってSQL Express上にデータベースが作成されているためです。後ほど確認することができますが、この機能はクラウド上でも同じように動作します。

このパートではASP.NET MVC3 WebロールのWindows Azureプロジェクトを作成し、データモデルを追加しました。そして、アプリケーションをWindows Azure Compute Emulator、SQL Expressの環境で実行しました。次のパートでは、アプリケーションをSQL Azure上で動作させる設定を行います。

 

次回「第2部 SQL Azureを使用する」に続きます。

Written by david9142

2011年9月12日 @ 10:46 PM

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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