Blazor с нуля: Новая серия
Я уже довольно давно пишу о Blazor — жизненные циклы компонентов, изолированный CSS, модели интерактивности, аутентификация. Эти публикации были полезны сами по себе, но мне всегда казалось, что им не хватает фундамента. Они исходят из того, что вы уже знаете, что такое Blazor, зачем он нужен и как вписывается в экосистему .NET. Знают это далеко не все — и это абсолютно нормально.
Поэтому я начинаю кое-что новое: Blazor с нуля. Настоящая серия, выстроенная от основ, для разработчиков, которые хотят действительно понять, что они строят, — а не просто копировать и вставлять, пока не заработает.
Для кого эта серия
Серия для вас, если:
- вы .NET-разработчик, который слышал о Blazor, но никогда не находил времени или подходящей точки входа, чтобы разобраться.
- вы пробовали Blazor, запустили его, но чувствуете, что просто угадываете, почему что-то работает.
- вы пришли из мира JavaScript/React/Angular и хотите понять, каким Microsoft видит современный фронтенд.
- вам нужен один связный ресурс вместо разрозненной документации и отдельных статей.
Быть старшим разработчиком не обязательно. Но нужно уверенно знать основы C# — классы, интерфейсы, async/await. Если вы умеете писать простое CRUD API на ASP.NET Core, вы готовы.
Что мы рассмотрим
Вот примерная дорожная карта того, что я планирую. Некоторые темы при необходимости разрастутся в несколько публикаций:
- Что такое Blazor? — Модели хостинга, история, сравнение с традиционной веб-разработкой
- Ваше первое приложение на Blazor — Scaffolding, структура проекта, запуск локально
- Компоненты — Основной строительный блок любого интерфейса в Blazor
- Привязка данных и события — Как сделать интерфейс реактивным
- Взаимодействие компонентов — Параметры, EventCallbacks, каскадные значения
- Маршрутизация и навигация — Как Blazor работает с URL и переходами между страницами
- Внедрение зависимостей — Сервисы, скоупы и DI-контейнер в Blazor
- Формы и валидация — EditForm, DataAnnotations, пользовательские валидаторы
- HTTP и внешние данные — Вызов API из приложения на Blazor
- Аутентификация и авторизация — Как правильно защитить приложение
- JavaScript-интероп — Когда нужно обратиться напрямую к браузеру
- Производительность и оптимизация — Виртуализация, ленивая загрузка, стратегии рендеринга
- Тестирование компонентов Blazor — bUnit и как выглядит хороший тест
- Деплой — Публикация в Azure, IIS и на статических хостах
Список будет развиваться. Некоторые темы разделятся на несколько публикаций, другие могут объединиться. Буду обновлять эту запись по мере продвижения серии и добавлять ссылки на каждую часть по мере выхода.
Почему серия, почему сейчас
Blazor значительно повзрослел. В .NET 8 и 9 модель рендеринга была кардинально переработана — статический SSR, потоковый рендеринг, интерактивный Server, интерактивный WebAssembly и режим Auto теперь уживаются под одной крышей. Это по-настоящему интересный и мощный фреймворк, но возросшая сложность делает первоначальный опыт дезориентирующим.
Хочу создать ресурс, который встретит вас там, где вы находитесь, и методично проведёт через всё целиком. Не замена официальной документации — она хороша, и её стоит читать, — а попутчик, объясняющий почему стоит за что.
Как следить за серией
Каждая публикация в серии будет достаточно самостоятельной, чтобы читать её отдельно, но они также будут опираться друг на друга. Если начинаете с нуля — рекомендую идти по порядку. Если подключаетесь, чтобы заполнить конкретный пробел, — это тоже нормально: буду ссылаться на предыдущие материалы там, где это важно.
Код к каждой публикации будет доступен на GitHub. Ссылки буду делиться по ходу.
До встречи в следующей части.