SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ASP.NET MVC3入門

ASP.NET MVC 3Tools UpdateとView周りの改良点

ASP.NET MVC3入門(2)


  • X ポスト
  • このエントリーをはてなブックマークに追加

ASP.NET MVC Tools Updateについて

 1月にリリースされたASP.NET MVC 3(以下、MVC 3)ですが、4月にASP.NET MVC 3 Tools Update(以下、Toolst Update)がリリースされました。このTools Updateでは、MVC 3アプリケーション開発時に役立つプロジェクトテンプレートと、ツールが含まれています。Tools Updateで更新される内容は以下のとおりです。

  • 新しいプロジェクトテンプレート
  • Entity Framework 4.1の統合
  • 新しいコントローラー作成ダイアログ
  • Scriptフォルダの更新
  • NuGet 1.2へのアップデート

 それぞれ掘り下げてみてみます。

新しいプロジェクトテンプレート

 プロジェクトテンプレートが新しくなりました(図1)。

図1 新しいASP.NET MVC 3プロジェクトダイアログ
図1 新しいASP.NET MVC 3プロジェクトダイアログ

1. イントラネットアプリケーションテンプレートの追加

 RTW時点では空のプロジェクトとインターネットアプリケーションの2つでしたが、新たにWindows認証を使用するイントラネットアプリケーションのプロジェクトテンプレートが用意されました。Windows認証部分が簡略化されたことにより、イントラネットアプリケーションの構築がしやすくなったと言えます(図2)。

図2 Windows認証を使用したASP.NET MVC 3アプリケーション例
図2 Windows認証を使用したASP.NET MVC 3アプリケーション例

 実行すると、現在のWindowsアカウントが右上に表示されます。

2. HTML5のマークアップ使用が容易に

 [HTML5 セマンティック マークアップを使用する]にチェックを付けた場合、初期プロジェクトテンプレートのViewPageがHTML5対応の記載へと変化します。ビューエンジンを、Razorにして作成した場合の_Layout.cshtmlを記載します。

HTML5対応の_Layout.cshtmlファイル
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
</head>
<body>
    <div class="page">
        <header>
            <div id="title">
                <h1>マイ MVC アプリケーション</h1>
            </div>
            <div id="logindisplay">
                @Html.Partial("_LogOnPartial")
            </div>
            <nav>
                <ul id="menu">
                    <li>@Html.ActionLink("ホーム", "Index", "Home")</li>
                    <li>@Html.ActionLink("バージョン情報", "About", "Home")</li>
                </ul>
            </nav>
        </header>
        <section id="main">
            @RenderBody()
        </section>
        <footer>
        </footer>
    </div>
</body>
</html>

 太字の部分でご確認いただけますが、プロジェクトテンプレート内でHTML5の要素に沿った部分の記載はDivタグから各種要素に置換されています(meta要素にcharset属性が追加されています)。これにより、大枠部分のテンプレートを流用する場合は意識することなく利用できます。

 認証部分と、HTML5対応のテンプレートですが、ともに新規開発の時には利用しやすいと言える改良でしょう。

Entity Framework 4.1の統合

 Tools UpdateによりEntity Framework 4.1もインストールされています。Entity Framework 4.1の最大の特徴はなんといってもコードファーストと言えるでしょう。この追加により、MVC 3で新規開発を実施する際には、Railsのスキャフォールディングのように簡単にアプリケーション開発が実施できるようになりました。詳しくは「ASP.NET MVC 3 Tools UpdateによるEF コードファーストとデータスキャフォールディング」を参照ください。

新しいコントローラー作成ダイアログ

 Tools Update以前は、コントローラー作成時に名前を設定し、内部処理はないCRUDアクションメソッドのひな型を用意するかどうかのチェックボックスがあるだけでした。Tools Updateからは、Entity Frameworkとの統合が進み、スキャフォールディング機能が強力になりました。コントローラー上のCRUD、新しいコントローラー作成ダイアログではコントローラーだけでなく、CRUD対応のビューページまで自動で生成してくれます(図3)。

