powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / MVC vs MVVM
8 сообщений из 8, страница 1 из 1
MVC vs MVVM
    #39723044
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые коллеги.
Есть пару вопросиков.

1. Насколько допустимо хранить данные во ViewModel и что можно считать таковыми?
2. Где провести грань между Model и ViewModel?

Например, есть визуальное редактируемое поле. Должно ли оно быть сразу сохранено в модели, после завершения редактирования?
В базе и где-то еще сохранять не нужно, при закрытии формы данные пропадают.
Значение используется только при нажатии на кнопку.
...
Рейтинг: 0 / 0
MVC vs MVVM
    #39723062
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addx,

Элемент TextBox редактирует текстовое поле, а в модели оно, к примеру, целое число. Сохраняйте сразу.
...
Рейтинг: 0 / 0
MVC vs MVVM
    #39723078
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesAddx,

Элемент TextBox редактирует текстовое поле, а в модели оно, к примеру, целое число. Сохраняйте сразу.

Вопрос в том, что текстовое поле само по себе не нужно.
А нужна сумма двух полей.
Например, одно поле - время, второе - дата.
В базе нужно одно поле.
И есть кнопка "сохранить дату". По которой пишем в базу.
Допустим, пользователь заполнил только одно.
Т.е. визуально у нас (Дата, Время)
В базе ДатаВремя.
Нужно ли создать отдельную сущность [Дата, Время], которая содержит логику (Сохранение в базу) в модели?
Или оставить во VM, с привязкой к внешнему вызову Model.SaveMyDT(Entity, Дата, Время)?
...
Рейтинг: 0 / 0
MVC vs MVVM
    #39723144
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addx,

Доступность кнопки "Сохранить" говорить пользователю о том, что состояние VM корректно и что то с этим состоянием можно делать (например, попытаться изменить состояние какого то объекта на основе VM). VM это только модель данных View и все.
...
Рейтинг: 0 / 0
MVC vs MVVM
    #39723804
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addx1. Насколько допустимо хранить данные во ViewModel и что можно считать таковыми?

Модель представления, хранит данные нужные для работы представления и взаимодействия с Моделью. Включает в себя данные Модели (или для Модели) и данные для работы представления.

Addx2. Где провести грань между Model и ViewModel?

Модель, это бизнес-логика и её данные.

Грань провести можно такую. Представь себе 2 и более представлений. Веб-сайт, мобила, телик, десткопы всякие. Модель не должна зависеть от представлений. ViewModel также компенсируют возможную или существующую разницу между Моделью.

В реале, конечно зависимость кое какая есть, но нужно стремиться к разделению.


AddxНапример, есть визуальное редактируемое поле. Должно ли оно быть сразу сохранено в модели, после завершения редактирования?
В базе и где-то еще сохранять не нужно, при закрытии формы данные пропадают.
Значение используется только при нажатии на кнопку.

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

Так что... ))
...
Рейтинг: 0 / 0
MVC vs MVVM
    #39724497
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Грань провести можно такую. Представь себе 2 и более представлений. Веб-сайт, мобила, телик, десткопы всякие. Модель не должна зависеть от представлений. ViewModel также компенсируют возможную или существующую разницу между Моделью.

В реале, конечно зависимость кое какая есть, но нужно стремиться к разделению.


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


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

Так что... ))

Это как пример. ))
Вопрос в том, нужно ли сразу пробрасывать в модель, или оставлять только во ViewModel.
...
Рейтинг: 0 / 0
MVC vs MVVM
    #39724666
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxНе все так просто)
К примеру, при изменении данных на визуальной форме нужно перестроить графики.
Пересчет нетривиальный. Нужен для всех типов клиентов, абсолютно одинаковый, но в базы и пр. хранилища не пишем (данные для графиков, строятся на куче расчетных величин, разумеется их где-то хранить нужно после пересчета).
Вроде и бизнес-логика, и вроде нужно только для визуализации.
А приведите конкретный пример, если не сложно. Наверняка сведём к бизнес-логике.

А результат можно и в MongoDB, Redis положить.
...
Рейтинг: 0 / 0
MVC vs MVVM
    #39725347
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxНе все так просто)

Было бы просто, работать умом не надо было бы )

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

Для построения графика нужно передавать данные формы, которые влияют на построение графика.
Вью-модель содержит текущие данные формы, при изменении, вью-модель используется контроллером для вызова Модели, чтобы получить данные для графика.

Понятие "визуализация" не нужно воспринимать прям топорно и буквально.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / MVC vs MVVM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]