Microsoft Silverlight - це програмна платформа, що включає в себе плагін для браузера, який дозволяє запускати додатки, що містять анімацію, векторну графіку і аудіо-відео ролики, що характерно для RIA (Rich Internet application). Версія 2.0 додала підтримку для мов . NET [1] [2] та інтеграцію з IDE.

Silverlight реалізована для ОС Windows 2000 [3], Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows 8, Mac OS X 10.4, Mac OS X 10.5, Mac OS X 10.6 і браузерів Internet Explorer 6.0/7.0/8.0/9, Opera 9.50, Mozilla Firefox 1.5/2.0/3, Safari 3.1, Google Chrome 3.0 [4] Silverlight включена в Windows Phone 7 [5], а в майбутньому також планується підтримка мобільних пристроїв, починаючи з Windows Mobile 6 і Symbian (Series 60), і, можливо, інших платформ [6].


1. Огляд

Silverlight надає графічну систему, схожу з Windows Presentation Foundation, і об'єднує мультимедіа, графіком, анімацію і інтерактивність в одній програмній платформі. Він був розроблений, щоб працювати з XAML і з мовами . NET. XAML використовується для розмітки сторінок, що використовують векторну графіку і анімацію. Текст, що міститься в додатках Silverlight, доступний для пошукових систем, так як він не компілюється, а доступний у вигляді XAML. Silverlight також можна використовувати для того, щоб створювати віджети для Windows Sidebar в Windows Vista [7].

Silverlight може відтворювати WMV, WMA і MP3 [8] для всіх підтримуваних браузерів, не вимагаючи при цьому додаткових компонентів, таких як Windows Media Player. Так як Windows Media Video 9 є реалізацією стандарту SMPTE VC-1, Silverlight підтримує відео VC-1, тільки всередині контейнера ASF. Крім того, ліцензійна угода говорить, що VC-1 дозволено використовувати тільки в особистих, некомерційних цілях ("personal and non-commercial use of a consumer") [9]. Silverlight дозволяє динамічно завантажувати XML і використовувати DOM для взаємодії з ним так само, як це робиться в Ajax. Silverlight містить об'єкт Downloader, завдяки якому можна скачувати скрипти, медіа файли і т. д., якщо це необхідно додатком [10]. Починаючи з версії 2.0, логіка програми може бути описана в будь-якому з мов . NET, включаючи динамічні мови програмування такі як Iron Ruby і Iron Python, які в свою чергу виконуються в DLR (Dynamic Language Runtime), а не CLR ( Common Language Runtime).


2. Історія

Розробка Silverlight велася шляхом послідовного додавання функціонала в кожній новій версії. Так, Silverlight 4 являв собою надмножество над Silverlight 3, а та в свою чергу була надбезліччю над Silverlight 2. Код для даної платформи не володіє повною сумісністю між версіями, головним чином через вимушеного застосування програмістами різних обхідних шляхів при відсутності будь-якого вбудованого функціоналу. Причому додавання такого функціоналу в наступної версії вельми негативно може вплинути на коректну роботу застосованої раніше "хитрощі", через що такий код як правило доводиться переписувати.

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

Розробка Silverlight велася під кодовою назвою WPF / E (скор. від Windows Presentation Foundation Everywhere), що було відсиланням до технології Windows Presentation Foundation. Однак, назва була незабаром змінено на більш звучне Silverlight [11].


2.1. Silverlight 1.0 Beta

Перша бета-версія Silverlight була випущена в грудні 2006. Microsoft розраховувала випустити стабільну версію в середині 2007. Ходили чутки що в Microsoft планується часткове відкриття вихідного коду Silverlight [12], однак вони були спростовані Семом Рамджі (Sam Ramji) директором Microsoft по стратегії технологічної платформи [13]. Тим не менше частина Dynamic Language Runtime включена в Silverlight, доступна на порталі Microsoft для хостингу відкритих і пропрієтарних проектів CodePlex під Apache 2.


2.2. Silverlight 1.0

Архітектура Silverlight 1.0 додатка

Перша версія Silverlight, випущена в травні 2007 року, була далека від завершення і фактично не підтримувала. NET-код зовсім. Вся основна розробка велася на мові JavaScript, а також присутня підтримка невеликого підмножини мови XAML, що використовувався для опису інтерфейсу додатків для Silverlight.

