ASP.NET
MVC Mavericks Road] 01 - MVC パターンを理解する
PS: MVC は長い間世に出ていましたが、私は仕事でそれを使用する機会がありませんでした。興味があったので、仕事後に MVC について徹底的に勉強し、ブログ投稿を通じて学んだことを記録し、仲間の庭師から修正を得ることができればと考えています。
この記事の内容
一般的な意味でMVCパターンを理解する
MVCパターン(Model-View-Controller)は、ソフトウェア工学におけるソフトウェアアーキテクチャパターンであり、ソフトウェアシステムを次の3つの基本部分に分割します:
モデル: モデルは、アプリケーションのビジネス ロジックとデータの処理方法に関連するデータをカプセル化するために使用されます。 「モデル」はデータベースなどのデータに直接アクセスします。 「モデル」は「ビュー」や「コントローラー」に依存しません。つまり、モデルは、モデルがどのように表示されるか、どのように操作されるかを気にしません。
ビュー: ビューは、目的を持ったデータの表示を実現できます。通常、ビューには手続き型ロジックはありません。
コントローラー: コントローラーは、さまざまなレベル間で組織的な役割を果たし、アプリケーションのフローを制御するために使用されます。イベントを処理し、応答します。 「イベント」には、ユーザーの行動やデータ モデルの変更が含まれます。
上記のテキストはWikipediaから引用したものです。上記の文章と私の個人的な理解に基づいて、MVC のさまざまな部分間の関係を示す次の図を描きました:
プラットフォームや言語フレームワークが異なれば MVC の定義も異なり、明確な定義はないことに注意してください。 。しかし、一般的に言えば、MVC モデルの各部分には明確な役割分担と明確な定義があります。データを操作するロジックはモデルにのみ存在し、データをレンダリングするロジックはビューにのみ存在し、ユーザーのリクエストと入力を処理するロジックはコントローラーにのみ存在します。アプリケーションがどれほど大きくても、ライフサイクルのどの段階にあっても、この明確な関心事の分離 MVC パターンにより、アプリケーションの保守と拡張が容易になります。
ドメイン モデルを理解する
ドメイン モデル (ドメイン モデル) は、ドメイン内の概念的なクラスや現実世界のオブジェクトを視覚的に表現したものです。概念モデル、ドメイン オブジェクト モデル、ビジネス オブジェクト モデルとも呼ばれます。問題ドメイン自体の分析、重要なビジネス ドメイン概念の発見、ビジネス ドメイン概念間の関係の確立に焦点を当てます。 ドメイン モデルは、ビジネス ユース ケースの実装を記述するオブジェクト モデルであり、ビジネスを実行するためにビジネス ロールとビジネス エンティティがどのように関連付けられ、連携するかを抽象化したものです。
MVC アプリケーションの場合、ドメイン モデルは非常に重要な部分です。特定の業界では、現実世界のエンティティ、関連する操作、ルールに基づいてモデルを作成します。 C# プログラムの場合、ドメイン モデルは、現実世界のオブジェクトをカプセル化する一連の C# 型 (クラス、構造体など) であり、ドメイン内のオブジェクトに対する一部の操作 (または処理) は、C# 型で定義されたメソッド (メソッド) です。フィールドでのオブジェクト操作の規則の一部は、C# の属性リーダーおよびライターの get および set メソッドによるクラス メンバーの読み取りと書き込みの制御など、メソッド内の論理処理です。例:
たとえば、銀行業務の分野では、個人の「銀行口座」をモデルに組み込むことができます。各アカウントには、銀行口座モデルのメソッドである「銀行カード消費」という操作があります。 「当座貸越消費なし」は、この口座での銀行カードの使用に対する制約ルールです。このルールは、銀行カード消費メソッド内で定義された論理処理です。
上記は少し抽象的ですが、それでも理解するのは簡単です。ドメイン モデルについての私の理解はこれまでしかできません。皆さん、ぜひ体験してください。つまり、MVC アプリケーションでは、次の概念が必要です。モデルを通じてデータを操作したり、操作を追加したり、操作にルールを追加または変更したりすることは、すべてアプリケーションのドメイン モデルを変更することになります。
ASP.NET の MVC を理解する
要約すると、ASP.NET MVC には次の特徴があります:
プロジェクトをモデル ビューとコントローラーに分割することにより、このタスクの分離 (関心の分離とも呼ばれます) により、複雑なプロジェクトの保守が容易になります。コンポーネントにより、アプリケーションの保守が容易になり、テストが容易になります。
拡張可能でシンプルなフレームワーク。 mvc フレームワークは、移植とカスタマイズを容易にするように設計されています。独自のビュー エンジン、URL 書き換え戦略、オーバーロードされたアクション メソッドなどを追加できます。 mvc は、依存関係の挿入 (DI) と制御の反転 (IOC) もサポートしています。強力な URL 書き換えメカニズムにより、理解しやすく検索可能な URL を簡単に作成できます。 URL にはファイル拡張子を含めることはできません。URL は検索エンジンに適したものに書き換えることができます。
既存の asp.net プログラムのサポート。既存の asp.net ページ タグ、ユーザー コントロール、テンプレート ページ、データ バインディングなどを使用できます。
…
ASP.NET MVC では、コントローラーは通常、System.Web.Mvc.Controller を継承するクラスです。コントローラー内のクラスの各パブリック メソッドは、Action メソッドと呼ばれます。 ASP.NET ルーティング システムは、要求された URL とルーティング構成に基づいて、対応する Action メソッドを内部で呼び出します。ドメイン モデルの操作が完了すると、クライアントに提示するビューが選択されます。次の図は、ASP.NET MVC のコントローラー、モデル、ビューの関係を示しています。
さらに、ASP.NET MVC フレームワークは、.NET でサポートされているデータベース、ORM フレームワーク、その他のツールを使用できます。
初心者にとっては、ASP.NET MVC の概念を理解するにはこれで十分だと思います。 ASP.NET の MVC の概念をより深く理解したい場合は、MSDN ドキュメントにアクセスすることをお勧めします。
初心者の場合は、理解を助けるために、自分でいくつかの簡単なデモを作成することをお勧めします。別の庭の友人の本格的な MVC 入門チュートリアル シリーズのブログ投稿を参照してください。
以上は [ASP.NET MVC Maverick’s Road] 01 - MVC モデルの内容を理解する さらに関連した内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。