Подтвердить что ты не робот

Зачем использовать fluentvalidation вместо проверки ASP.NET MVC

В каких обстоятельствах вы бы выбрали FluentValidation (FV) через ASP.NET MVC 3 путь?

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

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

4b9b3361

Ответ 1

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

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

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

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