OpenSilver — возрождение Silverlight?


Многие программисты сожалеют об уходе Silverlight — это была отличная идея. Неужели современные технологии могут вернуть его из мертвых? OpenSilver — это попытка сделать именно это с открытым исходным кодом.

OpenSilver - возрождение Silverlight?

Когда-то Silverlight был маленьким чудом. Вы можете написать код Windows на C# и запустить его в браузере, как правило, без каких-либо изменений. Это также стало основой для первого поколения телефонов Windows Phone, которые сделали программирование для мобильных устройств особенно простым. Затем, по безумным причинам, произошла вся Windows Phone на базе Windows 8 и WinRT, и Silverlight был сброшен. Он не просто устарел, как код Microsoft, и его оставили медленно гнить. Поскольку это была альтернатива, лучшая альтернатива WinRT и, следовательно, угроза принятию новых способов работы, ее нужно было уничтожить и удалить из вселенной. Этому способствовал тот факт, что это был плагин, а надстройки браузера явно были злом — просто посмотрите, что случилось с Flash.

Теперь, когда пыль улеглась, а Windows 8 и Windows Phone — это просто плохие воспоминания, для Silverlight не было официальной отсрочки, и, учитывая, что надстройки браузера все еще считаются токсичными, вряд ли таковой будет.

Здесь на сцену выходит OpenSilver. Userware, французская софтверная компания, работала над заменой с открытым исходным кодом в течение 12 месяцев и только что выпустила предварительную версию. Хорошая новость в том, что это не плагин, а повторная реализация с использованием WebAssembly. Это больше похоже на кросс-компилятор от C# и XAML к WebAssembly/JavaScript и HTML, чем на собственную реализацию. В этом смысле он совсем не похож на Silverlight, но выполняет ту же работу.

Поскольку устаревшие приложения Silverlight столкнутся с большой проблемой, связанной с прекращением поддержки в октябре 2021 года, возможно, OpenSilver сможет спасти положение. Это может быть дешевле, чем переписывать с использованием новой технологии.

OpenSilver — это расширение Visual Studio, которое позволяет вам открыть новый проект и запустить его либо в симуляторе, либо с помощью веб-сервера в браузере. Он работает с Visual Studio Community Edition, поэтому вы можете попробовать его бесплатно. Я попробовал это и обнаружил, что это немного грубовато, что-то не совсем работает из коробки — ничего, что я не мог бы исправить за несколько минут. Однако когда я попытался заставить работать некоторые из моих старых программ Silverlight, мне это не удалось. Я добился прогресса, но не дошел до того момента, когда я мог бы что-то запустить. Причина, по-видимому, в том, что мои программы обычно являются «продвинутыми» примерами, которые используют графику высокого разрешения в WPF. Например, я не мог заставить работать WriteableBitmap или любой из связанных с ним классов. Утверждается, что OpenSilver поддерживает 60% Silverlight API, но я не смог найти список того, что поддерживается, а что нет.

Если вам действительно нужно перенести существующее приложение, то компания, стоящая за OpenSilver, предлагает услугу миграции, которая предположительно принесет ей некоторый доход для поддержки всего проекта.

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

Учитывая, что для XAML OpenSilver нет конструктора с перетаскиванием и документации по большей части не существует, это не вариант для новичков. Если вы знаете Silverlight и можете вручную редактировать XAML, вам, вероятно, удастся заставить работать свои старые приложения, но я предполагаю, что вам повезет, если это окажется тривиальным.

Заявление о миссии стоит процитировать:


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

Я думаю, что сделать его таким же хорошим, как и раньше, довольно сложно, не говоря уже о том, чтобы сделать еще круче, но я надеюсь, что ошибаюсь. Если вы хотите помочь, есть репродукция на GitHub.


Добавить комментарий