Silverlight 2: точка отсчета

20 январь, 2009 - 11:35Вячеслав Колдовский

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

Silverlight 2 точка отсчета
NBCOlympics.com – медиапортал с впечатляющими показателями посещаемости, наиболее наглядная демонстрация потенциала технологии Silverlight

Silverlight – технология, выпущенная Microsoft в качестве конкурента Adobe Flash, является достаточно молодой даже по меркам ИT-индустрии: со времени релиза первой версии прошло чуть больше года. Тем не менее, по утверждениям самой Microsoft (которые, впрочем, непросто проверить), в настоящее время на каждом четвертом сетевом компьютере установлен подключаемый модуль с поддержкой Silverlight. Как наиболее успешный пример применения данной технологии приводится сайт, освещающий события Пекинской олимпиады, созданный компанией NBC Universal, – на нем было зафиксировано свыше 50 млн уникальных посетителей, открывших более 1,3 млрд страниц, общая длительность просмотренного потокового видео на базе Silverlight превысила 10 млн часов, а такой немаловажный показатель, как средняя продолжительность пребывания на сайте, приблизился к 27 мин. Конечно, все эти цифры пока еще не позволяют говорить о том, что популярность Silverlight хотя бы сравнима с Flash (распространенность которой экспертами оценивается во впечатляющие 98%), однако вполне очевидно, что технология весьма активно набирает обороты.

Итак, в октябре нынешнего года Microsoft заявила о выпуске Silverlight 2.0, которая ранее анонсировалась под номером 1.1, но впоследствии была выделена в отдельную «мажорную» версию из-за большого объема нововведений. Напомним, что самой неоднозначной особенностью Silverlight 1.0 было отсутствие поддержки .NET Framework, о которой заявляли руководители корпорации еще во время первого публичного представления данной технологии под названием Windows Presentation Foundation/Everywhere (WPF/E) на конференции PDC в уже относительно далеком 2005 г.. Это очень принципиальный момент, поскольку именно на базе .NET предполагалось обеспечить кросс-платформенную разработку для Silverlight. В Silverlight 2.0 такая поддержка наконец-то реализована.

Технологии

Silverlight 2 точка отсчета
Демонстрация возможностей DeepZoom: фотография на изображении слева вверху при отдалении оказывается всего лишь одной из шестнадцати миниатюр, наклеенных на конверт (справа вверху), если продолжить масштабировать изображение, то видно, что конверт окружен другими предметами (слева внизу), а далее – совершенно теряется среди них (справа внизу)

На нынешнем этапе Silverlight 2.0 все так же представлена в виде подключаемого модуля (доступного на сайте silverlight.net) размером 4,7 МБ для браузеров Internet Explorer, Firefox, Safari, выполняющихся на платформах Windows и Mac OS. Формально модуль также функционирует в Opera и Chrome, однако официально они не поддерживаются. Для ОС Linux существует отдельный проект Moonlight (ko-online.com.ua/39813), в настоящее время предоставляющий возможности только Silverlight 1.0. Кроме того, сфера применения Silverlight не ограничивается настольными платформами – сейчас она уже охватывает Windows Mobile, а в скором времени, благодаря сотрудничеству с Nokia, распространится и на Symbian.

Поддержка .NET реализована за счет того, что Silverlight 2.0 содержит свою собственную среду исполнения CLR (Common Language Runtime), приближенную к «настольному» варианту .NET Framework 3.0. C одной стороны, это подразумевает отсутствие принципиальных отличий при разработке Silverlight- и .NET-приложений, скажем в выборе языка. Но с другой – в Silverlight 2.0 доступна лишь сравнительно небольшая часть библиотеки классов .NET Framework (в основном лишь наиболее важные составляющие пространства имен System) – это сделано в угоду компактности и кросс-платформенности. Так или иначе, но существующую программу для настольной платформы скорее всего не удастся просто перекомпилировать для Silverlight, наверняка потребуется адаптация, по крайней мере, в части исключения специфики для Windows. В то же время некоторые весьма интересные возможности, появившиеся только в .NET 3.5 (вроде LINQ), уже есть в Silverlight 2.0.

