company_banner

Веб-разработка с .NET: Представляем Blazor WebAssembly 3.2.0

Автор оригинала: Microsoft
  • Перевод
Привет, Хабр! Я рад сообщить, что 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. Пробуйте, комментируйте. Очень ждем обратную связь о релизе.
Microsoft
Microsoft — мировой лидер в области ПО и ИТ-услуг

Похожие публикации

Комментарии 17

    +1
    Очередной вебформс или силверлайт?
    Демо что-то у меня так и не заработало на www.telerik.com/blazor-ui
      +2
      Доброе утро!
      WebAssembly. Погуглите хоть, что это такое :-)
        +1
        Добрый вечер.
        WebAssembly тут только как движок, имеется ввиду сам подход «все в одну кучу» и «декстопщиков в веб!».
        И я вижу (пока что из далека, конечно ибо в нюансах не изучал еще) тут все предпосылки к лозунгам выше.
          0
          В Blazor нет «кучи», в которую «всё». С точки зрения программиста архитектура там вполне реактовская. Такие же реактивные компоненты со стейтом и пропсами, такой же жизненный цикл фронта, похожий роутинг. Вместо TS — С#, вместо React — Blazor, напротив JSX — Razor. Платформа остается веб-ориентированной, только теперь кушает .NET-сборки в сыром виде (без перекомпиляции в WASM, хотя и с некоторыми ограничениями) и с возможностью свободно интеропаться с JS при необходимости. Жирный плюс — это типобезопасность в рантайме, в которую не может TS/Flow.
        0
        инструмент позволяющий .net разработчику более бесшовно писать сайты как обычное написание программы, а не как набор js-костылей, сахар в .net core просто из всех щелей льётся
          +1
          «Обычное» написание веб программы — разделение бека и фронта.
          Сколько раз их уже сдружить пытались?
          В итоге — не очень. Да, я и Razor считаю — не очень, пойдет для простых олдскульных или утилитарных нужд, но не более. А тут еще и механизм комуникации скрыт и еще больше склеено.
          Не понимаю я радости бекендщиков, все равно фронтовые проблемы не уйдут (та же разметка, CSS остается-то), а может еще и добавится. А для фулстека оно и не надо.
        +2

        ждем статью с конкретным примером сравнения VueJS + .net Core Web api VS Blazor.

        0

        Порадовало: элегантное сочетание HTML и C#.

          0

          Еще есть:


            0
            Выглядит очень круто, я точно будут это использовать для админок. Но мучает меня один вопрос — в режиме web assembly, сколько Kb/Mb нужно будет скачать клиенту чтобы этим пользоваться?
              0

              Пустое приложение будет весить около 1,5 метров. Но это бессмысленная оценка. В реальности все будет зависеть от потребностей веб страницы, моё тестовое приложение занимало около 20 мб, но там использовалось много библиотек. Вообще, у мелкомягких большие планы на оптимизацию размера.
              https://github.com/dotnet/blazor/wiki/FAQ#q-wouldnt-the-app-download-size-be-huge-if-it-also-includes-a-net-runtime

                +1
                Хммм… кажется это провал :( 20 Мб это, скорее всего, нормальная оценка для более-менее сложного приложения и это как-то многовато для всего, что B2C. Похоже пока только для админок все это можно использовать.
                  0
                  Да ладно вам. 2020 на дворе, в прости господи лендинги с тремя кружочками втыкают видосы с автоплеем для красивого бэкграунда. Стриминговые сервисы со всех сторон. «C» скорее всего и не заметит эти крохи по сравнению со всем трафиком. (Что, впрочем, не меняет факта, что страничка не должна весить столько, сколько они весят на сегодняшний день)

                  Кстати о трафике, интересно было бы замерить трафик у Blazor Server, т.к. там именно стриминг всего.
              0
              Интересно, будет ли нового поколения Blazor способен хостится на новом Mono? Сейчас последняя версия, которая способна хоститься на моно — netcoreapp2.2 -> net471 (Так как Mono — Это реимплементация NetFramework). А выше только NetCore…
                0
                А зачем на моно то хоститься?
                  +1
                  На MIPS и Эльбрусах только Моно). Удалось запустить только AspNetCore 2.2

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое