既存のWebフォーム・アプリをASP.NET MVCに移行するには? 既存資産を生かして両者を共存させる方法を解説。
ASP.NET環境での開発スタイルを大きく変化させた「ASP.NET MVC」(以降、MVC)がリリースされ、すでに4年以上が経過した。日頃からASP.NET技術に関心を寄せる開発者であれば、もはやMVCでしかWebアプリケーションは書きたくない、という人もいるかもしれない。詳細については別途解説記事*1を参照してほしいが、MVCを利用することで
など、Webフォームと比較して多くのメリットを享受できるため、可能であればMVCを積極的に採用したいところだ。
しかし、開発業務において今から新規開発するのであればともかく、Webフォームで作られた既存システムの保守を行っている場合は、アプリケーションをMVCに全面刷新というのはとても現実的な話ではない。そのためMVC開発に移行できず、悔しい思いをしている開発者もいるだろう。
そこで、本稿ではWebフォームで作られたアプリケーションの基盤をMVCに移行しつつ、既存資産を生かしてWebフォームとMVCを共存させる方法について、筆者が勤め先で実際に行った事例を踏まえて説明する。なお、コードはC#で記述する。
*2 Webフォームでも簡単にユニット・テストを記述できるようにするために、「MVPパターン」と呼ばれる、MVCパターンの派生パターンを適用するなどの動きがある。興味がある方は調べてみてほしい。
本稿ではWebフォームからMVCへの移行/共存を1つの課題ととらえ、その解決をテーマにしているものの、今後、状況は大きく変わりそうだ。Visual Studio 2013からは新規Webアプリケーションの作成時にWebフォーム/MVC/Web APIのどれを利用するか選択するようになるが、この際、複数のフレームワークを選択すれば共存も可能になる(次の画面を参照)。本稿執筆時点ではVisual Studio 2013はまだプレビュー版でもあるため、必ずしもRTM版でそうなると断言はできないが、マイクロソフトが「One ASP.NET」というビジョンの下に各フレームワークの垣根を越えた利用を推し進めようとしていることは覚えておこう。
本稿では、筆者の事例を基に説明するため、以下の環境を前提として説明している。
フレームワークやMVCのバージョンが異なったとしても手順に大きな違いはないと思うが、実際に試す場合は十分な検証を行ってほしい。
また、説明を分かりやすくするために、簡単ではあるがサンプルWebフォーム・アプリケーションを用意した。マスター・ページを利用し、書籍の一覧とその詳細を参照できるアプリケーションだ。
本稿では、このサンプル・アプリケーションの書籍詳細画面のみをMVCで作り直すというシナリオの下、移行や共存手順について説明していく。移行前のソース・コード一式はここからダウンロードできる。
*3 MVC 3がインストールされているかどうかは、[コントロールパネル]−[プログラム]−[プログラムと機能]から確認できる。インストールされていれば、リストに「Microsoft ASP.NET MVC 3」という項目が存在するはずだ。もしインストールされていなかった場合はマイクロソフトのダウンロード・センターから取得できるのであらかじめインストールしておこう。
Copyright© Digital Advantage Corp. All Rights Reserved.