図3 新しくなったコントローラーの追加ダイアログ
図3 新しくなったコントローラーの追加ダイアログ

(1)コントローラーのテンプレート選択

 図4のように3種類のテンプレートから選択し、コントローラーを作成できます。

 従来通り、名前のみ設定し空のコントローラーも作成できますし、CRUDアクションメソッドのひな型を用意することもできます。新機能は中段にある項目で、これを選択するとEntity Framework 4.1を使用してスキャフォールディングをフル活用したコントローラーの作成もできます。(2)、(3)は中段を選択していないと選択できません。

図4 コントローラーのテンプレート
図4 コントローラーのテンプレート

(2)モデルクラスの選択

 Entity Framework 専門の選択で、モデルクラスを選択します。選択は、Entity Frameworkにおける、データベースありきでエンティティを作成する"データベースファースト"、エンティティありきで作成する"モデルファースト"そして、コードありきでエンティティを作成する"コードファースト"で利用できます。

なお、ここだけではモデルをデータベースに接続できません。(3)のデータコンテキストクラスを選択することで、エンティティとデータベースを接続できます。

 

(3)データコンテキストクラスの選択

 DbContextクラスの派生クラスまたは、ObjectContextクラスの派生クラスを指定します。DbContextクラスはエンティティセットをCRUD操作を実現するDbSetのプロパティを定義します。これにより、モデルクラスとその実態となるデータベースの接続が確立します。こちらも詳しくは「ASP.NET MVC 3 Tools UpdateによるEF コードファーストとデータスキャフォールディング」を参照ください。

 単純な入出力の確認やアプリケーション作成の場合にはこの機能は非常に強力です。

Scriptフォルダの更新

 Tools Update時点でのjQuery/jQuery UIの更新が実施されています。

 他にもHTML5とCSS3でアプリケーション構築時に、HTML5未対応のブラウザでもレイアウト崩れが発生しないように制御するModernizrも追加されています(もちろん組み方次第ではレイアウト崩れが発生する可能性もありますのでその場合は都度対応が必要です)。MVC 3 RTWから変更されているスクリプトファイルは以下のとおりです。

  • jQuery 1.5.1
  • jQuery UI 1.8.11
  • modernizr-1.7

 Modernizrファイルは、"HTML5 セマンティック マークアップを使用する"にチェックを付けた場合、初期レイアウトページに配置されるので、大抵の場合開発者はHTML5によるアプリケーション開発に注力することができます。

 jQueryに関してはNuGetで最新版に更新できますので、適時アップデートを実施してください。

NuGet 1.2へのアップデート

 MVC 3リリース時に提供されたパッケージマネージャーNuGetですが、Tools Updateをインストールすることで1.2へとアップデートされます。

 しかし、執筆時点でNuGetは1.3が公開されていますので、必要があればそちらにアップデートしてみるのも良いでしょう。変更点の一部は、以下のとおりです。

  • パフォーマンス改善
  • 一度ダウンロードした情報をキャッシュする機能
  • WiXプロジェクトと.NET Micro Frameworkプロジェクト上での利用をサポート

 お手軽な方法でVisual Studio上からの更新方法を紹介します。メニューから次のように選択します。[ツール]-[拡張機能マネージャー]-[更新プログラム]選択すると、中央のペインにNuGet Package Managerが表示されますので、更新ボタンを押し、再起動をするだけです(図4)。

図4 NuGetの更新
図4 NuGetの更新

 上記が、Tools Updateの大まかな概要です。MVC 3のdllに対しては一切手が加わっていないため、マイナーバージョンアップとは記載されていませんが、MVC 3開発の効率を向上させるアップデートであることは確認できたのではないでしょうか。

次のページ
Razor構文のいろは

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ASP.NET MVC3入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト ナオキ(ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5983 2011/06/22 17:45

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング