Что касается валидации пользовательского интерфейса, у меня есть набор валидаторов управления, и я просто подключаю их туда, где они мне нужны, назначая их контроль. Вы можете показать ошибки, используя ErrorProvider, все, что вам нужно, это инкапсулированная среда для автоматизации вещей.
Сначала есть класс ValidatorBase. Сделайте его абстрактным и наследуйте класс Component, чтобы у вас была поддержка времени разработки. Сохраните здесь частный экземпляр ErrorProvider и используйте что-то вроде шаблона Template Method (создайте метод Validate, который, в свою очередь, вызывает защищенный абстрактный метод DoValidation). В конкретных реализациях базового класса просто переопределите DoValidation и разместите здесь свою логику. Вы можете иметь EmptyValidator (проверить, не является ли значение элемента управления пустым), RegexValidator (проверить значение элемента управления с помощью некоторого выражения reg), GroupValidator (выполнить Validate для каждого экземпляра ValidatorBase в некотором списке), что вы хотите.
В базовый класс вы можете добавить такие вещи, как поддержка свойств во время разработки (сообщение об ошибке, значок, элемент управления для проверки и т. Д.) *
EDIT1: Теперь, что касается проверки, отличной от пользовательского интерфейса, это область вашего бизнес-уровня и ваши правила. Для этих вещей тоже есть рамки / шаблоны, но я думаю, что вы спрашиваете о проверке пользовательского интерфейса.
EDIT2: в ASP.NET встроен набор похожих валидаторов, хотя и с большим количеством функций (проверка на стороне клиента и т. Д.), Но, если честно, они мне не очень нравятся.
РЕДАКТИРОВАТЬ3: также проверьте:
Существует ли какой-либо элемент проверки для проверки правильности .net, например веб-формы asp.net?