ホームページ  >  記事  >  バックエンド開発  >  ASP.NET MVCとは何ですか?まとめ ASP.NET MVC

ASP.NET MVCとは何ですか?まとめ ASP.NET MVC

零下一度
零下一度オリジナル
2017-05-20 13:32:363747ブラウズ

ASP.Net MVC の概要

モデル-ビュー-コントローラー (MVC) アーキテクチャ パターンは、アプリケーションを 3 つの主要なコンポーネント (モデル、ビュー、コントローラー) に分割します。 ASP.NET MVC フレームワークは、Web アプリケーションを作成するための ASP.NET Web フォーム モードの代替モードを提供します。 ASP.NET MVC フレームワークは、(Web フォーム ベースのアプリケーションと同様に) マスター ページやメンバーシップ ベースの認証などの既存の ASP.NET 機能と統合される、非常にテストしやすい軽量のプレゼンテーション フレームワークです。 MVC フレームワークは System.Web.Mvc アセンブリで定義されます。

MVC デザイン パターン

ASP.NET MVCとは何ですか?まとめ ASP.NET MVC

MVC は、多くの開発者がよく知っている標準のデザイン パターンです。一部の種類の Web アプリケーションは MVC フレームワークの恩恵を受けます。一部のタイプは、Web フォームとポストバックに基づいた従来の ASP.NET アプリケーション パターンを引き続き使用します。他のタイプの Web アプリケーションは、これら 2 つの方法を組み合わせますが、これら 2 つの方法は互いに排他的です。

MVC フレームワークには次のコンポーネントが含まれています:

モデル。モデル オブジェクトは、アプリケーション データ ドメイン ロジックを実装するアプリケーション コンポーネントです。通常、モデル オブジェクトはモデルの状態を取得し、データベースに保存します。たとえば、Product オブジェクトはデータベースから情報を取得し、その情報を操作して、更新された情報を SQL Server データベース内の Products テーブルに書き戻す場合があります。

小規模なアプリケーションでは、モデルは実際に分離されるのではなく、概念的に分離されることがよくあります。たとえば、アプリケーションがデータセットを読み取ってビューに送信するだけの場合、アプリケーションには物理モデル層と関連クラスがありません。この場合、データセットはモデル オブジェクトとして機能します。

見る。ビューは、アプリケーションのユーザー インターフェイス (UI) を表示するコンポーネントです。通常、この UI はモデル データを使用して作成されます。ビューの例は、Product オブジェクトの現在の状態に基づいてテキスト ボックス、ドロップダウン リスト、およびチェック ボックスを表示する Products テーブルの編集ビューです。

コントローラー。コントローラーは、ユーザーの操作を処理し、モデルを操作し、最終的にレンダリングするビューを選択することによって UI を表示するコンポーネントです。 MVC アプリケーションでは、ビューは情報を表示するだけであり、コントローラーはユーザーの入力と対話を処理し、応答します。たとえば、コントローラーはクエリ文字列値を処理し、これらの値をモデルに渡します。モデルはこれらの値を使用してデータベースをクエリします。

MVC パターンは、アプリケーションのさまざまな側面 (入力ロジック、ビジネス ロジック、UI ロジック) を分離しながら、これらの要素間の疎結合を提供するアプリケーションの作成に役立ちます。このパターンは、各タイプのロジックがアプリケーション内のどこに存在するかを指定します。 UI ロジックはビューに存在します。入力ロジックはコントローラー内にあります。ビジネス ロジックはモデル内に存在します。この分離を使用すると、一度にアプリケーションの 1 つの側面の実装に集中できるため、アプリケーションを構築する際の複雑さを簡素化できます。たとえば、ビジネス ロジックから独立したビューに焦点を当てることができます。

MVC アプリケーションのこれら 3 つの主要コンポーネント間の疎結合により、並行開発も容易になります。たとえば、1 人の開発者はビューに取り組み、2 人目の開発者はコントローラー ロジックに取り組み、3 人目の開発者はモデル内のビジネス ロジックに集中できます。

テスト駆動開発のサポート

MVC パターンを使用すると、複雑さが簡素化されるだけでなく、Web フォームに基づいた ASP.NET Web アプリケーションをテストするよりもアプリケーションのテストが簡単になります。たとえば、Web フォーム ベースの ASP.NET Web アプリケーションでは、出力の表示とユーザー入力への応答の両方に 1 つのクラスが使用されます。 Web フォーム ベースの ASP.NET アプリケーションの自動テストの作成は、複雑な作業になる場合があります。単一のページをテストするには、アプリケーション内のページ クラス、そのすべての子コントロール、およびその他の関連クラスをインスタンス化する必要があるからです。ページを実行するために非常に多くのクラスがインスタンス化されるため、アプリケーションの 1 つの部分に特に焦点を当てたテストを作成するのは困難な場合があります。したがって、Web フォーム ベースの ASP.NET アプリケーションのテストは、MVC アプリケーションのテストよりも実装が困難です。さらに、Web フォーム ベースの ASP.NET アプリケーションのテストには Web サーバーが必要です。 MVC フレームワークでは、コンポーネントの分離とインターフェイスの多用が可能になるため、個々のコンポーネントをフレームワークの残りの部分とは別にテストできます。

MVC アプリケーションを作成するタイミング

