Модель-представление-ViewModel в WPF

В настоящее время я заметил, что многие люди начинают очень часто использовать эту модель. В любом случае, я считаю очень правильным отделить логику от изложения. Более того, некоторые функции не могут быть выполнены без него или просто очень трудно. Рассмотрим дерево, которое можно выбирать, иметь возможности поиска и т. д. Но в некоторых случаях вам не нужно реализовывать эту модель MVVM, хотя люди это делают.

Как вы думаете, это правильно? Разве цель WPF не заключалась в упрощении кодирования — пытаться выполнять большую часть работы в XAML?

У меня такое ощущение, что эта модель часто используется неправильно только из-за элегантности дизайна, но нарушает усилия WPF.

Или я совсем не прав?


person PaN1C_Showt1Me    schedule 16.07.2009    source источник


Ответы (3)


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

Для меня очень мало причин не использовать MVVM, например, частные проекты, пробные версии,...

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

person Martin Moser    schedule 16.07.2009
comment
как я уже сказал, для профессиональных проектов имхо стоит затраченных усилий, и я не думаю, что это намного больше кода - person Martin Moser; 16.07.2009

Основная цель отделения логики от пользовательского интерфейса — удобство тестирования. Поскольку вы помещаете всю логику в ViewModel, вы можете написать тестовый скрипт для проверки своей логики без пользовательского интерфейса.

person Michael Sync    schedule 16.07.2009
comment
MVVM можно использовать с другими типами тестирования. Если вы не пишете никакого тестового кода, то у вас либо очень маленький проект (так зачем возиться с какой-либо организацией программного обеспечения, такой как MVVM), либо вы не заботитесь о качестве кода. - person M. Dudley; 21.07.2009
comment
››Что делать, если я не планирую писать тестовые модули? Да. Как сказал emddudley, поскольку вас действительно не волнует качество кода, не беспокойтесь об использовании какого-либо шаблона проектирования или передовой практики. - person Michael Sync; 26.08.2009

Проблема в том, что не хватает инструментов, поэтому трудно представить wvvm, когда кто-то должен написать полстраницы кода, чтобы вывести окно сообщения при нажатии кнопки.

person Community    schedule 16.07.2009