LoginSignup
4
0

More than 3 years have passed since last update.

Web Formの問題点

単体テストを自動化しづらい

Webフォームは基本的にPagesクラス
を中心にしたFWであるためPagesクラスを直接インスタンス化できないのでテストにあたりサーバ環境の準備が必要になる。
また、イベントハンドラが原則としてUIから呼び出されてしか動かないこともテストの自動化を妨げる要因

Web Form 固有の概念が多い

サーバコントロール、イベントどぶリン、ポストハック、ビューステートなどの固有の概念が慣れてないとハードルになる

出力の制御が難しい

サーバーコントロールの目的は、出力をブラックボックス化することだが、細かな出力の制御が難しい

ASP.NET MVCの特徴

MVCを採用

要素 概要
Model データベースのアクセス、データ処理、ビジネスロジック。UI変更の影響を受けずらい
View UI.データの入出力フォームや処理結果の表示などフロントエンド
Controller ModelとViewの仲介。ViewからのデータをModelに渡し、Modelでの処理結果をViewに渡す

フロントコントローラーを採用

個々のページでリクエストを受け、処理結果もページからクライアントに返す方式をページコントローラーとよぶ。
対してAPS.NET MVCではフロントコントローラー方式を採用する。
フロントコントローラーとはクライアントからのリクエストをまずフロントコントローラーで受けて、それから各クラスへ振り分ける方法のこと。
また、リクエストURLに応じた処理の受け渡し先を決定することをルーティングとよぶ。

単体テストを自動化しやすい

各クラスがインスタンス化できるので単体テストが容易

サーバーコントロールを利用しない

イベントドブリンやポストバック、ビューステートという概念がなく、コード埋め込みのアノテーションを利用してHTMLを出力する。

Webフォームの知識を生かせる

セクションやクッキー、キャッシュといった基本的な機能の大部分ではASP.NETの知識を流用できる。

APS.NET MVCの主な機能

  • ルーティング
  • 認証やキャッシュ、例外処理などのフィルター
  • 入力データを処理するモデルバインド
  • コントローラーの処理結果を管理するActionResultオブジェクト
  • ビュー開発を効率化する種種のヘルパーメソッド
  • アプリケーションの骨格を自動生成するScaffolfing機能
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0