Магистр ДонНТУ Лисеенко Виталий Владимирович

Лисеенко Виталий Владимирович



Факультет компьютерных наук и технологий

Кафедра прикладной математики и информатики

Специальность "Программное обеспечение автоматизированных систем"


"Исследование возможности эффективной реализации синтеза реалистических изображений рельефов и ландшафтов на специализированных параллельных вычислительных системах"

Научный руководитель: доц., к.т.н. Зори Сергей Анатольевич

DonNTU

Мой опыт работы с технологией SilverLight


  1. Введение
  2. Обзор технологии
  3. Основные спецификации
  4. Пример SilverLight приложения
  5. Выводы
  6. Список литературы

Введение


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

Сейчас люди хотят иметь насыщенные, но при этом простые в использовании пользовательские интерфейсы, и чем больше типов информации становится доступно в Интернет, тем сложнее отвечать ожиданиям пользователей, касающимся простоты доступа к необходимым им данным.

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

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

Microsoft разработала стратегию взаимодействия пользователя с Веб. В ней определяется три уровня качества взаимодествия - "хорошее", "замечательное" и "предельное". Сегодняшние Веб-приложения не обеспечивают функциональности настольных приложений, и пользователь обычно понимает, что причиной их ограниченности является технология. Применяя Silverlight (и AJAX), можно создавать Веб-приложения, очень близкие к настольным приложениям и, в конечном счете, неотличимые от них.

Верхний или "предельный" уровень - это насыщенное клиентское настольное приложение, выполняющее Windows Vista/7 и использующее Windows Presentation Foundation (WPF) и .NET Framework. Эти технологии предлагают среду выполнения, которая позволяет разработчикам создавать исключительно насыщенные приложения, легко развертываемые и обслуживаемые. На этом уровне доступна передача качественной графики, видео, анимации, а также службы приложений, такие как хранение в виде файлов и интеграция с другими настольными приложениями. Кроме того, WPF разделяет технологии дизайна и разработки, таким образом, дизайн и представление пользовательских интерфейсов создаются на новом языке программирования, называемом XML Application Markup Language (XAML). Дизайнеры получили созданные специально для них инструменты дизайна, такие как серия Microsoft Expression, и могут теперь представлять свою работу в виде XAML- документов. А разработчики претворяют в жизнь мечты дизайнеров, активируя этот XAML кодом на C#, VB.NET или JavaScript.


Обзор технологии


Microsoft Silverlight — это программная платформа, включающая в себя плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application). Версия 2.0, выпущенная в октябре 2008, добавила поддержку для языков .NET и интеграцию с IDE. 10 июля 2009 в 18:00 по московскому времени Microsoft выпустила Silverlight 3 и Microsoft Expression Studio 3, в Интернете велась прямая трансляция мероприятия на сайте See the Light.


Silverlight реализован для ОС Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Mac OS X 10.4, Mac OS X 10.5, Mac OS X 10.6 и браузеров Internet Explorer 6.0/7.0/8.0, Mozilla Firefox 1.5/2.0/3, Safari 3.1, Google Chrome 3.0, Opera 9.50. В будущем также планируется поддержка мобильных устройств, начиная с Windows Mobile 6 и Symbian (Series 60), и, возможно, других платформ.

Silverlight предоставляет графическую систему, схожую с Windows Presentation Foundation, и объединяет мультимедиа, графику, анимацию и интерактивность в одной программной платформе. Он был разработан чтобы работать с XAML и с языками Microsoft .NET. XAML используется для разметки страниц, использующих векторную графику и анимацию. Текст, содержащийся в приложениях Silverlight, доступен для поисковых систем, так как он не компилируется, а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать виджеты для Windows Sidebar в Windows Vista.

Silverlight может воспроизводить WMV, WMA и MP3 для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player. Так как Windows Media Video 9 является реализацией стандарта SMPTE VC-1, Silverlight поддерживает видео VC-1, только внутри контейнера ASF. Кроме того, лицензионное соглашение говорит, что VC-1 разрешено использовать только в личных, некоммерческих целях («personal and non-commercial use of a consumer»). Silverlight позволяет динамически загружать XML и использовать DOM для взаимодействия с ним так же, как это делается в Ajax. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа файлы и т. д., если это необходимо приложению. Начиная с версии 2.0, логика программы может быть описана в любом из языков .NET, включая динамические языки программирования такие как Iron Ruby и Iron Python, которые в свою очередь исполняются в DLR (Dynamic Library Runtime), а не CLR (Common Language Runtime).


