Какая библиотека проверки для ASP.NET MVC?
Я пытаюсь решить, какой подход к валидации выбрать для нового проекта ASP.NET MVC. (А вау есть много вариантов!)
В проекте используется NHibernate, поэтому первым, что я рассмотрел, был NHibernate Validator (из-за тесной интеграции с NHibernate). Однако, насколько я вижу, у этой тесной интеграции есть только несколько преимуществ:
1) Схемы БД, сгенерированные NHibernate, будут включать детали проверки (например, длина столбцов будет установлена на максимально допустимое значение при проверке). (Это на самом деле меня не интересует, так как я генерирую схемы вручную.)
2) NHibernate выдаст исключение, если вы попытаетесь сохранить данные, которые не соответствуют спецификациям проверки. (Мне кажется, это излишне, поскольку данные, по-видимому, уже будут проверены любым механизмом, который вы выберете, прежде чем их сохранить)
Если есть больше преимуществ для NHibernate Validator, пожалуйста, дайте мне знать!
Другие библиотеки, о которых я немного читал, включают:
- MS DataAnnotations
- Замок Валидатор
- Что-то другое?
Я также думал об использовании xVal для обеспечения проверки на стороне клиента из того же набора правил. Тем не менее, я слышал, что ASP.NET MVC v2 будет включать что-то похожее на xVal (интеграция с jquery) из коробки? Будет ли эта новая включенная функциональность сделать некоторые другие избыточными?
Итак, я в основном спрашиваю у людей совета, в каком направлении двигаться дальше. Я не хочу реализовывать какую-то конкретную схему, только чтобы вырвать ее, когда другая станет доминирующей технологией.
Что сработало для вас? Какой вариант, по вашему мнению, имеет / будет иметь преимущество?
Спасибо!
4 ответа
Я использую FluentValidation вместе с плагином проверки jQuery и до сих пор не могу найти ситуацию, с которой они не могут справиться.
Мне нравится xVal.
Вы можете очень легко реализовать проверку клиента и сервера с его помощью. Также есть поддержка проверки столбцов (свойств) на объектах, которые вы хотели бы использовать.
Возможно, вас заинтересует этот делегатский подход. Я был потому, что мне не нравилась идея xVal (решение, с которым я сейчас работаю) и тот факт, что он, казалось, не учитывал сложные случаи проверки, которые пересекали множество свойств одной и той же или даже разных структур классов.
DataAnnotations, реализованные классами собеседников и проверкой клиента JQuery
Убедитесь, что вы используете MVC Preview 2