サードベンダーによるASP.NET MVCサポートについて
これまでも言及しましたが、ASP.NET MVCはポストバックやサーバーコントロールなどの仕組みを原則利用しないでアプリケーションを構築します。また、ASP.NET MVCはASP.NET以上にヘルパーメソッドの存在により自作でアプリケーションを構築しやすい作りになっています。基本がサーバーコントロールを利用しないアプリケーションであるため、サードベンダーの製品はヘルパーメソッドの拡張などが主流になりそうです。
ただし、サードベンダーごとにASP.NET MVCに対するアプローチが異なるので簡単にですがASP.NET MVCにおける開発状況を積極的にアピールしている2社(共に米国)のアプローチについて紹介します。
Telerik社の場合(フレームワークの拡張によるアプローチ)
Telerik社は、jQueryに基づいたクライアントサイドのモジュールと、ASP.NET MVCフレームワーク自身の機能拡張を行っています。
例えば、HTMLヘルパークラスに独自のjQueryクラスを拡張し、jQueryのメソッドチェーンのように機能を実装できます。現在は、Accordion(折り畳み可能なペイン)/DataPicker(カレンダーから日付を選択する入力補助)/MessageBox(ページ内で情報を表示するメッセージボックス)/ProgressBar(進捗バー)/Slider(スライダー)/Tab(タブ)の計6種類のメソッドが提供されています。
<% Html.jQuery().Slider().Name("mySlider").Render(); %>
上記ソースにより、ViewPage上にname="mySlider"
というスライダーが生成されます。Telerik社のページでは実際の挙動などが確認できますので、興味がある方は併せて参照してください。
Telerik社のASP.NET MVCに対する取り組みに関する詳細は公式ページを参照ください。
DeveloperExpress社の場合(サーバーコントロールの利用)
DeveloperExpress社の場合は、ASP.NET MVCがASP.NET 3.5 SP1(WebForm)上で動作するという原理その物を利用し、自社のサーバーコントロールをASP.NET MVC上で動作するように改良しています。一見すると、MVCでも簡単にビューを作成できるの?と感じますが、サーバーコントロールならではの注意点があります。
例えば、クリーンなHTMLを意図的に生成しやすいASP.NET MVCのソース内にViewStateやコントロールが自動生成するソースが混在してしまうという点です。
このアプローチ方法はASP.NET MVCのメリットを奪い兼ねない部分もありますが、それ以上に同社の製品を購入し、WebFormを開発してきた開発者にとって、慣れ親しんだ高機能なサーバーコントロールを生かしつつ、ASP.NET MVCのハイブリッドアプリケーションを作れるというメリットもあります。
事実、同社が提供しているサンプルでも操作性の良いコントロールをうまく活用しているため、開発工数を削減しつつも高機能なWebアプリケーションが提供できるようです。
DeveloperExpress社のページでも実際の挙動などが確認できますので、興味がある方は同ページも参照してください。
今後の展開に注目!
今回はTelerik社、DeveloperExpress社のアプローチを覗いてみましたが、ASP.NET AJAXが登場したとき以上にASP.NET MVCにおけるアプローチは各社により対応が異なるようです。冒頭に既述したようにASP.NET MVCはWebForm以上にさまざまな物を自前で用意することが多くなりがちですが、開発生産性を求めるのであれば、サードベンダー製の製品についても調べてみる価値がありそうです。