Опубликован: 04.05.2010 | Доступ: свободный | Студентов: 4196 / 555 | Оценка: 4.64 / 4.44 | Длительность: 41:24:00
Лекция 12:

Rich Internet application

16.2.1.3. Adobe Air

Adobe AIR (Adobe Integrated Runtime) позволяет запускать веб-приложения на Рабочем столе персонального компьютера [5]. Это могут быть приложения как на базе HTML, так и на базе Flash-платформы с возможностью просмотра PDF-документов. Таким образом, веб-разработчики могут создавать настольные приложения, используя уже существующие навыки. Adobe AIR предоставляет ряд возможностей по интеграции с операционной системой: окна, доступ к файловой системе, защищенное локальное хранилище, локальную базу данных и технологию перетаскивания объектов (drag-n-drop). AIR-приложения могут устанавливаться прямо из Интернета.

Приложения, написанные с использованием AIR, могут быть запущены на нескольких платформах, для которых Adobe поставляет среду выполнения, а именно [12]: Microsoft Windows NT (XP, Vista, Windows 7), Mac OS X (PowerPC и Intel), GNU/Linux (только для 32-хбитных процессоров x86).

В связи с кросс-платформенностью отсутствует прямой доступ к API, существующим только для некоторых из этих платформ.

Архитектура платформы Air представлена на рис. 16.10 [10].

Архитектура платформы Air

увеличить изображение
Рис. 16.10. Архитектура платформы Air

Основными преимуществами технологии Air являются [4]:

  • используя AIR, можно легко перенести готовое HTML или Adobe Flex приложение на компьютер пользователя;
  • приложения имеют доступ к файловой системе, буферу обмена, имеется поддержка нескольких окон, технологии drag-and-drop.

Основными недостатками технологии Air являются [4]:

  • ограниченный доступ к SQLite и веб-сервисам;
  • приложения, написанные на AIR, являются однопоточными;
  • это проприетарное программное обеспечение, приложения, написанные на AIR, зависят от среды выполнения Adobe.

16.2.2. Ajax

Ajax представляет собой смесь технологий, в основе которых лежат язык JavaScript и объект XMLHttpRequest [5]. Благодаря этому приложения могут получать данные с сервера и отображать их без перезагрузки страницы. Формально Ajax не является RIA -технологией, так как не интегрирует в себе медиа-возможности, не обладает стандартными средствами прорисовки векторной графики, а JavaScript по-разному исполняется в различных браузерах.

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

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

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

Основными преимуществами технологии Ajax являются [4]:

  • есть в любом браузере;
  • прост в освоении;
  • быстрый цикл разработки;
  • развитый инструментарий;
  • развитое сообщество.

Основными недостатками технологии Ajax являются [4]:

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

16.2.3. Технологии Microsoft

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

16.2.3.1. ActiveX

Технология ActiveX – средство, при помощи которой Internet Explorer (IE) использует другие приложения внутри себя [13]. С помощью ActiveX IE загружает Windows Media Player, Flash, Quicktime и другие приложения, которые могут воспроизводить файлы, внедренные в веб-страницы. Элементы управления ActiveX активизируются при щелчке по такому объекту на веб-странице, например, WMV-файлу, чтобы загрузить его для отображения в окне браузера Internet Explorer.

Являясь продуктом Microsoft, ActiveX была специально спроектирована для работы с системами Windows. ActiveX не поддерживается другими операционными системами, такими как Mac или Linux.

Firefox и другие кросс-платформенные браузеры используют систему Программный интерфейс подключаемых модулей Netscape (Netscape Plugin Application Programming Interface, NPAPI)). NPAPI выполняет функции, подобные таковым из ActiveX.

Управляющие элементы ActiveX – эквивалент подключаемых модулей NPAPI. Однако ActiveX и технология подключаемых модулей имеют отличия. В то время как с помощью надстройки ActiveX можно нанести вред компьютеру, подключаемые модули по своему существу имеют лучшие функции безопасности. Они имеют меньше контроля над веб-страницей, в которую они внедрены, и не могут использоваться в приложениях, отличных от веб-браузера. ActiveX имеет более широкое применение для большего числа приложений

Как технология для RIA технология ActiveX обладает рядом серьезных недостатков [4]:

  • платформа только IE и Windows;
  • нетривиален в разработке и отладке;
  • большой период освоения технологии;
  • имеются некоторые проблемы с безопасностью.

Основное достоинство технологии ActiveX для RIA [4]:

  • исполняется native-код.
