mr.*_*rir 7 .net validation frameworks validation-application-bl
我正在尝试为主要应用程序选择一个验证框架,虽然这两个选项看起来很诱人,但我想知道在承诺之前是否有任何具体的利弊我应该知道.
在我看来,使用属性进行验证并不是最佳解决方案.首先,您必须在域模型中引用基础结构.其次,您没有机会为已编译的类添加验证.最后,您无法使用属性验证复杂逻辑,您必须将Validate方法设置为实体,这看起来很尴尬.
在我看来,验证应该分成不同的对象.例如,IValidator,您可以将验证定义为规则.使用像xVal这样的框架有助于使用JavaScript在表示层中进行验证.
您可能希望查找.NET的xVal和FluentValidation.NHibernate Validator 1.2 alpha也有流畅的语法,它与xVal集成(不确定alpha,但应该是1.0).
企业验证块也有很少的负面影响.我的实体的属性最终有3行属性,使可读性变差.尝试使用AND或OR运算符添加验证也非常痛苦.