我想在我的域模型中添加验证器属性(在ASP.NET MVC应用程序中),我正在尝试在2个框架之间,验证应用程序块和DataAnnotations之间做出决定。他们似乎做了类似的任务,所以我想选择将来最受支持/使用的任务。似乎DataAnnotations更新(并且在3.5 SP1中构建到框架中),那么人们是否认为验证应用程序块将过时?
[标记为社区维基,因为这是主观的]
答案 0 :(得分:7)
我一直在问这个问题,最近决定使用企业库。我已经能够使用Unity Framework和amp;验证块属性&验证我的课程和方法没什么问题。这两个框架都包含在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
因此,看起来企业库将继续得到支持。
答案 1 :(得分:3)
MVC2将支持多个验证框架。引用伟大的Scott Guthrie“ASP.NET MVC 2的验证功能旨在使插入任何类型的验证体系结构变得容易”。
由于DataAnnotations使用基于属性的方法,验证应用程序块不会过时,因为它还支持基于配置的方法和多个规则集的验证,这在许多情况下都很有用。您可以预期VAB的未来版本将内置支持MVC 2.
更新:在最新版本的验证应用程序块版本5中,VAB的验证属性继承自DataAnnotations的基本验证属性。这意味着VAB现在直接在DataAnnotations之上构建,并且可以处理DataAnnotations的应用程序也可以处理VAB定义的属性。
答案 2 :(得分:2)
MVC 2和Asp.net 4.0 DynamicData都支持DataAnnotations。我会说验证应用程序块将过时。