Головним завданням Silverlight 1.0 було швидке створення основи установки модуля, що підключається Silverlight. Крім того, в цій версії були й додаткові можливості, як наприклад, можливість створення анімації. Вбудовані елементи керування (контроли) відсутні (не кажучи вже про елементи типу TextBlock), але за допомогою контурів програміст міг створювати кнопки і інші базові елементи для свого застосування, що викликали спрацьовування JavaScript-коду. Наприклад, деякі відеопрогравачі, повністю написані під дану версію без застосування. NET-коду, були доступні в Інтернеті і в 2010 році [11].

Тобто, по суті 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 [11 ].


2.3. Silverlight 2

Архітектура Silverlight 2

Спочатку дана версія носила назву Silverlight 1.1, але досить скоро було вирішено, що зважаючи внесених серйозних змін (у тому числі і спрощує процес версіонірованія) мало сенс змінити номер версії на ціле число.

Silverlight 2 була випущена 14 жовтня 2008, незадовго до проведення конференції Professional Developer Conference, призначеної на жовтень 2008 року. Дана версія вважалася революційною, оскільки вперше включала в себе бібліотеки . NET Framework (як підмножина) і була реалізована для платформ, відмінних від Windows. Також дана версія включала в себе великий набір елементів управління, поліпшену роботу з відео, підтримку нових інструментів та інші можливості [11].

Крім цього, доступні для скачування Microsoft Silverlight Tools for Visual Studio 2008, які включають в себе:

  • Шаблони для проектів Visual Basic і C #
  • Інтеллісенс і генератори коду для XAML
  • Налагодження додатків Silverlight
  • Підтримку Web reference
  • Інтеграцію з Expression Blend

Значна кількість можливостей, доступних в наступних версіях (наприклад, в Silverlight 4), було додано саме в другій версії платформи [11].


2.4. Silverlight 3

18 березня 2009 на конференції MIX09 в Лас-Вегасі Microsoft продемонструвала бета-версію. 10 липня 2009 в ході заходу See the Light [14] Microsoft оголосила про офіційний випуск RTM версії, а незабаром була випущена і остаточна версія. Таким чином, вихід третьої версії відбувся через дев'ять місяців після виходу другої.

У нову версію були додані нові елементи управління і різні можливості, а рівень даних був розширений для забезпечення стабільної основи для сценаріїв, більше орієнтованих на бізнес-процеси. У той же час, існуючий рівень медіа був розширений за рахунок додавання підтримки нових форматів і ефектів (більш відомих як "піксельні шейдери"). На рівні користувача стало можливим переносити двомірні елементи в тривимірний простір (що іноді називається "псевдо-3D" або "2,5 D"). Анімація просунулася ще далі, забезпечуючи більш плавну і наближене до реального відтворення. Деякі кроки були зроблені й в області використання апаратного прискорення (що саме по собі є справжньою проблемою на змішаних платформах, як наприклад, на підтримуваних Silverlight) [11].

Серед особливостей нової версії:

  • Підтримка пристроїв з multitouch -інтерфейсом
  • Підтримка форматів H.264, AAC і MPEG-4
  • Підтримка апаратного прискорення при роботі з тривимірною графікою. Це дозволяє задіяти потенціал графічного процесора і знизити навантаження на центральний процесор

В цілому Silverlight являє собою урізаний варіант Windows Presentation Foundation, що не вимагає наявності. NET Framework [15]. При цьому можливості додатків Silverlight майже безмежні, весь бракуючий функціонал можна реалізувати у вигляді модулів, використовуючи Silverlight SDK.

Також в Silverlight 3 був вперше представлений функціонал, що отримав назву "поза браузером" ( англ. out-of-the-browser ) (Скор. OOB). Реалізація даного функціоналу володіла серйозними недоліками: наприклад, OOB-додатки все ще не могли отримувати якісь додаткові права, що вельми обмежувало їх дії. Також не було можливості налаштування вікна OOB-додатки. Тим не менш, співтовариство розробників зустріло дане нововведення вельми позитивно [11].


2.5. Silverlight 4

У четвертій версії Silverlight була введена можливість передачі відеопотоку від клієнта на сервер в будь-яких додатках Silverlight інакше, ніж це було організовано раніше. З'явився новий режим - офлайн-додаток, устанавливающееся в систему, покращено безпеку, додані механізми DRM.

