MVVM에 대한 쉬운 단계별 참조가 있습니까?
그렇습니다. 여기를보세요.
MVVM은 MVC의 수퍼 세트 또는 하위 세트입니까?
MVVM은 MVC 제품군에 속하므로 전혀 말할 수 없으면 하위 집합입니다. 아래의 비즈니스 로직에서 UI를 분리하는 변형입니다. 나는 그것을 MVC의 형제라고 설명합니다. OOP 초기부터 사람들은 UI를 로직에서 분리하는 방법을 찾고있었습니다. MVC는 진화 한 최초의 원형이었습니다. 대부분의 사람들이 제대로 이해하지 못하더라도 매우 간단합니다. 뷰는 모델의 관찰자 일 뿐이며 필요할 때 호출합니다. 컨트롤러는 뷰와 모델 간의 통신을위한 전략 일뿐입니다 (예 : 교환 가능한 동작 (예 : ReadonlyController, AdminController)). MVC는 매우 성공적이며 적용하는 것이 좋습니다.
MVVM은 Martin Fowler가 설명한 것처럼 특수한 종류의 MVP 패턴 입니다. MVP는 사용자 입력 등을 취하면서 최대한보기를 어둡게 유지하여 테스트 성을 향상시킵니다. 그것은 발표자에게 제시 될 관점과 상호 작용 논리의 추상화를 목표로한다. 발표자는 모델 / 비즈니스 로직과 만 통신하고보기를 업데이트합니다. Martin Fowler는 프레젠테이션 모델 패턴에서 MVVM을 거의 설명합니다.
뷰는 완전히 ViewModel로 추상화됩니다. View
재산 이 필요한 경우 재산도 ViewModel
필요합니다. (ViewModel)은 추상화 된 기본 UI 기술과 완전히 독립적입니다. View와 ViewModel간에 통신하려면 동기화 패턴 (예 : 관찰자)을 사용해야합니다. 상태 비 저장 웹 환경에서는 달성하기 쉽지 않습니다. MVVM은 View가 더 이상 모델 / 비즈니스 로직에 바인딩되지 않고 ViewModel에 바인딩되므로 MVP와 다릅니다.
어떤 패턴이 현대적이고 내 응용 프로그램의 Windows 및 웹 버전에서 어떤 패턴을 선택해야합니까?
이론적으로 프레젠테이션 모델 (MVVM과 유사)은 사용중인 UI 기술과 완전히 독립적이어야합니다. 그러나 동조화 측면을 다룰 필요가있다. 동기화 접착제가 이미 존재하는 WPF를 사용하여 명령 및 속성에 바인딩하면 쉽게 수행 할 수 있습니다. ASP.NET과는 다른 이야기입니다. 그러나 모든 Windows UI 기술과 함께 프레젠테이션 모델 패턴을 사용 하는 CodeProject에 대한 기사가 있습니다. 보세요