Есть ли простые и разумные способы синхронизации правил проверки на стороне клиента и на стороне сервера?
На стороне клиента у нас есть JavaScript, может быть, какой-то фреймворк вроде jQuery или YUI.
На стороне сервера у нас есть ASP.NET WebForms или ASP.NET MVC.
Проверяются такие вещи, как:
И так далее.





<asp: RegularExpressionValidator ...> (и другие валидаторы asp.net) реализуют проверку JavaScript на стороне клиента и проверку на стороне сервера по одним и тем же правилам.
Все валидаторы в ASP.NET работают как на стороне клиента, так и на стороне сервера, потому что выполнение только проверки клиента было бы огромной дырой в безопасности. Я не пробовал использовать валидаторы в MVC.
напишите большой общий корпус тестовых данных, который воплощает правила проверки, и выполните модульное тестирование ваших валидаторов на основе этих общих данных.
Когда ваши правила меняются, вы отражаете это, обновляя тестовые данные и тестируя, пока все снова не станет зеленым.
Я всегда использовал встроенные валидаторы. Например, если вы используете RegularExpressionValidator и предоставляете ValidationExpression, он будет проверять на стороне клиента (если доступно) и на стороне сервера с использованием одного и того же кода.
Вы можете написать свои собственные валидаторы, производные от BaseValidatior. Это позволяет вам создать проверку сервера, переопределив EvaluteIsValid. Затем вы можете добавить проверку клиента позже, если это необходимо.
Это не реальное решение, но посмотрите Осевой проект на CodePlex. Это проект, который преобразует C# в Javascript для Интернета и имеет элемент управления, позволяющий использовать один и тот же код для проверки на стороне сервера и проверки на стороне клиента. Он не готов к производству, но мне любопытно узнать, это то, что вы ищете.
xVAL немного проще, чем проверка корпоративной библиотеки, и выполняет проверку привязки к модели как для клиента, так и для сервера.
Какая проверка на стороне сервера это делает? И как это работает с ASP.NET MVC.