Silverlight - приложения вне браузера

Теперь мы собираемся изучить поддержку Silverlight для приложений, которые могут быть установлены на компьютере конечного пользователя для работы вне веб-браузера, как обычное приложение Windows. Есть три основные причины, по которым вы можете захотеть, чтобы ваше приложение могло работать вне браузера:

  • Interaction
  • Offline
  • Повышенное доверие

Взаимодействие

Это может улучшить дизайн взаимодействия. Модель навигации в Интернете не очень подходит для некоторых приложений. Например, адресная строка и кнопка «Назад» могут быть пустой тратой места и бесполезны.

Важность Silverlight здесь указана ниже -

  • Веб-приложения могут использовать клиентские технологии, такие как Silverlight, Flash или AJAX, для обеспечения непрерывных обновлений одной страницы, возможно, устраняя необходимость перехода на другие страницы.

  • В некоторых приложениях пользователь может потратить много минут или даже часов на то, что браузер считает отдельной страницей.

  • Для такого рода приложений Back Кнопка может привести к довольно неожиданному эффекту выхода из приложения, потому что она вернет вас обратно на ту страницу, на которой вы были до входа в приложение.

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

Не в сети

Еще одна причина использовать эту функцию - включить автономное выполнение. Когда приложение Silverlight устанавливается для работы вне браузера, оно копируется в репозиторий для каждого пользователя на локальном компьютере и становится доступным через обычные механизмы операционной системы для запуска приложений, такие как, например, меню «Пуск» в Windows.

  • После этого приложение будет доступно, даже если у пользователя нет подключения к Интернету.

  • Очевидно, это полезно только для приложений, которые не полностью зависят от информации на стороне сервера.

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

  • Для некоторых приложений очень полезна возможность продолжать работу во время случайных сбоев подключения.

Повышенное доверие

В Silverlight версии 4 добавлена ​​поддержка доверенных приложений. Песочница безопасности Silverlight обычно блокирует определенные привилегированные операции, такие как доступ к файлам пользователя.

Однако приложение вне браузера может запросить повышение прав. Если пользователь удовлетворяет этот запрос, приложение может выполнять больше работы, которую может выполнять любое обычное приложение Windows, например, использовать COM-автоматизацию или настраивать границу окна.

Приложениям, которые запускаются внутри браузера, никогда не доверяют, поэтому вам нужно написать приложение вне браузера, если вы хотите использовать эти функции.

Включение OOB

Как написать приложение вне браузера? Это очень просто. Нам нужно изменить один параметр в свойствах проекта Silverlight, и он просто добавляет подходящий параметр вAppManifest.xaml.

Посмотрим, как это работает.

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

  • Однако, если пользователь щелкнет правой кнопкой мыши, стандартный Silverlight ContextMenu предлагает дополнительный пункт для установки приложения на компьютер.

  • Если пользователь выбирает этот элемент, появляется диалоговое окно с запросом подтверждения. Он также спрашивает, должно ли приложение быть доступно из меню «Пуск», с рабочего стола или из обоих.

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

  • Когда вы запускаете установку программно, пользователь по-прежнему видит диалоговое окно. Вы не можете установить свое приложение без согласия пользователя.

Приложение Silverlight

Вот очень простое приложение Silverlight. Ниже приведен его код XAML.

<UserControl x:Class = "SimpleOob.MainPage" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   mc:Ignorable = "d" 
   d:DesignHeight = "300" d:DesignWidth = "400">
   
   <Grid x:Name = "LayoutRoot" Background = "White"> 
	
      <Border BorderBrush = "Blue" BorderThickness = "4" CornerRadius = "20" >
		
         <Border.Background>
			
            <LinearGradientBrush StartPoint = "0,0" EndPoint = "0,1"> 
               <GradientStop Offset = "0.0" Color = "White" /> 
               <GradientStop Offset = "0.15" Color = "#cef" /> 
               <GradientStop Offset = "1.0" Color = "White" /> 
            </LinearGradientBrush> 
				
         </Border.Background> 
			
         <TextBlock HorizontalAlignment = "Center" VerticalAlignment = "Center" 
            Text = "Silverlight Application" TextOptions.TextHintingMode = "Animated" 
            TextAlignment = "Center" TextWrapping = "Wrap" 
            FontSize = "72" FontFamily = "Trebuchet MS" > 
					 
               <TextBlock.Effect> 
                  <DropShadowEffect Color = "#888" /> 
               </TextBlock.Effect> 
				
         </TextBlock>
			
      </Border> 
		
   </Grid>
	
