Мой вопрос заключается в том, должны ли мы передавать весь объект клиенту или только обновленное свойство вместе с идентификатором объекта (в новом типе)?
Производительность : зависит от размера объектов данных и их количества в любое время. Например, если у вас есть 1000 объектов, каждый из которых имеет размер 1 МБ, с 1000 различными свойствами и в среднем выполняется только 1 или 2 незначительных изменения, то имеет смысл отправлять только изменения.
- Меньшая нагрузка на сеть
- Меньше памяти / интенсивность обработки
- Особенно верно, если вам нужно десериализовать много XML.
Сложность : Иногда легче просто сдуть все, что изменилось, и начать с нуля; вам не нужно сильно беспокоиться о поддержании состояния объекта, обработке нескольких изменений в одном и том же объекте и т. д.
Поскольку объекты на сервере часто меняются, что является лучшим
способ сказать клиенту обновить пользовательский интерфейс?
Возвращается к числу вероятных объектов, как часто они меняются и откуда они берутся (« Как клиент будет подключен к основному приложению, еще предстоит решить »). Также зависит от того, насколько современным должен быть пользовательский интерфейс. Если объект изменяется на сервере, и у вас есть 100 клиентов, которые необходимо обновить - как скоро они должны быть обновлены?
Имейте в виду, что чем чаще и быстрее происходят изменения, тем более «болтливым» будет ваше приложение, которое начнет снижать производительность, чем больше границ вы будете пересекать (домен, процесс, сервер, сеть ...).
Редактировать
Похоже, что единица работы шаблон может помочь:
- Пусть все вступающие в силу изменения вступают в силу при поступлении запроса на изменение.
- Затем отправьте все изменения (дельты, а не целые объекты) как один «пакет» / набор обратно вызывающей стороне.
- Возможно, используйте какой-то кэш, если у вас много клиентов, которым нужны новые данные.