Есть ли снижение производительности приложения Silverlight при реализации шаблона MVVM с использованием привязки данных? - PullRequest
2 голосов
/ 16 июня 2009

Я реализую шаблон Model-View-ViewModel (MVVM) в одной из форм моего приложения SL2, используя интерфейс INotifyPropertyChanged и привязку данных TwoWay.

Однако я чувствую, что благодаря такому подходу моя форма ведет себя немного вяло.

Я просто хотел узнать, есть ли при использовании этого подхода снижение производительности в таких приложениях SL2.

Спасибо ... Sudeep

Ответы [ 4 ]

3 голосов
/ 16 июня 2009

Я не заметил никакого замедления. Мы выполняем ОЧЕНЬ МНОГО привязки к INotifyPropertyChanged ViewModels, и пользовательский интерфейс выглядит очень отзывчивым.

Конечно, будет хит для привязки данных по сравнению с прямым доступом к данным ... но этот удар настолько мал, что вы получаете выгоду от привязки данных, что делает этот хит несущественным.

Что следует запомнить: привязка данных происходит в пользовательском интерфейсе. На этом слое не происходит много интенсивной обработки. Кроме того, пользовательский интерфейс отображается в отдельном потоке. Эти две вещи, вместе взятые, создают впечатление, которое, по моему мнению, очень отзывчиво.

Эрик спросил, есть ли у вас конвертеры значений на месте? Я бы спросил то же самое. Если так, они делают много работы? По моему опыту работы с MVVM, преобразователи значений больше не нужны. Просто пища для размышлений.

2 голосов
/ 16 июня 2009

Я не заметил никакого замедления. Реализация Prism Reference, среди многих других, кажется быстрой.

Фактически, система привязки использует свойства зависимости. Так же, как система анимации. Частично причина в том, что значения могут быть быстро обновлены с помощью платформы.

Есть ли у вас конвертеры значений на месте?

1 голос
/ 16 июня 2009

Мы много работаем с MVVM с Prism и не заметили снижения производительности. Скорее наоборот - приложение часто демонстрирует быстрее, чем его нетехнический аналог для Windows.

0 голосов
/ 17 июня 2009

Проверьте также, в каких местах вам нужно двухстороннее связывание, а в других - только одноразовое связывание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...