Какую платформу проверки выбрать: Spring Validation или Validation Application Block (Enterprise LIbrary 4.0)? - PullRequest
7 голосов
/ 15 апреля 2009

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

Ответы [ 2 ]

7 голосов
/ 28 мая 2009

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

На мой взгляд, валидация должна быть разделена на разные объекты. Например, IValidator, где вы можете определить валидацию как правила. Использование фреймворка, такого как xVal , помогает выполнить проверку на уровне представления с помощью JavaScript.

Возможно, вы захотите поискать xVal и FluentValidation для .NET . NHibernate Validator 1.2 alpha также имеет свободный синтаксис и интегрирован с xVal (не уверен насчет alpha, но 1.0 должен быть).

Блок проверки предприятия также имеет несколько отрицательных сторон. Свойства моей сущности в итоге имели 3 строки атрибутов и ухудшили читаемость. Попытка добавить проверку с помощью операторов И или ИЛИ также довольно болезненна.

3 голосов
/ 21 апреля 2009

Одна вещь, которую я обнаружил с блоками Enterprise Library, - это то, что она может заставить вас использовать другие блоки, которые вам не нужны / не нужны. Например, Валидация может использовать блок регистрации, но вы были довольны своей собственной системой регистрации. теперь ваше приложение записывает вещи по-разному. Тем не менее, мне понравился внешний вид блока проверки в Ent Lib. Я не играл с Spring.NET, хотя.

...