Короткий список змін
  • Підтримка браузера Google Chrome.
  • Підтримка веб-камери і мікрофону.
  • Підтримка виводу на друк.
  • Покращена підтримка миші. Зокрема додана підтримка правої кнопки.
  • Підтримка показу сповіщень.
  • Нові і поліпшені контроли, такі як RichTextBox і покращений DataGrid.
  • Підтримка неявного завдання тим для контролів.
  • Підтримка вбудованого в систему браузера для показу HTML всередині Silverlight, але поки тільки для офлайн-додатків.
  • Поліпшення шару WCF.
  • Поліпшення при локалізації двонаправленого тексту.
  • Підтримка Managed Extensibility Framework.
  • Поліпшення підтримки зв'язування даних (data binding).
  • Поліпшення ефектів анімації.
  • Підтримка буфера обміну і drag & drop.
  • Поліпшення продуктивності Deep Zoom.
  • Сервіси WCF Rich Internet application (RIA).
  • Захист H.264 контенту та підтримка програвання контенту, захищеного DRM, в режимі offline.

Також для додатків запущених поза браузером і явно отримали статус довірених (trusted):

  • Повний доступ до клавіатури при роботі в повноекранному режимі.
  • Програмний доступ до локальної папки з документами користувача.
  • Підтримка локальних COM -об'єктів.

2.6. Silverlight 5

2 грудня 2010 на конференції Silverlight Firestarter віце-президент підрозділу Microsoft Developer Division Скотт Гатрі анонсував вихід бета-версії Silverlight 5

в першій половині 2011 року. Фінальна версія планується до виходу в кінці 2011 року [16] [17].

Короткий список змін

Нові можливості Silverlight 5 включають в себе [16] [18] :

  • підтримка графічного 3D рендеринга за допомогою GPU [18]
  • підтримка прискорення декодування відео за допомогою GPU
  • зближення з технологією XNA для побудови 3D [18]
  • змінна швидкість відтворення медіаконтенту з автоматичною корекцією звуку
  • поліпшене енергозбереження
  • вбудована підтримка віддаленого управління
  • підтримка прискорення запуску додатків
  • підтримка 64-бітових браузерів
  • підтримка автоматизованого тестування користувальницького інтерфейсу додатків (в Visual Studio 2010)
  • поліпшена якість тексту
  • підтримка налагодження виразів, прив'язаних до даних, можлива установка точок зупину на прив'язки
  • підтримка ковариантности і контраваріантності в FCL

3. Хронологія виходу версій

Назва версії номер версії Дата виходу
1 Community Technology Preview (CTP) 1.0.? 2006-12
1 Release to Web (RTW) 1.0.20816 2007-09-05
2 Pre-Release
(У вигляді 1.1 Alpha Refresh)
1.1.20926.0 2007-09-05
1 Service release 1.0.21115.0 2007-11-20
1 Service release 1.0.30109.0 2008-01-15
2 Beta 1 [19] 2.0.30226.2 2008-03-05
1 Service release [20] 1.0.30401.0 2008-04-08
2 Beta 2 2.0.30523.6 2008-06-06 [21]
2.0.30523.8 2008-07-16
1 Service release 1.0.30715.0 2008-07-27
2 Release Candidate Zero (RC0) 2.0.30523.9 2008-09-25
2 RTW [22] 2.0.31005.0 2008-10-14 [23]
2 General Distribution Release (GDR) 1 2.0.40115.0 2009-02-19
3 Beta 3.0.40307.0 2009-03-18
3 RTW 3.0.40624.0 2009-07-09
3 GDR 1 3.0.40723.0 2009-07-28
3 GDR 2 3.0.40818.0 2009-09-01
4 Beta 1 4.0.41108.0 2009-11-18
3 GDR 3 3.0.50106.0 2010-01-20
4 RC 4.0.50303.0 2010-03-15
4 RTW 4.0.50401.0 2010-04-15 [24]
4 GDR 0 4.0.50524.0 2010-06-03
3 Security Update 3.0.50611.0 2010-08-10
4 GDR 1 4.0.50826.0 2010-09-01
4 GDR 2 4.0.50917.0 2010-09-28 [25]

3.1. Сумісність з операційними системами та браузерами

У наступній таблиці відображена сумісність різних версій Silverlight з браузерами та операційними системами.

