2011-06-30 11 views
1

私はASP.NETとMVCを初めて使いました。MVCやサービスレイヤー、データアクセスレイヤーのビジネスロジックレイヤーは何ですか?ASP.NET MVCのレイヤー

MVCのどのクラスがレイヤーであるのか不思議です。コントローラやモデルクラスのように?

お知らせください。

多くのありがとうございます。

答えて

3

コントローラがHTTPリクエストを受信し、それが次にビューモデルに変換され、いくつかのドメインオブジェクトをフェッチまたは操作するために順番にデータアクセス層を呼び出しサービス層、上のいくつかのメソッドを呼び出すとビューに渡されます。ドメインモデルと実際のビューモデルとの間の変換は、別個のマッピングレイヤーまたはコントローラによって行うことができます(ただし、コントローラを混乱させないように分離することが好ましい)。

レイヤーに関しては、コントローラー、ビューモデル、およびビューで構成されるUIレイヤーがあります。次に、すべてのドメインオブジェクトが定義されているビジネスモデルレイヤー、特定のデータソースに対してドメインオブジェクトをCRUDするデータアクセスレイヤー、およびドメインオブジェクトのビジネス操作を定義するサービスレイヤーを持つことができます。

+0

私が見つけた一般的な誤解は、M、V、Cのいずれかにすべてのものを入れる必要があると思うということです。ダーリンが指摘しているように、コントローラーとモデル/ビュー。 –

1

MVCのMは、ViewModelを表しているのではなく、コントローラに情報を取得するのに使用されるすべてのもの(それを適応させてビューに入れる)用です。 Mは、コントローラが使用するデータソースです。それはウェブサービス、リポジトリまたは何か他のものにすることができます。

MVCは実際にレイヤを気にしません。

責任:

  • M:コントローラに
  • Cのデータを提供するために使用さ:のデータを提示:Mから受信したデータを適応し、図
  • Vに入れてユーザー。

これらの責任を尊重してください。ビューにロジックを追加しないでください。コントローラにビジネスロジックを追加しないでください。すべてを素敵に分けてください。アプリケーションを拡張して維持するのがずっと簡単です。 ASP.NET MVCではASP.NET MVC

は、我々はビューからロジックを削除するために使用されたビューモデルを持っています。指定されていないプロパティに "n/a"のようなメッセージを表示する必要がある場合は、ビューではなくビューモデルで行います。

まったく同じ理由でHtmlHelpersが作成されました。ビューからロジックを削除する。