Свободная проверка и аннотация данных

Каковы оперативные различия между этими двумя пакетами проверки при использовании для проверки ASP.NET MVC? Кажется, у них похожие объекты, вплоть до имен их объектов. Связано ли одно с другим? Каковы их различия? Каким образом эти различия обозначают различные варианты использования?

Ответ 1

Я предпочитаю Свободную Валидацию:

  1. Это дает мне намного лучший контроль над моими правилами валидации
  2. Выполнение условной проверки для разных свойств намного проще по сравнению с аннотациями данных
  3. Это отделяет валидацию от моих моделей просмотра
  4. Модульное тестирование намного проще по сравнению с аннотациями данных
  5. Он имеет отличную поддержку проверки на стороне клиента для большинства стандартных правил проверки

Ответ 2

Я явно предпочитаю аннотации данных, потому что...

  1. все правила проверки могут быть сконфигурированы в одном месте в коде (внутри класса метаданных модели), и их не нужно повторять где-либо еще.
  2. Существует отличная поддержка для проверки на стороне клиента (опять же - без повторения правил проверки!) при использовании атрибутов аннотации данных.
  3. Атрибуты аннотации данных можно проверить, чтобы убедиться, что они есть.
  4. Есть хорошие дополнительные атрибуты проверки, созданные сообществом (например, Расширения аннотаций данных).