お題、バリデーション(入力審査)をうまくやりたい。

概要:

業務システムの入力画面などで入力審査を行いたい。言語はC#
ただしFormにゴリゴリ書いて、変更や修正が面倒だったり、複数箇所で管理が必要なのはイヤだなぁ。

環境:

データベース(今後DBと略す)があって、そのDBにデータを登録するような場面を想定。
データの持ち方はDataSetを使用する。
表示方法はDataViewの一括表示やTextBoxの項目別表示の二択。
MVCかn階層か知らないが、それっぽくクラスの分離はやってあるので、
更新手順として、DataSetを渡せば更新処理をやってくれるメソッドが存在するので、これを呼び出せばOKらしい。でも文字種チェックで引っかかればエラー発生するんだろうな。

機能:

機能的には文字種判別([A-z0-9]みたいな正規化表現)機能、文字数判定機能が必要。
コードの重複チェックなど、DBへのアクセスが必要なものは、今後の課題として、とりあえず現段階では除外。
1項目入力するごとにチェック。入力後、すぐにエラーメッセージを表示。
一行単位で問い合わせるのはとりあえず却下。ただし無理そうなら変更の余地有り。

機能要件:

サーバーサイドでも同様の検証をしたいので、
Formの中でゴリゴリ書くのは却下。
理想を言えば、Webサービスやら、WindowsFormやら、ASP.NETやら、どこに持ってても使えるようにまとめらてればベスト

また設定が複数箇所にわたるような面倒なのはダメ。
今時ならXMLが順当か。WindowsFormを使用する場合に配置の問題があるが、最悪の場合はXMLファイル自体をひっぱてくればよいか(笑

追記:

文字の色、メッセージの内容をコンパイルなしに修正できる方が幸せになれるらしい(リンク先の検証コントロールの動的な生成より)
さすがに多言語化には興味がないので、ひとまず無視。といっても上記をクリアするような構成なら差し替えも容易になってるはず。ひとまずそこまで行ってから考えよう。