Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

もう一つのASP.NET 「ASP.NET MVC」を知る(前編)

ASP.NET 3.5 Extensions + ASP.NET MVCフレームワーク

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/07/30 14:00

ASP.NET 1.0~3.5の開発を行ってきた技術者にとっては少し特異に感じるかもしれないフレームワークが近々リリースされる予定です。それは、Webの世界ではメジャーな、しかし、ASP.NETしか触れたことがない方にとってまったく別のテクノロジーであるMVCアーキテクチャです。ASP.NET MVCの登場によって、ASP.NETの世界でもMVCアーキテクチャが利用できるようになります。

目次

はじめに

 Visual Studio 2008(以下、VS2008)、.NET Framework 3.5(以下、.NET 3.5)のリリースから一年も経たないうちにSP1がリリース予定となっており、バグフィックスの他、大規模な機能追加が見込まれています。本連載では、その中でもASP.NETに関する部分をピックアップし、複数回にわたって紹介します。

.NET Framework 3.5 SP1における機能追加

 大きく分けて、ASP.NET部分での機能強化は下図のようになっています(図1)。

図1 ASP.NETと.NET Framework 3.5 SP1
図1 ASP.NETと.NET Framework 3.5 SP1
  • ASP.NET Dynamic Data
    コードを記述せずにデータ管理ページを作成する機能
     
  • ADO.NET Data Services
    ADO.NET Entity Frameworkを利用し、RESTfulな実装が可能なデータサービス
     
  • ASP.NET controls for Silverlight
    Silverlight(メディアとXAML)をホストするコントロールと既存コントロールの機能拡張

 また、SP1には含まれていませんが、ほぼ同時期にリリース予定のテクノロジーとして「ASP.NET MVC Framework」(以下、ASP.NET MVC)があります。

  • ASP.NET MVC Framework
    ASP.NET 3.5の上で動作するMVC形式の開発を行えるフレームワーク

 それぞれが魅力的なテクノロジですが、中でも特に注目を集めるであろうASP.NET MVCにまずはフォーカスを当て、2回にわたって解説します。

ASP.NET MVC 概要

 さて、本題の前に少しASP.NETについて振り返ってみましょう。

 Visual Studio .NETが登場した時にASP.NETは産声を上げました。「Webの深い知識を必要とせずに、既存のクライアントアプリケーションのような開発ができる」というメリットを前面に出したフレームワークだったので、WebFormモデル(従来のASP.NET開発)は、クライアント開発だけ行ってきたプログラマーでも積極的に開発を進めることができました。

 具体的な仕組みとしてはポストバック・ViewState・コードビハインドがあり、これらがWeb開発未経験者の大きな助けとなったと言えます。また、ASP.NET AJAXの登場やVS 2008のIDEの機能強化も手伝い、ASP.NET開発は高い開発生産性を保証します。

 しかし、Web開発の間口は広くなったものの、少し複雑な開発をするにはHTML+CSS+JavaScriptの関係を深く知って開発をする必要がありました。特に、WebFormモデルは、コードビハインド型が主流です。コードビハインド型はUIとビジネスロジックを分離できますが、実行時にはUIとロジックを合体させてコンパイルします。このため、現状のテストはWebサーバー(仮想サーバーもしくはIIS)を起動し、UIから該当のビジネスロジックを実行する必要がありました。つまり、コードビハインドのビジネスロジックのテストを行うためには工夫や多くの作業が必要でした。

 また、Webの世界でメジャーだったMVCアーキテクチャを利用した開発を行いたいという要望も多くありました。

 今回登場したASP.NET MVCフレームワークは、従来のWebFormモデルとは異なり、テスト駆動に進化したASP.NETのフレームワークです。ただし、ASP.NET MVCフレームワークはWebFormモデルから分離して構築されたフレームワークであると考える必要があります。

 WebFormモデルで多用していたViewStateやPostBackから離れたアプリケーション構築を行わなければなりません。

必要な環境

 次の環境が必要です。

  • Visual Studio 2008
  • ASP.NET MVC Preview 3

 Visual Studio 2008のインストールは、Visual Studio 2008入門 第1回を参考に行ってください。

 ASP.NET MVC Preview 3は、Microsoft Download Centerからダウンロードできます。インストールは、インストーラのウィザードに従って進めるだけです。このウィザードで、プロジェクトテンプレートはインストールできます。しかし、項目のテンプレートはインストーラーから完全にインストールされません。以下の手順でインストールを行ってください。

1.フォルダの準備

 初期インストールでは以下の場所に項目テンプレートが展開されます(カスタムでインストール先を変更した場合はその場所を参照してください)。

 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC\1033

 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\Web\MVC\1033

 この1033フォルダを同じ場所にコピー&ペーストし1041と名前を変更します。

2.Visual Studio 2008 コマンドプロンプト を管理者実行して以下のコマンドを実行

 devenv /InstallVSTemplates

 以上の手順でインストールは完了です。

Model View Control

 ご存じの方も多いかと思いますが、簡単にMVCについてまとめます。

MVC概要
役割 概要
Model データの管理を行うコンポーネント。例えば、LINQ to SQLなどのデータ定義を行うなど。
View HTMLの出力を行うコンポーネント。大抵はモデルのデータを元に出力。
Controller モデルの操作、ビューへのリクエストの選択を行うコンポーネント。ユーザーからのリクエストに応える処理を一元管理。
図2 MVCの概念図
図2 MVCの概念図

前編で触れる部分

 前編では最もキモとなる「URLルーティング」と「ViewData」について解説し、それらを利用したサンプルアプリケーション構築します。

  • ASP.NETとASP.NET MVCの比較
  • URLルーティング
  • ViewDataの利用方法
  • サンプルアプリケーションの作成

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

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

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

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

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

バックナンバー

連載:ASP.NET 3.5 Extensions + ASP.NET MVCフレームワーク
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5