Asp.net-core-mvc-design-pattern
提供:Dev Guides
ASP.NET Core-MVCデザインパターン
MVC(Model-View-Controller)デザインパターンは、実際に数十年前から存在しているデザインパターンであり、SmalltalkからC ++、Java、そして今ではC#および.NETのデザインとして、さまざまなテクノロジーで使用されています。ユーザーインターフェイスを構築するときに使用するパターン。
- MVCデザインパターンは、ソフトウェアアプリケーションのユーザーインターフェイスレイヤーの一般的なデザインパターンです。
- 大規模なアプリケーションでは、通常、モデルビューコントローラーUIレイヤーを、データアクセスパターンやメッセージングパターンなど、アプリケーションの他のデザインパターンと組み合わせます。
- これらはすべて連携して、完全なアプリケーションスタックを構築します。
MVCは、アプリケーションのユーザーインターフェイス(UI)を次の3つの部分に分けます-
- モデル-作業中のデータとビジネスロジックを記述するクラスのセット。
- ビュー-アプリケーションのUIの表示方法を定義します。 UIの外観を決定するのは純粋なHTMLです。
- コントローラ-ユーザーからの通信、全体的なアプリケーションフロー、およびアプリケーション固有のロジックを処理するクラスのセット。
MVCの背後にあるアイデア
MVCの背後にある考え方を理解しましょう。
- これは、HTMLとするか、実際にデスクトップアプリケーションのUIウィジェットとするかを、このユーザーインターフェイスのレンダリングのみに責任を持つビューと呼ばれるコンポーネントを持つという考え方です。
- ビューはモデルと通信し、そのモデルにはビューが表示する必要があるすべてのデータが含まれています。
- Webアプリケーションでは、ビューにコードがまったく関連付けられていない場合があります。
- HTMLだけがあり、モデルからデータの一部を取得し、ビューで作成したHTMLテンプレート内の正しい場所にプラグインする場所の表現がいくつかあります。
- コントローラーはすべてを整理します。 MVCアプリケーションのHTTPリクエストが到着すると、リクエストはコントローラにルーティングされ、データベース、ファイルシステム、またはモデルのいずれかと通信するのはコントローラ次第です。
MVCでは、コントローラーはHTTP要求を受信します。コントローラーは、この要求に応答するために情報をまとめる方法を把握する必要があります。 おそらく、ユーザーはアプリケーションの/books URLにブラウザーを向けています。 そのため、コントローラーは本のリストを表示するために情報をまとめる必要があります。 このシナリオでは、コントローラーがモデルを作成します。
- モデルは、HTTPリクエストまたはコントローラーについて何も知りません。
- モデルは、ユーザーが見たい書籍情報、およびその書籍のリストに関連付けられているロジックのみを保持します。
- このモデルは、使用できるもう1つのC#クラスであり、複雑なモデルがある場合は、複数のクラスを使用できます。
- モデルが組み立てられると、コントローラーはビューを選択してモデルをレンダリングできます。
- ビューは、すべての書籍や各書籍のタイトルなど、モデル内の情報を取得し、その情報を使用してHTMLページを構築します。
- 次に、そのHTMLがHTTP応答でクライアントに送り返され、HTTP要求と応答トランザクション全体が完了します。
これらはMVC設計パターンの基本であり、このパターンの背後にある考え方は、懸念を分離することです。 そのため、コントローラーは、リクエストの取得とモデルの構築のみを担当します。 ビューに必要なロジックとデータを運ぶのはモデルです。 次に、ビューはそのモデルをHTMLに変換することのみを担当します。