10.05.2009

Flash против Silverlight: на чем остановиться?

By Muhammad Usama Alam

С выпуском SilverLight 1.0 и его последующих версий среди дизайнеров и разработчиков разгорелась дискуссия относительно того, что же выбрать: Flash или Silverlight? Silverlight испытывает трудности с захватом рынка более развитым Flash. Как бы там ни было, Silverlight удалось сохранить себя, включив некоторые функции, которые дизайнеры и разработчики хотели бы видеть во Flash.



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


Анимация

Во Flash применяется модель, базирующаяся на покадровой анимации (frame-based animation model). В покадровой анимации мы создаем объект в каждом кадре для производства анимационной последовательности. Скажем, если вы хотите создать движение на протяжении 3х секунд, вы должны высчитать количество кадров и их положение.



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




Размер файла

Во Flash применяется сжатие данных (compressed format). Сжатию подвергаются и текст и изображение, в результате размер файла относительно мал.


В Silverlight используется формат XAML, сжатие данных при этом не используется и размер файла обычно больше.



Кодирование (Scripting)

ActionScript применяется для программирования объектов Flash. ActionScript является объектно-ориентированным языком программирования с полным набором контроллеров для разработки пользвательских интерфейсов. Он может быть интегрирован с конечными технологиями, использующими другие рабочие среды и языки, такие как PHP, ASP и Ruby on Rails. Они поставляются с огромными, мощными библиотеками классов для разработки он-лайн приложений, основанных на браузерах, а так же для стационарных десктоп приложений.




Для кодирования в Silverlight вы можете выбрать из ряда языков программирования Visual C#.Net и Visual Basic.Net, в том числе клиентские сценарии JavaScript. C# и VB.NET могут использоваться для написания управляемого кода, который исполняется и использует все расширения и возможности Microsoft.NET.




Звук и Видео

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


Silverlight следует индустриальному стандарту VC-1 для видео и поддерживается WMV и WMA. Сейчас почти все имеют Windows Movie Maker, но если и нет, то это не большая проблема, потому что Микрософт предоставляет бесплатный SDK декодер для разработки WMV и WMA.



Обработка звука

ActionScript предлагает набор звуковых классов для генерации и управления звуком в клипе (movie clip). Вы можете добавлять звуки из библиотеки клипа и контролировать их звучание. Если при создании нового звукового объекта цель не указывается, то метод управления звука применяется ко всему клипу.


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



Общедоступность

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


Silverlight 3 первый подключаемый модуль, который обеспечивает контроль над всеми системными цветами, позволяя людям с ограниченными возможностями по зрению вносить изменения, такие как увеличение контрастности для увеличения читаемости. Но эти функции очень далеки от того, что может обеспечить Flash.



Совместимость

Flash поддерживает Windows Vista/XP/2000, Windows Server 2003/2008, Mac OS 10.1/10.5 (PowerPC), Mac OS 10.1/10.5 (Intel), Linux 5, openSUSE 11, Ubuntu 7.10 и Solaris 10.


Silverlight поддерживает только Windows Vista/XP/2000, Windows Server 2003/2008, Windows Mobile 6, Mac OS 10.1/10.5 (PowerPC) and Mac OS 10.1/10.5 (Intel).



Текстовое представление/SEO

Flash отображает шрифты в определенных кривых и плэйер не понимает TTF, следовательно, нет возможности отделить текст от изображения. Как правило, текст, скомпилированный во Flash не дружественен к SEO, тем не менее, Adobe внесла изменения, так что флэш теперь может быть проиндексирован и поисковые системы могут приступить к индексированию. На данный момент, Google является единственной поисковой системой, распознающей Flash файлы. Yahoo и MSN пока что работают над этим.
Более подробно можно ознакомиться:

How to SEO Flash
Google learns to crawl Flash

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



Поддерживаемы форматы изображений

Flash поддерживает почти все форматы изображений

Silverlight в полной мере поддерживает только PNG и JPEG файлы.



Socket Programming

XMLSocket объект осуществляет подключение к клиентскому компьютеру, позволяя запускать Flash плэйер для соединения с компьютером, идентифицированному по IP -адресу или доменному имени.

Используя XMLSocket объект, сервер должен запустить резидентный сервис, который понимает протокол, используемый в XMLSocket объекте. Пртокол следующий:

  • XML сообщения передаются через двунаправленный TCP/IP поток
  • Каждое XML сообщение завершенный XML документ, заканчивающийся нулевым байтом
  • Неограниченное количество XML сообщений может быть передано и принято через одно XMLSocket соединение


Silverlight поддерживает sockets programming посредством пространства имен System.Net.Sockets. Передача данных осуществляется асинхронно туда и обратно через разъем в диапазоне портов от 4502 до 4534. Так же осуществляется поддержка кросс доменных соединений между приложениями Silverlight и любым сервером, обеспечивающим специальные защищенный режим для файлов, размещенных на сервере.



ВЕБ-камеры

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

Silverlight не поддерживет веб-камеры и микрофоны



Размещение

В пакете Flash размещается только один Shockwave (SWF) файл и все изображения, тексты и анимация собраны в одном файле. Из-за применяемой компрессии и компиляции файл не индексируется и данные не доступны для поиска.


Процесс размещения данных в Silverlight более комплексный; все компоненты должны быть размещены раздельно. Следующие компоненты, как правило, передаются к клиенту по запросу Silverlight:

  • XML файлы
  • DLL файлы (если необходимо)
  • Silverlight.js файл
  • Любой другой Javascript файл
  • Ресурсы (изображения, звук, видео)



Windows приложение

Flash может быть скомпилирован как приложение windows и выполнено как самостоятельный EXE файл, а так же воспризведен соответствующим плэйером Flash.


Silverlight не поддерживает воспроизведение клипа как приложения windows.



Подводя итог

Определние верной технологии для расширенных интернет приложений зачастую достаточно критично и выбор между Flash и Silverlight зависит всецело от ваших потребностей. Если есть вероятность, что некоторые из ваших пользователей будут использовать Linux или Solaris, то вам лучше следовать по пути c Flash. Если вы хотите, чтобы ваш сайт индексировался поисковыми системами, то Silverlight в этом случае может стать лучшим выбором.


Автор оригинального текста Muhammad Usama Alam. Оригинал статьи Flash vs. Silverlight: What Suits Your Needs Best?

Комментариев нет:

Отправить комментарий