Исходя из этого начального исследования архитектуры Silverlight, у меня есть несколько новых требований, которые необходимо учитывать.
Мы ожидаем, что наш клиентский интерфейс Silverlight будет графически насыщенным, с ГИС-интерфейсом, несколькими диаграммами, датчиками и сетками данных, расположенными в стиле виджетов. Новые виджеты будут динамически генерироваться пользователем.
Предположим, что пользователь хотел динамически создать виджет диаграммы из существующего виджета сетки данных, предварительно заполненного данными. Мне кажется, что если бы мы использовали шаблон MVVM с моделью представления на сервере, это привело бы к ненужному обратному вызову домой, когда требуемые данные уже находятся на клиенте.
Теперь, очевидно, сервер должен знать об этом новом виджете диаграммы на клиенте, но как мне сначала создать виджет на клиенте (с существующими данными на стороне клиента), а затем уведомить сервер о новых изменениях?
В нашей интрасети сетевое соединение между клиентом и сервером не очень хорошее, поэтому производительность критична.
Из моего первоначального исследования видно, что общие шаблоны архитектуры Silverlight требуют, чтобы большая часть бизнес-логики была возвращена на сервер. Я понимаю причину этого, но боюсь, что это действительно повредит удобству использования нашего приложения.
Существуют ли конкретные шаблоны проектирования, которые решают эту проблему? Поддерживается ли эта «привязка клиента» в MVVM, Prism или других распространенных архитектурах Silverlight?
Есть ли более формальное название для того, что я пытаюсь описать?
Я совершенно не знаком с Silverlight и шаблонами проектирования, такими как MVVM, поэтому, пожалуйста, исправьте меня, если какие-либо из моих предположений неверны.