Чистая архитектура с ASP.NET Ядро 7 | .NET Conf 2022

YOUTUBE · 22.11.2025 03:22

Ключевые темы и таймкоды

Введение в чистую архитектуру

0:00
  • Стив Смит объясняет, что чистая архитектура - это архитектура, ранее известная как луковичная архитектура или шестиугольная архитектура, а иногда и как порты и адаптеры.
  • Чистая архитектура - это домен-ориентированный подход к организации зависимостей, основанный на инверсии зависимостей, использовании внедрения зависимостей и фокусировке на интерфейсных зависимостях.

Примеры чистой архитектуры

5:13
  • Чистая архитектура может быть полезна для приложений, которые требуют большого количества модульных тестов и уверенности в том, что бизнес-логика работает должным образом.
  • Чистая архитектура может быть излишней для быстрых демонстрационных приложений или для приложений с простой бизнес-логикой.

Шаблон для чистой архитектуры

7:07
  • Стив Смит предлагает шаблон для чистой архитектуры, который можно скачать с сайта nuget dot org.
  • Шаблон включает в себя основные правила чистой архитектуры, такие как моделирование бизнес-правил и сущностей внутри основного проекта, а также зависимость всех зависимостей от основного проекта.

Объяснение шаблона спецификации

9:04
  • Объединяет спецификации с репозиториями для доступа к данным.
  • Позволяет получить мощный доступ к данным без необходимости писать дополнительные классы репозитория.

Пример проекта

10:40
  • В проекте есть ядра, инфраструктура и веб-проекты.
  • Внутри ядра есть агрегаты, события, интерфейсы, доменные сервисы и спецификации.
  • В инфраструктуре находятся реализации абстракций, такие как репозитории, dbcontext, декораторы, кэширование и интерфейсы для внешних зависимостей.

Использование шаблона спецификации

15:12
  • Шаблон репозитория не является обязательным, если у вас есть абстракция.
  • Абстракции и их реализации могут быть в инфраструктуре, чтобы избежать зависимости от сторонних фреймворков.
  • Абстракции могут быть использованы для тестирования и упрощения замены зависимостей.
  • Абстракции для системных часов, файловой системы, облачного хранилища, отправки электронных писем и других внешних зависимостей могут быть в инфраструктуре.

Создание инфраструктурного проекта

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

Реализация отправки электронной почты

18:56
  • В видео рассказывается о реализации отправки электронной почты с использованием локального SMTP-клиента.
  • Обсуждается возможность использования поддельной электронной почты для тестирования.

Реализация отправки событий домена

19:40
  • В видео демонстрируется переопределенный асинхронный метод сохранения изменений, который проверяет наличие событий и отправляет их с помощью посредника.

Реализация репозитория

21:21
  • В видео объясняется, как использовать базу репозиториев, которая наследуется от спецификации Далласа.
  • Обсуждается возможность изменения поведения репозитория и добавления дополнительных методов.

Веб-проект

22:20
  • В видео описывается веб-проект, который содержит конечные точки API, контроллеры, представления и другие компоненты ASP.NET Core.
  • Обсуждаются различные способы использования контроллеров и представлений в зависимости от предпочтений разработчика.

Общее ядро

25:33
  • В видео объясняется, что общее ядро содержит базовые типы, такие как сущности, события домена, спецификации и исключения.
  • Обсуждается важность не включать инфраструктурные зависимости в общее ядро.
  • В видео также представлены ресурсы, которые помогут быстро освоить чистую архитектуру Далласа и создать реальное приложение с использованием этой архитектуры.