ОС / Браузер IE 6 SP1 IE 6 SV1 IE 7 IE 8 Firefox SeaMonkey Safari Konqueror Opera Google Chrome
Windows Vista/2008/7/2008 R2 - - 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 2.0 1.0, 2.0; через NPAPI - 4.0 2.0, 3.0, 4.0
Windows XP/2003/Home Server 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 - 1.0, 2.0; через NPAPI - 4.0 2.0, 3.0, 4.0
Windows 2000 2.0, 3.0, 4.0 - - - 2.0 Неофіційно [26] - 2.0; через NPAPI - Запланована [27] -
Windows Mobile 6 - - - - - - - - -
Windows Phone 7 - - Запланована Запланована - - - - - -
Mac OS 10.4/10.5 PowerPC - - - - 1.0 - 1.0 - Запланована [27] -
Mac OS 10.4/10.5 Intel - - - - 1.0, 2.0, 3.0, 4.0 - 1.0, 2.0, 3.0, 4.0 - Запланована [27] 3.0, 4.0 Неофіційно
  • Opera 11 вже працює з Silverlight 4.0.
  • Для ОС Linux функціональність буде доступна через Moonlight. [28] Moonlight буде доступний для основних дистрибутивів і підтримувати браузери Firefox, Konqueror, і Opera. Мігель де Ікаса також висловив зацікавленість в роботі з розробниками інших операційних систем (BSD, Solaris) і браузерів (Konqueror, WebKit і Opera) [29].
  • Silverlight for Mobile буде використовуватися для того, щоб зробити доступним Silverlight-додатки на мобільних пристроях. На Silverlight.net було заявлено, що перший CTP для Windows Mobile 6 буде випущений у другому кварталі 2008 року [30]. Nokia оголосила про плани випуску Silverlight for Mobile на S60 для Symbian OS, а також для пристроїв на Series 40 і Nokia Internet tablets [31]. Silverlight for Mobile спочатку буде підтримувати Silverlight 1.0 [30].
  • Silverlight вимагає x86 -процесор з підтримкою SSE. Підтримуються процесори Intel Pentium III і вище, і AMD Athlon XP і вище. Деякі моделі AMD Duron також підтримуються.
  • Також розглядаються й інші платформи [6].

4. Інструменти розробки

Програми Silverlight можуть бути написані на будь-якій мові програмування. NET. Як такі, всі інструменти розробки які можуть бути використані для розробки на. NET, також можуть працювати c Silverlight.

5. Mono Moonlight

Команда розробників Mono розробляла проект Moonlight. Це вільна реалізація Silverlight з відкритим вихідним кодом.

5.1. Adobe Flash

При наявності плагінів можна використовувати в своїх розробках Adobe Flash.

5.2. JavaFX

5.3. Порівняння Silverlight, Adobe Flash, JavaFX і HTML5

