* 아..책을 사서 공부 해야되나!~ ㅠ.ㅠ 학교 공부에 학업에 허리가 휜다 휘어
* 이번에는 MVVM에 대해 공부해본다.
* 웹에는 MVC가 있다. 하지만 그건 웹이고...실버라이트나 WPF에는 MVVM(Model-View-ViewModel)을 쓴단다.
* MVVM패턴이란?
** 데이터 모델분과 뷰 그리고 뷰에서 발생되는 이벤트 행동을 뷰모델로 나눈는 것이다.( 근데 작업을 하다 보면 몰라도 자연스래 이래 나누고 싶었을것이다...-0-)
** 즉, 일반적으로 View(XAML, Code+이벤트핸들러)<->DataModel이었는데, 이걸 View(XAML,code)<->ViewMode(State+Operations)<->DataModel로 나눈다.
* MVVM패턴 왜쓰나?
** MVC랑 같다. 디자인 개발자를 구분하여 협업하기 위함이다.
*** 각 툴로 개발자는 VisualStudio 를 사용하고, 디자이너는 Blend를 사용한다.
** 반복된 이벤트 핸들러와 비즈니스로직을 캡슐화 하여 관리 할수 있고 재사용 할수 있다.
** 객체의 상관관계에 제약받지 않고 좀더 편리하게 이벤트들을 실행할수 있다.
** 다른이가 보더라도 또 자기 자신이 보더라도 유지 보수가 쉬워 질것입니다.
* MVVM을 배우기 앞서 Command패턴.
** Command패턴이란 요청을 객체의 형태로 캡슐화하여 사용자가 준 요청을 나중에 보낼 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 그리고 취소를 가능하게 만드는 패턴이다. 즉, 여러 객체들에서 발생하는 일들을 Command에서 일괄적으로 명령을 처리를 하게 된다. 그러므로 각의 일들을 분리 시켜서 관리 할 수 있다.
** MVVM으로 나누긴 위해서는 Command패턴을 이용한다. 물론 다른 방법도 있긴 있다. 다른것에는 Attached property등을 사용하는 패턴도 있단다.
* Behavior
** 말그대로 행동을 가지고 있는 객체이다. 예를 들어 드래그앤드랍이라는 핸동이 있다면 그 행동 하나를 가지고 있는 객체이다. 드래그앤 드랍기능을 가지고 Behavior를 원하는 컨트롤에 부여하면 그 컨트롤은 드래그앤드랍기능을 사용 할 수 있도록 되는것이다.
* MVVM을 이용하여 예제소스 간단하게 실행 해보는것은 나중에~
'C#의 속삭임' 카테고리의 다른 글
[C#][WPF] 첫시작. (0) | 2014.04.23 |
---|---|
[C#][WPF]데이터 바인딩 (0) | 2014.04.22 |
[C#][WPF][프레임워크][MVVM] MVVM Light (0) | 2014.04.17 |
[C#][AxWebBrowser] AxWebBrowser 컨트롤러 (0) | 2014.04.08 |
[C#][WebBrowser] WebBrowser 컨트롤러 (0) | 2014.04.04 |