Приложения XBAP

81

Приложения ХВАР (XAML Browser Application — браузерное приложение XAML) — это приложения, которые выполняются внутри браузера. Они являются полноценными приложениями WPF, но имеют несколько основных отличий, описанных ниже:

Преимущество приложений ХВАР состоит в том, что они позволяют работать безо всяких подсказок и приглашений. При наличии установленной версии .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, приложение запустится автоматически в режиме с ограниченным доверием.

Пройди тесты
Лучший чат для C# программистов