2013-03-20 2 views
1

MVVM을 사용하여 Windows 8 앱과 Windows Phone 앱을 프로그래밍했습니다. 나는 MVVM Light에 노출 될 예정이며 그 차이점은 무엇인지 궁금합니다. MVVM light가 WPF 및 WinRT/WP8 개발과 함께 제공되는 MVVM 샌드 박스 버전이라고 상상해보십시오.MVVM Light와 MVVM의 차이점은 무엇입니까?

간단한 대답이 있습니까? 왜 MVVM Light를 MVVM 이상으로 선택합니까?

답변

10

"MVVM 가득 참"과 같은 것이 없습니다.

MVVM은 UI와 데이터 및 비즈니스 로직을 구성하는 방법에 대한 패턴입니다.

MVVM light은 패턴을 구현할 때 당신을 지원하는 가벼운 프레임 워크 인 입니다. 작성할 때 도움이 구성 요소의 모음을 제공하기이 ;-)

+0

좋아, 아마도 나는 올바른 질문을하지 않을거야. 나는 아직도 MVVM Light를 사용하는 이유가 궁금합니다. "도움"으로 시작했다고 생각합니다. 그러나 일단 시작하면 사용을 계속합니까? 또는 MSFT에서 제공하는 서비스로 전환하십시오. – webdad3

+0

"MSFT가 제공하는 것"을 말하면 실제로 무슨 뜻입니까? MVVM light는 기본적으로 INotifyPropertyChanged를 구현하는 기본 클래스를 몇 가지 도우미 메서드와 함께 포함합니다. 또한 [pub/sub] (http://en.wikipedia.org/wiki/Publish/subscribe) 구현이 포함되어 있습니다. 시작하는 데 도움이되지 않습니다. 그것은 어쨌든 구현해야 할 부분을 포함함으로써 개발 시간을 줄이기로되어 있습니다. –

+0

그래서 기본적으로 내 모든 것을 쓰는 대신 나에게 도움이되는 도우미 메서드가 있습니다. – webdad3

2

MVVM 빛을 응답 할 것이다 질문에 사용 된 태그 위로 마우스를 이동하는 것은 툴킷 (안 프레임 워크)와 같은 것입니다 : BTW

MVVM 패턴에 따라 응용 프로그램을 예를 들어, MVVM Light에는 반복적 인 코드를 캡슐화하는 몇 가지 라이브러리 클래스가 있으며, 입력 속도를 높이고 입력을 용이하게하는 스 니펫, 새 응용 프로그램 만들기 속도를 높이고 기본 응용 프로그램의 "배선" 앱 등

1

MVVM은 ModelViewViewModel의 약자입니다.

http://mvvmlight.codeplex.com/

MVVM은 엔터프라이즈 응용 프로그램 개발 패턴, 가장 좋은 방법입니다 GalaSoft

-

MVVM 라이트는 "로랑 Bugnion"에서 만든 것입니다. 우리는 다음 페이지에서 깊이 잠수 할 수 있습니다.

http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx

당신은 전용 전체 사업을하려는 경우. Silverlight TextBox와 같은 사용자 인터페이스 요소와 별개로 MVVM 패턴을 적용해야합니다. 이렇게하면 다른 클라이언트 플랫폼을 위해 비즈니스 파트를 재사용합니다. Windows Phone과 같이.

MVC를 알면 Controller를 ViewModel에 다시 샘플링 할 수 있지만이 ViewModel에는보기에 개체 참조가 없습니다. 그리고 당신의 VM이 당신의 View를 추상화 할 수 있습니다.

.NET 용 MVVM 패턴 applier는 이러한 기술을 알고 있어야한다고 생각합니다. 지휘, CollectionViewSource 이 바인딩 분류 작업, 의 DataContext를, 필터링, 내가 사용하고

1

한 가지 방법에서 INotifyPropertyChanged 모두 (분명히) - MVVM 내가 단순히 따라 건축가에 내 코드를 사용한 디자인 패턴입니다 패턴 - 본질적으로 MainWindow.xaml은 View Folder에 있고, MainWindow_ViewModel.cs는 VM 폴더에 있고 Model 폴더는 Model 폴더에 있습니다. View의 DataContext는 배선을 위해 ViewModel 클래스로 설정됩니다. Ofcourse MVVM은 단순한 파일 구성이 아니라 코드가 패턴별로 작성되도록 보장합니다 (논리 분리 및 패턴별로 구현되어야하는 모든 좋은 것들). 이렇게하면 위의 작업을 수행하기 위해 반드시 MVVM Light 라이브러리를 참조해야합니다.

내가 (값을 방송하기)를 Messenger.Default.Send를 사용하여 여러 ViewModels 사이의 통신을 할 때 구체적으로 (다른 VM의 값을 얻기 위해) Messenger.Default.Register을 MVVM 빛을 사용

필요한 경우 샘플 코드를 공유 할 수 있습니다. 희망이 도움이됩니다.