私は、主要なアプリケーションの検証フレームワークの1つを選択しようとしていますが、どちらのオプションも魅力的ですが、どちらか一方にコミットする前に知っておく必要のある賛否両論があるかどうかは疑問でした。どの検証フレームワークを選択するか:春の検証または検証アプリケーションブロック(Enterprise LIbrary 4.0)?
答えて
属性による検証は、私の見解では最良の解決策ではありません。まず、ドメインモデルでインフラストラクチャを参照する必要があります。第二に、コンパイルされたクラスにバリデーションを追加する機会がありません。最後に、複雑なロジックを属性で検証することはできず、Validateメソッドをエンティティにする必要があります。
私の意見では、検証は別のオブジェクトに分けられるべきです。たとえば、検証をルールとして定義できるIValidatorです。 xValのようなフレームワークを使用すると、プレゼンテーションレイヤーの検証をJavaScriptで行うことができます。
xValとFluentValidation for .NETを探してください。 NHibernate Validator 1.2アルファは流暢な構文も持っていて、xValと統合されています(アルファについてはわからないが、1.0でなければならない)。
エンタープライズ検証ブロックにも負の側面はほとんどありません。私のエンティティのプロパティは3行の属性を持つことになり、読みやすさが悪化しました。 AND演算子またはOR演算子を使用して検証を追加しようとすると、非常に苦労します。
エンタープライズライブラリブロックで見つけたことの1つは、必要としない/不要にする他のブロックを強制的に使用できることです。たとえば、検証ブロックでロギングブロックを使用することもできますが、独自のロギングシステムに満足しています。今あなたのアプリはさまざまな方法で物事を記録します。つまり、Ent LibのValidationブロックの外観が気に入っています。私はSpring.NETと遊んでいない。
私は決して検証アプリケーションブロックでこの問題を抱えませんでした。 VABがログアプリケーションブロックを呼び出すコードまたは場所を指摘できますか? – Steven
これを詳しく見てきましたが、エンタープライズライブラリの検証アセンブリからすべてのログアセンブリへの直接呼び出しはありません。私はあなたのアプリケーションが直接ロギング部分を使用したと思います。私のアプリケーションでは、VABに固有のアセンブリのみを公開します。 VAB 5.0の場合は、 'Common'、' Validation'、 'ServiceLocation'、' Unity'、 'Unity.Configuration'、' Unity.Interception'が必要です。 – Steven
これは古いバージョンであった可能性があります。これを見たと思うと、エンタープライズライブラリのバージョン2.0でした。 – SteveM
- 1. 検証一般的なプロパティ検証アプリケーションブロック
- 2. 春の検証
- 3. 選択的検証
- 4. 春ブーツカスタムフィールド検証
- 5. WPF検証フレームワーク
- 6. ドロップダウンボックスの選択の検証?
- 7. 春の検証が
- 8. 春のデータ検証
- 9. 春の検証 - フィールドエラー
- 10. 春の検証 - BindingResult
- 11. Dojo選択ウィジェットの検証
- 12. Excelデータ検証の選択
- 13. フォームの検証:選択
- 14. C#の検証フレームワーク?
- 15. 春ブーツ@ConfigurationProperties検証
- 16. WCF&エンタープライズライブラリ - 例外シールドと検証アプリケーションブロック
- 17. 検証複数選択リスト
- 18. jqueryが選択され、検証:検証が機能しない
- 19. jQuery検証プラグインを使用したラジオボタン選択の複数の検証ベース
- 20. 春のWebサービスの検証
- 21. 検証Laravelの検証
- 22. MVC 3の検証:検証
- 23. 春のフォーム検証とタイムリーフ
- 24. カスタマイズ春の検証エラー
- 25. jqueryの検証のいずれかまたは検証
- 26. 角度検証を使用して選択タグを検証する方法
- 27. 検証サービスを使用した検証
- 28. jQuery検証プラグインが選択ボックスを検証していません
- 29. Primefaces dataTableの単一選択の検証
- 30. XML検証とJava検証
ウェブまたはデスクトップ?あなたは他のentlibブロックを使用していますか?あなたはアーキテクチャを指定してくださいか? – boj
これはWebアプリケーション向けです。私はアプリケーションで必要とされるように、セキュリティやロギングなどの他のentlibブロックを使用するかもしれません。私はUnityを使用しません。そのビットはSpring.NETによって処理されるため、 –
私はSpring.NETに関する経験はありませんが、私はEntLibブロックの大ファンです。 http://weblogs.asp.net/ricardoperes/archive/2009/03/11/asp-net-validation-with-the-enterprise-library-validation-block.aspxとhttp://www.davidhaydenを読んでください。 .com/blog/dave/archive/2007/02/28/PropertyProx – boj