Каковы лучшие практики для оптимальной производительности в Silverlight и MVVM
У меня есть много нормализованных таблиц - их может быть больше 50... Мне было интересно, каков наилучший подход для определения ViewModels - индивидуальной ViewModel для каждой формы или создания Common ViewModel для нескольких форм. Поскольку создание отдельных форм может увеличить размер данных, которые необходимо загрузить, и это может увеличить избыточность данных на клиенте. т.е. использование категории в каждой форме имеет различный набор данных для каждого из них. и на другой стороне создание общей модели представления для набора форм может увеличить сложность в управлении вещами.
Есть ли подходящая статья, описывающая такой аспект развития. Каковы оптимальные методы управления приложением в целом, чтобы обеспечить оптимальную производительность. (Получение минимального количества данных с сервера)
Спасибо за ваше время и помощь.
2 ответа
Количество просмотров и моделей увеличит размер вашего XAP- файла, который полностью загружается при открытии, его можно сжать. Фактическая производительность во время использования отличается и зависит от других факторов, попробуйте использовать SilverlightSpy, чтобы получить представление о реальной производительности браузера. Можно загрузить части вашего приложения Silverlight по мере необходимости, но это продвинутая техника.
Если обмен сообщениями является вашей главной задачей, то проверьте двоичные сообщения.
Я рекомендую использовать новый ViewModel для каждого представления или вложенный Usercontrol, а затем использовать агрегатор событий для связи между моделями.
Обычно вы хотите создать модель представления для каждого вида. Если два представления отображают одни и те же данные и позволяют пользователю выполнять одинаковые действия, но отличаются только реализацией пользовательского интерфейса, тогда они могут совместно использовать модель представления, но цель состоит в том, чтобы сохранить ваши модели представления связными. Если ваши модели представлений содержат код для работы с несколькими представлениями, вы рискуете реализовать антишаблон "Объект Бога". Если вы обнаружите, что все ваши модели просмотра совместно используют определенный объем общего кода, рассмотрите возможность перемещения этого кода в общий базовый класс.
Помните, что две совершенно разные модели просмотра могут манипулировать одними и теми же моделями. Это может быть в том случае, если два представления отображают одни и те же данные, но каждое позволяет пользователю взаимодействовать с ними уникальным образом.
Я очень рекомендую прочитать Pro WPF и Silverlight MVVM от Гэри Холла. Это отличная книга для начала работы с MVVM, особенно для использования с WPF и / или Silverlight.