Главная » Silverlight » Кеширование сборок для соб­ственных библиотек классов

0

Кеширование — это технология развертывания, позволяющая исключить зависи­мые сборки из файла ХАР. Вместо развертывания зависимых сборок с файлом ХАР, разместите их в отдельном файле ZIP в той же папке. Цель состоит в том, чтобы умень­шить время запуска приложения, предоставив клиенту возможность кешировать копии часто используемых сборок.

По умолчанию приложение Silverlight, создаваемое программой Visual Studio, не сконфигурировано на кеширование сборок. Для включения кеширования дважды щелкните на узле Properties (Свойства) в окне Solution Explorer (Проводник решений). В открывшемся окне свойств проекта (см. рис. 1.10) установите флажок Reduce ХАР size by using application library caching (Уменьшение размера файла ХАР путем кеширования библиотеки приложения). Чтобы увидеть результаты, перекомпилируйте приложение, щелкните на кнопке Show All Files (Показать все файлы), расположенной в заголов­ке окна Solution Explorer, и разверните папку Bin\Debug. В ней вы увидите файл ZIP для каждой кешируемой сборки. Например, если в приложении применяется сборка System.Windows.Controls.dll, рядом с файлом ХАР будет приведено имя файла System.Windows.Controls.zip. Этот файл содержит сжатую копию сборки System. Windows. Controls . dll. При этом указанная сборка будет исключена из файла ХАР.

Если используется тестовый сайт ASP.NIST, программа Visual Studio копирует файл ХАР и все кешируемые сборки в папку ClientBin сайта. На рис. 1.12 показан резуль­тат после компиляции приложения, в котором используются сборки System.Windows. Controls.dll и System.Windows.Controls.Navigation.dll.

уменьшает размер файла ХАР. Чем меньше размеры файлов, тем быстрее они загружаются. Уменьшение файла ХАР уменьшает время запуска приложения. Однако при первой за­грузке кеширование не улучшает производитель­ность, потому что необходимо загрузить не только сокращенный файл ХАР, но и файлы ZIP, содержа­щие зависимые сборки. Общее время загрузки дан­ных остается тем же.

Рис. 1.12. Архивные файлы зависимых сборок, поддерживающих кеширование

Преимущество кеширования проявляется, ког­да пользователь возвращается к приложению вто­рой раз. При этом браузер загружает файл ХАР, извлекая зависимые сборки из кеша. Загружать повторно архивные файлы зависимых сборок не нужно.

Чтобы как можно более эффективно применять кеширование сборок, учитывайте следующее.

•       Загружаемая сборка существует не дольше, чем кеш браузера. Когда пользова­тель явно очищает кеш, все копированные сборки удаляются.

•       При каждом запуске приложения клиентом браузер проверяет, существуют ли новые версии кешированных сборок. Обнаружив новую версию, браузер загружа­ет ее и замещает ею предыдущую квитированную версию.

•       Если одно приложение загружает сборку и помещает ее в кеш браузера, другое приложение, в котором включено кеширование сборок, может использовать ее.

•       Преимущества кеширования особенно существенны при использовании больших сборок, которые редко изменяются. Многие сборки имеют малые размеры, и эко­номия времени загрузки при запуске приложения несущественная. В этом случае кеширование приводит лишь к напрасному усложнению модели развертывания приложения.

Приложив немного усилий, вы можете использовать кеширование сборок для соб­ственных библиотек классов. И в данном случае это имеет смысл, только если сборки большие и редко изменяются. Более подробно создание сборок, поддерживающих кеши­рование, рассматривается в главе 6.

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии