.net column
.NET開発者のためのブログメディア

Webアプリケーションの作成

【ASP.NETのWebフォームとは?】ASP.NET MVCとの違いも解説

2020年04月08日

ASP.NETでは、長らくWebフォームを利用したWebアプリケーション開発が主流でした。しかし、より簡素なコーディングが求められるようになり、ASP.NET MVCが登場しました。両者の違いはどのようになっているのか、特徴やメリットを紹介していきます。

SE
ASP.NET WebフォームとASP.NET MVCってどう違うのでしょうか?
PM
ASP.NET MVCの方が新しいですが、ASP.NET Webフォームが使えないというわけではないようですね。両者の違いを見ていきましょうか。

実行環境
・Visual Studio 2019(.NET Framework 4.8)

ASP.NET Webフォームの概要

ASP.NETは2002年1月にバージョン1.0がリリースされ、長らくWebアプリケーション開発などを行うツールとして利用されてきました。

ASP.NETのWebフォームでの開発は、あらかじめ用意されているパーツをドラッグ&ドロップするだけで、簡単にページのデザインを行えるのが特徴です。イベントハンドラの追加についても、対象のオブジェクトをダブルクリックするだけで、イベントを発生する基本的な処理を追加できます。

こうした開発スタイルは、Windowsアプリケーションの開発と似ているほか、HTMLの知識がなくても表示するページのデザインを行えるのが大きなメリットでしょう。半面、自動生成によって隠蔽される処理部分の実装が見えにくくなり、JavaScriptなどの実装がしにくくなるといったデメリットもあります。

既存資産の活用と豊富なコンポーネント

ASP.NET Webフォームは、まるでデスクトップアプリのようにWebアプリが作れるのが特徴で、既存のデスクトップアプリなどをWebアプリ化するときに、優れた生産性を発揮します。

さらに、長年のバージョンアップにより、現在では成熟したWebフレームワークとなり、今後も大きなアップデートが見込まれていないことから、安定して使うことができます。

また、サードパーティ製コンポーネントも充実しており、例えば「SPREAD for ASP.NET」は、少ないコードでExcelのような操作性をもつWebアプリを素早く開発できます。

SEO対策が求められる公開サイトには不向き

ASP.NET Webフォームの特徴でもあるポストバックモデルは、検索エンジンによって高く評価されることが難しく、SEO対策が求められるサイトには不向きとされます。

ASP.NET MVCとの比較

ASP.NET MVCは、サーバーサイドでのより柔軟なWebアプリケーションの開発を可能にするというコンセプトのもと、2009年4月にバージョン1.0がリリースされました。Model(モデル)、View(表示)、Controller(操作)を別々に分けて実装するデザインパターンで、現在普及している他のフレームワークにも見られるものです。ただし、Webフォームに完全に取って代わるものではなく、両者のメリットやデメリットを踏まえて採用を検討します。

開発条件によって使い分ける

Webフォームは、自動生成によってHTMLが隠蔽されるため、jQueryなどのJavaScriptライブラリを使用する場合は、MVCの方が向いています。
また、React、Angular、VueなどのJavaScriptフレームワークには未対応のため、この場合もMVCを使用します。

両者の基本的な性能や基盤にある技術は同じなので、開発条件によってどちらの利用が適しているかを検討して利用するべきでしょう。将来性はMVCの方が優れているといわれますが、Webフォームの需要もまだまだ多いのが現状です。
一般的にはWindowsフォームに慣れた人にはWebフォーム、非ネット系開発が得意な人にはMVCがそれぞれ扱いやすいといわれています。

簡単なWebフォームアプリの作成手順

今回は次のイメージのように、名前を入力してボタンをクリックするとラベルに「〇〇さん、こんにちわ!」などのメッセージを表示するWebアプリケーションを作成します。

Webフォームアプリ完成イメージ

Visual Studio 2019を起動し、新しいプロジェクトの作成から「ASP.NET Webアプリケーション(.NET Framework)」を選択します。

ASP.NET Webアプリケーションを選択

テンプレートには「Web Forms」を選択し、「作成」ボタンをクリックしてプロジェクトを作成します。

Web Formsプロジェクトの作成

プロジェクトを作成したら次に、ソリューションエクスプローラー上で、[右クリック]⇒[追加]⇒[新しい項目の追加]を選択し、新しいWebフォームを作成します。

ソリューションエクスプローラー

追加した「WebForm1.aspx」をデザイナで開き、ツールボックスより、次のように3つのコントロールを配置します。

コントロール配置

デザイナ上でボタンをダブルクリックし、イベントハンドラを追加します。
コードエディタ上に追加されたイベントハンドラに、次のコードを入力します。

このように、ASP.NET Webフォームはデザイナを使用することで、HTMLを直接触ることなくWebアプリを作成出来る点が特徴です。
これで今回のWebアプリは完成です。Visual Studio上で実行し、動作を確認してみてください。

SE
ASP.NET WebフォームとMVCは、どちらも優れた面を持っているということなんですね。
PM
なるべくデメリットが出ない方を選んで開発していくのが良いですよ。

それぞれの特性に合った開発ツールを選択する

ASP.NET Webフォーム、ASP.NET MVCは両者ともに優れている面があります。利用していくうえでデメリットとなる点が少ない方を選択していくことで、より効率の良い開発が行えるでしょう。

>>>ASP.NETの案件を探すならFEnet .NET Navi


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags

Jobs