Основные спецификации


Silverlight 1.0 Beta


Первая бета-версия Silverlight была выпущена в декабре 2006 года. Microsoft рассчитывала выпустить стабильную версию в середине 2007 года. Ходили слухи что в Microsoft планируется частичное открытие исходного кода Silverlight, однако они были опровергнуты Сэмом Рамджи (Sam Ramji) директором Microsoft по стратегии технологической платформы. Тем не менее часть Dynamic Language Runtime включённая в Silverlight, доступна на портале Microsoft для хостинга открытых и проприетарных проектов CodePlex под Apache 2.


Silverlight 1.0


Silverlight v.1.0 является подключаемым модулем обозревателя для обработки XAML плюс кодеки, для воспроизведения мультимедийного содержимого в форматах WMV, WMA и MP3. Он представляет обозревателю внутреннюю модель DOM, управляемую из JavaScript кода. Язык XAML основан на XML, поэтому документ, определяющий загружаемый клиенту пользовательский интерфейс — текстовый и вполне пригоден для индексирования поисковыми системами. Используя представленную модель DOM, JavaScript может динамически обновлять содержимое Silverlight, аналогично DHTML. Также можно вызывать методы управления презентацией (запуска анимации или приостановки воспроизведения видео, например).

Silverlight приложение начинается с вызова объекта Silverlight из HTML страницы, загружающего XAML файл. XAML файл содержит объект Canvas, выступающий подложкой для других элементов. Объекты XAML способны генерировать события, перехватываемые из JavaScript.

В комплекте к Visual Studio 2005 SP1 прилагаются «Silverlight Tools for VS 2005».



Архитектура Silverlight 1.0 приложения


Silverlight 2.0


Версия Silverlight 2.0 была выпущена 14 октября 2008 года и включала в себя подмножество библиотек .NET Framework.

Кроме этого, доступны для скачивания Microsoft Silverlight Tools for Visual Studio 2008, которые включают в себя:

  1. Шаблоны для проектов Visual Basic и C#
  2. Интеллисенс и генераторы кода для XAML
  3. Отладку приложений Silverlight
  4. Поддержку Web reference
  5. Интеграцию с Expression Blend


Архитектура SilverLight 2


Silverlight 3.0


18 марта 2009 года на конференции MIX09 в Лас-Вегасе Microsoft продемонстрировала бета-версию. 10 июля 2009 года в ходе мероприятия See the Light Microsoft объявила об официальном выпуске RTM версии. В настоящее время последняя доступна для загрузки на сайте Microsoft.

Среди особенностей новой версии:

  1. Поддержка устройств с multitouch-интерфейсом
  2. Поддержка форматов H.264, AAC и MPEG-4
  3. Поддержка аппаратного ускорения при работе с трехмерной графикой. Это позволяет задействовать потенциал графического процессора и снизить нагрузку на центральный процессор

В целом Silverlight представляет собой урезанный вариант Windows Presentation Foundation, не требующий наличия .NET Framework. При этом возможности приложений Silverlight почти безграничны, весь недостающий функционал можно реализовать в виде модулей, используя Silverlight SDK. Любой желающий может бесплатно разрабатывать приложения на Silverlight/WPF. Для этого не обязательно покупать Visual Studio и Microsoft Expression — Express-версии для некоммерческого использования доступны на сайте Microsoft.


Silverlight 4.0


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

Краткий список изменений

  1. Поддержка браузера Google Chrome.
  2. Поддержка веб-камеры и микрофона.
  3. Поддержка вывода на печать.
  4. Улучшена поддержка мыши. В частности добавлена поддержка правой кнопки.
  5. Поддержка показа оповещений.
  6. Новые и улучшенные контролы, такие как RichTextBox и улучшеный DataGrid.
  7. Поддержка неявного задания тем для контролов.
  8. Поддержка встроенного в систему браузера для показа HTML внутри Silverlight, но пока только для оффлайн-приложений.
  9. Улучшения слоя WCF.
  10. Улучшения при локализации двунаправленного текста.
  11. Поддержка Managed Extensibility Framework.
  12. Улучшения поддержки связывания данных (data binding).
  13. Улучшения эффектов анимации.
  14. Поддержка буфера обмена и drag&drop.
  15. Улучшения производительности Deep Zoom.
  16. Сервисы WCF Rich Internet application (RIA).
  17. Защита H.264 контента и поддержка проигрывания контента, защищённого DRM, в режиме offline.

