2010-07-28 3 views
3

MVC 3 미리보기에서 사용할 수있는 새로운 기능을 살펴 보았습니다 : ScottGu's Blog. 좋은 개선이 많이 있었고 MVC가 어디로 가고 있는지보기에 가치가있었습니다.MVC 3 (미리보기 1) Dynamic ViewModel

나를 놀라게 한 점은 동적 유형 ViewModel을 추가 한 것입니다. 요점은 ViewModel["Message"]을 사용하여 뷰 데이터를 참조 할 필요가 없지만 ViewModel.Message을 사용할 수 있다는 것입니다.

사람들의 생각은 무엇입니까? 왜 동적 유형이 이런 식으로 사용되어야하는지 알기 위해 고심하고 있습니다. 개발자가 암시 적으로 강하게 입력 된 것으로 믿기 때문에 회원 호출을 우연히 만나는 보안에 대한 잘못된 인식을 거의 제공합니다. 최소한 "magic-string"이있는 인덱서를 볼 때 런타임 오류가 발생할 수 있음을 알고 있습니다.

이것에 대한 다른 사람들의 생각은 무엇입니까? 이것은 동적 유형의 합리적인 사용입니까?

답변

3

동적 속성에만 문자열 렌더링을 사용하는 경우 실제로 문제가 발생하지 않습니다. 단순히 문자열로 렌더링되는 것 이외의 다른 용도로 사용하는 경우에도 여전히 강력하게 형식화 된 모델을 만들어야한다고 생각합니다. FWIW, 나는 ViewData 매직 문자열을 "메시지"가 아닌 다른 것으로 완전히 사용하지 않았습니다.

그냥 제 의견입니다. 또한 새로운 버전에 대한 더 많은 경험을 얻으면서 변경 될 수 있습니다.

+0

그게 나를 생각하게 만들었습니다. 'ViewData.MyClass.MyProperty'가 작동할까요? –

+0

@David, 이것은 http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject를 의미하는 것으로 보입니다. aspx – Buildstarted

2

컴파일 시간 오류가 예상되는 시점을 알고 있다는 점에 대해 알아두면 좋겠지 만 오류 예측 가능성보다 더 나은 가독성을 갖춘 깨끗한 코드를 사용합니다.

나는 전체 ViewData [ "string"] 인터페이스를 정말 싫어한다. 더러운 느낌이다.

이 느낌이 매끄 럽습니다. 그렇기 때문에 그것은 주관적이며 실제로 어떤 것보다 느낌에 관한 것입니다. 그러나 내가 구의 글을 읽었을 때 그것은 IMHO라는 흥미 진진한면 중 하나였습니다.

관련 문제