MVVM. Так где таки разместим business logic?
мы не говорим о фронте/бэке. у нас имеется просто ПРИЛОЖЕНИЕ, задизайненное под mvvm pattern. т.е. наше приложение условно разделено на view, viewmodel и model.
Классическое описание MVVM есть букварь для новичков, мало или вообще не знакомых с многослойными, распределёнными приложениями. С одной стороны, этого достаточно, чтобы сосредоточиться на описании именно этого паттерна проектирования. С другой, многим это сужает кругозор. Лучше думать об архитектуре приложения как о совокупности разных слоёв или систем (распределённое приложение), при этом не обязательно строго иерархически связанных и не обязательно с одними, жёстко заданными направлениями потоков данных. И всякие паттерны проектирования лишь частные случаи конфигураций этих слоёв. В сложном приложении нельзя точно сказать, какой паттерн в нём применён - всего понемногу и не обязательно в целом виде. Когда разрабатываешь сложное приложение, лучше не думать навязанными понятиями, типа "модель", "вью модель", а думать более универсальными, типа "обработка данных домена", "конвертация данных". Как это назвать конкретно - модель или вью модель - дело десятое.
Вот цитата от автора букваря
"The viewmodel of MVVM is a value converter"
Согласен. Некоторые пытаются в том же WPF во вьюшные Value Converters поместить много логики, тогда как вся конвертация должна быть на самом деле во VM.