</UserControl>

Step 1 - Чтобы разрешить выполнение вне браузера, перейдите в проект Propertiesи щелкните вкладку Silverlight. Все, что нам нужно сделать, это проверитьEnable running application out of the browser флажок.

Если вы запустите это приложение, вы заметите, что у вас вообще не будет веб-браузера.

Фактически, Visual Studio приняла решение от вашего имени. Когда вы включилиout-of-browser выполнение, это несправедливо изменило ваши настройки отладки.

Step 2 - Итак, здесь, в Solution Explorer, обратите внимание, что проект Silverlight теперь выделен жирным шрифтом, что указывает на то, что это запускаемый проект.

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

Step 3 - Мы вернем веб-проект в статус StartUp Project.

Step 4 - Запустите приложение еще раз, и вы увидите, что приложение снова в браузере.

Step 5- Щелкните веб-страницу правой кнопкой мыши. Вы заметите обычную запись Silverlight в контекстном меню и дополнительный элемент для установки.

Step 6 - Когда вы выбираете второй вариант, появляется диалоговое окно «Установить приложение», как показано ниже.

Обратите внимание, что он показывает корневой URL-адрес веб-сайта, с которого пришло приложение. Мы используем локальный веб-сервер отладки, предоставляемый Visual Studio, поэтому он говорит localhost.

Step 7 - Щелкните OK, и приложение запускается в собственном окне отдельно от браузера.

Было бы естественно думать, что это окно каким-то образом принадлежит браузеру или подключено к нему, но это не так. Вы можете закрыть браузер, и это окно останется. Что еще более важно, вы можете закрыть это окно, а затем повторно запустить приложение, вообще не используя браузер.

Step 8 - Если вы откроете Search диалоговое окно в Start меню и начните вводить имя приложения, оно отображается так же, как и любое обычное приложение Windows.

Step 9 - Вы можете запустить его, когда браузер нигде не будет видно.

Чтобы удалить приложение

Контекстное меню по умолчанию в приложении предоставляет простой способ сделать это. Пользователь мог разумно ожидать, что он удалит его так же, как и любое другое приложение.

Вы также можете удалить, щелкнув правой кнопкой мыши на веб-странице и выбрав Remove this application….

Настройки OOB

Хотя нам нужно было изменить только один параметр, чтобы разрешить работу вне браузера, на практике вы обычно захотите сделать немного больше. ВAppManifest.xaml файл может содержать несколько настроек, связанных с out-of-browser операция, которую мы обычно настраиваем через Visual Studio.

Как вы могли заметить, когда вы установили флажок для включения running out-ofbrowser, Visual Studio включила кнопку с надписью Out-of-Browser Settings.

Давайте посмотрим на это, нажав кнопку. Появится следующее диалоговое окно.

  • Первое, что мы можем настроить, это текст, который отображается как Window Title.

  • У нас также есть возможность исправить размеры и расположение окон, но пока мы оставим их автоматическими.

  • Это имя ярлыка появляется в Start меню и ссылку на рабочий стол для приложения после его установки.

  • Это также текст, который появляется в контекстном меню и диалоговом окне установки приложения.

  • Это описание приложения появляется во всплывающей подсказке при наведении курсора на ярлыки.

  • Мы можем предоставить иконки разных размеров. Они должны быть встроены в ваш проект.