新しい ASP.NET MVC Web アプリケーションの作業を開始するたびに、DataAnnotations
検証を使用するかどうかがわかりません。それについての何かが間違っていると感じます。
たとえば、のアクションからUserService
渡される があるとします。ユーザーが常に名前を指定できるようにするために、モデルのプロパティに属性を設定しました。名前がない限り、モデル バインダーが私に.CreateUserModel
Create
AccountController
Name
[Required]
CreateUserModel
私の問題はUserService
、システムの再利用可能なコンポーネントになるためには、上のレイヤーが有効なデータを提供しているという事実に依存できず、このデータも確実に検証する必要があることです。を完全に再利用する Web サービスを作成する必要があると考えると、この必要性がさらに強調されますUserService
(モデル バインダーですべてのデータ アノテーションの検証を行う必要はありません)。
私の質問は次のとおりです。この状況のベストプラクティスは何ですか? データ注釈を使用して検証し、その検証をサービスで繰り返しますか? サービスでのみ検証し、例外をスローしますか? 両方のミックス?
私の質問が主観的すぎないことを願っています。私は主に、検証をデータ注釈に移動することが最終的に私を噛むことになるかどうかについてコンセンサスを確立しようとしています.