Приложения XBAP
81WPF --- Элементы управления WPF --- Приложения XBAP
Приложения ХВАР (XAML Browser Application — браузерное приложение XAML) — это приложения, которые выполняются внутри браузера. Они являются полноценными приложениями WPF, но имеют несколько основных отличий, описанных ниже:
ХВАР-приложения выполняются внутри окна браузера. Они могут занимать всю область изображения веб-страницы или размещаться где-то внутри обычного HTML-документа с помощью дескриптора <iframe>.
Формально WPF-приложение любого типа, включая приложение ХВАР, запускается в виде отдельного процесса, управляемого общеязыковой исполняющей средой (Common Language Runtime — CLR). Нам кажется, что приложение ХВАР выполняется "внутри" браузера просто потому, что оно отображает все свое содержимое в окне браузера. Это отличает его от модели, применяемой в элементах управления ActiveX (и приложениях Silverlight), которые на самом деле загружаются внутри процесса браузера.
ХВАР-приложения обычно имеют ограниченные разрешения. Хотя приложение ХВАР можно сконфигурировать так, чтобы оно запрашивало разрешение на полный доступ, цель состоит в том, чтобы использовать приложение ХВАР в качестве облегченной модели развертывания, которая позволяет пользователям выполнять WPF-приложения без риска со стороны потенциально небезопасного кода.
Приложению ХВАР предоставляются те же разрешения, что и приложению .NET, которое запускается из Интернета или локальной интрасети, к тому же и механизм, налагающий эти ограничения (безопасность доступа кода) — тот же самый. Это означает, что по умолчанию приложение ХВАР не может записывать файлы, взаимодействовать с ресурсами компьютера (такими как системный реестр), подключаться к базам данных или отображать полнофункциональные окна.
ХВАР-приложения не устанавливаются. При запуске приложения ХВАР оно загружается и помещается в кэш браузера. Однако в системе оно не устанавливается. Это обеспечивает веб-модель мгновенного обновления. Другими словами, при каждом возвращении пользователя к использованию данного приложения, происходит загрузка новейшей его версии, если она еще не находится в кэше.
Преимущество приложений ХВАР состоит в том, что они позволяют работать безо всяких подсказок и приглашений. При наличии установленной версии .NET клиент может открыть приложение ХВАР в браузере и работать с ним точно так же, как с Java-аплетом, Flash-фильмом или оснащенной JavaScript-сценариями веб-страницей.
Никакого приглашения выполнить установку и предупреждения, связанного с безопасностью, не появляется. Очевидно, что расплачиваться за это приходится следованием очень жестко ограниченной модели безопасности. Если приложению требуются большие возможности (например, чтение или запись произвольных файлов, взаимодействие с базой данных, работа с системным реестром Windows и т.д.), его лучше строить как автономное Windows-приложение, обеспечив упрощенным (хотя и не полностью бесшовным) процессом развертывания с помощью ClickOnce.
Требования для приложений ХВАР
В настоящее время приложения ХВАР способны запускать только два браузера: Internet Explorer (версии 6 или выше) и Firefox (версии 2 или выше). Для запуска любого приложения WPF, в том числе ХВАР, на клиентском компьютере должна быть обязательно установлена версия .NET Framework 3.0 или выше. Конкретная версия .NET зависит от того, какие функциональные средства WPF используются, и от того, какая версия .NET была выбрана в качестве целевой.
Эти требования не являются столь уж ограничивающими, как может показаться. Важно помнить о том, что ОС Windows Vista изначально включает в себя версию .NET 3.0, a Windows 7 — версию .NET 3.5 с пакетом обновлений SP1. Поэтому на компьютерах с этими операционными системами приложения ХВАР распознаются автоматически. Вдобавок пользователи, работающие в браузере Internet Explorer версии 7 (или выше) под управлением Windows ХР, запускать приложения ХВАР, возможно, не смогут, но браузер все равно их распознает. В таком случае при запросе пользователем файла .xbap браузер Internet Explorer предложит установить платформу .NET Framework.
Создание приложения ХВАР
Любое страничное приложение может стать приложением ХВАР, хотя Visual Studio для этого вынуждает создавать новый проект с помощью шаблона WPF Browser Application (Браузерное WPF-приложение). Разница кроется в четырех ключевых элементах в файле проекта .csproj:
<HostInBrowser>True</HostInBrowser>
<Install>False</Install>
<ApplicationExtension>.xbap</ApplicationExtension>
<TargetZone>Internet</TargetZone>
Эти дескрипторы указывают WPF на то, что приложение должно обслуживаться в браузере (HostInBrowser), кэшироваться вместе с другими файлами Интернета без постоянной установки в системе (Install), использовать расширение .xbap (ApplicationExtension) и запрашивать разрешения только для зоны Интернета (TargetZone). Четвертый дескриптор является необязательным: как будет показано далее, формально допускается создание приложения ХВАР с большим количеством разрешений. Однако приложения ХВАР практически всегда выполняются с ограниченным набором разрешений, доступных в зоне Интернета, что является самым сложным аспектом для успешного программирования такого приложения.
Файл .csproj также включает и другие связанные с приложением ХВАР дескрипторы, которые гарантируют правильный процесс отладки. Самый простой способ изменить приложение ХВАР на страничное приложение с автономным окном (или наоборот) — это создать новый проект желаемого типа и затем импортировать все страницы из старого проекта.
После создания приложения ХВАР можно приступать к разработке страниц и кодировать их точно так же, как и при использовании NavigationWindow. Например, можно указать в свойстве StartupUri внутри файла App.xaml одну из страниц. В результате компиляции приложения будет сгенерирован файл .xbap. Затем этот файл .xbap можно запросить в Internet Explorer или Flrefox. При условии, что в системе установлен компонент .NET Framework, приложение запустится автоматически в режиме с ограниченным доверием.