16.2.3.2. Технология WPF

Windows Presentation Foundation (WPF, кодовое название – Avalon) – графическая (презентационная) подсистема в составе .NET Framework 3.0, имеющая прямое отношение к XAML (Extensible Application Markup Language) [14]. WPF вместе с .NET Framework 3.0 предустановленна в Windows Vista и Windows 7, а также доступна для установки в Windows XP SP2 и Windows Server 2003 и 2008.

Это первое реальное обновление технологической среды пользовательского интерфейса со времени выпуска Windows 95. Оно включает новое ядро, которое призвано заменить GDI и GDI+, используемые в нынешней Windows-платформе. WPF представляет собой высокоуровневый объектно-ориентированный функциональный слой (framework), позволяющий создавать 2D- и 3D-интерфейсы. В будущем WPF должен объединить Windows и Web-разработку (в том числе AJAX). WPF для отрисовки использует не GDI+, а DirectX. Также WPF поддерживает темы и нестандартные для WinForms контролы. Производительность WPF выше, чем у GDI+ за счет использования видеокарты.

WPF в составе .NET Framework изображено на рис. 16.11 [15].

Состав .NET Framework

Рис. 16.11. Состав .NET Framework

После появления Microsoft .NET Framework 3.0, а в частности WPF, разрешилась проблема дизайна приложений [16]. В данном случае дизайнер может взять на себя роль программиста и описать необходимый ему интерфейс на простом и доступном языке XAML. При этом одновременно решается 2 задачи:

  1. разгрузка программиста от процесса "рисования форм" – теперь ему не надо заботиться о внешнем виде программы, об этом позаботится дизайнер;
  2. отделение данных от их представления – это означает, что в любой момент можно сменить внешний вид программы, при этом, не затрагивая логику работы.

Также благодаря уже написанным расширениям для популярных графических редакторов, возможен прямой экспорт из программ в файл xaml. Уже есть плагины для таких программ как: Blender, Maya, Adobe Fireworks, LightWave, Adobe Illustrator. Есть и готовые решения для работы с XAML: Microsoft Expression Blend, Microsoft Expression Design, Aurora [17].

Основа WPF – это независимый от разрешения экрана и основанный на векторной графике механизм отрисовки, который был построен для использования всех преимуществ современного графического оборудования [18]. WPF расширяет эту основу исчерпывающим набором средств разработки приложений, включающих язык XAML, элементы управления, привязку данных, структуру, графику двухмерный и трехмерный, анимацию, стили, шаблоны, документы, мультимедиа, текст и типографию.

16.2.3.3. Технология Silverlight

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

Также Silverlight – это плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA ( Rich Internet application ) [19]. Версия 2.0, выпущенная в октябре 2008, добавила поддержку для языков .NET и интеграцию с IDE. 10 июля 2009 года Microsoft выпустила Silverlight 3, а на данный момент готовится к выходу Silverlight 4.

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

Silverlight поддерживает воспроизведение WMV, WMA и MP3 для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player.

Silverlight позволяет динамически загружать XML и использовать DOM для взаимодействия с ним так же, как это делается в Ajax. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа-файлы и т. д., если это необходимо приложению. Начиная с версии 2.0, логика программы может быть описана в любом из языков .NET, включая динамические языки программирования, такие как Iron Ruby и Iron Python, которые в свою очередь исполняются в DLR (Dynamic Library Runtime) , а не CLR (Common Language Runtime).

Silverlight 1.0

Первая бета-версия Silverlight была выпущена в декабре 2006 года. Microsoft рассчитывала выпустить стабильную версию в середине 2007 года. Ходили слухи, что в Microsoft планируется частичное открытие исходного кода Silverlight, однако они были опровергнуты. Тем не менее, часть Dynamic Language Runtime включенная в Silverlight, доступна на портале Microsoft для хостинга открытых и проприетарных проектов CodePlex под Microsoft Permissive License.

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

Архитектура Silverlight 1.0 представлена на рис. 16.12.

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

Рис. 16.12. Архитектура Silverlight 1.0

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

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

Участники проекта Mono 16 мая 2008 года выпустили реализацию плагина Silverlight на базе открытого ПО, работающую на Linux – Moonlight, однако ни открытым, ни свободным ПО она считаться не может, так как разрешение на использование патентов предоставляется только получателям кода от Novell, и только для создания плагинов. Moonlight 2.0 находится в состоянии Preview 3.