Jump to content

Блазор

Блазор
Оригинальный автор(ы) Майкрософт
Разработчик(и) Фонд .NET
Первоначальный выпуск 2018 ; 6 лет назад ( 2018 )
Репозиторий github /дотнет /aspnetcore /дерево /основной /источник /Компоненты
Операционная система Linux , MacOS , Windows
Входит в комплект Ядро ASP.NET
Тип Веб-фреймворк
Лицензия Лицензия Апач 2.0
Веб-сайт дотнет .microsoft /en-нас /приложения /аспнет /веб-приложения /blazor

Blazor — это с открытым исходным кодом бесплатная веб-платформа , которая позволяет разработчикам создавать пользовательские веб-интерфейсы (UI) на основе компонентов с использованием C# и HTML . [1] [2] [3] [4] [5] Он разрабатывается Microsoft как часть платформы веб-приложений ASP.NET Core .

Blazor можно использовать для разработки одностраничных , мобильных или серверных приложений с использованием технологий .NET.

В 2017 году на NDC в Осло Стив Сандерсон, инженер-программист Microsoft, представил [6] экспериментальная среда клиентских веб-приложений для .NET , которую он назвал «Blazor». Демонстрация включала интерактивное приложение, работающее в браузере с использованием WebAssembly , и элементарный опыт разработки в Visual Studio. Сандерсон продемонстрировал, как создавать интерактивные компоненты с использованием синтаксиса C# и Razor . Затем приложение было скомпилировано в сборки .NET, которые работали в облегченной сторонней среде выполнения .NET с открытым исходным кодом, называемой DotNetAnywhere, которая была скомпилирована в WebAssembly.

Название «Blazor», как объяснил Стив Сандерсон, представляет собой сочетание слов «Браузер» и «Бритва». (из Razor используемого синтаксиса )

Blazor был признан Microsoft официальным проектом с открытым исходным кодом, а в 2018 году Blazor Server был выпущен для общественности как часть .NET Core 3.1. Он позволил интерактивному веб-приложению, управляемому сервером, обновлять клиентский браузер через WebSockets . Вскоре после этого был выпущен Blazor WebAssembly. В отличие от прототипа, он использовал среду выполнения Mono .NET в WebAssembly. Это та же среда выполнения, которая используется для разработки мобильных приложений с помощью .NET MAUI (ранее Xamarin ).

Исходный код Blazor сначала находился в собственном репозитории на GitHub, пока не был объединен с монорепозиторием ASP.NET Core . С тех пор разработка ведется оттуда.

С выпуском .NET 5 Blazor прекратил работу с Internet Explorer и устаревшей версией Microsoft Edge . [7]

В 2023 году с выходом .NET 8 серверный Blazor претерпел некоторые фундаментальные изменения. [8] для включения страниц, отображаемых на стороне сервера (SSR), которые по сути не являются интерактивными, что позволяет использовать Blazor в качестве альтернативы MVC Razor Pages . Благодаря этому изменению разработчики могут указать для каждого компонента (или страницы), должен ли он быть интерактивным и должен ли он запускаться на сервере или в браузере с помощью WebAssembly. Они называются интерактивными «режимами рендеринга».

Компоненты

[ редактировать ]

Компоненты формально называются компонентами Razor .

Компонент Razor состоит в основном из HTML, смешанного с синтаксисом шаблонов Razor, что позволяет встроенному использованию C# влиять на рендеринг.

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

Хотя и разметку, и код C# можно разместить в одном .razor файл, также возможно иметь отдельный файл кода программной части с разделяемым классом.

Компоненты компилируются в классы .NET. Разметка компонента в формате HTML и Razor преобразуется в код, который создает дерево рендеринга, которое затем управляет фактическим рендерингом.

В следующем примере показано, как реализовать простой счетчик, который можно увеличить нажатием кнопки:

<h1>Counter</h1>

<p>Count: @count</p>

<button @onclick="Increment">Increment</button>

@code 
{
    private int count = 0;

    private void Increment()
    {
        if(count == 20) count = 0;
        else count++;
    }
}

Модели хостинга

[ редактировать ]

Приложения Blazor можно размещать разными способами. Это модели хостинга для .NET 8.

Веб-приложение Blazor (сервер)

[ редактировать ]

Размещаемое на сервере приложение Blazor как часть приложения ASP.NET Core.

Статический рендеринг на стороне сервера (SSR)

[ редактировать ]

По умолчанию компоненты отображаются сервером как статический HTML без какой-либо интерактивности. Интерактивность можно включить для каждого компонента, установив режим рендеринга.

Это эквивалентно тому, как отображаются представления MVC и страницы Razor.

Режимы рендеринга

[ редактировать ]

Источник: [9]

В .NET 8 Blazor представил концепцию режимов рендеринга, которая определяет, являются ли компоненты Razor интерактивными и что управляет этой интерактивностью.

Режим рендеринга наследуется в иерархии компонентов от самого верхнего родительского компонента, для которого установлен режим рендеринга. Это не может быть переопределено дочерними компонентами, если его режим рендеринга не является статическим сервером по умолчанию.

  • Статический сервер . Компонент отображается статически на сервере без интерактивности. Это значение по умолчанию.
  • Интерактивный сервер — компонент работает на сервере в интерактивном режиме. Интерактивность управляется сервером, а изменения передаются клиенту через WebSocket с помощью SignalR .
  • Интерактивная WebAssembly — компонент работает в интерактивном режиме в браузере с использованием WebAssembly.
  • Интерактивный автоматический режим : при этом компонент первоначально загружается в режиме рендеринга интерактивного сервера во время загрузки пакета Blazor. При последующих посещениях на клиенте используется Interactive WebAssembly.

Предварительный рендеринг

[ редактировать ]

Интерактивные компоненты предварительно визуализируются на сервере перед тем, как материализоваться на клиенте и начать интерактивность. Это поведение включено по умолчанию, но его можно отключить.

Улучшенная навигация

[ редактировать ]

Эта функция делает навигацию на статическом сайте более плавной, как в одностраничном приложении (SPA).

При переходе от одной статической страницы к другой приложение перехватывает навигацию, получая только содержимое целевой страницы, а затем применяет только изменения к DOM . Таким образом, страница не мерцает, как это обычно происходит при полной перезагрузке при переходе на другую страницу.

Веб-сборка (автономная)

[ редактировать ]

Это автономное интерактивное приложение WebAssembly, работающее в клиентском браузере.

При переходе к приложению в браузере пакет приложения загружается, затем загружается и выполняется в изолированной программной среде браузера.

Приложение WebAssembly также можно превратить в прогрессивное веб-приложение (PWA).

До .NET 8 существовал шаблон проекта, в котором приложение Blazor WebAssembly размещалось в приложении ASP.NET Core, содержащем веб-API. Это было удалено в пользу шаблона проекта веб-приложения Blazor, хотя функциональность осталась.

Гибридный

[ редактировать ]

Позволяет приложениям Blazor запускаться в собственном приложении с помощью WebView. [10] Рендеринг осуществляется в процессе хостинга, без веб-сервера.

Гибридные приложения можно размещать в Windows Presentation Foundation или WinForms приложении .

Этот подход используется для создания собственных мобильных приложений с помощью Blazor с использованием .NET MAUI .

Сервер (устаревший)

[ редактировать ]

Предполагаемое использование заключалось в том, чтобы включить интерактивные компоненты, управляемые сервером, с отправкой изменений клиенту с помощью WebSockets.

Компонент был отображен на странице MVC Razor.

Он также включил предварительную отрисовку компонентов WebAssembly.

Эта модель хостинга формально называлась «Blazor Server».

Он устарел в пользу веб-приложения Blazor.

См. также

[ редактировать ]
  1. ^ Страл, Рик (31 июля 2018 г.). «Веб-сборка и Blazor: повторная сборка Интернета» . Блог Рика Страла . Самостоятельно опубликовано . Архивировано из оригинала 22 октября 2018 года.
  2. ^ Томассетти, Федерико (4 сентября 2018 г.). «Blazor: .NET в браузере» . tomassetti.me . Струмента. Архивировано из оригинала 22 октября 2018 года.
  3. ^ Джеймс, Майк (12 февраля 2018 г.). «Blazor .NET в браузере» . i-programmer.info . Самостоятельно опубликовано . Архивировано из оригинала 18 февраля 2018 г.
  4. ^ Миллер, Джонатан (сентябрь 2018 г.). «C# в браузере с Blazor» . Журнал MSDN . 33 (9). Архивировано из оригинала 22 октября 2018 года.
  5. ^ Рот, Дэниел (22 марта 2018 г.). «Начните создавать веб-приложения .NET, которые работают в браузере с помощью Blazor» . Блог ASP.NET . Майкрософт . Архивировано из оригинала 30 апреля 2019 г.
  6. ^ «Веб-приложения на самом деле не могут *этого*, не так ли? - Стив Сандерсон» . Ютуб . 10 июля 2017 г. Проверено 28 февраля 2024 г.
  7. ^ Рот, Дэниел (30 сентября 2020 г.). «Обновлена ​​поддержка браузера Blazor для .NET 5» . репозиторий dotnet/aspnetcore . Microsoft — через GitHub.com .
  8. ^ «Основы ASP.NET Core Blazor» . 2024-12-02 . Проверено 28 февраля 2024 г.
  9. ^ «Режимы рендеринга ASP.NET Core Blazor» . 09.02.2024 . Проверено 26 марта 2024 г.
  10. ^ «Гибрид ASP.NET Core Blazor» . Проверено 14 ноября 2023 г.

Дальнейшее чтение

[ редактировать ]
  • Энгстрем, Джимми (2021). Веб-разработка с помощью Blazor: практическое руководство для разработчиков .NET по созданию интерактивных пользовательских интерфейсов с помощью C# . Пакт Паблишинг. ISBN  978-1800208728 .
  • Химшут, Питер (2021). Microsoft Blazor: создание веб-приложений в .NET 6 и более поздних версиях . Апресс. ISBN  978-1484278444 .
  • Райт, Той (2021). Blazor WebAssembly на примере: руководство на основе проектов по созданию веб-приложений с помощью .NET, Blazor WebAssembly и C# . Пакт Паблишинг. ISBN  978-1800567511 .
  • Сэйнти, Крис (2022). Блазор в действии . Публикации Мэннинга. ISBN  978-1617298646 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d942d73d1a896dedeef240da03c68705__1719799860
URL1:https://arc.ask3.ru/arc/aa/d9/05/d942d73d1a896dedeef240da03c68705.html
Заголовок, (Title) документа по адресу, URL1:
Blazor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)