Какая библиотека проверки для ASP.NET MVC?

Я пытаюсь решить, какой подход к проверке требуется для нового проекта ASP.NET MVC. (И ничего себе есть много вариантов!)

В проекте используется NHibernate, поэтому первое, что я рассмотрел, - это NHibernate Validator (из-за тесной интеграции с NHibernate). Однако, насколько я вижу, есть только несколько преимуществ для этой тесной интеграции:

1) Схемы DB, сгенерированные NHibernate, будут содержать сведения о валидации (например, длина столбцов будет установлена ​​на максимальное значение, допустимое при проверке). (Это меня действительно не интересует, поскольку я генерирую схемы вручную.)

2) NHibernate генерирует исключение, если вы попытаетесь сохранить данные, которые не соответствуют спецификациям проверки. (Это кажется мне довольно избыточным, так как данные, по-видимому, уже будут проверены любым механизмом, который вы выберете до его сохранения)

Если у NHibernate Validator есть больше преимуществ, пожалуйста, дайте мне знать!

Другие библиотеки, о которых я немного читал, включают:

  • MS DataAnnotations
  • Валидатор замков
  • Что-то еще?

Я также думал об использовании xVal для обеспечения проверки на стороне клиента из одного и того же набора правил. Тем не менее, я слышал, что ASP.NET MVC v2 будет включать что-то похожее на xVal (интеграция с jquery) из коробки? Включит ли эта новая функциональность некоторые из избыточных?

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

Что сработало для вас? Какой вариант, по вашему мнению, имеет/будет иметь преимущество?

Спасибо!

Ответ 1

Я использовал FluentValidation вместе с jQuery validation и все еще не могут найти ситуацию, с которой они не могут справиться.

Ответ 2

Мне нравится xVal.

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

Ответ 4

Вам может быть интересен этот подход делегата. Я был из-за того, что мне не нравилась идея xVal (решение im в настоящее время идет) и тот факт, что она, похоже, не удовлетворяла сложным случаям проверки, которые пересекали несколько свойств одной и той же или даже разных структур классов.