Примітки

  1. Code Sample: Is Your Process Using the Silverlight CLR? - blogs.msdn.com/jasonz/archive/2007/05/11/code-sample-is-your-process-using-the-silverlight-clr.aspx
  2. Rounding up DLR questions - blogs.msdn.com/jasonz/archive/2007/05/11/code-sample-is-your-process-using-the-silverlight-clr.aspx
  3. Тільки версія 2.0 і під IE6 / / http://www.microsoft.com/silverlight/resources/install.aspx?v=2.0 # sysreq - www.microsoft.com/silverlight/resources/install.aspx?v=2.0 # sysreq
  4. Opera Watch: More details on Silverlight support in Opera - operawatch.com/news/2007/05/more-details-on-silverlight-support-in-opera.html
  5. Silverlight for Windows Phone - www.silverlight.net/getstarted/devices/windows-phone/
  6. 1 2 Joe Stegman. Linux support - forums.microsoft.com / MSDN / ShowPost.aspx? PostID = 988552 & SiteID = 1. MSDN Forums Silverlight General Discussion. Читальний - www.webcitation.org/68AfCVkzO з першоджерела 4 червня 2012.
  7. Charles Sterling. Writing a Windows Sidebar Gadget in Silverlight dead simple - MSDN Blogs. Читальний - www.webcitation.org/65eROE5XZ з першоджерела 23 лютого 2012.
  8. Silverlight FAQs - www.microsoft.com / silverlight / faq.aspx
  9. Microsoft Silverlight 1.0 beta license - www.microsoft.com / silverlight / license-win.aspx. (Недоступна посилання - історія - web.archive.org / web / * / http://www.microsoft.com/silverlight/license-win.aspx)
  10. Using a Downloader Object - msdn2.microsoft.com/en-us/library/bb232904.aspx. Читальний - www.webcitation.org/65eRP3Zvi з першоджерела 23 лютого 2012.
  11. 1 2 3 4 5 6 7 A Short History of Silverlight - www.informit.com/articles/article.aspx?p=1645871&seqNum=4 (Англ.)
  12. Microsoft частково відкриє код технології Silverlight - soft.compulenta.ru/317058 /
  13. Gavin Clarke. Silverlight glow dimmed by cross-platform concerns - www.theregister.co.uk/2007/05/01/microsoft_open_source_mix/ (Англ.)
  14. На заході відбувся також випуск Microsoft Expression Studio 3
  15. Системні вимоги Silverlight - www.microsoft.com / getsilverlight / get-started / install / default.aspx # sysreq
  16. 1 2 Silverlight 5 announcement - weblogs.asp.net/scottgu/archive/2010/12/02/announcing-silverlight-5.aspx (Англ.) . Читальний - www.webcitation.org/65eRPoZM6 з першоджерела 23 лютого 2012.
  17. Microsoft анонсувала нову версію платформи Silverlight - lenta.ru/news/2010/12/03/silverlight /
  18. 1 2 3 3-D Graphics Overview - msdn.microsoft.com/en-us/library/gg197424 (v = XNAGameStudio.35). aspx (Англ.) . Читальний - www.webcitation.org/65eRQXbtM з першоджерела 23 лютого 2012.
  19. Quick update on Silverlight - blogs.msdn.com/somasegar/archive/2007/11/29/quick-update-on-silverlight.aspx (Англ.) . Читальний - www.webcitation.org/65eRRBbe7 з першоджерела 23 лютого 2012.
  20. MSFN - Microsoft rolls out Silverlight maintenance release - msfn.org / comments.php? id = 22255 & catid = 1 & highlight = silverlight (Англ.)
  21. Protalinski, Emil Silverlight 2 Beta 2 arrives on time, available now - arstechnica.com/journals/microsoft.ars/2008/06/06/silverlight-2-beta-2-arrives-on-time-available-now (Англ.) . Ars Technica. Читальний - www.webcitation.org/65eRRvByX з першоджерела 23 лютого 2012.
  22. Knor, Max Silverlight 2 Released - blogs.msdn.com/knom/archive/2008/10/14/silverlight-2-released.aspx (Англ.) . blogs.msdn.com. Читальний - www.webcitation.org/65eRSWj8H з першоджерела 23 лютого 2012.
  23. Microsoft Releases Silverlight 2 On Tuesday, Oct. 14 - www.liveside.net/main/archive/2008/10/13/microsoft-releases-silverlight-2-on-tuesday-oct-14.aspx (Англ.) . LiveSide. Читальний - www.webcitation.org/65eRTHGLj з першоджерела 23 лютого 2012.
  24. Business-Ready Silverlight 4 Ships April 15 - blogs.msdn.com/usisvde/archive/2010/04/13/business-ready-silverlight-4-ships-april-15.aspx (Англ.) . Читальний - www.webcitation.org/65eRUvAQz з першоджерела 23 лютого 2012.
  25. name = "Description of the update for Microsoft Silverlight: September 28, 2010"> Description of the update for Microsoft Silverlight: September 28, 2010 - support.microsoft.com/kb/2416427 (Англ.) . Читальний - www.webcitation.org/65eRacJ3D з першоджерела 23 лютого 2012.
  26. Install Silverlight: Unsupported platform, system requirements - www.microsoft.com/silverlight/resources/install.aspx?reason=unsupportedplatform # sysreq
  27. 1 2 3 Opera Watch: More details on Silverlight support in Opera - operawatch.com/news/2007/05/more-details-on-silverlight-support-in-opera.html. (Недоступна посилання - історія -
  28. Silverlight 1.0 Released and Silverlight for Linux Announced - www.webcitation.org/65eRcgh6H з першоджерела 23 лютого 2012.
  29. Miguel de Icaza. Microsoft / Novell Collaboration on Silverlight - tirania.org/blog/archive/2007/Sep-05.html (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. " Статичний - www.webcitation.org/65eRdNX8r з першоджерела 23 лютого 2012.
  30. 1 2 Silverlight for Mobile - silverlight.net / learn / mobile.aspx. Silverlight.net. Читальний - www.webcitation.org/65eReEzCf з першоджерела 23 лютого 2012.
  31. Nokia to enable Silverlight - blog.anta.net/2008/03/04/nokia-to-enable-silverlight /. ??? (4 березня 2008). Читальний - www.webcitation.org/65eRenfp4 з першоджерела 23 лютого 2012.