Первый раз это ActiveX. Второй раз — Silverlight. Теперь Blazor в третий раз. Это ОДИН?

Если вы достаточно взрослый, вы, должно быть, слышали об ActiveX. Например, Flash Player — это элемент управления ActiveX или подключаемый модуль браузера, который пользователи могут загрузить для просмотра видео. Нравилось ли нам разрабатывать элементы управления ActiveX для наших пользователей в 90-е годы? Ну, в самом начале это было здорово, но ближе к концу превратилось в кошмар из-за проблем с безопасностью и обслуживанием. Однако в то время это был единственный способ внедрить некоторые дополнительные функции, такие как функция электронных таблиц, для работы с требованиями нашего проекта в браузере.

В то время всякий раз, когда мы выпускали какие-то интересные новые функции, мы просто публиковали разработанную нами подключаемую программу на веб-сервере, и в следующий раз, когда пользователи обновляют веб-приложение, им будет предложено загрузить последнюю и самую лучшую программу. В эпоху, предшествовавшую .NET, Microsoft и другие компании-разработчики программного обеспечения изо всех сил пытались реализовать в браузере расширенные функциональные возможности, сопоставимые с настольными компьютерами. Помимо технологии Microsoft ActiveX, у нас есть загружаемые компоненты JavaBeans, которые запускаются под виртуальной машиной Java (JVM) в браузере. Это было здорово для Microsoft, потому что они могут перенести существующие функции из фреймворков Microsoft в Интернет и сохранить долю рынка браузеров.

Проблемы представления видео в веб-браузерах

По мере развития веб-технологий в 2007 году Microsoft разработала технологию Silverlight, которая надеется обеспечить наилучшее качество потокового мультимедиа и свергнуть короля медиаплееров Flash. В разгар внедрения Silverlight проникновение Microsoft Silverlight в мае 2011 года составило 64,2% по сравнению с Adobe Flash, установленным в 95,3% браузеров. Silverlight использовался для обеспечения потокового видео для освещения NBC летних Олимпийских игр 2008 года и зимних Олимпийских игр 2010 года. И Netflix, и Amazon Video использовали Silverlight для предоставления своих услуг мгновенного потокового видео. В то время казалось, что у Silverlight многообещающее будущее. Однако эра видеоплагинов подошла к концу. И Silverlight, и Flash ушли в историю, потому что в блоке появился новый ребенок — видеоэлемент HTML5. После 2011 года появление мобильных устройств ускорило потребность в мобильных веб-сайтах и ​​кроссбраузерных приложениях, а HTML5 положил конец многолетней борьбе с проблемами совместимости браузеров. Наконец, Microsoft объявила об окончании срока службы Silverlight 5 в 2012 году. Это был недолговечный продукт, хотя было приложено так много усилий, поскольку элемент видео в HTML5 был предложен в том же году, когда был выпущен Silverlight. Однако усилия не прошли даром, поскольку XAML (расширяемый язык разметки приложений), разработанный Microsoft, когда-то активно использовался в рамках Silverlight, а теперь используется для создания мобильных приложений под Xamarin. По иронии судьбы, сочетая новейшие технологии .NET с Xamarin, мобильные разработчики могут разрабатывать кроссплатформенные и многоэкранные мобильные приложения, которые можно установить на мобильные устройства Android, iOS, Mac и Windows. Одна кодовая база обслуживает их всех.

Прежде чем мы продолжим обсуждение, нам нужно понять, что до появления HTML5 мы не могли придумать лучшую технологию, которая удовлетворяла бы наши потребности в улучшении работы браузера. На самом деле у нас были средства, но все веб-сообщество было в смятении. У нас была браузерная война между разными брендами браузеров. Отдельный плагин может иметь свои лицензии. Меньшие компоненты, такие как технология рендеринга видео или кодеки декодирования видео, имеют свою собственную реализацию для конкретных браузеров и спецификации, которым необходимо следовать. В то время это была сложная работа для веб-разработчиков, потому что вам может потребоваться создать несколько версий одного и того же веб-сайта из-за несоответствий между типами браузеров, версиями браузеров, совместимостью подключаемых модулей, проблемами с лицензированием кодеков. Это всегда была борьба. В один день ваш сайт работал и выглядел идеально, а в другой день ваш сайт выглядел ужасно и вообще не работал после обновления браузера.

Консорциум W3C, разрабатывающий стандарты для всемирной паутины, долгие годы не мог разрешить конфликты. Каждый пытался владеть частью акций. Короче говоря, W3C успешно разработала новую спецификацию под названием HTML5. В контексте новой спецификации многие технологии с открытым исходным кодом теперь встроены в современные браузеры. В сочетании с современным JavaScript (ES) воспроизведение видео из браузера с использованием тега видео HTML5 становится реальностью. Сочетание различных усилий со всех сторон, людей и технологий, является настоящей магией за кулисами для обеспечения работы отображения видео и других функций.

Возвращение