Web アプリケーションを実装するために ASP.NET MVC フレームワークを使用するか、ASP.NET Web フォーム モデルを使用するかを慎重に検討する必要があります。 MVC フレームワークは Web フォーム モデルを置き換えるものではありません。Web アプリケーションにはどちらのフレームワークも使用できます。 (既存の Web フォーム ベースのアプリケーションがある場合、それらのアプリケーションはこれまでとまったく同じように動作し続けます。)

特定の Web サイトに MVC フレームワークまたは Web フォーム モデルを使用することを決定する前に、この方法のそれぞれの利点を比較検討してください。 。

ASP.NET MVC フレームワークには次の利点があります:

アプリケーションをモデル、ビュー、コントローラーに分割することで複雑なタスクを容易にします。

ビューステートやサーバーベースのフォームは使用しません。このため、MVC フレームワークは、アプリケーションの動作を完全に制御したい開発者に特に適しています。

単一のコントローラーを通じて Web アプリケーションのリクエストを処理するフロント コントローラー パターンを使用します。これにより、豊富なルーティング インフラストラクチャをサポートするアプリケーションを設計できます。詳細については、「フロント コントローラー」を参照してください。

テスト駆動開発 (TDD) のサポートを強化します。

大規模な開発者チームによってサポートされている Web アプリケーションや、アプリケーションの動作を厳密に制御する必要がある Web デザイナーに最適です。

Web フォーム ベースのフレームワークには次の利点があります:

HTTP 経由で状態を保持するイベント モデルをサポートしており、基幹業務 Web アプリケーションの開発に有益です。 Web フォーム ベースのアプリケーションは、数百のサーバー コントロールでサポートされる多くのイベントを提供します。

ページ コントローラー パターンを使用して、単一のページに機能を追加します。詳細については、「ページ コントローラー」を参照してください。

サーバーベースのフォームにビューステートを使用するため、状態情報の管理が容易になります。

多数のコンポーネントを含むアプリケーションを迅速に開発したい、Web 開発者やデザイナーの小規模チームに最適です。

一般に、コンポーネント (ページ クラス、コントロールなど) が緊密に統合されており、通常は MVC モデルよりも必要なコードが少ないため、アプリケーション開発はより簡単になります。

ASP.NET MVC フレームワークには次の機能があります:

アプリケーション タスクの分離 (入力ロジック、ビジネス ロジック、UI ロジック)、テスト容易性、およびテスト駆動開発 (TDD)。 MVC フレームワークのすべてのコア プロトコルはインターフェイスに基づいており、アプリケーション内の実際のオブジェクトの動作を模倣するモック オブジェクトであるモック オブジェクトを使用してテストできます。 ASP.NET プロセスでコントローラーを実行せずにアプリケーションを単体テストできるため、単体テストが迅速かつ柔軟になります。 .NET Framework と互換性のある任意の単体テスト フレームワークを使用できます。

拡張可能でプラグイン可能なフレームワーク。 ASP.NET MVC フレームワーク コンポーネントは、簡単に置き換えたりカスタマイズしたりできるように設計されています。独自のビュー エンジン、URL ルーティング戦略、アクション メソッド パラメータのシリアル化、その他のコンポーネントをプラグインできます。 ASP.NET MVC フレームワークは、依存関係注入 (DI) および制御反転 (IOC) コンテナー モデルの使用もサポートしています。 DI を使用すると、クラスに依存してオブジェクト自体を作成するのではなく、オブジェクトをクラスに挿入できます。 IOC は、オブジェクトが他のオブジェクトを必要とするかどうかを指定します。最初のオブジェクトは構成ファイルなどの外部ソースから 2 番目のオブジェクトを取得する必要があります。こうすることで、テストが容易になります。

ASP.NET ルーティングの広範なサポート。これは、理解しやすい検索可能な URL を使用してアプリケーションを構築できる強力な URL マッピング コンポーネントです。 URL には必ずしもファイル拡張子が含まれる必要はなく、検索エンジン最適化 (SEO) や表現状態転送 (REST) のアドレス指定に適した URL 命名パターンをサポートするように設計されています。

既存の ASP.NET ページ (.aspx ファイル)、ユーザー コントロール (.ascx ファイル)、およびマスター ページ (.master ファイル) マークアップ ファイルのマークアップをビュー テンプレートとして使用することをサポートします。ネストされたマスター ページ、インライン式 ()、宣言型サーバー コントロール、テンプレート、データ バインディング、ローカリゼーションなどの既存の ASP.NET 機能を、ASP.NET MVC フレームワークと組み合わせることができます。

既存の ASP.NET 機能をサポートします。 ASP.NET MVC を使用すると、フォーム認証と Windows 認証、URL 認証、メンバーシップとロール、出力とデータのキャッシュ、セッションとプロファイルの状態管理、正常性の監視、構成システム、プロバイダー アーキテクチャなどの機能を使用できます。

【関連する推奨事項】

1. ASP.NET MVC と WebForm の違いを詳しく理解する

2. ASP.NET MVC の詳細を紹介する

3. ASP を詳しく紹介する.NET MVC -- ビュー

4.

ASP.NET MVC の詳細な紹介 -- ルーティング

5.

asp.net mvc を使用して WeChat カスタム メニュー編集ツールを開発するためのコード例

以上がASP.NET MVCとは何ですか?まとめ ASP.NET MVCの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。