ASP.NET MVC 2 モデルについて(1)

とあるセッションでの発表準備のため
最近はASP.NET MVC 2 のモデルについて色々調べました。

セッションの資料もほぼ作り終えたので、
前と内容がカブると思いますが、重要だと思った箇所を纏めてみます。

◆モデルについて
MSDNに、モデルについて以下のような説明がありました。(管理人が要約してます)
・モデルとは、アプリケーションのコアアプリケーションロジック(ビジネスロジック)を担う部分である。(※1)
・またモデルのオブジェクト内で、DBとUIの間で受け渡されるデータを処理する。(※2)

このことから、Model-View-Controller におけるモデル層とは
ビジネスロジックを実装する層
・データの操作(CRUD)を実装する層
という2つの役割に担う箇所と言えると思います。


ASP.NET MVC 2 におけるモデル
これも、MSDNにあった記述の管理人による要約です。
・モデル クラスは、Models フォルダーに配置することが推奨される。 (※2)
・ただし、他のアプリケーションで再利用できるように、独立したアセンブリに
 モデル クラスをまとめることも一般的。 (※2)

管理人の好みとしては、データを操作するクラスについては「独立したアセンブリ」に配置し、
ビジネスロジックを実装するクラスと分けるのが好みです。

以下、配置の例です。
ビジネスロジックを実装する「Models」フォルダと、データベース関連を実装する「DAL」フォルダに
分けています。
f:id:UnderSourceCode:20130504110801j:plain


※1 ASP.NET MVC の概要
※2 MVC アプリケーションのモデルとモデル バインダー