ASP.NET MVCとWebFormは今後どちらがいいのか
ASP.NET MVC が 2009 年に登場してから、もうだいぶ経ちますが、従来まである ASP.NET Web Form(ウェブフォーム)は、.NET 系業務アプリ界隈では未だに新規開発案件も見かけるほど広く使われている印象です。
単に「MVC 知らないから Web Form で開発」という会社も多いかもしれませんけど、新規開発をするならよく検討したほうが良いことはたくさんあります。
個人的な意見です。
ASP.NET Web Form のメリットとデメリット
ASP.NET Web Form は、ASP.NET MVC も広く普及している今でも、優れたプラットフォームであると思います。裏側で勝手に色々と動いているのが嫌だという人は毛嫌いしていますが、以下のような特徴があります。Web Form のメリット
Web Form は、開発スピードが早いのがメリットだと思います。
工数が少ないという意味ではありません。
歴史的経緯から、VB6 の手軽さでコントロールをフォームに貼り付けて、イベントドリブンモデルで Web 開発ができるのは今でもメリットなのではないでしょうか。
コードの見通しも良いので、新しくアサインされてもそれなりにすぐ順応できる場合が多いでしょう。
Web Form のデメリット
細かいことを言い出すと、色々あります。- 大規模なものを作るならそれなりの熟練者が必須
ASP.NET Web Form は、WEB の仕組みをよく知らなくても作れてしまうため、その辺りの部分を無視しても作れてしまうということが逆に怖いところでもあります。
たまに業務アプリであるのですが、すごい数のテキストボックスや GridView などを一画面に集約していたりします。
VB6 みたいに作れるので忘れがちですが、WEB の画面を作っているのです。 - 出力される HTML が汚すぎるw
わざわざソースを開く人は少ないでしょうが、SEO 的に厳しい部分があったり、デザイナーと共同作業をやろうとすると大変です。 - テストが大変
ページとコードがくっついているので、画面に関してのテストは泥臭い手法でやることが多くなるでしょう。
なぜ ASP.NET MVC か?
ASP.NET Web Form で挙げたデメリットが解消されています。ただし、画面層への表示などのお手軽だったメリットも捨てられていますけどねw
ASP.NET MVC のメリットは、ソースが完全分離されていることです。
テスト自動化がやりやすく、全体的な品質を向上させたいなら有効です。自動テストコードを書かないなら、この恩恵は受けませんが、デザイナーとの共同作業はしやすいです。
また、.NET Framework のロードマップ上、ASP.NET Web Form は、今後は VB6 的なレガシーなものになっていくそうです。
ASP.NET は、今後 Windows 環境以外にも展開されますが、その未来についていけるのは ASP.NET MVC だけです。
社内で使う小さなアプリなら、ASP.NET Web Form の開発効率は高く、まだまだいけると思いますが、フロントエンドの WEB アプリ、大規模システムであるならば、もはや Web Form で積極的に開発していくのは今後を考えると勧めづらいな、と思います。
ASP.NET MVC のメリットは、ソースが完全分離されていることです。
テスト自動化がやりやすく、全体的な品質を向上させたいなら有効です。自動テストコードを書かないなら、この恩恵は受けませんが、デザイナーとの共同作業はしやすいです。
また、.NET Framework のロードマップ上、ASP.NET Web Form は、今後は VB6 的なレガシーなものになっていくそうです。
ASP.NET は、今後 Windows 環境以外にも展開されますが、その未来についていけるのは ASP.NET MVC だけです。
社内で使う小さなアプリなら、ASP.NET Web Form の開発効率は高く、まだまだいけると思いますが、フロントエンドの WEB アプリ、大規模システムであるならば、もはや Web Form で積極的に開発していくのは今後を考えると勧めづらいな、と思います。