簡體   English   中英

C#模型驗證 - 驗證應用程序塊或數據注釋?

[英]C# Model Validation - Validation Application Block or DataAnnotations?

我想在我的域模型中添加驗證器屬性(在ASP.NET MVC應用程序中),我正在嘗試在2個框架,驗證應用程序塊和DataAnnotations之間做出決定。 他們似乎做了類似的任務,所以我想選擇將來最受支持/使用的任務。 似乎DataAnnotations是更新的(並且在3.5 SP1中構建到框架中),那么人們認為驗證應用程序塊將變得過時嗎?

[標記為社區維基,因為這是主觀的]

我一直在問這個問題,最近決定使用企業庫。 我已經能夠使用Unity Framework和驗證塊的組合來輕松地歸因和驗證我的類和方法。 這兩個框架都包含在EntLib中。

就持續支持而言,下一版企業庫目前處於Beta 2(EntLib 5.0),目標是4月中旬發布。 您可以在此處訪問當前的測試版, http://entlib.codeplex.com/wikipage?title = EntLib5%20Beta2

此外,在閱讀了版本5的更改日志后,我注意到它們也包括對DataAnnotations的支持。

“支持.NET框架System.ComponentModel.DataAnnotations數據注釋屬性已添加到塊中,驗證器可用於您將使用Data Annotation屬性的任何位置。有關更多信息,請參閱包含的CHM文件中的使用數據注釋屬性。 “

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


因此,看起來企業庫將繼續得到支持。

MVC2將支持多個驗證框架。 引用偉大的Scott Guthrie “ASP.NET MVC 2的驗證功能旨在使插入任何類型的驗證體系結構變得容易”。

由於DataAnnotations使用基於屬性的方法,驗證應用程序塊不會過時,因為它還支持基於配置的方法和多個規則集的驗證,這在許多情況下都很有用。 您可以預期VAB的未來版本將內置支持MVC 2。

更新:在最新版本的驗證應用程序塊版本5中,VAB的驗證屬性繼承自DataAnnotations的基本驗證屬性。 這意味着VAB現在直接在DataAnnotations之上構建,並且可以處理DataAnnotations的應用程序也可以處理VAB定義的屬性。

MVC 2和Asp.net 4.0 DynamicData都支持DataAnnotations。 我會說驗證應用程序塊將過時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM