새로운 프로젝트를 진행하고 있으며 이전 프로젝트의 어려움을 본 후 모델에서 뷰의 분리를 충분히 제공하지 못했습니다 (특히 MVC 사용 - 모델과 뷰가 서로 조금씩 흘러 나오기 시작 함).), MVVM을 사용하고 싶었습니다.ViewModel을 구축 할 때 적절한 세분성은 무엇입니까?
기본 개념을 이해하고 있으며 사용하기 시작했습니다. 그러나, 저를 조금 벗어나는 한 가지 - ViewModel에 어떤 데이터가 포함되어야합니까?
예를 들어, 나는 그들이 형태로 편집 할 수 있도록 데이터의 두 가지를 포함하는 뷰 모델을 만드는 오전하다면 나는이처럼 캡처 않습니다
public PersonAddressViewModel {
public Person Person { get; set; }
public Address Address { get; set; }
}
또는 같은를 :
public PersonAddressViewModel {
public string FirstName { get; set; }
public string LastName { get; set; }
public string StreetName { get; set; }
// ...etc
}
제게는 우리가하려고하는 것에 대해 더 정확하게 생각합니다. 우리가 더 미세한 그레인 폼 (아마도 우리가 캡처 한 것은 FirstName, LastName, StreetAddress 모두)을 수행했다면 그 레벨로 내려가는 것이 더 합리적 일 것입니다. 하지만, 우리는 모든 Person 데이터를 폼과 ALL Address 데이터로 캡쳐하고 있기 때문에 첫 번째가 정확하다고 느낍니다. 그것은 그런 것들을 분리하는 것이 의미가없는 것처럼 보입니다 (그리고 많은 추가 작업).
통찰력을 높이세요.
asp.net, MVVM 실버 라이트와 같은 기술에 사용되는 그리고 WPF, 그리고 Knockout.js와 같은 클라이언트 측 기술에도 사용할 수 있지만 asp.net MVC 자체는 mvvm을 사용하지 않습니다. mvvm과 뷰 모델을 혼동하지 마십시오. –
@MystereMan - 알았습니다. 내 실수. (필자의 독서에 따르면, 많은 사람들이 똑같은 실수를 저지르고있는 것처럼 보입니다.) 내가 실수를했기 때문에 - ASP.NET이 MVVM 패턴을 활용할 수없는 이유에 대한 기사를 가르쳐 주시겠습니까? 프레임 워크의 디자인에서 상속받는 것이 있습니까? 고맙습니다. – JasCav
MVVM은 매우 구체적인 패턴입니다. MVC가 MVVM을 "활용"할 수 없다는 것은 아닙니다. MVVM은 상호 배타적입니다. MVVM에는 컨트롤러가없고 MVC가 있습니다. (이것이 유일한 차이점은 아니지만 상호 배타적 인 큰 차이입니다). 그들은 단지 두 개의 다른 인터페이스 패턴입니다. 차이점에 대한 좋은 기사가 있습니다. http://russelleast.wordpress.com/2008/08/09/overview-of-the-modelview-viewmodel-mvvm-pattern-and-data-binding/ –