Чему вы научитесь
- проектировать backend по Vertical Slice Architecture, где вся логика одной фичи собрана в одном месте;
- разделять операции на команды и запросы по принципу CQRS;
- строить REST API на ASP.NET Core с минимальными эндпоинтами (Carter);
- работать с PostgreSQL как с документной базой через Marten;
- применять паттерн «Посредник»: использовать MediatR — и написать собственный аналог с нуля, разобравшись в рефлексии и дженериках;
- переходить на Wolverine и сравнивать генерацию кода на старте с поиском обработчиков через рефлексию;
- настраивать валидацию (FluentValidation) и маппинг объектов (Mapster, затем Mapperly на source generators);
- обрабатывать ошибки через паттерн Result и библиотеку ErrorOr, а не только исключениями, и выбирать подходящую стратегию;
- реализовывать полнотекстовый поиск средствами самого PostgreSQL, со словоформами;
- переводить анемичную модель в Rich Domain Model — с инвариантами, фабриками и доменным поведением;
- применять event sourcing: хранить историю изменений, строить проекции и получать состояние на любой момент прошлого («time travel»);
- организовывать обновления в реальном времени через Server-Sent Events;
- запускать весь стек (API + база + инфраструктура) одной командой с помощью .NET Aspire: описывать ресурсы в AppHost и связывать их между собой;
- настраивать наблюдаемость: три сигнала телеметрии (логи, метрики, трейсы) через OpenTelemetry и OTLP, собственные `ActivitySource`, health-checks для liveness и readiness;
- читать дашборд Aspire — трейсы запросов, метрики и логи сервиса в одном окне;
- подключать внешнюю инфраструктуру как контейнеры (Prometheus и Grafana) и экспортировать в неё метрики приложения.
О курсе
Это практический курс по проектированию backend-сервисов на современном .NET. Мы не разбираем абстрактные примеры «в вакууме», а от начала до конца собираем один живой сервис — каталог книг — и по ходу наращиваем его: от чистого CRUD до event sourcing, живой ленты обновлений и запуска всего стека через .NET Aspire с полноценной телеметрией.
Цель курса — научить организовывать backend-код так, чтобы его было легко читать, менять и расширять, и показать современный .NET-стек в деле.
Почему стоит выбрать именно этот курс:
- всё строится вокруг одного реального проекта, а не разрозненных сниппетов — виден полный путь и связи между частями;
- каждый шаг объясняется и в видео, и в развёрнутой текстовой лекции с кодом дословно из проекта и врезками теории «почему так»;
- курс честно показывает альтернативы и трейд-оффы: MediatR против своего посредника, Mapster против Mapperly, Result против исключений, богатая модель против анемичной, генерация кода против рефлексии;
- затрагиваются темы, до которых обычно «не доходят руки»: event sourcing, проекции, полнотекстовый поиск Postgres, Server-Sent Events, наблюдаемость и оркестрация локальной среды на .NET Aspire.
После освоения у вас останется собственный референс-проект и понимание, как и, главное, зачем применять эти приёмы на своих задачах.
Что входит в курс (по разделам):
- подготовка проекта, решение и структура, знакомство с Marten и CQRS;
- модель данных, PostgreSQL в Docker, наполнение базы, принципы VSA и SOLID;
- операции над каталогом: список с пагинацией, добавление, обновление, удаление, обработка ошибок;
- сквозная функциональность через pipeline behaviors (валидация, мониторинг времени);
- рефакторинг и обновление до .NET 10, документация API (OpenAPI + Scalar);
- собственный посредник вместо MediatR — и переезд на Wolverine;
- альтернативы Mapster (Mapperly) и подход к ошибкам (паттерн Result, библиотека ErrorOr);
- полнотекстовый поиск на PostgreSQL;
- переезд на Rich Domain Model;
- event sourcing: события, проекции, машина времени, живая лента цен на SSE;
- бонус: клиент-дашборд, симулятор нагрузки;
- .NET Aspire: ServiceDefaults, телеметрия и health-checks, AppHost с PostgreSQL и API как ресурсами, запуск всего стека одной командой и дашборд, плюс бонус — Prometheus и Grafana.
Для кого этот курс
Начальные требования
Чтобы курс шёл комфортно, желательно заранее:
- уверенно знать C#: классы и интерфейсы, дженерики и ограничения (
where),async/await, LINQ, nullable-ссылочные типы; - иметь базовое представление об ASP.NET Core и о том, как устроен HTTP/REST (методы, статус-коды, маршруты);
- уметь пользоваться Git и Docker на уровне базовых команд (клонировать репозиторий, поднять контейнер).
Не требуется заранее: опыт с Marten, Wolverine, Mapperly, event sourcing, CQRS, Vertical Slice Architecture, .NET Aspire и OpenTelemetry — всё это объясняется в курсе с нуля.
Как проходит обучение
- Видео-уроки — по короткому ролику на каждый шаг разработки.
- Развёрнутые текстовые лекции к каждому уроку: то, что в видео пролетает быстро, здесь разобрано подробно — с листингами кода дословно из проекта, ссылками на документацию и врезками теории
- Тесты с автоматической проверкой (1–3 на урок) — чтобы закрепить понятия сразу после урока
- Готовый код-проект
catalog-api(в Git по шагам-коммитам), Postman-коллекция и клиент-дашборд для практики — код можно собрать и запустить у себя - Формат работы: посмотреть видео → прочитать лекцию → пройти тест → повторить шаг в своём проекте
- Вопросы и обсуждение — в комментариях к шагам и в Телеграм-чате
Программа курса
В курс входят
- 69 уроков
- 7часов 16минут видео
- 127 тестов
- 3 интерактивные задачи
Наши преподаватели
Отзывы прошедших курс
Что вы получаете
- Навык проектирования backend по VSA/CQRS — то, что ценят работодатели и о чём спрашивают на собеседованиях.
- Готовый референс-проект современного .NET-сервиса, который можно показать в портфолио и переиспользовать как шаблон.
- Понимание трейд-оффов, а не только «как сделать»: когда уместен Result, а когда исключения; чем богатая модель лучше анемичной; когда генерация кода выигрывает у рефлексии.
- Знакомство с актуальным стеком: .NET 10, Marten, Wolverine, Mapperly, FluentValidation, ErrorOr, PostgreSQL full-text search, .NET Aspire, OpenTelemetry, Prometheus и Grafana.
- Базовую наблюдаемость сервиса из коробки: телеметрия, трейсы и health-checks, которые можно переносить в свои проекты как готовые ServiceDefaults.
- Материалы для самостоятельной практики: пошаговый код в Git, Postman-коллекция, живой дашборд и симулятор нагрузки.
- Сертификат об окончании курса.