4

我想添加验证器属性到我的领域模型(在ASP.NET MVC应用程序中),并且我试图在2个框架,验证应用程序块和DataAnnotations之间做出决定。他们似乎做了类似的任务,所以我想选择一个将来最受支持/使用的任务。看起来DataAnnotations更新(并且自3.5 SP1起构建到框架中),那么人们是否认为验证应用程序块将会过时?C#模型验证 - 验证应用程序块或DataAnnotations?

[标记为社区维基因为这是主观]

回答

2

DataAnnotations被两个MVC 2和Asp.net 4.0 DynamicData支撑。我认为验证应用程序块将变得过时。

3

MVC2将支持多种验证框架。引用伟大的Scott Guthrie“ASP.NET MVC 2的验证功能旨在简化插入任何类型的验证架构”。

由于DataAnnotations使用基于属性的方法,验证应用程序块不会过时,因为它还支持基于配置的方法和验证多个规则集,这在许多情况下都很有用。您可以预期未来版本的VAB将内置支持MVC 2.

更新:在最新版本的验证应用程序块版本5中,VAB的验证属性从基本验证属性继承的DataAnnotations。这意味着VAB现在直接建立在DataAnnotations之上,并且可以处理DataAnnotations的应用程序也可以处理由VAB定义的属性。

7

我一直在问这个问题,最近决定使用企业库。我已经能够使用Unity Framework & Validation Block组合的属性&验证我的类&方法,而没有什么麻烦。这两个框架都包含在EntLib中。

就继续支持而言,企业库的下一个版本目前在Beta 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


所以,它看起来像企业库将继续得到支持。