Для чего нужен MVVM-фреймворк? - PullRequest
0 голосов
/ 07 октября 2010

Я знаю некоторые Mvvm Framework, которые представили в этом потоке

пожалуйста, опишите или дайте мне ссылку для чего они полезны? нет информации о MVVM о MVVM Framework. Спасибо :) я хочу знать : Что такое MVVM Framework?

Ответы [ 2 ]

4 голосов
/ 07 октября 2010

Я думаю, что ваш вопрос не совсем точен.Насколько я понимаю, вы спрашиваете об особенностях каждого фреймворка?!

Вы можете найти подробную информацию здесь и здесь .Однако, по крайней мере, одна из этих ссылок уже была указана в упомянутой вами теме ...

РЕДАКТИРОВАТЬ:
По сути, инфраструктура MVVM представляет собой набор классов, которые обычноиспользуется в приложениях, использующих шаблон MVVM (Model-View-ViewModel).Это может включать в себя системы обмена сообщениями для связи между независимыми частями программного обеспечения, методы внедрения зависимостей, базовые классы для ViewModels, шаблоны проектов / классов, механизмы проверки, часто используемые команды, методы отображения диалоговых окон и т. Д. ...

Чтобы полностью понять такую ​​структуру, вам сначала нужно понять шаблон MVVM.Потому что только тогда (или даже только после того, как вы выполнили свой первый проект MVVM), вы поймете проблемы и / или проблемы этого шаблона.

1 голос
/ 12 февраля 2012

Чтобы использовать Mvvm framework, просто выполните следующие шаги:

  1. У вас есть модель и модель представления с тем же именем.

View-модели не должны быть обертками вокруг моделей. Задача модели представления состоит в том, чтобы обрабатывать запросы на внешние сервисы, такие как загрузка и сохранение данных. Сами данные, а также валидация и большая часть бизнес-логики должны быть в моделях.

Я не могу подчеркнуть это достаточно. Всякий раз, когда вы создаете модель представления, которая оборачивает модель путем делегирования, вы вносите огромную дыру в свой API. В частности, все, что имеет прямую ссылку на модель, может изменить свойство таким образом, что модель представления и, следовательно, пользовательский интерфейс никогда не уведомляются. Аналогично, любые изменения в вычисляемых полях в модели не будут распространяться обратно на модель представления.

  1. У вас есть вид и модель вида с одинаковым именем.

В идеале модели представления не зависят от используемых ими экранов. Это особенно верно в приложении WPF, где несколько окон могут совместно использовать один и тот же экземпляр модели представления.

Для небольших приложений, таких как, вам может понадобиться только одна модель представления для всего приложения. Для более крупных приложений вам может понадобиться один для основных функций и один для каждого вторичного аспекта, такого как управление конфигурацией.

  1. У вас нет кода.

В абсолютном выражении код позади не является ни хорошим, ни плохим. Это просто место для размещения логики, специфичной для отдельного представления или элемента управления. Поэтому, когда я вижу представление без кода, я сразу же проверяю следующие ошибки:

  • Касается ли модель вида определенных элементов управления по имени?
  • Предоставляется ли модели представления доступ к элементам управления через параметр команды?
  • Используется ли EventToCommand или другое поведение с утечками вместо простого обработчика событий?

EventToCommand от MVVM Light особенно плох, потому что он предотвратит сбор мусора элементов управления после их удаления с экрана.

  1. View-модели прослушивают уведомления об изменениях свойств

Если модель имеет более длительный срок службы, чем модель представления, которая прослушивает ее события, то, возможно, у вас утечка памяти. В отличие от представлений, которые имеют незагруженное событие, модели представлений не имеют хорошей истории для управления жизненным циклом. Поэтому, если они прикрепят событие к модели, которая может превзойти их, тогда модель представления будет просочиться.

...