Я хочу проверить мои объекты модели домена, используя FluentValidation. Я прочитал an answer about validation in DDD, который использовал FluentValidation для проверки его сущности. Вот как он подтверждает свою сущность:Является ли проверка внутри проекта домена в DDD?
public class ParticipantValidator : AbstractValidator<Participant>
{
public ParticipantValidator(DateTime today, int ageLimit, List<string> validCompanyCodes, /*any other stuff you need*/)
{...}
public void BuildRules()
{
RuleFor(participant => participant.DateOfBirth)
.NotNull()
.LessThan(m_today.AddYears(m_ageLimit*-1))
.WithMessage(string.Format("Participant must be older than {0} years of age.", m_ageLimit));
RuleFor(participant => participant.Address)
.NotNull()
.SetValidator(new AddressValidator());
RuleFor(participant => participant.Email)
.NotEmpty()
.EmailAddress();
...
}
}
Так что мой доменный проект зависит от библиотеки FluentValidation.
Но я думаю, что это плохая идея, что мой доменный проект зависит от сторонней библиотеки. Как я могу предотвратить эту проблему?
Вот мой вопрос по теме. Ваш вопрос в значительной степени дублируется http://stackoverflow.com/questions/28395176/should-i-abstract-the-validation-framework-from-domain-layer/28397201#28397201 – plalx
@plalx благодарит за ваш комментарий. Это мой ответ. –
@SeyedMortezaMousavi. Если домен зависит от сторонней библиотеки, становится плохой идеей, если указанная библиотека связана с низкоуровневыми материалами, такими как связанные с веб-сайтом или связанные с персистентностью компоненты. – guillaume31