Главная » Silverlight » Развертывание приложения Silverlight

0

Понимая модель компиляции приложения Silverlight, несложно понять модель его развертывания. Ключевой элемент модели развертывания — файл ХАР, объединяющий все компоненты приложения (манифест и сборки) в одном контейнере.

Технически файл ХАР является архивным. Чтобы убедиться в этом, переименуйте его, например SilverlightApplicationl.хар на SilverlightApplicationl .хар. zip. Открыв файл . zip с помощью любого архиватора, можно увидеть хранящиеся в нем файлы. На рис. 1.11 показано содержимое файла .хар, используемого в простом при­мере выше. Данный файл содержит манифест и сборку приложения. Если приложение содержит сборки дополнений (например, System .Windows . Controls . dll), они тоже хранятся в файле ХАР.

Использование файла ХАР предоставляет два очевидных преимущества.

[I]     Все содержимое находится в сжатом состоянии. Содержимое остается сжа­тым, пока файл не попадет в браузер. Этим обеспечивается минимальное время загрузки приложения. Сжатие особенно полезно, если приложение содержит боль­шие статические ресурсы (см. главу 6), например изображения или блоки текста.

•       Упрощение развертывания. Когда приложение Silverlight готово к развертыва­нию, достаточно скопировать на сервер файл ХАР и тестовый файл TestPage. html (или любой другой файл HTML, в котором определена область содержимого Silverlight). Отслеживать сборки и ресурсы нет необходимости.

Рис. 1.10. Вкладка свойств проекта Visual Studio

Рис. 1.11. Содержимое файла XAP

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

Совет. Компания Microsoft предлагает бесплатную сетевую систему хостинга, обеспечивающую 10 Гбайт памяти для приложений Silverlight. Подписаться на нее можно на сайте www. silverlight. live. com.

Для хостинга приложений Silverlight веб-сервер должен быть сконфигурирован та­ким образом, чтобы разрешались запросы к файлам типа ХАР. На сервере IIS 7 файлы типа ХАР включены по умолчанию (если используется операционная система Windows Server 2008 или Windows Vista с пакетом обновлений Service Pack 1). В других конфигу­рациях (при использовании Windows Vista без SP1, более ранних версий IIS, веб-сервера другого типа и так далее) нужно добавить тип файла, отображающий расширение . хар на тип MIME application/x-silverlight-app. Инструкции для IIS можно найти по адресу www. learn. iis . net/page . aspx/262/silverlight. В Windows XP SP2 программа Visual Studio автоматически конфигурирует IIS на запросы к файлам ХАР.

Декомпиляция приложения Silverlight

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

1.        Загрузите входную страницу.

2.        Откройте исходный код страницы и найдите элемент <param>, указывающий на файл ХАР.

3.        Введите запрос на файл ХАР в адресной строке браузера. Оставьте текущий домен, но замените имя страницы частичным маршрутом, указывающим на файл ХАР.

4.        Выберите команду Save As (Сохранить как) и сохраните файл ХАР локально.

5.        Переименуйте файл ХАР, добавив расширение . zip. Откройте архив и извлеките сборку проекта. Эта сборка такая же, как и в любом приложении .NET. Как и обычная сборка .NET, она содержит код IL.

6.        Откройте сборку проекта в любом декомпиляторе (например, в Reflector; www. red-gate. com/products / reflector). Просмотрите код IL и внедренные ресурсы. Можете преобразовать код IL в код С#.

Конечно, многие разработчики Silverlight не одобряют подобные методы, точно так же как разработчики .NET не одо­бряют декомпиляцию их мощных клиентских приложений конечными пользователями. Однако возможность декомпи- ляции — неизбежный побочный эффект модели Silverlight, с которым приходится мириться. Код IL легко декомпилировать в С#, поэтому в нем нельзя хранить секретную информацию (например, ключи, пароли, патентованные алгоритмы и т.д.). Если некоторую задачу нужно решить с помощью секретного кода, внедрите в при­ложение Silverlight вызов веб-службы. Чтобы любопытные пользователи и зловредные конкуренты не заглядывали в ваш код и не копировали ваши методы, можете также применить обфускатор (obfuscator) — программу, которая автоматически перемешивает имена и компоненты структуры скомпилированного кода, не изменяя его поведение. В рабочей среде Visual Studio можно воспользоваться упрощенным вариантом обфускатора, который называется Dotfuscator. Доступно также множество коммерческих обфускаторов.

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

По теме:

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