С какой ситуации начинается Blazor

Представьте: вы уже немного знаете C#. Умеете создать класс, написать метод, использовать if, foreach и список объектов. Ещё вы примерно понимаете HTML, CSS и JavaScript: HTML создаёт элементы страницы, CSS делает их красивее, JavaScript реагирует на клики.

Потом появляется задача:

«Сделай страницу учебного трекера. На ней должен быть список курсов, прогресс, заметки и кнопка "Продолжить обучение"».

На уровне C# всё выглядит знакомо. Курс можно описать классом Course, урок - классом Lesson, заметку - классом Note. Прогресс можно хранить числом. Список курсов можно перебрать через foreach.

Но пользователь видит не C#-классы, а страницу в браузере. На этой странице должны быть заголовки, карточки, кнопки, формы и списки. Обычно такие вещи собираются из HTML, CSS и JavaScript. HTML показывает структуру, CSS отвечает за внешний вид, JavaScript добавляет поведение.

Blazor помогает в такой ситуации: он позволяет описывать части страницы так, чтобы рядом с HTML-разметкой можно было писать C#-код. Например, вывести значение переменной, пройтись по списку курсов или обработать нажатие кнопки C#-методом.

Пока это определение можно читать проще: Blazor даёт способ делать веб-страницы, где логика интерфейса может быть написана на C#.

Где Blazor находится на карте веб-разработки

Чтобы Blazor не выглядел отдельным загадочным словом, начнём с обычной веб-страницы.

HTML задаёт структуру страницы: заголовки, списки, формы, кнопки, ссылки.

CSS отвечает за внешний вид: отступы, цвета, сетки, адаптивность, размеры.

JavaScript добавляет поведение: например, что произойдёт после клика по кнопке.

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

Если вы делаете простую страницу, этих знаний уже достаточно: HTML, CSS, немного JavaScript. Но когда страница превращается в приложение, появляется много повторяющихся частей: карточки курсов, кнопки, формы, списки, индикаторы прогресса.

Blazor находится именно здесь. Он помогает собирать такие части как компоненты и писать их поведение на C#.

Файл Blazor-компонента обычно имеет расширение .razor. В нём рядом живут разметка и C#-код:

<h1>@title</h1>

@code {
    private string title = "Мой учебный трекер";
}

Этот пример специально маленький. Сейчас важно увидеть саму форму: HTML-разметка выводит заголовок, а значение приходит из C#-поля. Позже на этом же принципе появятся кнопки, списки, формы, параметры и события.

Что такое компонент

Главная единица Blazor - компонент. Проще всего думать о нём как о самостоятельной части экрана.

В учебном трекере компонентами могут стать:

  • карточка курса;
  • индикатор прогресса;
  • форма заметки;
  • список последних уроков;
  • кнопка завершения урока;
  • страница темы целиком.

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

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

Почему .NET-командам это удобно

Blazor особенно хорошо ложится на проекты, где человек или команда уже пишут на C#.

Причина простая: интерфейс начинает говорить на знакомом языке. Вы можете использовать классы, свойства, условия, циклы и методы C#. Для новичка это снижает порог входа: сначала нужно понять устройство компонентов, а не сразу осваивать отдельный большой фронтенд-мир.

Это не означает, что в каждом .NET-проекте нужно выбирать Blazor. У технологии есть своё место.

Blazor хорошо подходит для:

  • внутренних сервисов;
  • административных панелей;
  • личных кабинетов;
  • учебных платформ;
  • корпоративных приложений;
  • интерфейсов с большим количеством форм, таблиц, фильтров и состояния.

Для простой статической страницы часто достаточно обычного HTML и CSS. Если на странице только текст, картинки, ссылки и одна простая форма, Blazor может быть лишним. Если же страница постепенно становится приложением с состоянием, кнопками, формами, списками и правилами, Blazor начинает выглядеть уместнее.

Задача курса не в том, чтобы объявить Blazor универсальным ответом. Задача - научиться видеть, когда он действительно упрощает работу.

Почему у Blazor несколько режимов

Когда новичок открывает документацию по Blazor, он быстро встречает слова Server, WebAssembly, static SSR, interactive render mode. На первом уроке это может сбивать: будто нужно сразу выбрать правильный режим и выучить всю внутреннюю механику.

На старте достаточно другой рамки. Современный Blazor Web App умеет сначала отдать пользователю страницу с сервера, а затем добавить интерактивность тем компонентам, которым она нужна.

Подробности появятся позже. Сначала мы научимся создавать проект, писать компоненты, передавать данные в компонент, обрабатывать клики и работать с формами. После этого render modes станут практическим выбором, а не набором слов из документации.

Пока запомните только ориентир: Blazor может начинать как обычное серверное веб-приложение и добавлять интерактивность постепенно.

Что мы будем собирать в курсе

Сквозной проект курса - личный учебный трекер. В нём будут темы, уроки, заметки, прогресс, фильтры и формы. Такой проект хорошо подходит для первого знакомства с Blazor: он не слишком большой, но в нём сразу видны компоненты, состояние, события и работа с данными.

Путь будет постепенным:

  • сначала поймём место Blazor и подготовим окружение;
  • затем создадим первое приложение;
  • научимся собирать интерфейс из компонентов;
  • добавим параметры, события и формы;
  • подключим данные;
  • разберём маршруты, состояние, render modes, JS interop и публикацию.

В следующем уроке подготовим рабочее окружение. После этого создадим первый Blazor-проект и начнём превращать абстрактные слова из этого урока в конкретные файлы.

Blazor - часть ASP.NET Core для разработки веб-интерфейсов из компонентов на C# и Razor. Он особенно полезен там, где вы уже знаете C# и хотите делать страницы с кнопками, формами, списками, состоянием и понятной логикой.

Blazor не заменяет базу веба. HTML, CSS и JavaScript всё равно остаются важными. Но Blazor позволяет писать значительную часть поведения интерфейса на C#.

Главная единица Blazor - компонент: самостоятельная часть интерфейса со своей разметкой, параметрами, состоянием и поведением. Из компонентов удобно собирать личные кабинеты, админ-панели, учебные платформы и внутренние сервисы.

В курсе мы будем делать личный учебный трекер. Через него разберём проект, компоненты, параметры, события, формы, данные, маршруты, состояние, render modes, JS interop и публикацию.

Где Blazor уместен

11

Какой сценарий лучше всего подходит для первого выбора Blazor?

Карта понятий

Соотнесите понятие с его ролью.

HTML
Razor
Компонент
Render mode
Самостоятельная часть интерфейса со своей разметкой, состоянием и поведением
Структура страницы: заголовки, списки, формы, кнопки и ссылки
Режим, который определяет, где и как компонент получает интерактивность
Синтаксис для соединения HTML-разметки и C#-выражений

Проверка понимания

Ответьте коротко своими словами.

1Как Blazor помогает человеку, который уже знает основы C#?
2Какие части личного учебного трекера естественно превратить в компоненты?
3Почему render modes лучше подробно изучать после компонентов, событий и форм?
Подсказка

Подсказка: Опирайтесь на HTML, CSS, C#, идею компонентного интерфейса и постепенное усложнение курса.

Обсуждение урока

0
Комментарии видны всем. Чтобы участвовать в обсуждении, войдите или зарегистрируйтесь.
Модерация сообщества

Пожаловаться на комментарий

Расскажите модераторам, что именно требует внимания.