MVVM 3

MVVM에서 IoC의 중요성

MVVM 패턴을 사용할 때 초기화하는 패턴만 대략 10가지 정도의 패턴이 있습니다. 그중에 Expression Blend와 VisualStudio의 디자인 타임에 잘 보이게 하려면 리소스에 ViewModel Locator를 넣는게 가장 좋습니다. 당연히 중복을 피하고 싶고 컨트롤마다 로케이터가 생성될 필요는 없으니 Window나 UserControl 모두에 Locator 리소스를 넣기보다는 App의 리소스(글로벌 리소스)에 넣는 방법이 먼저 시도되는 것이 바람직합니다. 그런데 여기서 디자인타임 지원에 문제가 생깁니다. Blend에서 윈도우나 사용자컨트롤에 포함되어 있는 사용자컨트롤을 생성할 때, 글로벌 리소스에는 접근할 수가 없는거죠. 검색을 좀 해보면 이것을 Blend의 버그로 보는 경향이 많습니다. ..

2011.10.18

[Translation] Silverlight Model-View-ViewModel Pattern 2

Silverlight Model-View-ViewModel Pattern 1에 이어서. 눈치챘을지도 모르겠지만, 이 코드는 의존성 주입(dependency injection)의 필요성을 외치고 있고, 내가 다음 블로그 포스트에서 다루려고 하는 게 바로 그것이다. 우리는 현재 어플리케이션 개체의 타입을 체크한다. Blend는 그것 스스로의 어플리케이션 개체를 제공하는 반면, 실제로 실행되는 어플리케이션은 우리가 만든 어플리케이션 개체를 우리에게 준다. 리팩토링이 필요한 다음 부분은 메인 사용자 인터페이스이다. 여기서 내가 말하는 것은 카드 주위의 모든 것이다. 어플리케이션은 Twitter 계정을 넣는 텍스트 상자 하나와 새 카드를 추가하기 위한 추가 버튼을 가지고 있다. 클릭 이벤트 핸들러에서 우리는 새 ..

2008.11.16

[Translation] Silverlight Model-View-ViewModel Pattern 1

Silverlight의 MVVM 패턴을 소개하고 있는 YouCard Re-visited: Implementing the ViewModel pattern 라는 글을 번역한 글이다. 아직 1/3 정도라서 틈나는 대로 이어서 번역하려고 한다. 실력 부족/시간 부족으로 딱히 좋은 번역이라고 하긴 힘들겠지만. Model-View-Control (MVC) 패턴은 더 이상 유명할 수가 없을 정도이다. ASP.NET MVC 프레임워크로 Microsoft도 이제 그 대열에 뛰어들었다. Ruby on Rails, Django (Python), Spring MVC (JAVA) 같은 다른 유명한 프레임워크들은 모두 이 유명한 패턴을 구현한 것이다. MVC 패턴은 요청-응답 기반이라는 웹의 본성에 아주 잘 들어맞는다. 요청이 ..

2008.11.14