ASP.NET WebフォームからASP.NET MVCへの移行/共存特集:“Webフォーム+ASP.NET MVC”共存アプリ(1/4 ページ)

既存のWebフォーム・アプリをASP.NET MVCに移行するには? 既存資産を生かして両者を共存させる方法を解説。

» 2013年08月05日 16時28分 公開
[熊家賢治,Sansan 株式会社(http://www.sansan.com/)]
特集:“Webフォーム+ASP.NET MVC”共存アプリ
Insider.NET

               

「特集:“Webフォーム+ASP.NET MVC”共存アプリ」のインデックス

連載目次

背景

 ASP.NET環境での開発スタイルを大きく変化させた「ASP.NET MVC」(以降、MVC)がリリースされ、すでに4年以上が経過した。日頃からASP.NET技術に関心を寄せる開発者であれば、もはやMVCでしかWebアプリケーションは書きたくない、という人もいるかもしれない。詳細については別途解説記事*1を参照してほしいが、MVCを利用することで

  • ユニット・テストがより容易に書けるようになった*2
  • Web開発において一般的なMVCモデルに則った設計になっているため、ASP.NETに習熟していないWeb開発者でも今までの経験を生かしつつ開発することが可能になった
  • Webフォーム(Web Forms)と比較して素直なHTMLコードを出力するため、一般的なWeb開発を行ってきたフロントエンド・エンジニアやWebデザイナーの(ASP.NET開発作業への)参加が容易になった

など、Webフォームと比較して多くのメリットを享受できるため、可能であればMVCを積極的に採用したいところだ。

 しかし、開発業務において今から新規開発するのであればともかく、Webフォームで作られた既存システムの保守を行っている場合は、アプリケーションをMVCに全面刷新というのはとても現実的な話ではない。そのためMVC開発に移行できず、悔しい思いをしている開発者もいるだろう。

 そこで、本稿ではWebフォームで作られたアプリケーションの基盤をMVCに移行しつつ、既存資産を生かしてWebフォームとMVCを共存させる方法について、筆者が勤め先で実際に行った事例を踏まえて説明する。なお、コードはC#で記述する。

*1 ASP.NET MVC入門

*2 Webフォームでも簡単にユニット・テストを記述できるようにするために、「MVPパターン」と呼ばれる、MVCパターンの派生パターンを適用するなどの動きがある。興味がある方は調べてみてほしい。


【コラム】One ASP.NET

 本稿ではWebフォームからMVCへの移行/共存を1つの課題ととらえ、その解決をテーマにしているものの、今後、状況は大きく変わりそうだ。Visual Studio 2013からは新規Webアプリケーションの作成時にWebフォーム/MVC/Web APIのどれを利用するか選択するようになるが、この際、複数のフレームワークを選択すれば共存も可能になる(次の画面を参照)。本稿執筆時点ではVisual Studio 2013はまだプレビュー版でもあるため、必ずしもRTM版でそうなると断言はできないが、マイクロソフトが「One ASP.NET」というビジョンの下に各フレームワークの垣根を越えた利用を推し進めようとしていることは覚えておこう。

Visual Studio 2013 Preview 図1 Visual Studio 2013 Previewだと各フレームワークを選択/共存可能


本稿の前提となる環境

 本稿では、筆者の事例を基に説明するため、以下の環境を前提として説明している。

  • Visual Studio 2010 Ultimate
  • .NET Framework 4.0
  • IIS 7.5
  • ASP.NET MVC 3がインストール済*3
  • 言語はC#

 フレームワークやMVCのバージョンが異なったとしても手順に大きな違いはないと思うが、実際に試す場合は十分な検証を行ってほしい。

 また、説明を分かりやすくするために、簡単ではあるがサンプルWebフォーム・アプリケーションを用意した。マスター・ページを利用し、書籍の一覧とその詳細を参照できるアプリケーションだ。

 本稿では、このサンプル・アプリケーションの書籍詳細画面のみをMVCで作り直すというシナリオの下、移行や共存手順について説明していく。移行前のソース・コード一式はここからダウンロードできる。

*3 MVC 3がインストールされているかどうかは、[コントロールパネル]−[プログラム]−[プログラムと機能]から確認できる。インストールされていれば、リストに「Microsoft ASP.NET MVC 3」という項目が存在するはずだ。もしインストールされていなかった場合はマイクロソフトのダウンロード・センターから取得できるのであらかじめインストールしておこう。


       1|2|3|4 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。