Webプラットフォームの全体像を知る

2011年3月2日(水)
ナオキ(監修:山田祥寛)

ASP.NETの中核は「ASP.NET Web Form」

ASP.NETと言うと大抵はASP.NET Web Formを指します。Web開発は本来input/div/span/buttonなどのHTML要素でページを構成し、それらの要素にJavaScriptを使用して振る舞いを持たせて、CSSでHTML要素などのデザインを行います。それだけで済めばまだ良いのですが、Internet Explorer、Firefox、Chromeなどの各種ブラウザではHTMLの解釈が異なります。そのため、各ブラウザ専用に記載を変えるなどの煩雑な作業も発生していました。デスクトップ開発者を可能な限りWeb開発へと移行させるためにASP.NETが実現したのは、データを表示するための表や、テキストボックスやボタンなどのHTMLを隠ぺいして、開発者が直接HTML要素などを記載する事を減らした点です。これらの隠ぺいされたコントロールをサーバーコントロールと呼びます。

ASP.NETでは、このサーバーコントロールを使用して、デスクトップアプリケーションを開発する要領でコントロールを配置し、ボタンクリックなどのイベント発生時にそのイベントに対する処理を記載できるような仕組みを実現しました。「HTMLなどの各種要素を隠ぺいしたサーバーコントロールの利用」と、「デスクトップアプリケーションのようなイベント駆動のアプリケーション開発」により、ASP.NETは高い開発生産性を実現しています。

なお、サーバーコントロールはASP.NET専用のフォームである.aspxファイル上に配置します。タグは asp: で始まる独自のタグを使用し、実行時にHTMLを出力します。デザイン時に使用するサーバーコントロールのタグは以下のようになります。

実際に出力されるHTMLは以下のとおりです。

ボタンは比較的シンプルな形で出力されますが、メニューコントロールやカレンダーコントロール、データグリッドなど他のコントロールはもう少し複雑なHTMLなどを出力します。

ASP.NET AJAXはこのようなサーバーコントロールで、AJAX機能を付加させるためにJavaScriptなどを隠ぺいしたサーバーコントロールやクラスライブラリの事を言います。

ASP.NET AJAXを適切に利用する事でユーザビリティを向上させる事ができます。今ではWeb開発においてAJAXは実装が当たり前と言えるほど浸透しているテクノロジーですので、積極的な活用が望ましいでしょう。

ASP.NET 動的データは、サーバーコントロールをフル活用し、CRUDやAJAX機能を盛り込んだデータを当てはめるだけで実行できる、データ駆動アプリケーションを簡単に構築する土台を提供しています。データを用意して、コードを1行記載するだけで、簡易なマスタメンテナンスのためのアプリケーションも作成できます。

このように開発生産性が高い点がASP.NET Web Form全般の強みです。

非.NET開発者でも親しみやすい「ASP.NET MVC」

ASP.NET MVCは、ズバリ「MVCパターンでの開発経験者」がターゲットになっているフレームワークです(もちろん、Web Form開発者でも熱望していた方も少なくありません)。現在のWeb開発はPHP/JAVA/Rubyを使用したものが多く、それらは大抵MVCパターンをサポートしたフレームワークを利用しています。ASP.NET Web Form開発者もMVCパターンでの開発を行いたいという要望が少なからずあり、2009年にようやくASP.NET MVCが正式リリースされました。
他のMVCフレームワーク同様に、Model-View-Controllerに役割を明確に分離できる他、遅れてリリースされた分、他のMVCフレームワークなどで採用されている機能なども盛り込んでいます。現在はバージョンが3となり、ずいぶんこなれてきたのも特徴です。

現在、毎年バージョンアップを重ねている勢いのあるテクノロジーですので、.NET未経験者がクライアントの要望でASP.NETでアプリケーションを作成しなければならない…そういう場合にはASP.NET MVCを採用するケースが多いようです。学習コストが.NET FrameworkとC#のお作法部分がメインで済むため、新規学習コストが多いASP.NET Web Formよりもチーム全体での開発もスムーズに行くという報告なども多く出ています。

誤解のないように記載すると、マイクロソフトはASP.NET Web FormとASP.NET MVC両方に注力しています。勢いがあるのはASP.NET MVCで間違いありませんが、適材適所で使い分けるという事が重要です。

著者
ナオキ(監修:山田祥寛)
WINGSプロジェクト

有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表:山田祥寛)。おもな活動は、Web開発分野の書籍/雑誌/Web記事の執筆。ほかに海外記事の翻訳、講演なども幅広く手がける。2011年3月時点での登録メンバは36名で、現在もプロジェクトメンバーを募集中。執筆に興味のある方は、どしどしご応募頂きたい。著書多数。
http://www.wings.msn.to/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています