4

ドメイン モデル (ASP.NET MVC アプリ内) にバリデーター属性を追加したいのですが、検証アプリケーション ブロックと DataAnnotations の 2 つのフレームワークのどちらかを決定しようとしています。それらは同様のタスクを実行しているように見えるので、将来最もサポート/使用されるものを選択したいと思います. DataAnnotations は新しい (そして 3.5 SP1 の時点でフレームワークに組み込まれている) ようですが、Validation Application Block は時代遅れになると人々は考えていますか?

[これは主観的なものであるため、コミュニティ Wiki としてマークされています]

4

3 に答える 3

7

私もこの質問をしており、最近 Enterprise Library を使用することにしました。Unity フレームワークと検証ブロックの組み合わせを使用して、ほとんど問題なくクラスとメソッドを属性付けおよび検証することができました。どちらのフレームワークも EntLib に含まれています。

継続的なサポートに関する限り、Enterprise Library の次のバージョンは現在ベータ 2 (EntLib 5.0) であり、4 月中旬のリリースを目指しています。現在のベータ版はhttp://entlib.codeplex.com/wikipage?title=EntLib5%20Beta2からアクセスできます。

また、バージョン 5 の変更ログを読んだ後、DataAnnotations のサポートも含まれていることに気付きました。

「.NET フレームワーク System.ComponentModel.DataAnnotations データ注釈属性のサポートがブロックに追加され、データ注釈属性を使用する場所ならどこでもバリデーターを使用できます。詳細については、含まれている CHM ファイルのデータ注釈属性の使用を参照してください。 "

http://entlib.codeplex.com/wikipage?title=EntLib5Beta2ChangeLog&referringTitle=EntLib5%20Beta2#lab


そのため、Enterprise Library は引き続きサポートされるようです。

于 2010-04-01T14:54:32.750 に答える
3

MVC2は、複数の検証フレームワークをサポートします。素晴らしいScottGuthrieの言葉を引用すると、 ASP.NET MVC 2の検証機能は、あらゆるタイプの検証アーキテクチャを簡単にプラグインできるように設計されています」。

DataAnnotationsは属性ベースのアプローチを使用しているため、検証アプリケーションブロックは、多くのシナリオで役立つ構成ベースのアプローチと複数のルールセットの検証もサポートしているため、廃止されることはありません。VABの将来のバージョンには、MVC2のサポートが組み込まれることが期待できます。

更新:検証アプリケーションブロックの最新バージョンであるバージョン5では、VABの検証属性はDataAnnotationsの基本検証属性から継承されます。つまり、VABはDataAnnotationsの上に直接構築され、DataAnnotationsを処理できるアプリケーションはVABによって定義された属性も処理できるようになりました。

于 2010-02-09T11:03:24.333 に答える
2

DataAnnotations は、MVC 2 と Asp.net 4.0 DynamicData の両方でサポートされています。Validation Application Block は時代遅れになると思います。

于 2010-01-05T16:45:29.230 に答える