Привет, Хабр! Я рад сообщить, что Blazor WebAssembly теперь официально выпущена и доступна для всех. Это полнофункциональный и поддерживаемый выпуск Blazor WebAssembly, готовый к использованию в продакшене. Фулл-стак веб-разработка с .NET! Подробности под катом.



Начало работы


Начать работу с Blazor WebAssembly очень просто: зайдите на blazor.net и установите последнюю версию .NET Core SDK (3.1.300 или более позднюю), которая включает в себя все необходимое для создания и запуска приложений Blazor WebAssembly.

Затем вы можете создать и запустить свое первое приложение Blazor WebAssembly, выполнив:

dotnet new blazorwasm -o BlazorApp1
cd BlazorApp1
dotnet run

Перейдите по адресу 'https://localhost:5001' и вуаля! Вы только что создали и запустили свое первое приложение Blazor WebAssembly!

Чтобы максимизировать производительность Blazor, обязательно установите поддерживаемую версию Visual Studio для выбранной вами платформы:


Вы можете найти дополнительные документы и примеры на blazor.net.

Как обновить существующий проект


Если у вас уже есть проект Blazor WebAssembly, вы можете обновить его с превью-версии 3.2.0 до релиз-версии 3.2.0, сделав следующее:

  • Обновите все ссылки на пакеты Microsoft.AspNetCore.Components.WebAssembly.* и System.Net.Http.Json до версии 3.2.0.

Вот и все, все готово!

Что такое Blazor WebAssembly?


Если вы впервые слышите о Blazor, позвольте мне рассказать вам о том, что такое Blazor WebAssembly.

Blazor — это кроссплатформенный фреймворк пользовательского интерфейса с открытым исходным кодом для создания одностраничных приложений с использованием .NET и C# вместо JavaScript. Blazor основан на мощной и гибкой компонентной модели для создания многофункционального интерактивного веб-интерфейса. Вы реализуете компоненты пользовательского интерфейса Blazor, используя комбинацию кода .NET и синтаксиса Razor: элегантное сочетание HTML и C#. Компоненты Blazor могут беспрепятственно обрабатывать события пользовательского интерфейса, связываться с пользовательским вводом и эффективно отображать обновления пользовательского интерфейса.

Компоненты Blazor могут быть размещены различными способами для создания вашего веб-приложения. Первый поддерживаемый способ называется Blazor Server. В приложении Blazor Server компоненты запускаются на сервере с использованием .NET Core. Все взаимодействия и обновления пользовательского интерфейса обрабатываются с помощью соединения WebSocket в реальном времени с браузером. Приложения Blazor Server быстро загружаются и просты в реализации. Поддержка Blazor Server доступна в .NET Core 3.1 LTS.

Blazor WebAssembly теперь является вторым поддерживаемым способом размещения компонентов Blazor: на стороне клиента в браузере с использованием среды выполнения .NET на основе WebAssembly. Blazor WebAssembly включает в себя надлежащую среду выполнения .NET, реализованную в WebAssembly, стандартизированном байт-коде для web. Эта среда выполнения .NET загружается вместе с приложением Blazor WebAssembly и позволяет запускать обычный код .NET непосредственно в браузере. Никаких плагинов или кода не требуется. Blazor WebAssembly работает со всеми современными веб-браузерами, как настольными, так и мобильными. Подобно JavaScript, приложения Blazor WebAssembly надежно работают на устройстве пользователя из изолированной программной среды безопасности браузера. Эти приложения могут быть развернуты как полностью автономные статические сайты без какого-либо компонента сервера .NET, или они могут быть соединены с ASP.NET Core, чтобы обеспечить полноценную веб-разработку с помощью .NET, где код может быть легко передан клиенту и серверу.

Полнофункциональный


Blazor WebAssembly поставляется с множеством функций, которые помогут вам продуктивно работать в следующем проекте веб-приложения:


Готовые компоненты


Конечно, любое веб-приложение будет нуждаться в красивых и многофункциональных компонентах. Разнообразные компоненты пользовательского интерфейса Blazor доступны от наших фантастических партнеров, которые прекрасно работают в любом приложении Blazor, включая приложения Blazor WebAssembly:


Open-source сообщество


Blazor также имеет крутое open-source сообщество и экосистему. Члены сообщества (такие же, как и вы!) создали множество великолепных библиотек компонентов, библиотек взаимодействия, тестовых сред и т. д., а затем сделали их свободно доступными для использования. Вот несколько интересных примеров:


Вы можете найти эти проекты сообщества и многие другие в репозитории Blazor на GitHub.

LTS или текущий?


Blazor WebAssembly 3.2.0 является полностью поддерживаемым выпуском в соответствии с политикой поддержки .NET Core. Поскольку это первый выпуск Blazor WebAssembly, это текущий выпуск, а не выпуск LTS (долгосрочной поддержки); он не наследует статус LTS .NET Core 3.1. Это означает, что после того, как Blazor WebAssembly выйдет вместе с .NET 5 в конце этого года, вам потребуется обновить его до .NET 5. Мы ожидаем, что Blazor в .NET 5 будет очень высоко-совместимым.

Что дальше?


Теперь, когда мы выкатили Blazor WebAssembly, переключаем наше внимание на .NET 5. Уже началась работа по обеспечению доступности Blazor WebAssembly в .NET 5, которую мы ожидаем завершить для нового превью в следующем месяце.

У нас есть идеи о ряде функций и улучшений Blazor, которые мы рассматриваем для .NET 5 & 6. Вы можете увидеть список основных фич, которые мы хотим реализовать, в дорожной карте Blazor для .NET 5 на GitHub. Обратите внимание, что мы считаем этот список весьма важным. Но все равно, хотя мы и надеемся создать все перечисленные улучшения, еще многое неизвестно, и планы, безусловно, могут меняться по мере нашего продвижения. Мы также ожидаем, что будет много небольших улучшений, о которых мы также расскажем.

Мы также продолжаем сотрудничать с нашими друзьями из команды Xamarin в области экспериментальной поддержки создания собственного пользовательского интерфейса с помощью Blazor в рамках проекта Mobile Blazor Bindings. Работа включает в себя, скажем так, «ранние» усилия по изучению создания гибридного пользовательского интерфейса для нативных приложений. Об этом мы надеемся вскоре рассказать больше.

Заключение


Спасибо за заинтересованность в теме Blazor. Пробуйте, комментируйте. Очень ждем обратную связь о релизе.