`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Microsoft Silverlight: новая платформа для Web-приложений

Статья опубликована в №19 (587) от 22 мая

0 
 

Технология Silverlight, изначально анонсированная под названием WPF/E (Windows Presentation Foundation/Everywhere), призвана укрепить позиции Microsoft на рынке инструментальных средств для создания интерактивных медиа- и Web-приложений с развитым пользовательским интерфейсом. Даже первый ее релиз обещает возможности, невиданные в существующих решениях данного класса.

Microsoft Silverlight новая платформа для Web-приложений
Silverlight Airlines – доступный в исходных кодах пример использования новой платформы

Впервые технологию WPF/E анонсировали на конференции разработчиков PDC в сентябре 2005 г., тогда она, наряду с Atlas (ныне ASP.NET AJAX), была подана как развитая платформа для создания клиентской составляющей Web-приложений, основанная на XAML и JavaScript, обладающая частичной совместимостью с WPF. Вновь о ней, но уже под новым именем Silverlight, мир заговорил после эффектного представления на NAB 2007 и уже в новом качестве – как платформы для построения медиаприложений с интерактивными возможностями (как у Adobe Flash) и поддержкой потоковой передачи контента (как у Apple QuickTime). Уже сам факт демонстрации Silverlight на конференции, посвященной перспективным технологиям вещания, говорит о том, какую роль отводит ей Microsoft.

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

Однако прежде чем более подробно познакомиться с Silverlight, следует обратить внимание на одну важную особенность: в настоящее время публично доступны две версии платформы – 1.0 и 1.1 (первая находится на стадии бета-тестирования и распространяется по лицензии «Go Live», предусматривающей коммерческое использование, вторая – лишь на стадии альфа-тестирования). При этом по своим функциям они различаются довольно сильно – если не вдаваться в малозначимые детали, то Silverlight 1.1 поддерживает подмножество функций .NET Framework со всеми вытекающими из этого дополнительными преимуществами.

В этом смысле Silverlight 1.0 выглядит несколько «неполноценно», поскольку сама Microsoft называет поддержку .NET одним из главных козырей технологии. Кроме того, разработка Silverlight 1.1 также явно близится к завершению, и публично доступная альфа-версия демонстрирует достаточную стабильность и уверенно работает с заявленными браузерами. Именно по этой причине большинство примеров в Сети предусматривают использование версии 1.1, число ориентированных на 1.0 – гораздо меньше. Видимо, Microsoft несколько поспешила с представлением Silverlight широкой публике, но оплошность вскоре была обнаружена, и доводка версии 1.1 идет рекордными темпами – вероятно, временной разрыв между двумя релизами будет совсем небольшим, и в реальных проектах станет сразу использоваться 1.1, возможности которого мы и рассмотрим в рамках данной публикации.

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

Microsoft Silverlight новая платформа для Web-приложений
Архитектура Silverlight основана на максимальном использовании знакомых .NET-разработчикам технологий

Архитектурно Silverlight представляет собой кросс-платформенный подключаемый модуль для браузера (заявлена поддержка различных программ для Windows и Mac OS X – IE 6 и 7, Firefox 1.5 и 2.0, Safari 2.0), состоящий из двух основных частей:

  • ядро представления (Core Presentation Framework) – компоненты и службы, формирующие интерфейс и организующие взаимодействие с пользователем с помощью легковесных графических элементов, поддерживающие проигрывание медиафайлов, в том числе и с DRM-защитой, визуализирующие текст, графику (двухмерную векторную в различных форматах) и анимацию. Также реализует DOM API для доступа к элементам Silverlight посредством JavaScript из Web-страниц и подмножество XAML для описания интерфейса;
  • .NET Framework for Silverlight – подмножество универсальной платформы, включающее компоненты и библиотеки, графические элементы, механизмы управления данными и сетью, базовую библиотеку классов, поддерживающее динамическую компиляцию и CLR.

В совокупности две части превращают Silverlight в мощную и гибкую платформу для создания Web-приложений с развитым пользовательским интерфейсом, лишенную ряда недостатков, свойственных, скажем, AJAX (вроде неполной совместимости с браузерами), и в то же время позволяющую максимально задействовать опыт и навыки нынешних .NET-разработчиков, которые смогут применять стандартные инструменты и средства .NET Framework, чем не может похвастать Flash.

Таблица 1. Ключевые возможности Silverlight 1.0 и 1.1
Возможности Silverlight 1.0 Beta Silverlight 1.1 Alpha
Двухмерная векторная графика/анимация + +
Поддержка AJAX + +
Поддержка различных браузеров и платформ + +
Поддержка JavaScript + +
Интеграция с HTML DOM + +
Поддержка HD Video (720p) + +
Транслятор XML + +
Элементы управления Silverlight for ASP.NET (asp:media, asp:xaml) + +
Поддержка DRM - +
Поддержка подмножества .NET Framework - +
Изолированное хранилище данных - +
Поддержка JSON - +
Поддержка LINQ - +
Поддержка языков программирования .NET (VB, C#, IronRuby, IronPython) - +
Расширенная безопасность - +
Контроль безопасности типов данных - +
Поддержка XMLReader/Writer - +

Поскольку Silverlight-приложения исполняются полностью на клиентской машине, то конкретный тип используемого Web-сервера для них не имеет значения – помимо IIS, это может быть, к примеру, и Apache. Однако Microsoft, естественно, приложила максимум усилий для интеграции Silverlight именно с собственными решениями, и применение IIS представляется наиболее предпочтительным. В частности, специально для взаимодействия с Silverlight платформа ASP.NET была расширена двумя дополнительными элементами управления: ASP.NET Media Control и ASP.NET XAML Control – первый позволяет внедрять в Web-приложения медиаисточники (.WMV, .WMA, .MP3), а второй – использовать XAML и поддерживающий его код. К тому же Silverlight можно сочетать с ASP.NET AJAX.

О графических возможностях Silverlight следует упомянуть особо: так же, как и полноценная WPF, данная технология основана на векторной графике и обладает богатым набором функций и визуальных спецэффектов (трансформация, масштабирование, анимация и пр.). Среди наиболее интересных «трюков» можно выделить произвольное изменение окна видеопроигрывателя, в котором исполняется видеофайл. При этом, однако, Silverlight гораздо менее требовательна к ресурсам, чем, к примеру, Windows Vista с интерфейсом Aero.

Разработка для платформы Silverlight

Для создания решений на платформе Silverlight Microsoft предлагает два основных инструмента:

  • Microsoft Expression Blend ориентирован на визуальную работу, позволяет создавать GUI, основанный на XAML, как для «настольных» приложений, применяющих все средства WPF, так и для Silverlight-программ, использующих только их подмножество. В настоящее время доступна предварительная версия, которая поддерживает Silverlight на базе и JavaScript, и .NET.
  • Microsoft Visual Studio как универсальный пакет позволяет создавать Silverlight-решения на основе управляемого кода для подмножества платформы .NET Framework. Сегодня эта функциональность доступна в первой бета-версии Visual Studio «Orcas» (придется дополнительно установить Silverlight SDK 1.1 Alpha), финальный релиз которой планируется к концу года.
Microsoft Silverlight новая платформа для Web-приложений
Microsoft Expression Blend – мощный универсальный инструмент для создания графического интерфейса на основе XAML
Microsoft Silverlight новая платформа для Web-приложений
Silverlight обещает уже к моменту своего релиза сформировать зрелую экосистему инструментов и сопутствующих технологий

Использование .NET для создания Silverlight-программ является более выгодным, но необязательным – ядро представления можно программировать и исключительно на JavaScript. Достаточно еще раз вспомнить, что Silverlight 1.0 вовсе не поддерживает .NET и не требует Visual Studio, тем не менее разработчики получат все те же богатые возможности по построению насыщенных графикой и визуальными спецэффектами Web-приложений.

Один из наиболее привлекательных сценариев использования Silverlight заключается в возможности разделения GUI и программной логики. Выглядеть это может следующим образом. Посредством Expression Blend создается шаблон пользовательского интерфейса приложения и экспортируется в XAML. При завершении Web-приложения в Visual Studio разработчик подключает к шаблону нужные данные, которые и будут переданы клиенту для визуализации. Это позволяет, с одной стороны, сосредоточиться на разработке серверного кода и не заботиться о клиентской составляющей, что ближе к традиционному программированию тонкого клиента, и в то же время обеспечить развитый пользовательский интерфейс, который в настоящее время можно создать только средствами AJAX, Flash и Java (в явном виде не разграничивающими интерфейсную часть и логику).

Сравнение с Adobe Flash/Flex

Из вышесказанного следует, что Adobe Flash – далеко не единственный конкурент Silverlight, однако очевидно, что первой под удар Microsoft попадет именно эта технология.

После приобретения Macromedia корпорация Adobe приложила максимум усилий для того, чтобы Flash перестала быть просто средством демонстрации интерактивной анимации и стала полноценной платформой для создания Web-приложений с развитым GUI. На самом деле попытку такой смены приоритетов предприняла еще Macromedia, выпустив в 2004 г. Flex – SDK для создания приложений на Flash. Однако только с выходом Flex 2 (в 2006 г. уже по эгидой Adobe) связка Flash/Flex заявила о себе всерьез. Данная среда разработки основана на популярной IDE Eclipse и использует достаточно гибкий язык программирования ActionScript 3, максимально близкий к JavaScript. А стремление корпорации продвинуть Flash за пределы браузера отражает проект Adobe Apollo, направленный на создание кросс-платформенной среды исполнения, пригодной для разработки с помощью Flex настольных приложений. В марте этого года вышла публичная альфа-версия Apollo, а релиз запланирован на вторую половину года.

Очевидно, что здесь наблюдается прямое противостояние Adobe Flash/Flex и Microsoft Silverlight, и оно постоянно усиливается в результате «симметричных» ответов конкурентов друг другу. Скажем, стоило Adobe в апреле нынешнего года объявить о намерении открыть исходный код отдельных компонентов Flex, как незамедлительно последовало аналогичное заявление Microsoft в отношении Silverlight.

Тем не менее сегодня именно Silverlight выступает в роли «догоняющего», и потому ее разработчики стараются сразу предложить потенциальной аудитории веские аргументы.

Во-первых, сильная сторона нынешней реализации Silverlight – поддержка видео высокого разрешения (кодек VC-1 и соответствующие расширения IIS для потоковой передачи), в том числе и с DRM. В этой части разработка Microsoft значительно превосходит нынешнюю реализацию Flash и даже такого традиционно сильного игрока в области потокового видео, как Apple QuickTime.

Во-вторых, Silverlight интегрируется с объектной моделью документа HTML DOM, за счет чего обеспечивается взаимодействие JavaScript-кода в основном теле HTML-страницы с элементами управления Silverlight-программы, а также JavaScript/.NET-кода Silverlight-программы с объектами HTML. Это свойство, наряду с поддержкой асинхронного исполнения, делает Silverlight столь же гибкой средой для программирования интерактивных HTML-документов, как и AJAX, и является еще одним существенным преимуществом перед Flash.

В-третьих, следует отметить, что Silverlight если и не превосходит Flash, то как минимум не уступает там, где эта платформа была традиционно сильна – в работе с векторной двухмерной графикой и анимацией. Презентованная в Windows Vista среда визуализации WPF обладает чрезвычайно развитыми графическими функциями, множество из которых перекочевало в Silverlight. Целый ряд «врожденных» преимуществ Silverlight объясняется ограничениями формата Adobe Flash, который, к примеру, поддерживает анимацию только на базе матриц трансформации и не позволяет внедрять шрифты.

Но, пожалуй, самый веский аргумент в пользу Silverlight заключается в том, что Microsoft смогла создать ее максимально совместимой с существующими технологиями. Необходимость освоения еще одной платформы со своей IDE, языком и пр. – серьезное препятствие для разработчиков, уже освоивших определенную среду. Silverlight же окажется абсолютно знакомой и понятной тем, кто программирует для .NET, и даст возможность использовать прежние инструментальные средства и навыки.

В то же время нельзя забывать, что на стороне Adobe – зрелость и распространенность технологии Flash (по оценкам экспертов, Flash-проигрыватели установлены не менее чем на 98% ПК, подключенных к Интернету). Adobe может также похвастать истинной кросс-платформенностью своего решения, поддерживаемого большим числом ОС и мобильных платформ. Следует отметить и то, что за Adobe стоит многочисленная армия дизайнеров, много лет доверяющих продуктам корпорации, а это весьма немаловажно для платформы, ориентированной на графическое представление информации.

Таблица 2. Сравнение возможностей Silverlight и платформы Flash/Flex
Возможности Silverlight Flash/Flex
Развитые возможности 2D-анимации с поддержкой аудио и видео + +
Видеокодек, соответствующий отраслевому стандарту + -
Масштабируемый видеоформат от HD (720p) до мобильных устройств + -
Редактирование и кодирование с аппаратной поддержкой + -
Поддержка XML, интеграция с HTML DOM + -
Поддержка различных стандартных языков программирования + -
Взаимодействие серверной и прикладной платформ + +
Стоимость лицензирования медиасервера (без ограничений на полосу пропускания), $ 999 4500
Поддержка DRM + -
Поддержка плей-листов на стороне клиента для рекламных сообщений + +
Размер клиента для Windows-платформы (приблизительно), MB 4 2
Поддерживаемые ОС и платформы Windows/ Mac Windows/Mac/ Linux/Mobile

Примеры решений

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

Один из самых интересных примеров – Silverlight Airlines, сполна демонстрирующий достоинства платформы при создании Web-приложений, органично сочетающих развитый пользовательский интерфейс и мощную функциональность .NET Framework.

Заключение

Хотя мы в основном рассматривали преимущества Silverlight (в конце концов, именно этой технологии посвящена статья), у читателя ни в коем случае не должно сложиться представление об однозначности нынешней ситуации. Даже если признать, что Flash/Flex в нынешнем состоянии уступает Silverlight по многим техническим параметрам, данный аргумент совсем не обязательно произведет неизгладимое впечатление на специалистов, годами использовавших прежние технологии. К тому же некоторые новшества Silverlight несколько опережают свое время. Так, даже для владельцев современных высокоскоростных интернет-каналов загрузка десятков гигабайт видео высокого разрешения (тем более в потоковом режиме) окажется не такой уж простой задачей. То же самое относится к поддержке DRM, в которой заинтересованы скорее медиакорпорации, чем разработчики и тем более потенциальные потребители соответствующего контента.

В отличие от сравнительно небольшой Macromedia, Adobe – весьма крепкий орешек даже для Microsoft, что хорошо заметно на примере противостояния форматов PDF и XPS. Поэтому мы наверняка не станем свидетелями скорой кончины технологии Flash, а это значит, что Adobe сможет принять адекватные меры и сократить техническое отставание.

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

e-mail автора:
koldovsky@koldovsky.com

0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT