SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

「ASP.NET Web Form」か「ASP.NET MVC」か?
.NETによるWebアプリ開発の今を徹底討論

Tech・Ed Japan 2009/BoF「ASP.NET Web Form vs. ASP.NET MVC in Japan」レポート

  • X ポスト
  • このエントリーをはてなブックマークに追加

クリーンなHTML生成は本当にASP.NET MVCだけ?

参加者:Web Formだと、レンダリングされるHTMLはViewStateやstyleなど様々な物が付随してきますが、ASP.NET MVCだとどれくらい綺麗にレンダリングされますか?

竹原:ほぼ全て自分が記述したHTMLしか生成されません。ポストバックもViewStateも無いので、デザイナの方が記述したHTMLがそのまま活用されます。

小野:HTMLヘルパーを使っても結局はHTMLの要素を組み合わせているだけですので、綺麗にレンダリングされます。自作でHTMLヘルパークラスも作れますが、逆に言うと、自分たちが正しくHTMLを知っていないと書けません。

参加者:同じようなことがWeb Formでも書けますよね?

小野:ひとつの方法としてリテラルコントロールを使う、ということはあります。まぁ、この場合は、リテラルコントロールに自分で組み立てたHTMLの文字列を突っ込むだけですが。

 もうひとつ、ControlAdapterを利用して生成されるHTMLを書き換えてしまう、という方法があります。例えば、CheckBoxListコントロールは既定で、テーブルタグを生成しますが、これを<ul>/<li>タグへ置き換えることもできます。

ControlAdapterクラス

 コントロールがレンダリングする既定のHTMLをブラウザごとに変更したい場合に利用できます。

 ControlAdapterは便利ですが、これを利用する場合もHTMLを熟知している必要はありますね。

参加者:ControlAdapterをうまく活用できるようにしたCSS Friendly Control Adaptersがダウンロードできるので、コントロールが生成するレンダリングが嫌な場合は、それを利用することでWeb Formでも綺麗なHTMLが生成できるようになります。

参加者:ASP.NETでの開発はしていませんが、ASP.NETだと固有の拡張レンダラーを利用すれば、制御できるのは分かりました。しかし、そこまで利用して開発する方っているんですか? FlexやSilverlightでもそうですが、レンダラーを記述するにはスキルが必要で、専門の開発者が一人でしていることが多いです。その辺りASP.NETではどうなんでしょうか?

小野:ControlAdapterクラスを知っているか知らないかになってしまうので、それ程スキルが必要な部分ではありません。カスタムコントロールを作れるのであれば問題ありません。確かに力技で、面倒な部分ではありますが。

参加者:Perlを書ける人なら簡単です。HTMLをどう記述するかが重要な気がします。

参加者:こうなってくるとWeb FormもASP.NET MVCもHTMLを知っていないと利用できないんじゃないでしょうか?

小野:標準コントロールが生成する物で、我慢できる仕様であればWeb Formの生産性の高さは魅力です。

参加者:結局 Web Formであっても、ASP.NET MVCであっても、ASP.NETを使う場合は要件で絞り込んだ方が開発はしやすそうに感じます。

小野:フレームワークは対象とする分野の開発パターンのうち7~8割を満足させられるものを狙って作られているものだと思います。Web Formの場合はHTMLをよく知らない開発者でも利用でき、ロジックに集中して生産性をあげるような仕組みとして提供されていると考えるべきだと思います。

今から学習するのならどちらが最適か?

ナオキ:気がつけば残り時間が短くなっているので次で最後の質問とさせてください。

参加者:あまりWebアプリケーションを作らないのですが、Windows FormやSilverlightアプリケーションを開発したことがある開発者が今からWebアプリケーションを始める場合はどちらを選択する方がいいでしょうか?

ナオキ:BoFタイトルらしい質問ですね! これは、意見が分かれるところだと思うので会場全体にアンケートを取ってみたいと思います。いかがでしょうか?

――Web Form側が良い方が2/3、ASP.NET MVC側1/3という結果になりました。

参加者:Windows Formなどの開発しかしたことない開発者にとってWeb Formを知らないとASP.NET MVCを教えづらいという部分は確かにあると思います。

小野:Java開発者の方たちにとっては、ASP.NET MVCの方が圧倒的に分かりやすいかと思います。最初にASP.NETが出てきたときはさておき、ASP.NET 2.0ではVisual BasicでWindows Form開発者に対するアプローチを多く取ってきています。Web開発を行ってきた人たちに対しては分かりづらい概念なども多く入っているため、そのような方たちにとってもASP.NET MVCの方が入りやすいですね。

ナオキ:同意です。自分も司会という立場上あまり発言していなかったので発言させてください(笑)。私の場合はWebの知識がない時にWeb Formを触れました。その時に感じたのはWeb FormはWindows Formっぽく開発ができるんだなぁ。という点です。しかし、ちょっと凝ったことをしようとするとポストバックの落とし穴にはまってしまうなど、決定的にWindows Formと違う点が出てきてしまいました。大抵落とし穴にはまってしまう時はWeb知識が求められる部分です。Webアプリケーション向けのフレームワークである以上Web FormでもWeb知識は多く求められます。

図9 司会担当の著者

 

 まとめると、Web開発入門者の方がさっとWeb開発を学ぶもしくは開発するのであればWeb Formを、時間がある、または新人にじっくりWeb開発を学ばせるには、HTML/CSSの静的なところからJavaScript、DOMを教えて、ASP.NET MVCがいいのではないでしょうか。

 また、IronRubyが先日バージョン0.9をリリースしました。近々1.0が正式リリースされる予定です。IronRuby開発者がRails代わりにASP.NET MVCを使うというシナリオも…。

参加者:Ruby開発者は間違いなくRailsを使いますね!(会場:笑)

ナオキ:確かにそうですね。ただ、海外のRuby+Railsユーザーの方もIronRuby+ASP.NET MVCに注目はしているので、何かきっかけがあれば国内でもニッチな市場が開けるんじゃないでしょうか?

竹原:最後に僕から質問させてください。Web FormとASP.NET MVCの開発どちらの方が楽しそうでしょうか?

――Web Form3割、ASP.NET MVC7割というアンケート結果でした。

ナオキ:本BoFの結論として、Web技術を堪能するのであればASP.NET MVCということになりました。これでBoFの最終セッション「ASP.NET Web Form vs. ASP.NET ASP.NET MVC in Japan」を締めたいと思います。ご参加いただきありがとうございました。

まとめ

 参加者全員がASP.NET開発験者ということにも驚きましたが、ディスカッションしたテーマも登壇者の当初の予測とはかなり異なっていました。その分深い話もすることができたため、BoFの参加者からの満足度も高かったです。

 Web Form vs. ASP.NET MVCとしてのディスカッションとして、Webを触れたことの開発者の入門として優しいのはWeb Form。開発が楽しそうなのはASP.NET MVC。という意見が多かったのが印象的です。また、既にWeb開発を行ってきた方々にとってもASP.NET MVCの方が入門しやすいという結論も出ました。

 もちろん様々な要素によってこれらは変わってきますが、また何かの機会があれば、Web Form vs. ASP.NET MVCのディスカッションができればと登壇者一同感じています。また、Web Form/ASP.NET MVC共に開発者から期待されていたことも分かったため、今後国内におけるASP.NET開発を盛り上げていければと思いました。

参考文献

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト ナオキ(ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4367 2009/09/04 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング