지금은 꽤 심하게 구식 뷰 모델을 얻었습니다.여러 집계 루트가있는 뷰 모델을 처리하는 방법은 무엇입니까?
클래스는 리더 유형이 도메인 모델 (SRP 위반)에서 유래입니다이 =>
public class AccountActionsForm
{
public Reader Reader { get; set; }
//something...
}
문제처럼 보인다.
기본적으로 디자인 팁을 찾고 있습니다 (뷰 모델을 입력/출력으로 나누는 것이 좋습니다) 마찰이 적고 개발자 친화적 인 뷰 모델을 만드는 방법 (예 : 매핑은 자동으로 컨트롤러 기본 클래스)?
저는 AutoMapper 프레임 워크를 알고 있으며 아마도 그것을 사용할 것입니다.
다시 한번, 올바른 뷰 모델을 만들 때 공통점이있는 것은 무엇입니까? 그것을 구조화하는 방법? 다중 도메인 객체 입력이 필요할 때 어떻게 매핑합니까?
보기에 둘 이상의 집계 루트의 데이터가 필요한 경우에 혼동이됩니다.
내 경우에는 - 도메인 수준에서 LibraryReaderThatHasOrderedSomeBooks
또는 그 외의 것으로 그룹화하는 것은 의미가 없지만 약 목록을 표시해야합니다. 특정 도서관의 특정 독자를위한 주문 도서는 모두 필요합니다.
그래서 - 즉 LibraryOutput
, ReaderOutput
및 BibliographicRecordOutput
보기 모델을 보유하고 아래 OrderedBooksListModel
보기 모델보기 OrderedBooksList
을 만들 좋은 것 같다. 또는 더 나은 - flattening technique을 활용하고 ReaderFirstName
같은 소품을 가지고 OrderedBooksListModel
보기 모델, LibraryName
등
하지만 더 이상의 입력이 있기 때문에 그 매핑 문제로 이어집니다.
하나의 집계 루트에서만 더 이상 1 : 1 관계가 아닙니다.
내 도메인 모델이 잘못 되었습니까?
순전히 UI 레이어 (즉 선택된 탭을 나타내는 열거 형)에있는보기 모델 필드는 어떻게됩니까?
this 누구나 그런 경우에 무엇을합니까?
FooBarViewData fbvd = new FooBarViewData();
fbvd.Foo = new Foo(){ A = "aaa"};
fbvd.Bar = new Bar(){ B = "bbb"};
return View(fbvd);
나는이 =>
var fbvd = new FooBarViewData();
fbvd.FooOutput = _mapper.Map<Foo,FooOutput>(new Foo(){ A = "aaa"});
fbvd.BarOutput = _mapper.Map<Bar,BarOutput>(new Bar(){ B = "bbb"});
return View(fbvd);
쓰기의 많은 것 같다 기꺼이 아니에요. :)
Reading this 현재 및 this.
확인.나는이 문제에 대해 많은 생각을하고 그래 - 또 다른 추상화 레이어를 추가하는 것은 그래서
alt text http://i46.tinypic.com/fe14qp.jpg
=>
해결책처럼 보인다 -이 이미 작동 내 마음에, 지금은 일부 놀겠위한 시간이다.타이 지미
당신이 알아야 할이 생각에 대답하는 것을보기를 원했습니다 (http://www.lostechies.com/blogs/jimmy_bogard/archive/2010/01/04/ui-automation-tools-snake-oil.aspx). 이 질문에 대한 답변은 내 실제 목표가 무엇인지에 대한 훌륭한 & 안정적인 UI 테스트 (및 Mvc2 템플릿 버즈 준비)의 성공적인 개발을위한 또 다른 벽돌입니다. 나는 집에 돌아갈 때마다 약간의 전체적인 아이디어를 요약하려고 노력할 것이다. 당신의 대답 아래에 다른 "핑 (ping)"코멘트를 붙여 응답을 얻는다. :) –