Управление доставкой динамического содержимого в Silverlight

ОГЛАВЛЕНИЕ

Пользователи любого функционально насыщенного веб-приложения (RIA) испытывают обоснованную озабоченность относительно безопасности и размера загружаемых файлов. Приложения Silverlight поддерживаются подмножеством полнофункциональной среды Microsoft .NET Framework и, по существу, обладают потенциальной возможностью выполнять операции, наносящие вред локальному компьютеру пользователя. По этой причине группа Silverlight разработала новую модель безопасности, делающую невозможным обращение приложений ни к одному из важных с точки зрения безопасности классов Core CLR (выпуск .NET Framework, поддерживающий Silverlight).

На самом деле загрузка подключаемого модуля Silverlight не представляет сложностей, поскольку эта операция занимает всего несколько секунд и выполняется только один раз. А что можно сказать о размере загружаемых приложений.

В статье этого месяца рассматривается вопрос загрузки приложений Silverlight. Сначала я продемонстрирую способ динамического создания кода XAML. Затем будет рассмотрен способ динамического активирования компонентов приложения строго на основании запроса пользователя. Некоторые конкретные компоненты приложения, которые трудно реализовать посредством основного потока кода, могут быть реализованы отдельно и, что более важно, могут быть отдельно загружены, и при этом их легко интегрировать в основной интерфейс пользователя.

Размер приложений Silverlight

После того, как пользователь установил подключаемый модуль Silverlight, у него имеются все сборки системы, которые могут потребоваться приложению Silverlight. Это означает, что файл загрузки ограничен сборкой, содержащей приложение, с добавлением всех пользовательских сборок, на которые имеются ссылки. В итоге размер файла для загрузки приложения достигает зачастую десятков килобайт. Отмечу, что эта оценка применима к версии RTM платформы Silverlight 2 и к коду, скомпилированному в режиме release.

Безусловно, приложение может занимать гораздо больше места, в особенности если в него входят длинные алгоритмы, графическое и мультимедийное содержимое или анимации. В случае громоздких приложений, когда время загрузки становится проблемой, можно выбрать один из двух основных вариантов. Первый вариант заключается в создании потока содержимого Silverlight тем способом, который обсуждался на веб-узле по адресу silverlight.live.com. Другой вариант состоит в разбиении приложения на независимые части, которые можно загружать по отдельности и по запросу.