Глава 1. Виджеты рабочего стола и технология Silverlight

Введение

Сегодня, сложно найти человека, который не имеет компьютер, ноутбук, планшет или смартфон. Пожалуй, хотя бы одно из перечисленных устройств есть у каждого взрослого человека. Но основная масса пользователей используют компьютер на потребительском уровне из-за низкой компьютерной грамотности. Именно поэтому возникает необходимость упрощения пользовательского интерфейса. По этому пути пошли ведущие производители программного обеспечения, такие как Apple, реализовав простые интерфейсы в своих операционных системах, как на настольных компьютерах, так и смартфонах. В данном направлении движется и компания Microsoft, выпустив новую операционную систему Windows 8, где приложения с интерфейсом modern просты для освоения, человеком с низким уровнем компетентности. Кроме этого, приложения спроектированы таким образом, что они реализуют только одну, понятную пользователю функцию. Первым шагом к появлению этого интерфейса было появление новой функции – «гаджеты рабочего стола» в операционной системе Windows Vista. Гаджеты рабочего стола характеризуются тем, что выполняют только одну функцию, как и в приложениях modern. Т.о, изучение устройства гаджетов является актуальной задачей в свете массового распространения мобильных устройств, где успешно реализован этот принцип.

Объект исследования: технология Silverlight.

Предмет исследования: изучение возможностей технологии Silverlight для создания гаджетов рабочего стола.

Цель исследования: разработать гаджет рабочего стола с помощью технологии Silverlight.

Задачи исследования:

1. Изучить литературу по теме исследования.

2. Определить круг задач решаемых при помощи гаджетов.

3. Изучить особенности строения гаджета рабочего стола операционной системы Windows Vista/7. Создание простейшего гаджета.

4. Изучить особенности архитектуры приложения Silverlight.

5. Познакомиться с основными средствами и способами создания гаджетов рабочего стола.

6. Создать гаджет рабочего стола для операционной системы Windows 7.

Глава 1. Виджеты рабочего стола и технология Silverlight

1.1 Определение понятия «виджет»

Термин «виджет» употребляется примерно с 1920-х годов в американском английском для обозначения простой, но необходимой вещи, маленького изделия, название которого временно забыто говорящим. Online Etymology Dictionary предполагает, что на его форму могло повлиять слово англ. gadget или же оно происходит от англ. which it — «этот, как его». Другие словари предполагают словослияние «window gadget» (букв. «оконное приспособление»), также произошедшее в начале двадцатого века.

Слово «виджет» также используется и как название класса вспомогательных мини-программ — графических модулей, которые размещаются в рабочем пространстве соответствующей родительской программы и служат для украшения рабочего пространства, развлечения, решения отдельных рабочих задач или быстрого получения информации из интернета без помощи веб-браузера. Виджеты можно разделить на группы по среде, в которой они работают. Рассмотрим два вида: веб-виджеты и виджеты для рабочего стола [15].

Веб-виджет - это кусок кода, который может быть встроен пользователем в любую HTML страницу и использоваться без значительной модификации. При создании веб-виджетов используются технологии DHTML, Silverlight, JavaScript и Adobe Flash. Веб-виджеты также иногда называют гаджетами, информерами, а на английском gadget, badge, module, webjit, capsule, snippet, mini или даже flake.

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

Информер - это неинтерактивный веб-виджет, т.е. такой, контент которого не зависит от действий пользователя. Классический пример информера - погодный информер [2].

Виджеты рабочего стола - это небольшие инструменты (программы), выполняющие одну определенную функцию и требующие для своей работы специальной среды — виджет-движка (widget engine). Они могут показывать на рабочем столе вашего компьютера последние новости, слайд-шоу из фотографий, позволять делать заметки на виртуальных стикерах, вести учёт рабочего времени и многое другое. При создании виджетов для рабочего стола используются самые разные технологии: от HTML и JavaScript до С++. Очень часто десктоп-виджеты используются для того чтобы показывать на рабочем столе информацию с какого-нибудь сайта (например, тот же прогноз погоды) без помощи браузера. Внешний вид виджетов и технологии реализации могут быть самым разным, но их объединяют относительная простота разработки и использования, привлекательный дизайн и фокусирование на одной функции [5].

Исходя из этого, можно выделить несколько типов задач, решаемых при помощи виджетов:

1. Быстрый доступ и получение информации из сети интернет (погода, курсы валют, заголовки новостей и т.д)

2. Быстрый доступ к службам (быстрый доступ к услугам социальных сетей)

3. Обслуживание компьютера (доступ и использование виртуальных дисков)

4. Украшение рабочего пространства, развлечение.

Архитектура Silverlight

Основная функциональность Silverlight обеспечивается подключаемым модулем браузера. Этот модуль формирует визуальное представление XAML и обеспечивает модель программирования, которая может основываться либо на JavaScript, либо на .NET Framework и общеязыковой среде выполнения (common language runtime, CLR). На рисунке 1 представлена архитектура, которая поддерживает это.

Рис .1

Основным механизмом программирования поведения приложения Silverligth 1.0 в браузере является прикладной программный интерфейс application programming interface (API) объектной модели документов (Document Object Model (DOM) JavaScript. Он позволяет перехватывать пользовательские события, возникающие в приложении (такие как перемещения мыши или щелчки определенного элемента), и вызывать код, определяющий реакцию на них. С помощью методов JavaScript DOM можно манипулировать элементами XAML, например, управлять воспроизведением мультимедиа или анимацией. Для создания еще более насыщенного и функционального интерфейса доступны все возможности .NET Framework CLR. Помимо того, что можно сделать в JavaScript, данная возможность предлагает множество пространств имен и элементов управления, поставляемых как часть .NET Framework, что позволяет делать вещи, которые было очень сложно, или вообще невозможно, реализовать в JavaScript. Например, доступ к данным с помощью ADO.NET и LINQ, обмен информацией с Веб-сервисами, создание и использование пользовательских элементов управления и т.д. Кроме того, среда формирования представления поставляется вместе с компонентами, необходимыми для обеспечения возможности воспроизведения в браузере файлов таких форматов, как H264, Windows Media Video (WMV), Windows Media Audio (WMA) и MP3, без всяких внешних зависимостей. Так, например, пользователям Macintosh не нужен проигрыватель Windows Media Player для воспроизведения WMV-содержимого, достаточно одного Silverlight. Основой всей среды формирования представления является код представления, и он управляет всем процессом визуализации. Все это встроено в подключаемый модуль браузера, поддерживающий основные браузеры Windows и Macintosh [6, 7].

На рисунке 2 представлена архитектура простого приложения, выполняющегося в браузере с использованием Silverlight.

Рис.2

В основе выполняющегося в браузере приложения обычно лежит HTML. Эта разметка содержит вызовы для создания экземпляров подключаемого модуля Silverlight. При взаимодействии с приложением Silverlight пользователи генерируют события, которые могут быть обработаны функциями JavaScript или .NET Framework. В свою очередь, код программы может вызывать методы элементов содержимого Silverlight для управления ими, добавления нового или удаления существующего содержимого. Наконец, подключаемый модуль может читать и формировать визуальное представление XAML. Сам XAML может быть встроен в страницу, существовать как внешний статический файл или как динамический XAML, возвращаемый сервером[6, 7].


Наши рекомендации