Доклад "Full stack веб-разработка используя C# и WebAssembly"

Привет. Сегодня хочу рассказать об мероприятии, на котором я участвовал в качестве спикера. Двадцатого сентября в городе Витебск состоялся "DevDay 3.0 Re!Start", где я выступил с докладом "Full stack веб-разработка используя C# и WebAssembly".

DevDay 3.0 Re!Start

Слайды моего доклада можно увидеть ниже:

Здесь приведу небольшую выжимку из того, что я рассказывал (без практических примеров).

Поговорим мы сегодня о технологии, которая, в перспективе, сможет здорово потеснить JavaScript.

Давайте вспомним о самых известных технологиях, которые так и не смогли вытеснить JavaScript:

  • ActiveX – технология позволяла делать вообще всё, безо всякого sandbox, соответственно представляла реальную угрозу безопасности.
  • Adobe Flash – с данной технологией, думаю, сталкивались все. Было время, когда даже сайты целиком писали используя её. Было много проблем в безопасности и надёжности работы.
  • Silverlight – был словно улучшенный Flash. Работал гораздо стабильнее и быстрее, разрабатывать, используя его, на мой взгляд, было так же удобнее. Но также требовал установки отдельного плагина. В итоге в 2013 году прекращено его развитие.
  • NaCl, Java Applet и подобные так же в итоге не прижились.

Когда мы говорим о выше названных технологиях, многие представляют себе следующую картину. И это была одна из причин, почему данные технологии так и не добились успеха:

Проблемы загрузки flash, java applet и подобного

WebAssembly даёт очередную попытку свержения монополии JavaScript.

WebAssembly (wasm) — эффективный низкоуровневый байт-код, предназначенный для исполнения в браузере. WebAssembly работает быстрее чем JavaScript. Полученный байт-код лучше сжат, по сравнению с JavaScript, следовательно загрузка происходит быстрее. WebAssembly запускается в песочнице с наложенными ограничениями. То есть, аналогично JavaScript, просто так мы не можем получить, например, доступ к файловой системе, без дополнительных разрешений. Работает на всех платформах во всех современных браузерах. Поддерживаемые браузеры можно увидеть ниже. Как можно заметить, сейчас всё это не будет работать только в IE, Opera Mini и UC Brawser под Android.

Поддержка WebAssembly в различных браузерах

Еще одним пунктом можно выделить удобство разработки.

Чем же так хорош WebAssembly и чем он отличается от ранее провалившихся технологий?

WebAssembly — совместная инициатива Mozilla, Microsoft, Google, Apple и других. Она не продвигает чью-то конкретную платформу, что даёт надежду на действительно широкое распространение.

WebAssembly НЕ является языком программирования. Он представляет из себя байт-код, который можно получить, фактически, используя любой язык, имея соответствующий интерпретатор.

Теперь перейдём непосредственно, к Blazor. Что же это такое?

Blazor - это одностраничная платформа веб-приложений, построенная на .NET, которая работает в браузере с помощью WebAssembly.

Почему стоит обратить внимание на Blazor?

Стабильность и согласованность: .NET обеспечивает стандартизированные рамки программирования на всех платформах, они являются стабильными, многофункциональными и простыми в использовании.

Современные инновационные языки: Языки .NET такие как C# и F# позволяют программировать с удовольствием, так как они постоянно улучшаются и поддерживают всё больше необходимого современного функционала.

Скорость и масштабируемость: .NET имеет сильную историю производительности, надежности и безопасности для разработки приложений. Использование .NET в качестве решения для full-stack разработки упрощает создание быстрых, надежных и безопасных приложений.

Лучшие инструменты в отрасли: Семейство продуктов Visual Studio обеспечивает разработку используя .NET на всех платформах в Windows, Linux и MacOS.

Приложение Blazor состоит из обычных скомпилированных сборок .NET, которые загружаются и запускаются в веб-браузере с использованием среды выполнения .NET на основе WebAssembly. Только непосредственно сама среда выполнения .NET компилируется в WebAssembly. С Blazor можно работать не имея .NET Core на сервере. Но он может интегрироваться с .NET для обеспечения full-stack разработки. Для старых браузеров, которые не поддерживают WebAssembly, Blazor возвращается к использованию среды выполнения .NET asm.js. Использование asm.js медленнее и имеет больший размер загрузки, но все еще довольно функционально. Приложения Blazor могут обращаться к JavaScript, что позволяет не переписывать без необходимости существующие JS библиотеки.

Blazor - откуда взялось название?

Browser + Razor = Blazor

Развёртывание с помощью ASP.NET Core – Развертывание использует приложение ASP.NET Core на сервере для размещения приложения Blazor.

Автономное развёртывание – автономное развертывание размещает приложение Blazor на статичном веб-сервере или службе, где .NET не используется для обслуживания приложения Blazor.

Сейчас это всё еще тестовая технология, судьба которой не решена до конца, но популярность она начинает набирать, сообщество поклонников Blazor растёт.

Полезные ссылки:

https://blazor.net/ — сайт официальной документации Blazor.

https://blazor.ru/ — документация Blazor на русском языке

http://demo1.blazor.ru/, http://demo2.blazor.ru/ — примеры используемые в докладе

https://github.com/AdrienTorris/awesome-blazor — подборка интересных материалов связанных с Blazor

https://github.com/aspnet/Blazor — репозиторий разработки Blazor

https://vk.com/event171415234 — страница прошедшего митапа.

Мероприятие мне понравилось, обстановка было очень дружеская и располагающая к беседам. Надеюсь, это было моё не последнее выступление в Витебске и, если позовут, то еще раз, непременно, приеду.

А за грамотную организацию и проведение хочу сказать спасибо Андрею Алёшину, который взял на себя ответственность за возрождение подобных мероприятий в Витебске.

Что касается Blazor, то данная технология, как и ожидалось, очень интересна разработчикам. Многие скептически относятся к очередной попытке "заменить" JavaScript, но при этом все согласны, что технология очень интересная и вполне может занять свою нишу. Посмотрим, что с ней будет дальше.

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