Я пишу приложение PRISM/MVVM/WPF. Это приложение LOB, поэтому существует множество сложных правил. Я заметил, что модель просмотра начинает раздуваться. Есть два основных вопроса.
Один из них заключается в том, что для поддержания MVVM я делаю много вещей, которые кажутся взломанными, например, добавление кучи свойств в мою виртуальную машину. Представление связывается с этими свойствами, чтобы отслеживать то, что похоже на просмотр конкретной информации. Например, логическое отслеживание состояния долгого процесса в виртуальной машине, поэтому представление может отключить некоторые из его элементов управления, пока работает длительный процесс. Я читал, что этот вопрос можно решить с помощью Attached Behaviors. Я посмотрю больше на это. В примерах приложений MVVM, которые вы видите в Интернете, это не большая проблема, потому что они чрезмерно упрощены.
Другой проблемой является количество команд в моей виртуальной машине. Сейчас есть четыре команды. Я определяю команды на виртуальной машине, используя Josh Smith RelayCommand (в основном DelegateCommand в PRISM), поэтому вся бизнес-логика живет в виртуальной машине. Я решил переместить каждую команду в отдельную единицу работ. Я не уверен, как это сделать.
Какие шаблоны вы используете, чтобы ваши виртуальные машины были чистыми? Я уже чувствую, что кто-то отвечает: "Ваше мнение и виртуальная машина слишком сложны, вы должны разбить их на многие точки зрения/виртуальные машины". Это, конечно, не слишком сложно с точки зрения Ux - есть две кнопки, выпадающая скобка и список. Кроме того, с логической точки зрения, это один сплошной домен. Сказав это, я очень заинтересован в том, чтобы узнать, как другие сталкиваются с этим типом проблемы.
Спасибо за ваш вклад.