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


所以,它看起來像企業庫將繼續得到支持。