.Net Core 3, чистая архитектура.
Я прочитал много статей о проверке данных с помощью CQRS. Например, здесь и здесь.
Я сделал некоторые выводы:
- Необходимо проверить данные в DTO. Это контракт для юридических лиц.
- Некоторые предложения от авторов подтверждают дату в объектах (домен).
- В CQRS AbstractValidator мы тоже можем валидировать, но по другим правилам.
Проверка поля электронной почты будет в 1 и 2. Ограничение по возрасту будет в 3.
Но три проверки на сервере + одна на клиенте - это проблема (большой DRY). Где лучше валидация в DTO или Entities? Я думаю в DTO, потому что когда я получаю DTO из ввода, я могу проверить и вызвать ModelState.IsValid. Но я читал некоторые статьи, которые также требуют проверки входных данных в сущностях.
Итак, я в замешательстве. Можете ли вы объяснить мне:
Если необходимо проверить поле электронной почты и ограничение по возрасту (18 лет), где нужно провести проверку в чистой архитектуре с помощью CQRS?