Microsoft Silverlight, который теперь поддерживается только в устаревшем Internet Explorer, полностью перестанет работать 12 октября, но появился проект с открытым исходным кодом под названием OpenSilver для преобразования проектов Silverlight в WebAssembly.

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

Первая версия Silverlight появилась в 2007 году как мультимедийный проигрыватель, но вскоре за ней последовали версии, которые включали урезанную среду выполнения .NET и могли работать как в браузере, так и на рабочем столе, на Windows и Mac (заявлена ​​поддержка Linux, но никогда полностью не доставлен).Содержимое и приложения Silverlight были определены в XAML, упрощенной версии Windows Presentation Foundation.Silverlight также стал средой выполнения для приложений на Windows Phone.

Все изменилось в 2010 году, когда покойный генеральный директор Apple Стив Джобс опубликовал свои мысли о Flash (теперь, к сожалению, удален с веб-сайта Apple), подтверждающие, что Flash не будет поддерживаться в iOS.«В цели Adobe не входит помощь разработчикам в написании лучших приложений для iPhone, iPod и iPad. Их цель - помочь разработчикам в написании кроссплатформенных приложений», - написал он.

После удаления этой ключевой платформы фокус отрасли сместился на HTML 5 и JavaScript как для мультимедийных, так и для браузерных приложений.Позже в том же году Боб Маглиа из Microsoft, в то время президент подразделения Server and Tools, признал, что Silverlight тоже был неправильным направлением, заявив, что «наша стратегия изменилась».Последней основной версией была Silverlight 5.0 в декабре 2011 года.

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

«Поддержка Microsoft Silverlight прекратится 12 октября 2021 года», - заявили в компании.«В настоящее время среда разработки Silverlight поддерживается только в Internet Explorer 10 и Internet Explorer 11, а поддержка Internet Explorer 10 заканчивается 31 января 2020 года. Больше не поддерживается Chrome, Firefox и другие браузеры, использующие операционную систему Mac».

Приложения Silverlight могут продолжать работать, но программа установки больше не будет доступна.Определенные пользователи также должны принять к сведению, что поддержка IE 11 прекращается 15 июня 2022 года, хотя режим IE в Edge сохраняется.

Есть и другой вариант (кроме переписывания всего на JavaScript).OpenSilver - это повторная реализация Silverlight, которая работает в современных браузерах с использованием WebAssembly.Это открытый исходный код, связанный с другим проектом CSHTML5, который компилирует C # и XAML в JavaScript и HTML.

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

Согласно документации: «Общий принцип миграции приложения Silverlight в OpenSilver состоит из создания проекта типа OpenSilver для каждого из исходных проектов Silverlight, затем копирования / вставки всех файлов из исходных проектов в проекты OpenSilver и, наконец, составление решения ".

Компания Userware, стоящая за OpenSilver, предупредила, что «ожидается много ошибок компиляции, поскольку OpenSilver в настоящее время поддерживает подмножество функций Silverlight».Также существует проблема со сторонними компонентами, такими как Telerik или DevExpress.Иногда эти компании предлагают примерно эквивалентный компонент HTML / JavaScript, и в этом случае код можно заменить.

Демонстрация OpenSilver включает примеры взаимодействия и элемент управления WebView.

OpenSilver Showcase демонстрирует многие из поддерживаемых функций, включая впечатляющий набор панелей и элементов управления, включая DataGrid и элементы управления вкладками, возможности .NET, включая обработку файлов, Linq и AysncAwait, доступ к изолированному хранилищу, использование веб-служб SOAP и REST и поддержка WebSockets.

OpenSilver обещает выпустить «полную версию» 12 октября - когда Silverlight перестанет поддерживать.Тем не менее, беглый взгляд на репозиторий позволяет предположить, что работа над ним продолжается, и ключевым вопросом является объем работающего подмножества Silverlight.В списке дел - новая система компоновки, поддержка Visual Basic, миграция для приложений WPF и даже поддержка Microsoft LightSwitch, злополучного, но когда-то многообещающего инструмента разработки из прошлого.

Разработчики OpenSilver также с нетерпением ждут Ahead-of-Time (AoT) компиляции для Microsoft Blazor, которая появится в .NET 6.0.Blazor также запускает C # в веб-браузере через WebAssembly, и OpenSilver использует его.Согласно его пресс-релизу: «Бета-версия теперь может использовать компиляцию AoT для повышения производительности до 15 раз по сравнению с первым выпуском».

Существование OpenSilver демонстрирует, каким образом различные изменения направления Microsoft в своей платформе разработки привели к тому, что некоторые пользователи застряли с технологиями, у которых нет будущего - см. Другой пример в Visual Studio Tools for Office.

Тем не менее, появление .NET Core, а также Blazor означает, что теперь существует ряд вариантов для кроссплатформенного запуска кода .NET или в браузере.Платформа Uno - еще один вариант для Silverlight, и есть руководство по миграции.

Но почему бы просто не забыть Silverlight?Учитывая, что, вероятно, потребуется некоторая работа по миграции, не имеет ли смысла переносить полное приложение HTML и JavaScript или использовать официальное решение Microsoft Blazor?

На этой витрине OpenSilver показано, как содержимое Silverlight отображается в HTML и JavaScript, но не работает на iPad.

«Мы .NET-разработчики, которые считают, что Silverlight была лучшей платформой для разработки бизнес-приложений», - говорится в пресс-релизе.Спустя более десяти лет после «смены стратегии» Microsoft есть те, кто не хочет отказываться от этого.

Однако мы обнаружили, что Showcase не работает должным образом на iPad.Может, к моменту «полного релиза» так и будет.®

Получите наши технические ресурсы