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 ポスト
  • このエントリーをはてなブックマークに追加

ASP.NET MVC~特徴的なルーティングと容易なテストのサポート~

竹原:ASP.NET MVCでプログラミングをしたことがある方はどれくらいいるでしょうか?

――会場内の4割の方が挙手をし、会場内でも驚きの声が上がっていました。

竹原:思いの外、利用したことがある方が多くて、感動しました。ASP.NET MVCは新しくリリースされたフレームワークで、CTPなどが何度もリリースされ、完成するまでの長い間の途中経過までも楽しむことができる技術でした。

図4 ASP.NET MVCの紹介スライド
図4 ASP.NET MVCの紹介スライド

 

竹原:ASP.NET MVCは、HTML、JavaScript、設計方法など多くの知識を求められるため、面倒に感じたり、コードが良く解らないと感じたりするかもしれませんが、慣れてしまえば簡単じゃないか。と感じてもらえるのではないかと思います。

 今日はこんな感じで作るというデモを用意してきたので見てもらえればと思います。

――竹原さんが今回用意したデモは竹原さんのBlogにて公開されています。興味がある方はダウンロードして動作を確認してみてください。

 今回サンプルで作ったのは、機能として「何にどのくらい時間をかけたか」というのを入力して保存する、時間管理アプリケーションです。ASP.NET MVCはどちらかと言うと、データを参照するだけの参照系アプリケーションに向いていますが、データの編集などもLINQで容易にできるので、更新系アプリケーションとしても利用できると思います。

図5 ASP.NET MVC担当の竹原さん
図5 ASP.NET MVC担当の竹原さん

 ASP.NET MVCの特徴として、URLルーティングを使って登録するという機能があります。Web Formと違い、ファイル構造がURLに反映されるのではなく、ファイル構造に依存することなく、自分の好きなURLを構築できるのが魅力的です。例えば、URLはリソースを指すという観点でURLを構築すると、ユーザーにも直観的なURLとなるので、RESTfulでオシャレなアプリケーションが作れます。

 後は、コントローラーとアクションに対応したビューを表示させるように構築するだけです。一見大がかりなプロジェクト構成となるので、小規模アプリケーションには向いていないという点も確かにあります(会場:笑)

ASP.NET MVCの注目点はやはりテストにあり!

竹原:ASP.NET MVCで何か気になる点などはありますか?

参加者:既定のフォルダ構成以外でフォルダポリシーなどはありますか?

竹原:個人的には特にありません。強いて言うのであれば、少しカッコよくフォルダに"s"を付けるのがオシャレです。Serviceフォルダではなく、Servicesフォルダなど、複数系にする方がデフォルトで作成されるフォルダに準拠した形になります。また、コア機能、DAL(Data Access Layer)は、ASP.NET MVCプロジェクトに入れるのではなく、別プロジェクトに格納すると管理がしやすくなります。

参加者:管理がしやすくなるだけですか?

竹原:テストも行いやすくなります。プロジェクトが肥大化した場合の管理や個別のテストなどが行いやすくなります。また、リポジトリパターンのテストも別プロジェクトから行うことで、DALを直接使ったテストではなく、リポジトリパターンを使ったテストもできます。テストを行うときにデータベースが動いていなくとも、リポジトリとして値が返ってくれば、アクションメソッドのテストやルーティングのテストなど、Web Formの単体テストではよく遭遇していたコンテキストや、環境に依存したテスト環境の構築といったものから解放されます。

参加者:本物のDALを使わない場合は何かモックを使うんですか? モックを作る上でのお勧めとかはありますか?

竹原:私自身は、Rhino Mocksが好きなんですが、ASP.NET MVCでメジャーなのはMoqです。

小野:モックが何か分からない方いませんか?

――会場から挙手がありました。

小野:モックは、テスト用に直接データを触らせないために、テストの時に利用する仕組みだと考えてもらえばいいと思います。

竹原:対象が異なりますが、スタブと言うと分かりやすいかも知れません。モックはリポジトリパターンと相性がいいです。リポジトリパターンでは、インターフェースが重要です。リポジトリに書いたロジックを触らずに、データの対象をDBからモックへと変更するだけでテストが容易にできます。

――リポジトリパターンについては、後日公開予定の「ASP.NET MVCの開発応用編1~リポジトリパターンをマスターする~」を参照ください。

竹原:気がつけばASP.NET MVCの話ではなくテストの話になっていますね…(会場:笑)

ナオキ:ASP.NET MVCの説明が長くなってしまっていますが、それだけASP.NET MVCに対する注目度が高いと感じられます。ASP.NET MVCの分かりやすい特徴として重要な点はURLルーティングと、Web Formでは実現できなかったテストの優位性です。

 それでは、ディスカッションに進みたいと思います。

次のページ
ディスカッション開始~最初からレイヤーの話へ

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング