G
enby!

10 Введение в Blazor на .NET 6, поток исполнения в приложении на Blazor Server

В этом видео рассмотрен каков порядок работы приложения c Blazor, который определяется в файле Program.cs. Где создаётся объект builder с помощью вызова метода CreateBuilder, из класса WebApplication, с использованием, передаваемых в метод аргументов. Далее, добавляются сервисы, в контейнер для внедрения зависимостей, а затем, создаётся новый экземпляр работающего приложения, с помощью метода builder.Build. На этом этапе, создаётся веб-приложение, а после этого, задаётся последовательность компонентов конвейера в blazor, для обработки запросов, и в конце, приложение запускается на исполнение. На локальной машине, возможен запуск приложения, либо на сервере Kestrel, либо в IIS-Express, в зависимости от выбранных опций запуска. Так что это просто краткий обзор настроек и порядка запуска приложения на blazor. В конвейере, среди его компонентов, есть компонент для настройки маршрутизации входящего запроса в blazor, где указана маршрутизация по умолчанию, в среде .NET 6. Далее, в этих компонентах заявляется, что конечной точкой маршрутов является Blazor. Добавляя этот компонент MapBlazorHub, по факту сюда подключается SignalR, для нашего приложения Blazor. И SignalR — это центральная часть, и движок нашего приложения Blazor. SignalR, это основной сервис, с которым будет общаться наше, запущенное приложение. И при возникновении, любых изменений, из SignalR, будет поступать команда, на перерисовку или рендеринг, каких то визуальных компонентов приложения. Именно эта связка, делает Blazor отзывчивым, наподобие фронтенд-фреймворков на JavaScript. Для этого в конвейера, нужно добавить специальный компонент, для сопоставления или маппинга. Этот компонент, называется MapBlazorHub. И в нем, уже настроено все необходимое, для работы с SignalR. Следующим шагом в конвейере, является app.MapFallbackToPage, c указанием, в передавамых параметрах, пути к странице _Host. Этот параметр указывает, маршрут, по умолчанию, это страница _Host. При запуске приложения, происходит переход на страницу _Host, и уже оттуда, происходит фактическая маршрутизация. По умолчанию, обработка запроса, переходит на страницу _Host, где и происходит, навигация по соответствующему пути. Файла _Host, находится внутри папки Pages, с расширением . cshtml. В папке Pages, содержатся ещё несколько файлов, с расширением .cshtml, это файлы _Layout и Error.cshtml. И внутри этого файла _Host, прописана специальная директива @page, после которой, указан путь на страницу. Это может быть просто косая черта, что означает, что это путь, к корневой папке, для страниц нашего приложения. Далее также, указывается пространство имен, а затем подключается набор вспомогательных методов или тег-хелперов. Далее, определяется главная страница по умолчанию, или маска, и она называется _Layout. Следующая строка в _Host, определяет какой компонент Blazor, будет отображаться. В данном случае, это компонент App. То есть, сама визуальная часть нашего приложения. А также здесь, задается способ его прорисовки или рендеринга, в этом проекте это предварительный рендеринг на сервере, или ServerPreRendered. Так что этот визуальный компонент App, является тем компонентом, в котором, будет происходить весь рендеринг, всех страниц, в нашем приложении, где будет указан название проекта и способ рендеринга — ServerPrerendered. Такой предварительный рендеринг на сервере, задается здесь потому что, наше приложение будет иметь модель хостинга на Сервере. То есть это приложение, типа Blazor-Server. И внутри App.razor, есть ссылка на некий основной компонент по умолчанию, это MainLayout и ссылка на данные для роутинга, то есть routeData. Именно здесь, и происходит фактическая маршрутизация для запроса. И если вернуться в _Host, то здесь указан, основной компонент. И это по умолчанию, мастер страница _Layout. А также есть компонент, который указан в App.razor. Где происходит, дополнительная маршрутизация. Внутри Router или маршрутизатора, есть обработка двух ситуаций. Первая..., когда найден контекст routeData, и Вторая ситуация, когда контекст не найден. В RouteData, или данные для роутинга, включена не только искомая страница, а шаблон _Layout, и навигационная панель. Также в этом файле есть ссылка на DefaultLayout. Так что, если в routeData, или на странице, на которую осуществляется переход, нет собственного шаблона страницы типа _Layout, то здесь, можно это явно определить, в ссылке для DefaultLayout, что можно перевести как шаблон или маска по умолчанию . Страница по умолчанию, описывается в файле Index.razor. Скидка на курс по Blazor часть 1 https://www.udemy.com/course/blazor_i...
Скидка на курс по Blazor часть 2 https://www.udemy.com/course/blazor-s...
*При подписке по ссылкам, дополнительная поддержка в Discord

Смотрите также