私はASP.NETとMVCを初めて使いました。MVCやサービスレイヤー、データアクセスレイヤーのビジネスロジックレイヤーは何ですか?ASP.NET MVCのレイヤー
MVCのどのクラスがレイヤーであるのか不思議です。コントローラやモデルクラスのように?
お知らせください。
多くのありがとうございます。
私はASP.NETとMVCを初めて使いました。MVCやサービスレイヤー、データアクセスレイヤーのビジネスロジックレイヤーは何ですか?ASP.NET MVCのレイヤー
MVCのどのクラスがレイヤーであるのか不思議です。コントローラやモデルクラスのように?
お知らせください。
多くのありがとうございます。
コントローラがHTTPリクエストを受信し、それが次にビューモデルに変換され、いくつかのドメインオブジェクトをフェッチまたは操作するために順番にデータアクセス層を呼び出しサービス層、上のいくつかのメソッドを呼び出すとビューに渡されます。ドメインモデルと実際のビューモデルとの間の変換は、別個のマッピングレイヤーまたはコントローラによって行うことができます(ただし、コントローラを混乱させないように分離することが好ましい)。
レイヤーに関しては、コントローラー、ビューモデル、およびビューで構成されるUIレイヤーがあります。次に、すべてのドメインオブジェクトが定義されているビジネスモデルレイヤー、特定のデータソースに対してドメインオブジェクトをCRUDするデータアクセスレイヤー、およびドメインオブジェクトのビジネス操作を定義するサービスレイヤーを持つことができます。
MVCのMは、ViewModelを表しているのではなく、コントローラに情報を取得するのに使用されるすべてのもの(それを適応させてビューに入れる)用です。 Mは、コントローラが使用するデータソースです。それはウェブサービス、リポジトリまたは何か他のものにすることができます。
MVCは実際にレイヤを気にしません。
責任:
これらの責任を尊重してください。ビューにロジックを追加しないでください。コントローラにビジネスロジックを追加しないでください。すべてを素敵に分けてください。アプリケーションを拡張して維持するのがずっと簡単です。 ASP.NET MVCではASP.NET MVC
は、我々はビューからロジックを削除するために使用されたビューモデルを持っています。指定されていないプロパティに "n/a"のようなメッセージを表示する必要がある場合は、ビューではなくビューモデルで行います。
まったく同じ理由でHtmlHelpersが作成されました。ビューからロジックを削除する。
私が見つけた一般的な誤解は、M、V、Cのいずれかにすべてのものを入れる必要があると思うということです。ダーリンが指摘しているように、コントローラーとモデル/ビュー。 –