私は、3つのプロジェクトData、Service、およびWebを持つasp.net mvc3ソリューションに取り組んでいます。私は可能な限りサービスレイヤーを抽象化するためにインターフェイスを使用しています。そのため、Webは実際のドメインモデルが保持されているデータではなく、サービスレイヤーについてしか知りません。 Webプロジェクトでは、ビューモデルを使用して、サービスモデルにサービスオブジェクトを渡します。たとえば、ユーザーの作成のために、このようなインターフェースを使用します。asp.net mvcインデックスまたは直接ドメインオブジェクトのビューモデルを使用しますか?
public interface IUserService
{
void CreateUser(string userName, string firstName, string lastName....);
}
しかし、しばらくの間、それについて、私はいくつかの種類のドメインオブジェクトを返す必要があるだろう、これはWebプロジェクトでのデータ参照を追加する私を必要とするGetUsersのようなものを考えていました。
public interface IUserService
{
void CreateUser(string userName, string firstName, string lastName....);
**IEnumerable<User>** GetUsers();
}
だから、私は2つの選択肢があると思い、どちらかのすべてのプロジェクトが、その後への参照を持っているか、おそらくWebプロジェクトへのデータの参照を追加し、独自のプロジェクトに私のドメインオブジェクトを破ります。私は最初の選択肢が最高だと思うが、他の選択肢があるのならば私は好奇心が強い。ありがとう
ここで私の答えをチェックしてください:http://stackoverflow.com/questions/2597363/asp-net-mvc-should-a-view-model-encapsulate-domain-model/2597497#2597497 – Ryan