Также для приложений запущенных вне браузера и явно получивших статус доверенных (trusted):

  1. Полый доступ к клавиатуре при работе в полноэкранном режиме.
  2. Программный доступ к локальной папке с документами пользователя.
  3. Поддержка локальных COM-объектов.

Silverlight 5


2 декабря 2010 года на конференции Silverlight Firestarter вице-президент подразделения Microsoft Developer Division Скотт Гатри (англ. Scott Guthrie) анонсировал выход бета-версии Silverlight 5 в первой половине 2011 года. Финальная версия планируется к выходу в конце 2011 года.

Краткий список изменений

Новые возможности Silverlight 5 включают в себя:

  1. поддержка ускорения декодирования видео при помощи ГПУ
  2. изменяемая скорость воспроизведения медиаконтента с автоматической коррекцией звука
  3. улучшенное энергосбережение
  4. встроенная поддержка удаленного управления
  5. поддержка ускорения запуска приложений
  6. поддержка 64-битных браузеров
  7. поддержка автоматизированного тестирования пользовательского интерфейса приложений (в Visual Studio 2010)
  8. улучшенная четкость текста
  9. поддержка отладки выражений, привязанных к данным, возможна установка точек останова на привязках

Совместимость с операционными системами и браузерами


Opera получит официальную поддержку в следующих версиях. Silverlight уже поддерживает Opera неофициально, с помощью хака.

Для ОС Linux, функциональность будет доступна через Moonlight. Moonlight будет доступен для основных дистрибутивов и поддерживать браузеры Firefox, Konqueror, и Opera. Мигель де Икаса также выразил заинтересованность в работе с разработчиками других операционных систем (BSD, Solaris) и браузеров (Konqueror, WebKit и Opera) чтобы добиться хорошей работы своего плагина на них.

Silverlight for Mobile будет использоваться для того, чтобы сделать доступным Silverlight-приложения на мобильных устройствах. На Silverlight.net было заявлено, что первый CTP для Windows Mobile 6 будет выпущен во втором квартале 2008 года. Nokia объявила о планах выпуска Silverlight for Mobile на S60 для Symbian OS, а также для устройств на Series 40 и Nokia Internet tablets. Silverlight for Mobile изначально будет поддерживать Silverlight 1.0.

Silverlight требует x86-процессор с поддержкой SSE. Поддерживаются процессоры Intel Pentium III и выше, и AMD Athlon XP и выше. Некоторые модели AMD Duron тоже поддерживаются.

Также рассматриваются и другие платформы.


Пример Silverlight приложения


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

Объектно-ориентированная модель программного комплекса, классы и методы для создания обучающей системы алгоритма шифрования Blowfish были разработаны с помощью среды разработки Microsoft Visual Web Developer 2010 Express.

Для реализации приложения был выбран язык C#. Так как целью созданного приложения не является оптимизация и быстродействие, язык C# является оптимальным решением. Он предоставляет удобное взаимодействие c пользователем c помощью GUI, а также наборы библиотек для удобного представления данных.

Визуальный интерфейс реализован с помощью среды Microsoft Expression Blend 4.0, предназначенной для разработки дизайна web интерфейсов и графических настольных приложений. Интерфейс создан на языке разметки XAML.

Приложение создано по технологии Microsoft Silverlight 3.0, что позволяет создавать насыщенные анимацией, векторной графикой, аудио -видео роликами web-приложения.

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

В ходе реализации приложения была создана оболочка для обучающей системы алгоритма Blowfish. Главное окно программы отображено на рисунке 3.1.



Рисунок 3.1 – Главное окно приложения


