Валидационные рамки в C #? - PullRequest
6 голосов
/ 17 ноября 2011

В мире Java существует инфраструктура проверки bean-компонентов JSR-303 , которая представляет собой хорошо продуманную стратегию для проверки данных как на уровне представления, так и на уровне персистентности приложения.Он охватывает множество вещей, включая проверку моделей целых графов, группирование областей проверки, i18n и т. Д.

Мне не удалось найти какие-либо платформы проверки моделей данных в C #.Есть ли что-нибудь похожее на JSR-303 в C #?

Ответы [ 4 ]

3 голосов
/ 17 ноября 2011

Вы можете попробовать беглую проверку:

http://fluentvalidation.codeplex.com/

2 голосов
/ 17 ноября 2011

На внешнем интерфейсе:

Веб-сторона (asp.net) имеет Элементы управления проверкой для веб-форм и Помощники проверки для MVC.Оба они достаточно умны, чтобы знать, как отобразить логику проверки на клиентской странице (для более быстрого реагирования на ошибки и снизить нагрузку на сервер) и продублировать необходимую логику на стороне сервера (поскольку вы не можете доверять клиенту).

На стороне Windows есть Поставщики ошибок для winforms.Я не уверен насчет WPF / Silverlight или того, есть ли что-нибудь для консольных приложений.

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

На серверной стороне вы можете использовать Блок приложения для корпоративной проверки .

2 голосов
/ 17 ноября 2011

Существует блок проверки библиотеки предприятия.http://msdn.microsoft.com/en-us/library/ff648831.aspx

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

Кроме того, он бесплатен для использования и имеет исходный код.

0 голосов
/ 17 ноября 2011

Существуют также аннотации данных, которые могут помочь с проверкой на стороне клиента и на сервере: http://msdn.microsoft.com/en-us/library/ee256141.aspx

...