새 사이트를 개발하기 위해 MVC를 선택함으로써 나 자신이 주변에서 실시간으로 개발되는 "모범 사례"를 발견하게되었습니다. 2 주 전, NerdDinner는 제 가이드 였지만 MVC 2의 개발과 함께, 심지어 오래된 것 같습니다. 스릴 넘치는 경험이며 매일 지능형 프로그래머들과 긴밀히 접촉하는 것이 특권입니다.필드의 서브 세트로 뷰 모델 및 모델 업데이트에 관한 모범 사례
지금 당장 모든 블로그에서 똑같은 대답을 얻을 수없는 문제가 발생했습니다. 커뮤니티의 통찰력을 얻고 싶습니다. 그것은 편집 (읽기 : 편집 작업)에 관한 것입니다. 거기에있는 많은 자료, 자습서 및 블로그는 모델을 만들고보고 다루고 있습니다. 따라서이 질문에서 질문을 설명 할 수는 없지만 토론을 진행하여 내가 취해야 할 개발 경로에 대한 내 결정에 기여할 수 있기를 바랍니다.
내 모델은 이름, 주소 및 이메일과 같은 여러 필드가있는 사용자를 나타냅니다. 사실 모든 이름은 이름, 성 및 중간 이름 필드에 있습니다. 세부 정보보기에는 이러한 필드가 모두 표시되지만 한 번에 하나의 필드 세트 만 변경할 수 있습니다 (예 : 이름). 사용자는 양식을 펼치지 만 다른 필드는 위와 아래에서 계속 볼 수 있습니다. 따라서 다시 게시 된 양식에는 모델을 나타내는 필드의 하위 집합이 포함됩니다.
이것은 우리와 우리 레이아웃의 관심사에 호소하지만 여러 가지 이유로 심각한 MVC 개발자가 피하는 것입니다. 몇 가지 패턴과 모범 사례에 대해 읽었으며 viewmodel == view의 패러다임과는 관련이없는 것 같습니다. 아니면 잘못 됐어?
어쨌든 NerdDinner는 FormCollection 및 UpdateModel을 사용하여 지시합니다. 모든 null 필드는 무시됩니다. 그 이후로 MVC 커뮤니티는 MVC 2의 bug이 발견되지 않는 정도로 이러한 접근 방식을 포기했습니다. formcollection에 완전한 모델이 없으면 UpdateModel이 작동하지 않습니다.
view model pattern 대부분의 칭찬을받는 것은 사용자 지정보기 모델 개체를 포함하고 내 디자인 문제가 호환 될 수있는 유일한 사람입니다 전용 뷰 모델이 될 것으로 보인다. AutoMapper과 지미 보가 드의 ideas을 사용하여 밝아졌지만 지루한 양의 매핑이 필요합니다. 그럴 가치가 있거나 그렇지 않을 수도 있습니다. 또한 뷰와 뷰 모델간에 1 : 1 관계를 제안합니다.
이러한 디자인 패러다임을 유지하면서 필자는 확장하는 각 필드 집합에 대한보기 및 관련보기를 만들려고합니다. 뷰 모델은 각각 거의 동일하며 읽기 전용 인 필드에서만 다르고 반복 된 마크 업을 많이 포함하는 뷰가 있습니다. 이것은 나에게 어리 석다. 미래에는 두 개 또는 그 이상의 모든 필드 집합을 동시에 표시 할 수 있기를 원합니다.
나는 불꽃을 불러 일으키기를 간절히 바란다. 미리 감사드립니다.
"자세히보기에는이 모든 필드가 표시되지만 한 번에 하나의 필드 세트 만 변경할 수 있습니다 (예 : 이름). "왜? 사용자가 전체 양식을 한 번에 조정할 수있게하는 것보다 더 친절한 이유는 무엇입니까? – jfar
맞아요, 제가 다시 말하지만, 덜 복잡하고 컴팩트합니다. 여러 주소를 추가하고 삭제할 수는 있지만 여전히 한 페이지에 그것을 원한다면. – Martin
당신은 당신의 관심사를 아주 잘 설명했다. 나는 똑같은 문제를 겪어 왔고 Jimmy Bogard가 묘사 한 1 : 1 View : ViewModel 패턴으로 움직였다. 여러 도메인 모델이있는 ViewModels 매핑 – WDuffy