Свободный блок проверки или приложения EntLib Validation для служб WCF

Я ищу стандартный способ добавить проверку входных параметров в набор служб WCF.

Кто-нибудь может дать сравнение Fluent validation http://fluentvalidation.codeplex.com/ и блока приложения EntLib Validation?

Каковы преимущества / недостатки каждого из них?

Каковы сценарии, когда следует использовать тот или иной?

Мой вопрос похож на какую платформу проверки вы бы порекомендовали для проектов.net? и какую платформу проверки выбрать: Spring Validation или Validation Application Block (Enterprise LIbrary 4.0)?, но ответы на эти вопросы не имеют подробного сравнения.

Буду признателен, если будет рекомендована другая аналогичная технология (с обоснованием, почему)

Кто-нибудь имеет опыт работы с обеими фреймворками и выбирает один для своих проектов? Каковы были причины для решения?

1 ответ

Решение

Через несколько месяцев я могу ответить, что блок приложения EntLib Validation Application (VAB) является зрелой библиотекой, которая поддерживает проверку кода, атрибутов и конфигурации.

В большинстве случаев разработчикам следует начинать с проверки атрибутов свойств DataMember в запросе DataContract как наиболее простым и лаконичным способом.

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

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

Свободная библиотека проверки поддерживает добавление проверки в коде, что является менее желательным методом. Так что я не понимаю, почему проверка Fluent так популярна. Также я был удивлен, что свободный автор проверки не знаком с EntLib VAB.

Мой оригинальный вопрос был о входных параметрах для операций WCF. Однако лучшие практики рекомендуют использовать один параметр запроса в качестве контракта данных, а не несколько простых параметров в стиле RPC. В любом случае VAB предоставляет атрибуты для отдельных параметров операций WCF, что дает более сжатое представление (например, см. http://www.codeproject.com/Articles/259327/Integrate-Validation-Block-with-WCF).

Другие вопросы по тегам