Вверху главного окна находится управляющая панель, где расположены кнопки навигации по всей обучающей системе. При нажатии на кнопку «Теория по алгоритму Blowfish», пользователь переходит на страницу теоретического материала (ри. 3.2), при выборе кнопки «Анимация алгоритма шифрования Blowfish» пользователь сможет просмотреть пошаговую анимацию алгоритма шифрования Blowfish (рис. 3.3), при нажатии на кнопку «Шифрование и дешифрование данных» пользователь получит возможность зашифровывать и расшифровывать данные и просматривать результаты этих операций (рис. 3.4).



Рисунок 3.2 – Страница теоретического материала




Рисунок 3.3 – Анимация алгоритма шифрования Blowfish




Рисунок 3.4 – Шифрование и дешифрование данных


Приложение реализует обучающую систему алгоритма Blowfish. При разработке системы были выделены следующие классы: App – класс отвечающий за запуск проекта, MainPage – класс отвечающий за визуализацию обучающей системы, blf_ctx – класс содержащий P-массив и массив S-блоков, Blowfish – класс реализующий шифрование и дешифрование,а также генерацию подключей алгоритма Blowfish.

Класс App содержит следующие методы:

  • - App() – конструктор;
  • - Application_Exit – выход из приложения;
  • - Application_Startup – запуск приложения;
  • - Application_UnhandledException – перехват необработанных исключений приложения.

Класс MainPage содержит следующие методы:

  • - ByteToString – перевод массива байтов в строку;
  • - StringToByte – перевод строки в массив байт;
  • - методы всех реализованных событий визуальных элементов управления (BackToMenu_Click, Button_ClickStop, Cipher_Click, ClearAll_Click, Decipher_Click, GenerateKey_Click, ShowAnimate_Click, crypt_Click, Theory_Click, GoFromCrypt_Click, Slider1_ValueChanged, GoFromAnimateButton_Click, Button_Click, i1_MouseMove, i2_MouseMove, i3_MouseMove, i4_MouseMove, i5_MouseMove, i6_MouseMove, i7_MouseMove, i8_MouseMove, i9_MouseMove, i10_MouseMove, i11_MouseMove, i12_MouseMove).

Класс Blowfish включает в себя такие методы:

  • - b2d – свертка слова по 4-м байтам;
  • - d2b – развертка слова по 4-м байтам;
  • - Blowfish – инициализация данных и генерация подключей;
  • - decipher – расшифрование;
  • - encipher – шифрование;
  • - F – функция в сети Фейстеля;
  • - padding – выравнивание длины сообщения до длины, кратно 64 битам.

Класс blf_ctx содержит только P-массив, четыре S-блока и конструктор для инициализации этих переменных.

Диаграмма классов приложения представлена на рисунке 3.5.



Рисунок 3.5 – Диаграмма классов приложения


Интерфейс приложения реализован в XAML-файле разметки: использованы элементы управления и анимация:

скачать XAML-файл интерфейса приложения

Взаимодействие интерфейса с основными функциями приложения и активизация элементов управления реализованы в файле MainPage.xaml.cs

скачать файл MainPage.xaml.cs

Реализация алгоритма шифрования и дешифрования Blowfish описана в файле BlowFishClass.cs

скачать файл реализации алгоритма BlowFish


Выводы


Silverlight является следующим шагом в направлении к улучшению взаимодествия с пользователем через Веб. Цель Silverlight - обеспечить в Веб-прилоениях точность отображения и качество пользовательского интерфейса (UI) доступное в настольных приложениях, позволяя Веб-разработчикам и дизайнерам реализовывать в создаваемых решениях особые требования заказчиков. Silverlight заполняет технологический вакуум между дизайнерами и разработчиками, предоставляя им общий формат для работы. Этот формат обрабатывается браузером и основывается на XML, что упрощает создание шаблонов и автоматическое формирование представления. Таким форматом является XAML - Extensible Application Markup Language (расширяемый язык разметки приложений).

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


Список литературы


  1. Описание технологии Silverlight [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/Silverlight.html
  2. Обучающий портал по технологиям Microsoft [Электронный ресурс]. - Режим доступа: http://TechDays.ru
  3. Лоуренс Морони. Введение в Microsoft Silverlight 2. — 2-е изд. — R.: Microsoft Press, 2008. — 280 с.
  4. Мэтью Мак-Дональд. Silverlight 3 с примерами на C# для профессионалов = Pro Silverlight 3 in C#. — 3-е изд. — М.: Вильямс, 2010. — 656 с.