저는 Data, Service 및 Web 프로젝트가 3 개있는 asp.net mvc3 솔루션에서 작업하고 있습니다. 나는 서비스 레이어를 가능한 많이 추상화하기 위해 인터페이스를 사용 해왔다. 그래서 웹은 실제 도메인 모델이 유지되는 데이터가 아니라 서비스 레이어에 대해서만 알고있다. 웹 프로젝트는 뷰 모델을 사용하고 서비스 모델에 대한 단순한 매개 변수를 도메인 객체와 비교하여 전달합니다. 예를 들어 사용자를 만들려면 다음과 같은 인터페이스를 사용합니다.asp.net mvc는 인덱스 또는 직접 도메인 객체에 대한 viewmodels를 사용합니까?
public interface IUserService
{
void CreateUser(string userName, string firstName, string lastName....);
}
하지만 어떤 형태의 도메인 객체를 반환해야 할 것 GetUsers 같은 잠시 뭔가 그것에 대해 생각이 날 웹 프로젝트의 데이터 참조를 추가 할 필요 후.
public interface IUserService
{
void CreateUser(string userName, string firstName, string lastName....);
**IEnumerable<User>** GetUsers();
}
그래서 나는 두 가지 선택이 생각 중 모든 프로젝트는 다음을 참조하여이 있거나 가능성이 웹 프로젝트에 대한 데이터 참조를 추가 자신의 프로젝트에 내 도메인 오브젝트를 파괴. 첫 번째 옵션이 최고라고 생각하지만 다른 옵션이 있는지 궁금합니다. 감사합니다
내 대답을 확인하십시오. http://stackoverflow.com/questions/2597363/asp-net-mvc-should-a-view-model-encapsulate-domain-model/2597497#2597497 – Ryan