Какая библиотека проверки для ASP.NET MVC? - PullRequest
11 голосов
/ 12 октября 2009

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

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

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

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

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

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

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

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

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

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

Спасибо!

Ответы [ 4 ]

10 голосов
/ 15 октября 2009

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

5 голосов
/ 12 октября 2009

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

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

1 голос
/ 17 октября 2009

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

1 голос
/ 15 октября 2009
...