Возвращаясь к Blazor от Microsoft, Microsoft уже в третий раз возвращается в мир веб-разработки после того, как Silverlight был жестоко убит HTML5 и JavaScript. Однако на этот раз, с той же миссией, что и у ActiveX, Microsoft хочет использовать свои технологии, такие как .NET Core и C#, и надеется создать обширную структуру, аналогичную концепции Silverlight. В конце концов, он хочет использовать возможности C# для веб-разработки на стороне клиента и устраняет необходимость в современных библиотеках, таких как React, Angular и Vue. Если вы не слышали о Blazor, вы, вероятно, задаетесь вопросом, возможно ли это вообще. Как сегодня можно написать полезное и интерактивное веб-приложение без использования библиотек JavaScript? Это просто невозможно!

Раньше, без загрузки элемента управления ActiveX или Silverlight, Microsoft не могла предоставить браузеру какие-либо расширенные функции. Однако сегодня, когда появилась новая спецификация в сети, которую мы обсуждали ранее, Microsoft может положиться на тайного друга, скрытого внутри спецификации, по имени WebAssembly (WASM), чтобы сделать эту секретную миссию возможной.

Старые браузеры могли поддерживать ActiveX, Java и Silverlight, поскольку эти подключаемые модули представляли собой подключаемые модули (интерфейс прикладного программирования подключаемых модулей Netscape) на основе NPAPI. Современные браузеры, поддерживающие HTML5, отказались от поддержки плагинов NPAPI и заменили их WebAssembly. Идея создания WASM заключается в том, чтобы анализировать его быстрее, чем JavaScript, и быстрее выполнять, поскольку он находится в двоичном формате, а не в формате, понятном человеку. Его структура на основе стека имеет архитектуру, аналогичную .NET CLR и виртуальной машине Java (JVM). Следовательно, он мог скомпилировать код Blazor в двоичный файл WASM с помощью среды Xamarin Mono под капотом. Blazor — это просто группа обычных сборок .NET, которые выполняются средой выполнения .NET на основе WebAssembly.

Блейзор в действии

Вот процессы Blazor в действии:

  1. Веб-приложение Blazor разработано в Visual Studio 2017 с .NET Core 2.1.
  2. Многие статические файлы, включая страницу Blazor, blazor.js и mono.js, были созданы после публикации приложения.
  3. Страница Blazor (.html) вместе с blazor.js и mono.js загружаются в модуль браузера Mono WebAssembly.
  4. Mono.wasm (Mono-версия WASM) — это фактическая среда выполнения Mono WebAssembly .NET, которую mono.js загружает в браузер. Это Mono, скомпилированный в WebAssembly.
  5. Остальной код .NET не компилируется в WebAssembly, а отвечает на выполнение собственного интерпретатора IL Mono.
  6. В настоящее время код WebAssembly не может получить прямой доступ к DOM и использует мост взаимодействия, предоставляемый blazor.webassembly.js. Другими словами, он по-прежнему полагается на взаимодействие JavaScript для обработки событий, рендеринга и HTTP-запросов.

Из жизненного цикла веб-приложения Blazor, показанного выше, кажется, что веб-приложение Blazor все еще находится на ранней стадии разработки для WebAssembly, потому что процесс все еще довольно грубый. Например, ему по-прежнему требуется помощь взаимодействия с JavaScript, поскольку это единственный способ обойти управление DOM. Тем не менее, WebAssembly предлагает еще один эффективный и быстрый способ запуска кода в современном браузере. Хотя Blazor все еще является экспериментальной веб-платформой и не готов к работе на сайте, WASM открывает множество возможностей. Приложения Blazor могут использовать многие библиотеки и инструменты в естественной экосистеме .NET. Помимо Blazor, существует небольшая кросс-платформенная библиотека пользовательского интерфейса для .NET под названием Ooui (произносится как виии!), которая использует технологии WASM для запуска Xamarin.Forms в настольном браузере. Таким образом, это, по сути, перенос модели на основе SAML в WebAssembly, и логично предположить, что когда-нибудь существует возможность переноса существующих проектов Silverlight на использование WebAssembly.

ПЕРСПЕКТИВЫ

В отличие от ActiveX и Silverlight, Blazor — это технология с открытым исходным кодом, цель которой — привлечь широкую аудиторию веб-разработчиков и придерживаться стандартных веб-технологий, таких как CSS и HTML. Blazor нужно время, чтобы созреть и развиваться, чтобы иметь все больше и больше функций, сопоставимых с возможностями популярных платформ на основе JavaScript. Возможно, когда-нибудь Blazor займет место в среде веб-разработки, поскольку с объектно-ориентированным языком, таким как C#, всегда проще работать, чем с JavaScript. Помимо Blazor, могут быть и другие языки программирования, такие как Java или Go, который также может стать следующим претендентом на инструмент на основе WebAssembly, такой как Blazor. Возможно, однажды мы сможем отказаться от библиотек JavaScript и перестать гоняться за новыми библиотеками. Кто знает? Blazor может стать шармом для Microsoft в третий раз.

Если у вас есть какие-либо мысли о Blazor, или это может быть тот, или комментарии к статье, я хотел бы услышать, что вы хотите сказать. Спасибо за чтение.

Еще статьи о Разработке

Вот несколько бесплатных электронных книг для вас:
Полное руководство по принятию карьерных решений в веб-разработке

Полное руководство по IoT для ИТ-специалистов

Первоначально опубликовано на https://www.unitingdigital.com 12 декабря 2018 г.