連載:ASP.NET MVC入門【バージョン3対応】

第0回 Webアプリケーション・フレームワークの新たな選択肢

山田 祥寛(http://www.wings.msn.to/
2011/02/18
Page1 Page2 Page3

 マイクロソフト製品について、多くの人に信じられている迷信がある。「バージョン3の法則」(=バージョン3になってようやく製品が安定して実用できるレベルに達するという法則)である。Visual Studioでいえば、「バージョン1=Visual Studio .NET 2002」「バージョン2=Visual Studio .NET 2003」の後の「バージョン3=Visual Studio 2005」がそれである。実際に、「Visual Studio 2005が本当のVisual Studio完成版・安定版だ(=本格的な開発にはそれ以前のVisual Studio .NETは機能が不十分)」と発言する人は少なくない。

連載:ASP.NET MVC入門
連載:マイクロソフト技術による標準化志向Web開発ことはじめ

 それと同じ法則が発現されることになるのか? 2011年1月14日に、ついにASP.NET MVC 3の正式版がリリースされた。ASP.NET MVC 3は、やはりASP.NET MVCの完成版・安定版なのかもしれない。マイクロソフト社員からの情報によると、ASP.NET MVCの人気がいま急上昇しているらしい。インターネット向けサイトを中心に、これからASP.NET MVC 3の採用が増え続けるだろう。いまからASP.NETを学ぶなら、ASP.NET MVCは必ず候補に挙げるべきである。

 ASP.NET MVCの歴史を振り返ると、ASP.NET MVCは.NET Framework 3.5 SP1で追加された新しいWebアプリケーション・フレームワーク(以降、フレームワーク)であり、単なる拡張ライブラリの扱いであった。しかし、2010年4月の.NET Framework 4リリースに伴い、ASP.NET MVCもバージョン2へと歩みを進め、いよいよ標準搭載されることとなった。そして、それから9カ月後には早くもバージョン3がリリースされ、意気軒高とさらなる進化を続けている。

 ASP.NET MVCという新たなフレームワークの登場は、基本的に歓迎すべきものだ。開発の目的や開発者自身の得手・不得手に応じて選択の幅が増えたからだ。だが半面、初学者にとっては、あまたある技術のいずれを利用すればよいのか、悩みの種も増えてしまった。

 そもそもASP.NET MVCとは何ものなのか、いかなる局面で採用すべきフレームワークであるのか。新たなフレームワークにすわと飛びつく前に、まずはASP.NETという巨大になってしまったWeb技術の中での、ASP.NET MVCの位置付け、特性について理解しておく必要がある。

ASP.NET概論

 ASP.NETも気付いてみると、随分と大きな技術になってしまった。ASP.NET 1.x/2.0の時代しか知らない人から見れば、最新のASP.NET 4はまるで別モノの技術であるように見えるかもしれない。

 が、整理してしまえば、何ということはない。以下は、ASP.NET 4を構成する技術を表した概念図である。


図1 ASP.NET 4の全体像
ASP.NET 4は.NET Framework 4に含まれるWebアプリケーション構築のためのフレームワーク。

 まず、ASP.NETは、ブラウザ向けのWebアプリケーション開発と、アプリケーション連携を意図したWebサービス開発のための技術に大別できる。

 このうち、Webサービス開発の技術については、利用の目的が明らかに異なるので、切り離して考えて差し支えないだろう。WCF Data Servicesについては、「RESTスタイルのWebサービスを手軽に公開する『ADO.NET Data Services*1』」が詳しいので、併せて参照されたい。

*1 ADO.NET Data Servicesは、WCF Data Servicesの前身となる技術。.NET Framework 4で呼称が変更された。

 で、Webアプリケーション開発のためのフレームワークとしては、まず「Webフォーム」がある。ASP.NET 2.0の時代までは、これがほぼASP.NETそのものであった。

 Webフォームに含まれているASP.NET AJAX(正確にはASP.NET AJAX Extensions)は、ASP.NETのAjax拡張である。ASP.NET 2.0の拡張機能として提供され、ASP.NET 3.5で標準搭載された。それ自体が膨大な機能を提供しており、アプリケーション開発の手法にも大きな影響を与えたことから、フレームワークという呼ばれ方をすることもあるが、あくまで拡張ライブラリであり、WebフォームやASP.NET MVCのようなフレームワークとは別ととらえるべきだ。ASP.NET 3.5以降はそもそもWebフォームに統合されたことで、ASP.NET AJAXという枠を意識することも少なくなったように感じる。

 また、ASP.NET Dynamic Dataは、データ・モデルに基づいてデータ編集用のWebアプリケーションを自動生成する仕組みである。アプリケーション全体で一律のレイアウト/デザイン*2を適用できる、(例えば)マスタ・メンテナンス画面の実装などが主用途になるだろう。いわゆる目的特化したフレームワークである。

*2 個別ページのカスタマイズができないわけではないが、本来の用途からすれば、できるだけレイアウト(テンプレート)やデザインはアプリケーションで統一するのが望ましい。

 そして、Razor(ASP.NET Webページ)はASP.NET MVC 3と併せてリリースされた新しいビュー・エンジンである。必ずしもASP.NET MVCに依存するものではなく、それ単体でも利用可能であるが、あくまでビュー開発用のライブラリであり、汎用的なフレームワークとは区別して語られるべきだろう。詳しくは今後、本連載の中で扱っていく予定だ。

 ということで、ASP.NETと冠する技術は多かれど、.NETにおける汎用的なアプリケーション・フレームワークは、従来からの「Webフォーム」と、新しい「ASP.NET MVC」との二本柱であると認識しておけばよいだろう。となると、議論は急速に絞り込まれてくる。WebフォームとASP.NET MVC、果たしてわれわれは、いずれのフレームワークを学ぶべきなのか。

 

 INDEX
  ASP.NET MVC入門【バージョン3対応】
  第0回 Webアプリケーション・フレームワークの新たな選択肢
  1.ASP.NET概論
    2.いま、いずれのフレームワークを学ぶべきか
    3.WebフォームもASP.NET MVCも基盤は共通
 
インデックス・ページヘ  「ASP.NET MVC入門【バージョン3対応】」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間