Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 5 декабря 2020 года; проверки требуют 28 правок.
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 5 декабря 2020 года; проверки требуют 28 правок.
Microsoft Silverlight — это программная платформа для написания и запуска многофункциональных интернет-приложений RIA, схожая с Adobe Flash, включающая в себя модуль для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA. Версия 2.0 добавила поддержку для языков .NET[2][3] и интеграцию с IDE.
В 2012 году Microsoft назначила конец жизненного цикла Silverlight 5 на 12 октября 2021 года[8]. В 2013 году Microsoft объявила, что они прекратили развитие Silverlight, за исключением выпуска исправлений ошибок. Silverlight более не поддерживается в браузерах Opera, Mozilla Firefox, Google Chrome, так как в 2015 году в этих браузерах была отключена по умолчанию[9] или полностью прекращена[10] поддержка плагинов формата NPAPI.
Silverlight может воспроизводить WMV, WMA и MP3[12] для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player. Так как Windows Media Video 9 является реализацией стандарта SMPTEVC-1, Silverlight поддерживает видео VC-1 только внутри контейнера ASF. Кроме того, лицензионное соглашение говорит, что VC-1 разрешено использовать только в личных, некоммерческих целях («personal and non-commercial use of a consumer»)[13]. Silverlight позволяет динамически загружать XML и использовать DOM для взаимодействия с ним так же, как это делается в Ajax. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа файлы и т. д., если это необходимо приложению[14]. Начиная с версии 2.0, логика программы может быть описана в любом из языков .NET, включая динамические языки программирования такие как Iron Ruby и Iron Python, которые, в свою очередь, исполняются в DLR (Dynamic Language Runtime), а не CLR (Common Language Runtime).
Разработка Silverlight велась путём последовательного добавления функциональности в каждой новой версии. Так, Silverlight 4 представлял собой надмножество над Silverlight 3, а та в свою очередь являлась надмножеством над Silverlight 2. Код для данной платформы не обладает полной совместимостью между версиями, главным образом из-за вынужденного применения программистами различных обходных путей при отсутствии какой-либо встроенной функциональности. Причём добавление такой функциональности в последующей версии весьма негативно может повлиять на корректную работу примененной ранее «хитрости», из-за чего такой код как правило приходится переписывать.
В некоторых довольно редких случаях интерфейс какой-либо функциональности может измениться из-за реализации нового, более удачного решения. Тем не менее, подобные резкие изменения довольно редки и перенос кода на новую версию платформы происходил довольно безболезненно.
Разработка Silverlight велась под кодовым названием WPF/E (сокращённо от Windows Presentation Foundation Everywhere), что являлось отсылкой к технологии Windows Presentation Foundation. Однако, название было вскоре изменено на более звучное Silverlight[15].
Первая бета-версия Silverlight была выпущена в декабре2006 года. Microsoft рассчитывала выпустить стабильную версию в середине 2007 года. Ходили слухи, что в Microsoft планируется частичное открытие исходного кода Silverlight[16], однако, они были опровергнуты Сэмом Рамджи (Sam Ramji), директором Microsoft по стратегии технологической платформы[17]. Тем не менее часть Dynamic Language Runtime, включённая в Silverlight, доступна на портале Microsoft для хостинга открытых и проприетарных проектов CodePlex под Apache 2.
Первая версия Silverlight, выпущенная в мае 2007 года, была далека от завершения и фактически не поддерживала .NET-код совсем. Вся основная разработка велась на языке JavaScript, а также присутствовала поддержка небольшого подмножества языка XAML, использовавшегося для описания интерфейса приложений для Silverlight.
Главной задачей Silverlight 1.0 было быстрое создание основы установки подключаемого модуля Silverlight. Кроме того, в этой версии имелись и дополнительные возможности, как, например, возможность создания анимации. Встроенные элементы управления (контролы) отсутствовали (не говоря уже об элементах типа TextBlock), но при помощи контуров программист мог создавать кнопки и другие базовые элементы для своего приложения, вызывавших срабатывание JavaScript-кода. Например, некоторые видеопроигрыватели, полностью написанные под данную версию без применения .NET-кода, были доступны в Интернете и в 2010 году[15].
То есть, по сути Silverlight 1.0 являлся подключаемым модулембраузера для обработки XAML плюс кодеки для воспроизведения мультимедийного содержимого в форматах WMV, WMA и MP3. Он представлял браузеру внутреннюю модель DOM, управляемую из JavaScript кода. Язык XAML основан на XML — поэтому документ определявший загружаемый клиенту пользовательский интерфейс был текстовым и вполне был пригоден для индексирования поисковыми системами. Используя представленную модель DOM, JavaScript мог динамически обновлять содержимое Silverlight, аналогично DHTML. Также можно было вызывать методы управления презентацией (запуска анимации или приостановки воспроизведения видео, например).
Silverlight-приложение начиналось с вызова объекта Silverlight из HTML-страницы, загружавшей XAML-файл. XAML-файл содержал объект Canvas, выступавший некой «подложкой» для остальных элементов. Объекты XAML были способны генерировать события, перехватываемые из JavaScript.
В комплекте к Visual Studio 2005 SP1 прилагался инструментарий «Silverlight Tools for VS 2005».
В настоящее время уже понятно, что Silverlight 1.0 являлся лишь первым шагом на пути к разработке расширенных интерактивных приложений, тем более, что через некоторое время всё внимание на себя отвлёк выход новой версии — Silverlight 2, ставшей первой версией платформы, поддерживающей .NET[15].
Изначально данная версия носила название Silverlight 1.1, но довольно скоро было решено, что ввиду внесённых серьёзных изменений (в том числе и упрощавших процесс версионирования) имело смысл изменить номер версии на целое число.
Silverlight 2 была выпущена 14 октября 2008 года, незадолго до проведения конференции Professional Developer Conference, назначенной на октябрь 2008 года. Данная версия считалась революционной, поскольку впервые включала в себя библиотеки .NET Framework (как подмножество) и была реализована для платформ, отличных от Windows. Также данная версия включала в себя большой набор элементов управления, улучшенную работу с видео, поддержку новых инструментов и другие возможности[15].
Кроме этого, доступны для скачивания Microsoft Silverlight Tools for Visual Studio 2008, которые включают в себя:
Шаблоны для проектов Visual Basic и C#
Интеллектуальный ввод (технология IntelliSense) и генераторы кода для XAML
18 марта 2009 года на конференции MIX09 в Лас-ВегасеMicrosoft продемонстрировала бета-версию. 10 июля 2009 года в ходе мероприятия See the Light[18] Microsoft объявила об официальном выпуске RTM версии, а вскоре была выпущена и окончательная версия. Таким образом, выход третьей версии состоялся через девять месяцев после выхода второй.
В новую версию были добавлены новые элементы управления и различные возможности, а уровень данных был расширен для обеспечения стабильной основы для сценариев, более ориентированных на бизнес-процессы. В то же время, существующий уровень медиа был расширен за счёт добавления поддержки новых форматов и эффектов (более известных как «пиксельные шейдеры»). На уровне пользователя стало возможным переносить двухмерные элементы в трёхмерное пространство (что иногда называется «псевдо-3D» или «2,5D»). Анимация продвинулась ещё дальше, обеспечивая более плавное и приближённое к реальному воспроизведению. Некоторые шаги были предприняты и в области использования аппаратного ускорения (что само по себе является настоящей проблемой на смешанных платформах, как например, на поддерживаемых Silverlight)[15].
Поддержка аппаратного ускорения при работе с трёхмерной графикой. Это позволяет задействовать потенциал графического процессора и снизить нагрузку на центральный процессор.
В целом Silverlight представляет собой урезанный вариант Windows Presentation Foundation, не требующий наличия .NET Framework[19].
При этом возможности приложений Silverlight почти безграничны, всю недостающую функциональность можно реализовать в виде модулей, используя Silverlight SDK.
Также в Silverlight 3 был впервые представлена функциональность, получившая название «вне браузера» (англ.out-of-the-browser) (сокр. OOB). Реализация данной функциональности обладала серьёзными недостатками: например, OOB-приложения всё ещё не могли получать какие-либо дополнительные права, что весьма ограничивало их действия. Также не было возможности настройки окна OOB-приложения. Тем не менее, сообщество разработчиков встретило данное нововведение весьма положительно[15].
В четвёртой версии Silverlight была введена возможность передачи видеопотока от клиента на сервер в любых приложениях Silverlight иначе, чем это было организовано ранее.
Появился новый режим — офлайн-приложение, устанавливающееся в систему, улучшена безопасность, добавлены механизмы DRM.
Информация в этой статье или некоторых её разделах устарела.
Вы можете помочь проекту, обновив её и убрав после этого данный шаблон.
2 декабря 2010 года на конференции Silverlight Firestarter вице-президент подразделения Microsoft Developer Division Скотт Гатри анонсировал выход бета-версии Silverlight 5 в первой половине 2011 года. Финальная версия вышла в конце 2011 года[20][21].
Краткий список изменений
Новые возможности Silverlight 5 включают в себя[20][22]:
поддержку графического 3D рендеринга при помощи GPU[22]
поддержку ускорения декодирования видео при помощи GPU
модель 3D графики базируется на XNA-технологии в отличие от «умной» графики WPF и подразумевает использование бесконечного цикла рисования — рендеринга[22]
изменяемую скорость воспроизведения медиаконтента с автоматической коррекцией звука
улучшенное энергосбережение
встроенную поддержка удалённого управления
поддержку ускорения запуска приложений
поддержку 64-битных ОС
поддержку автоматизированного тестирования пользовательского интерфейса приложений (в Visual Studio 2010)
улучшенную чёткость текста
поддержку отладки выражений, привязанных к данным, возможна установка точек останова на привязках
поддержку ковариантности и контравариантности в FCL.
Для ОС Linux функциональность будет доступна через Moonlight[33]. Moonlight будет доступен для основных дистрибутивов и поддерживать браузеры Firefox, Konqueror, и Opera. Мигель де Икаса также выразил заинтересованность в работе с разработчиками других операционных систем (BSD, Solaris) и браузеров (Konqueror, WebKit и Opera)[34].
Silverlight for Mobile будет использоваться для того, чтобы сделать доступным Silverlight-приложения на мобильных устройствах. На Silverlight.net было заявлено, что первый CTP для Windows Mobile 6 будет выпущен во втором квартале 2008 года[35]. Nokia объявила о планах выпуска Silverlight for Mobile на S60 для Symbian OS, а также для устройств на Series 40 и Nokia Internet tablets[36]. Silverlight for Mobile изначально будет поддерживать Silverlight 1.0[35].
Silverlight требует x86-процессор с поддержкой SSE. Поддерживаются процессоры IntelPentium III и выше, и AMDAthlon XP и выше. Некоторые модели AMD Duron тоже поддерживаются.
Приложения Silverlight могут быть написаны на любом языке программирования .NET. Все инструменты разработки, которые могут быть использованы для разработки на .NET, также могут работать c Silverlight.
↑Miguel de Icaza.Microsoft/Novell Collaboration on Silverlight (неопр.) (недоступная ссылка — история) (5 сентября 2007). — «We will be supporting Firefox and Linux initially (that is our first goal) but we are looking forward to work with developers from other operating systems (BSD, Solaris) and other browsers (Konqueror, WebKit and Opera) to ensure that Moonlight works fine on their systems.» Дата обращения: 9 ноября 2008. Архивировано 22 февраля 2012 года.
↑Joe Stegman.Linux support (неопр.) (недоступная ссылка — история). MSDN Forums Silverlight General Discussion. Дата обращения: 29 апреля 2007. Архивировано 4 июня 2012 года.
П. Браун. Silverlight. Практическое руководство = Silverlight 4 in Action. — 1-е изд. — П.: Питер, 2012. — 816 с. — ISBN 978-5-459-00408-3.
Мэтью Мак-Дональд. Silverlight 3 с примерами на C# для профессионалов = Pro Silverlight 3 in C#. — 3-е изд. — М.: Вильямс, 2010. — 656 с. — ISBN 978-5-8459-1637-2.