Главная » Silverlight » Модель приложения

0

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

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

И наконец, подробно рассматриваются задачи извлечения ресурсов разных типов, включая большие файлы (изображения и видео) и зависимые сборки. Обсуждаются так­же добавление ресурса в пакет приложения для облегчения развертывания и загрузка по требованию с целью организации потокового выполнения.

Новые средства. В данной главе рассматриваются два новых средства. Во-первых, в Silverlight 3 добавлена возможность создания приложений, выполняющихся без браузера. Пользователь может установить приложение локально и работать с ним в отдельном окне. Такое приложение можно выполнять даже при отсутствии соединения с Интернетом. Во-вторых, Silverlight 3 поддерживает кеширование сборок, рассмотренное кратко в главе 1. В данной главе кеширование сборок обсуждается подробнее.

Класс приложения

В главе 1 вы ознакомились с файлом Арр.xaml. Любая страница XAML является шаблоном пользовательского класса, производного от System.Windows .UserControl. Аналогично этому файл Арр. xaml тоже является шаблоном пользовательского клас­са (по умолчанию он имеет имя Арр), производного от System.Windows .Application. Определение класса находится в файле Арр. xaml. cs.

public partial class Арр : Application ! … }

Загружая приложение, надстройка Silverlight в первую очередь создает экземпляр класса Арр. Начиная с этого момента объект приложения служит точкой входа для всех компонентов приложения, включая события, ресурсы и службы.

Доступ к текущему приложению

Ссылку на объект приложения можно извлечь в любой момент времени в любой точке кода с помощью статического свойства Application.Current. Это свойство име­ет тип объекта приложения System.Windows .Application. Для обращения к любому пользовательскому свойству или методу, принадлежащему производному классу при­ложения, необходимо привести ссылку к типу Арр. Например, метод DoSomething (), определенный в файле Арр. xaml. cs, можно вызвать следующим образом.

((Арр)Application.Current).DoSomething();

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

Свойства приложения

Кроме упомянутого выше статического свойства Current, класс Application предо­ставляет ряд полезных свойств и методов, описанных в табл. 6.1.

Таблица 6.1. Члены класса Application

Имя

Описание

Host

Предоставляет возможность интерактивного взаимодействия с браузером и, через него, с содержимым HTML веб-страницы (глава 14)

Resources

Доступ к коллекции ресурсов XAML, объявленных в файле Арр.xaml (глава 2)

RootVisual

Доступ к корневому визуальному элементу приложения; обычно им служит пользовательский элемент управления, создаваемый при первом запуске приложения; после установки свойства RootVisual корневой визуальный элемент не может быть изменен, однако можно манипулировать его содержимым, что позволяет управлять выводом страницы; например, если корневым элементом служит объект Grid, можно удалить из него один или несколько дочерних элементов, добавив вместо них другие элементы управления (глава 7)

IsRunningOutOfBrowser и InstallState

Эти свойства позволяют распознавать приложения, выполняющиеся за пределами браузера, и управлять ими; булево свойство isRunning0ut0fBrowser сообщает, где выполняется приложение — за пределами браузера (значение true) или в окне браузера (значение false); свойство InstallState предоставляет элемент перечисления InstallState; значение installed означает, что приложение установлено на текущем компьютере, Notlnstalled или installFailed — не установлено, Installing — в данный момент выпол­няется установка; эти свойства рассматриваются далее

Окончание табл. 6.1

Имя

Описание

ApplicationLifetimeObjects

Коллекция служб расширения приложения; объекты коллекции предоставляют дополнительные способы реакции на события приложения, аналогично обработчикам событий в коде класса Application; разница между ними в том, что коды служб расширения помещены в отдельный класс; это облегчает повторное использование кода в других приложениях Silverlight

Install () и

CheckAndDownloadUpdateAsync()

Эти методы используются в приложениях, выполняющихся за пределами браузера; метод install () устанавливает текущее приложение Silverlight на клиентском компьютере; метод CheckAndDownloadUpdateAsync () запускает асинхронный процесс, проверяющий веб-службу обновлений; если обновленная версия найдена, она загружается и применяется при следующем запуске приложения

GetResourceStream()

Статический метод, используемый для извлечения ресурсов; см. далее

LoadComponent()

Статический метод, принимающий файл XAML и создающий экземпляры соответствующих элементов (эти операции Silverlight выполняет автоматически при создании класса страницы и вызове метода

InitializeComponent () конструктором страницы)

Кроме предоставления перечисленных свойств, объект Application генерирует события в разные моменты жизненного цикла приложения (см. следующий раздел).

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

По теме:

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