MVVM Light Toolkit을 이용하면 당연히 WPF 기반의 MVVM 애플리케이션을 빠르게 개발할 수 있다. 주요 클래스 개수도 많지 않기 때문에 어렵지 않게 적응이 가능하다. 설치는 Nuget Package Manager를 이용하는게 가장 간편한 방법이다.
MVVM Light Toolkit은 2개의 main DLL로 유지된다.
GalaSoft.MvvmLight.dll
GalaSoft.MvvmLight.Extras.dll
GalaSoft.MvvmLight.dll의 주요 클래스 목록이다.
ObservableObject - Base class for Model classes. It creates Model properties as observable.
ViewModelBase - Base class for ViewModel classes.
RelayCommand - A command. More about commands here.
WeakAction - Stores an System.Action without causing a hard reference to be created to the Action's owner. The owner can be garbage collected at any time.
WeakFunc - Stores an Func without causing a hard reference to be created to the Func's owner. The owner can be garbage collected at any time.
Messenger - Class for allowing objects to exchange messages.
MessageBase - Base class for all messages broadcasted by the Messenger.
DispatcherHelper - Helper class for dispatcher operations on the UI thread.
다음은 Galasoft.MvvmLight.Extras.dll의 주요 클래스 목록이다.
EventToCommand - Used for bind any event of FrameworkElement to ICommand.
SimpleIOC - An IOC container for register and resolve instances.
ObservableObject을 상속받아 모델을 구현하면 변경점이 바로 View에 반영되는데 필요한 기반 기능을 얻을 수 있다.
ViewModelBase를 상속받아 뷰-모델을 구현하면 View 도는 다른 ViewModel과 상호작용하는데 필요한 기반 기능을 얻을 수 있다.
Messenger는 의존 관계를 두지 않고 ViewModel과 ViewModel 간 상호작용할 수 있는 방법을 제공하며,
SimpleIOC라는 IOC 컨테이너를 통해 Service Locator 패턴을 쉽게 구현할 수 있는 방법을 제공한다.
void Register<TMessage>(object recipient, object token, bool receiveDerivedMessagesToo, Action<TMessage> action);
void Send<TMessage>(TMessage message, object token);
Messenger와 SimpleIOC는 모두 클래스 간 의존성을 줄여주기 위한 장치다.
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<MainViewModel>();
ServiceLocator.Current.GetInstance<MainViewModel>();
공식 사이트와 깃허브 주소는 아래와 같다.
댓글 없음:
댓글 쓰기