Для чего нужен MVVM-фреймворк?

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

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

2 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам