C#: Современная архитектура Vertical Slice,CQRS и event sourcing

Собираем реальный backend-сервис на C# и .NET по Vertical Slice Architecture: CQRS, документное хранилище и event store Marten поверх PostgreSQL, Wolverine, полнотекстовый поиск, богатая доменная модель, event sourcing, живые обновления через Server-Sent Events и, наконец, .NET Aspire — оркестрация всего стека одной…
Средний уровень

Чему вы научитесь

  • проектировать 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.

 

 

Для кого этот курс

.NET-разработчики уровня junior/middle, которые знают C#, но хотят вырасти в проектировании backend-архитектуры. Те, кто пишет на ASP.NET Core и хочет уйти от классической многослойной архитектуры к Vertical Slice + CQRS. Разработчики, которым интересны Marten, Wolverine, event sourcing, полнотекстовый поиск Postgres, .NET Aspire, но непонятно, с чего начать и как это сочетается вместе. Все, кто готовится к собеседованиям, где спрашивают про архитектуру, CQRS, обработку ошибок и работу с БД. Когда это особенно пригодится: старт нового сервиса «с чистого листа», рефакторинг легаси-проекта, желание навести порядок в разросшемся коде или просто прокачать инженерный кругозор на современном стеке.

Начальные требования

Чтобы курс шёл комфортно, желательно заранее:

  • уверенно знать 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 интерактивные задачи
загружаем...

Наши преподаватели

Отзывы прошедших курс

5
из 5
из 1 отзыва
1 отзыв
загружаем...

Что вы получаете

  • Навык проектирования 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-коллекция, живой дашборд и симулятор нагрузки.
  • Сертификат об окончании курса.

Сколько стоит обучение

5 900 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям

5 900 ₽