我正在尝试为主要应用程序选择一种验证框架,虽然这两种选择似乎都很诱人,但我想知道在选择其中一种之前我是否应该了解任何具体的优缺点。
最佳答案
在我看来,使用属性进行验证并不是最好的解决方案。首先,您必须引用领域模型中的基础设施。其次,您没有任何机会向编译的类添加验证。最后,您无法使用属性验证复杂的逻辑,并且必须为实体创建 Validate 方法,这看起来很尴尬。
在我看来,验证应该分为不同的对象。例如 IValidator,您可以将验证定义为规则。使用类似 xVal 的框架有助于使用 JavaScript 在表示层中进行验证。
您可能想要查找xVal和 FluentValidation for .NET 。 NHibernate Validator 1.2 alpha 也具有流畅的语法,并且与 xVal 集成(不确定 alpha,但 1.0 应该是)。
企业验证 block 也有一些负面影响。我的实体的属性最终有 3 行属性,这使得可读性变差。尝试使用 AND 或 OR 运算符添加验证也非常痛苦。
关于.net - 选择哪个验证框架 : Spring Validation or Validation Application Block (Enterprise LIbrary 4. 0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/751700/