Стоит также отметить, что и в Silverlight 2.0 присутствуют некоторые классы, которых нет в настольной версии .NET. Например, пространство имен System.Windows.Browser является уникальным и предназначено для обеспечения взаимодействия Silverlight-приложений с браузером, выполняющим роль хоста. Разумеется, разработчик вправе включать дополнительные библиотеки классов в свои приложения и распространять их вместе с ними, а некоторые из них уже доступны в составе свободно распространяемого SDK.

Среди других нововведений Silverlight 2.0 следует отметить существенно усовершенствованные возможности для построения интерфейсов, в частности появление новых элементов управления – DataGrid, ListBox, Slider, ScrollViewer, Calendar (общее их число уже составляет три десятка), а также поддержку сменных оформлений и шаблонов. В данном направлении Silverlight 2.0 приблизилась к технологии WPF, что, учитывая общие язык для описания интерфейсов XAML и графические инструменты их разработки на основе Expression Studio, позволяет в значительной степени унифицировать работу.

Среди наиболее впечатляющих визуальных возможностей Silverlight 2.0 следует выделить поддержку DeepZoom – технологии, которая позволяет просматривать в браузере изображения в гигантских разрешениях, занимающих в оригинале сотни мегабайтов. Например, на популярном сайте Hard Rock Cafe с применением этой технологии реализован раздел Memorabilia, в котором на одном громадном полотне размещены изображения нескольких сотен памятных предметов, писем и документов от знаменитостей. С помощью DeepZoom это полотно можно рассматривать, изучая каждый объект в мельчайших деталях, вплоть до царапин на гитарах или штемпелей на марках писем.

Silverlight 2.0 также обеспечивает расширенную поддержку сетевых технологий, в частности REST, WS*/SOAP, POX, RSS и стандартных HTTP-сервисов, что позволяет создавать приложения, которые могут быть тесно интегрированы с серверными решениями. Среди ограничений сетевой функциональности платформы отметим лишь невозможность обрабатывать входящие соединения, что сделано в целях обеспечения безопасности.

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

Разработка для Silverlight 2

Silverlight 2 точка отсчета
eclipse4SL – полноценная открытая кросс-платформенная IDE для Silverlight на основе Eclipse

В качестве основного инструмента для Silverlight 2.0 выступает, естественно, среда Visual Studio 2008, для которой доступно расширение Silverlight Tools, включающее отладочную среду исполнения, шаблоны проектов, генераторы кода и поддержку IntelliSense, режим предварительного просмотра XAML-кода, интеграцию с Expression Blend и даже удаленную отладку для Mac OS, а также примеры и документацию. Примечательно, что данное расширение подходит не только к коммерческим редакциям Visual Studio, но и к бесплатной Visual Web Developer 2008 Express.

Помимо прочего, объявляя о выходе Silverlight 2.0, Microsoft удивила общественность заявлением об активных работах над соответствующим инструментальным расширением для популярной кросс-платформенной IDE Eclipse. Роль непосредственного исполнителя при этом выполняет французская компания Soyatec, входящая в состав Eclipse Foundation и известная своим участием в работе над этой открытой IDE. Проект eclipse4SL позволит создавать Silverlight-проекты, полностью совместимые с проектами Visual Studio, и обеспечит многие возможности, характерные для IDE от самой Microsoft, оставшись при этом настоящим не только кросс-платформенным, но и Open Source решением.

При желании разработчику можно обойтись и без IDE – набор всех необходимых компонентов для сборки Silverlight-приложения доступен в составе SDK, который можно загрузить и установить независимо от Silverlight Tools. К тому же элементы управления Silverlight вынесены в отдельный Open Source проект, размещенный на сайте CodePlex.com, а некоторые спецификации технологии, в частности языка XAML, доступны в рамках инициативы Microsoft Open Specification Promise – это может заинтересовать компании, рассматривающие возможность создания своих дополнительных элементов управления или даже собственной IDE для Silverlight.

Если говорить о поддерживаемых языках программирования, то помимо JavaScript, доступного в первой версии, и традиционных языков .NET Framework, таких как C# и Visual Basic, в Silverlight 2.0 также могут применяться IronRuby и IronPython, что позволяет рассматривать ее как полноценную многоязыковую платформу, обеспечивающую в этом отношении те же преимущества, что и .NET Framework. Реализация управляемого JavaScript автоматически компилируется перед непосредственным исполнением, что, по утверждениям Microsoft, позволяет программному коду исполняться в 250 раз быстрее по сравнению с традиционной интерпретацией в браузере.

Для создания графических элементов Silverlight-приложений Microsoft предлагает Expression Studio 2, разработка интерфейса из готовых элементов управления возложена на входящее в этот пакет приложение Expression Blend, обновленная версия которого увидела свет одновременно с выходом Silverlight 2.0.

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

Silverlight 2 точка отсчета
FireLocator.net – сервис для поиска лесных пожаров, реализованный на технологиях Silverlight 2.0 и Microsoft Virtual Earth, позволяет загружать контекстные фотографии c Flickr

К моменту выхода Silverlight 2.0 достаточно большое число сайтов уже поддерживали данную технологию, поскольку пригодная к использованию бета-версия была доступна продолжительное время. Помимо упомянутых Hard Rock Cafe и NBCOlympics.com, следует отметить сайт FireLocator.net, разработанный Pitney Bowes и предназначенный для поиска лесных пожаров. Но особой популярностью Silverlight пользуется у компаний, работающих с медиаданными, например, проект MyShowRoom.tv позволяет создавать и транслировать собственные видеошоу. Заинтересовала технология также разработчиков компьютерных игр, и, что похвально, не только из дальнего зарубежья. Примерами могут служить bibigosha.ru от TVX-Media и Alien Love Ship от KOAN Games.

Предсказуемо, что немаловажную роль в популяризации технологии сыграла сама Microsoft – даже если не принимать во внимание вполне ожидаемый перевод потокового видео на сайтах компании с Flash на Silverlight, то в числе наиболее интересных примеров можно назвать обновленный Microsoft Download Center, а также реализацию рабочего стола Windows Live Mesh.

На последнем следует остановиться подробнее: хотя фактически в этом случае Silverlight-приложения будут исполняться на локальном компьютере, данные, которые они используют, могут быть синхронизованы посредством Live Mesh с удаленным хранилищем и любым другим устройством, подключенным к соответствующей учетной записи. Таким образом, служба синхронизации отвечает за то, чтобы приложения работали с одними и теми же данными независимо от того, на каком именно устройстве они исполняются физически. Технически реализация такой возможности потребовала использования недавно анонсированной Microsoft Windows Azure (API разработки для Live Mesh выступает в качестве ее составных сервисов), а также реализации еще одной интересной возможности – поддержки исполнения Silverlight-приложений на рабочем столе Windows-ПК, в том числе и при отсутствии подключение к Сети – все это выводит Silverlight 2.0 в прямые конкуренты не только Flash, но и платформам AIR и Google Gears.

Заключение

Не успела выйти вторая версия Silverlight, как уже начались разговоры о ее преемнике. Пока что о Silverlight 3 известно мало: ожидается, что увеличится число поддерживаемых браузеров и платформ, а также воспроизводимых медиаформатов, планируется дальнейшее совершенствование средств разработки и возможностей интеграции с различными продуктами и сервисами. Но очень вероятно, что Microsoft не намерена сбавлять темп, и очередная версия не заставит себя долго ждать.

В целом же, на примере Silverlight мы видим, как редмондская корпорация, используя свои неисчерпаемые возможности, энергично выходит на рынок, который вовсе нельзя назвать свободным от конкурентов, и без лишних церемоний просит их «потесниться». Внешне это может выглядеть достаточно прозаично, но за кадром остается титанический труд разработчиков, интенсивная работа с партнерами, активная маркетинговая деятельность и готовность преодолевать препятствия. Скотт Гатри (Scott Guthrie), корпоративный вице-президент Microsoft и руководитель проекта Silverlight, в одном из интервью признался, что создание сайта NBCOlympics.com было настоящим вызовом для его команды и самой технологии. За право онлайн-трансляции олимпиады компания NBC Universal заплатила 1 млрд долл., и реализация этого проекта на основе технологии Silverlight была бы хорошей возможностью продемонстрировать ее потенциал. Однако ко времени начала работ над сайтом не было ни одного реализованного проекта с сопоставимой нагрузкой. Поэтому, хотя созданием сайта занималась команда разработчиков компании NBC Universal, специалисты из Microsoft обеспечили им всемерную поддержку и все необходимые консультации.

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

Сайт автора: koldovsky.com