この記事ではマイクロソフト社が開発・提供しているWebアプリケーション開発用フレームワーク「ASP.NET」の「Web Forms」を「MVC」と比較しながらメリットやデメリット等を含めて解説していきたいと思います。
本記事の対象読者
- ASP.NET Web Formsの概要を理解したい人
- これからASP.NET Web Formsを使用した開発をする人
ASP.NET Web Forms の概要
ASP.NETとは、冒頭でも言った通り、
マイクロソフト社が開発・提供しているWebアプリケーションフレームワークで、
動的なWebアプリケーションの開発・実行の基盤となるものです。
ASP.NETでは、個人規模の小さなWebサイトから企業が
持つECサイトなどの大きなWebアプリケーションまで、様々なWebアプリ開発に対応しています。
また、ASP.NETにはいくつかのフレームワークが備わっており、
その中に「Web Forms」と呼ばれるものが存在します。
「Web Forms」では、あらかじめフレームワーク側で用意されているWeb開発に必要なパーツをドラッグ&ドロップするだけの感覚的な操作で
簡単にWebページのデザインを作り込むことが可能となっています。
「イベントハンドラ」と呼ばれるページ上のボタンを押した時などのトリガーによってアクションの実行の設定に関しても、
Web FormsのデザイナーGUIから対象のオブジェクト(ボタンやフォーム)をダブルクリックするだけで、
イベント発生時の処理の追加も簡単に設定することができます。
ちなみに、このような画面上の要素をトリガーとしてアクションが発生した時の処理を
実行するようにプログラムを記述する手法を「イベント駆動型プログラミング(イベントドリブン)」と呼びます。
同じくマイクロソフト社が開発・提供している Windowsアプリケーションの開発も上記の特徴を持っていて、
GUIからデザインやイベントハンドラを簡単に設定できるようになっており、
Windowsアプリケーションの開発の経験がある人には馴染み深いフレームワークとなっています。
Web Formsの導入メリット・デメリット
Web Formsを使用したWebアプリケーション開発にはどのようなメリット、
その反面でどのようなデメリットが存在するのか、解説していきたいと思います。
まずメリットとしては、上述の通り、Webページのデザインをドラッグ&ドロップで感覚的に設定していけること、
そして、イベントドリブン駆動なWeb開発が可能であることでWebアプリケーションの開発が簡単に行えることは優れた生産性を発揮することになります。
その反面、画面単位でモジュール化や1画面1Formなどのフレームワークレベルで標準化されていることから、柔軟性が低いところがデメリットとなリます。
例えば、Web FormsではWebページを簡単にデザインすることができますが、
自動生成によってHTMLが隠蔽されることが原因で、HTML自体を細かく編集することが困難であること、
そしてjQuery、React、Angular、VueなどのJavaScriptライブラリの実装がしにくくなると言ったデメリットがあります。
その他にも自動テストが困難な点、テスト用のWebサーバが必須であることやSEO対策にも適していない点など、多くの欠点が見受けられます。
ASP.NET MVCとの比較
ASP.NETでは、Web Forms以降にWebアプリケーション開発のためのフレームワークを開発・提供しています。
それが「ASP.NET MVC」というフレームワークで、Model、View、Controllerの三つに分けてプログラムを実装するデザインパターンとなっており、
他の言語のフレームワークでも見られる開発モデルです。
Web Forms よりも新しいフレームワークですが、両者で良い点・悪い点があります。
Web Formsでは、Webページのデザインをドラッグ&ドロップで開発可能な点やハンドドリブン駆動での開発によって生産性が高い開発を実現できます。
ですが、その反面で開発自体の柔軟性が低い面や自動テストが困難な点、SEO対策に適していないことなど、様々な欠点があります。
一方、それらWeb Formsの欠点を補うように、ASP.NET MVCでは、
直にHTMLのコーディングができることやControllerと全体のViewの関係をn対nとすることができるなど、開発の高い柔軟性や自動テストが使用可能な点、もちろんSEO対策も徹底して実施できるようになります。
ですが、柔軟性が高い反面、標準化されていないことから大規模な開発では開発のガイドラインを徹底する必要があるかと思われます。
まとめ
ASP.NET Web Formsでは、簡単にWebページの開発を行うことが可能ですが、
その反面で柔軟性に欠けるような実装となってしまう点のメリット・デメリットがあります。
ASP.NETでは、やはりWeb Formsは衰退傾向にあり、他の新しいフレームワークに対するマイクロソフト社のサポートもそちらに傾いていることから、Web Formsは「レガシー」なWeb技術と言わざるを得ないと思います。
しかし、マイクロソフト社がWeb Formsを廃止することはなく、
開発の簡易的で生産性の高さを発揮することができるフレームワークとして「ASP.NET Web Forms」は今後もまだまだ残っていくことになるでしょう。
ASP.NET おすすめ入門講座
3つのWebアプリケーションの開発を通して、ASP.NETについて基礎から学べるおすすめの入門講座がこちら☟
【入門者向け】ASP.NET MVCでWebアプリ開発のノウハウを学ぼう!