2009-03-27 9 views
0

バリデータコントロールに何が含まれるべきで、何がすべきではないかに関するガイドラインのベストプラクティスが存在するかどうかは疑問です。私の考えと練習は、基本的な健全性のチェックでなければならないということでした(つまり、ユーザーは必要なすべての入力を入力しましたか?電話番号に10桁の数字がありますか、有効な形式の電子メールアドレスですか?最近はかなり複雑なバリデーションのためにバリデーターを使用しているasp.netコード(つまり、アドレスを確認するためのWebサービス呼び出しまたはユーザーIDと名前が一致している)の正当なビットを介して実行されます。ASP.Netユーザーコントロールの検証のベストプラクティスは何ですか?

これらのより複雑なタスクをどのようにカプセル化しなければならないかについての考え方はありますか?私の最初の本能は、バリデーターは仕事のための間違ったツールですが、私は本当に他の人がそれについて考えるか、それについて書いたことを知りたいと思います。ありがとう!

答えて

0

あなたはそうです。 p & pチームは、検証アプリケーションブロック(VAB)というエンタープライズライブラリの優れたブロックを持っています。

ユーザーから値を直接収集する場合は、UI内の検証は問題ありませんが、さらに行う必要があります。

  • キャッシュ、リポジトリ、またはサードパーティのデータアクセス層
  • から取得
  • アプリケーションの別々の層またはコンポーネントで生成します。たとえば、あなたがオブジェクトインスタンスを検証する必要があるかもしれません
  • は、おそらく、データベースから取得した値を類似のオブジェクトからプロパティをコピーまたは使用してそれらを移入、オブジェクトインスタンスとしてWebサービスまたは既存の値から
  • 再構築プロパティ値のセットから受信

私はエンタープライズライブラリの大ファンであり、VABで良い経験をしています。あなたがEntLibに慣れていないのであれば、初めてのことは難しいかもしれませんが、それに続くものです!

VABでは、ルールを1か所に作成、実行、およびホストするオプションがありますが、必要な場所で呼び出すことができます。 ASP.NETとVABと

15秒:VABについて

http://www.15seconds.com/Issue/070607.htm

トム・ホランダー氏のブログ

http://blogs.msdn.com/tomholl/archive/2006/11/27/validation-application-block-revealed.aspx

+0

私はそれ以外のユーザー入力を検証しようとしているのではなく、ユーザー入力の検証が複雑で潜在的に高価であるとは限りません。あなたのリンクを見て、少しのグーグルをやった後、私はVABも正しいツールだとは思わない。 –

+0

ああ...あなたはASP.MVCを読んだり、試したりすることができます。 ASP.NETそれは素晴らしいですが、少し混乱して汚いフレームワークです。懸念事項(モデル、ビュー、コントローラ)とMVCベースの検証ツール(xValなど)を分離することで、より良い答えが見つかるかもしれません。 – boj

+0

私は間違いなくASP.MVCを使用していますが、残念ながら、これは今日どこにも行かないレガシーコードです。 –

0

それがある場合、私は知りませんベストプラクティスかどうかはわかりませんが、私の個人的意見は、唯一のことクライアント側で検証する必要があるのは、クライアント側で完全に検証できるものです。つまり、検証を実行するためにサーバーを呼び出す必要がある場合は、既にクライアントでの検証によるパフォーマンスの向上が失われています。

ビジネスオブジェクトは送信時に同じ検証を実行する(または実行する)必要があるため、より理にかなっています(つまり、検証がクライアント上にあるためです)。コーディングとメンテナンスの観点からフォームを送信し、その時点ですべての検証を実行できるようにします。

関連する問題