SilverLight - красивая игрушка или новая платформа для корпоративных приложений?
Что такое SilverLight и что можно ждать от него разработчикам корпоративных систем
Наверное, ни для кого не секрет, что Microsoft стремится (и не без успеха) занять лидирующие позиции на рынке платформ и средств разработки.
Одно из полей текущей ее деятельности, это платформа Web-решений. Набирающая в последнее время все большие обороты популярность Web 2.0, а с ним и функционально-богатых (rich) интерфейсов в Web, не прошла и мимо Microsoft. Заявленная около года назад под кодовым именем WPF/E технология, ныне известная как SilverLight (звучит не просто приятнее, но и загадочнее – умеют все-таки люди выбирать названия для продуктов!), увидела недавно свет в виде релиза версии 1.0.
Итак, что же представляет собой этот продукт?
Небольшая по размерам (установочный модуль ~1,41 Мб), но весьма солидная по возможностям библиотека формирования 2D-графики на стороне клиента, то есть в Web-браузере.
Планируется, что библиотека как сейчас, так и впредь будет поддерживать работу в браузерах InternetExplorer 6 и выше, а также в браузере MozillaFirefox, а также на платформе Macintosh в браузере Safari.
Что же умеет SilverLight 1.0? А умеет она довольно много:
● Работать с геометрическими фигурами: линиями, прямоугольниками, эллипсами, сложными кривыми (в том числе Безье) и дугами, а также сложные композитными фигурами, пересечениями, наложениями, отсечениями и т.д.
● Работать с цветом, фоном и кистями: от однотонной заливки до градиентов и растровых изображений в качестве фона;
● Выполнять геометрические преобразования (вращение и сдвиг), заданные, в том числе, в матричной форме.
● Реализовывать анимацию - изменение какого-либо параметра изображения (координат, размеров, цвета) с течением времени.
● Использовать аудио и видео контент. В SilverLight имеется специальный объект MediaElement, который умеет проигрывать media-контент в форматах WindowsMediaVideo(WMV), WindowsMediaAudio (WMA), и MP3.
Еще одной интересной особенностью SilverLight является использование для описания сцен языка XAML - родного языка “большой” WPF. Что, по всей видимости, должно дать следующих два существенных плюса:
1. Упрощение перехода программистов с Web на Desktop и обратно, т.к. основа построения интерфейса едина. Хотя, вот тут есть определенные сомнения: общим будет только синтаксис языка, используемые же объекты будут, скорее всего, координально различаться.
2. Создание единых инструментов проектирования интерфейса как для Desktop, так и для Web-приложений.
Вот, пожалуй, и все, чем знаменателен первый SilverLight. Понятно, что называть его «убийцей Flash», как поспешили окрестить некоторые компьютерные СМИ, никак нельзя.
Лишь некоторые, наиболее яркие, моменты конкурента:
● В технологии Adobe Flex (ранее эта технология была известна как Macromedia Flash, однако позднее, название Flash закрепилось за самим плеером, а Flex стала называться среда разработки и Framework), проигрыватель Flash является, по сути, миниатюрной виртуальной машиной, позволяющей выполнять скомпилированный P-код. Это позволяет, потенциально, писать и выполнять практически произвольный код, не привязываясь не только к особенностям среды, но даже браузера.
● Для Flex имеется огромная библиотека для самых разных нужд. Есть, например, поддержка 3D-графики, работа с данными (от использования DataSet и XML, до реализованных алгоритмов сжатия данных), поддержка сетевых протоколов (причем как своих стандартов, например, некий аналог XML-RPC, до реализации стандартов SOAP и WSDL, т.е. прямой выход на Web-сервисы).
● Если чего-то не хватает в стандартной библиотеке, то есть уже не слабое Community, а также фирмы, продающие свои решения на Flex.
В общем, получается, что сравнение явно не в пользу SilverLight? Да, если говорить о версии 1.0 и … не уверен, если речь идет о версии 1.1, которая пока представлена только как Alpha.
Что же меняется с приходом SilverLight 1.1? Буквально все, не побоюсь такого утверждения!
Итак, судите сами… То, что добавляется к SilverLight 1.1 дополнительно к тому, что есть в версии 1.0:
● Самое большое изменение – поддержка среды исполнения .Net, со всеми основными возможностями: Jit-компиляцией, автоматическим управлением памятью и сборкой мусора, управляемой обработкой исключений и пр.
● Поддержка динамических языков JScript, IronPyton и IronRuby, а также специальная библиотека для работы с ними.
● Поддержка некоторого (довольно солидного) подмножества библиотеки классов .Net, в том числе из пространства System.Collections.Generic, System.IO, System.Text, System.Xml и других;
● Частичная поддержка классов WPF из System.Windows, включая поддержку элементов управления, медиа-данных и документов …;
● Поддержка web-сервисов в виде функциональности JSON и клиента WCF.
● Поддержка LINQ.
Получается, что SilverLight уже практически размывает грань между Desktop и Web-приложением, причем и для того, и для другого используется единая технологическая платформа, с языками и библиотеками. Даже если Microsoft не будет реализовывать всю библиотеку контролей для SilverLight, это за нее сделают другие компании, благо примеры уже есть.
Конечно, писать приложения, одинаково легко работающие и как Web-клиент и как Desktop пока затруднительно, хотя проблема, собственно, только в разнице библиотек контролей и вполне можно допустить появление в ближайшее время таких универсальных библиотек, пусть и сторонних производителей.
В остальном же, разработка на SilverLight мало отличается от обычных .Net приложений, и освоить ее грамотным .Net-разработчикам труда не составит.
Какие последуют выводы?
Да, в общем-то, очевидные:
Во-первых, SilverLight 1.0 – неплохое решение, для придания уже имеющемуся web-решению дополнительной привлекательности и функционала. В первую очередь, его хорошо задействовать для внешних (не внутрикорпоративных) сайтов.
Во-вторых, если начинается новый проект по разработке системы для внутрикорпоративного использования и в качестве основного клиента (или одним из клиентов) будет Web-клиент, то SilverLight 1.1 нужно, как минимум, очень внимательно рассмотреть в качестве основной платформы.
Комментарии 1