첫째, 주요 차이점은 ViewModel에 DTO가 없어야하는 동작이나 메서드가있을 수 있다는 것입니다.
둘째, ASP.NET MVC에서 ViewModel로 DTO를 사용하면 응용 프로그램이 DTO에 밀접하게 결합되어 DTO를 사용하는 것이 가장 이상적입니다. 그렇게한다면, 도메인 모델 또는 DTO를 사용하는 diffrence는 무엇이며, 안티 패턴을 얻으려면 더 복잡한가?
또한 ASP.NET의 ViewModel은 유효성 검사에 DataAnnotations를 사용할 수 있습니다.
동일한 DTO는 다른 ViewModels 매핑을 가질 수 있으며 하나의 ViewModel은 다른 DTO (항상 컴포지션이 아닌 개체 매핑을 사용)로 구성 될 수 있습니다. 왜냐하면 DTO가 포함 된 ViewModel을 가지고 있다면 문제가 더 심각 할 것이기 때문입니다.
프리젠 테이션 계층에서 DTO를 계약으로 생각하면 응용 프로그램을 낯선 사람으로 간주해야하며 해당 서비스를 제어 할 수없는 개체를 받게됩니다. dto 및 프리젠 테이션 레이어는 귀하의 것입니다).
마지막으로이 분리 작업을 수행하면 개발자가 쉽게 함께 작업 할 수 있습니다. ViewModels, Views 및 Controller를 디자인하는 사람은 다른 개발자가 구현을 마칠 때 매핑을 만들 것이기 때문에 서비스 레이어 또는 DTO 구현을 걱정할 필요가 없습니다 ... 그는 조롱 도구 또는 수동 조롱을 사용할 수도 있습니다 테스트 용 데이터로 프레젠테이션 레이어를 채 웁니다.
ASP.NET MVC의 ViewModels는 WPVM (MVVM)의 ViewModels와 100 % 동일하지 않습니다. 대부분의 응답에서 MVVM을 언급하고 ASP.NET MVC로 작업하고 있다는 점에 관련이 있습니다. –