Почему вместо проверки ASP.NET MVC используется fluentvalidation - PullRequest
26 голосов
/ 07 июня 2011

При каких обстоятельствах вы бы выбрали FluentValidation (FV) над ASP.NET MVC 3 way ?

Каковы преимущества FV над MVC?Я понимаю, что с последним мы должны написать намного больше кода и можем засорять код аннотациями данных.Более того, казалось бы, проще написать пользовательскую проверку с использованием FV, чем MVC.Тем не менее, с помощью MVC можно использовать аннотацию данных и подключить проверку jQuery.

Так что, по вашему мнению, заставило бы вас выбрать одно из другого?Есть ли обстоятельства, когда вы бы даже использовали оба?

1 Ответ

31 голосов
/ 07 июня 2011

Свободная проверка - это один из способов настройки выделенных объектов проверки, который вы будете использовать, когда хотите рассматривать логику проверки отдельно от бизнес-логики. Парадигма аспектно-ориентированного программирования (AOP) позволяет разделить сквозные проблемы внутри системы, и валидация является одной из таких проблем. Разделение проверки помогает очистить код вашего домена и сделать его более сплоченным, а также дает вам единственное место для поиска логики проверки.

Проверка на основе аннотаций MVC - это очень «дешевый» способ получить некоторую базовую проверку в приложении, не тратя время на создание выделенных объектов проверки, создание системы проверки, которая организует их и объединяет все вместе. Это очень легко настроить, но может сделать ваши доменные объекты менее чистыми.

Для небольших систем, где вся логика проверки может обрабатываться с помощью аннотаций, я бы рекомендовал просто использовать аннотации, потому что их так легко настроить. Для более крупных и сложных систем я бы рекомендовал разделить задачу проверки с использованием объектов проверки.

Мне лично нравится использовать оба подхода: добавить атрибуты валидации в классы ViewModel (что означает, что аннотации не загромождают объекты моего домена), а также иметь выделенные объекты валидатора в слое моего домена. Это небольшое количество дублирования, но использование аннотаций настолько быстро и просто, что я считаю, что это стоит дополнительных затрат на обслуживание.

...