.net 选择哪种验证框架:Spring验证还是验证应用程序块(Enterprise LIbrary 4.0)?

.net 选择哪种验证框架:Spring验证还是验证应用程序块(Enterprise LIbrary 4.0)?,.net,validation,frameworks,validation-application-bl,.net,Validation,Frameworks,Validation Application Bl,我试图为一个主要的应用程序选择一个验证框架,虽然这两个选项看起来都很诱人,我想知道在提交一个或另一个之前,是否有任何具体的优点和缺点我应该知道。我发现企业库块有一点是,它可以迫使您使用其他您不想要/不需要的块。例如,验证程序可能使用日志块,但您对自己的日志系统感到满意。现在,你的应用程序以不同的方式记录事情。也就是说,我喜欢Ent库中验证块的外观。我还没有玩过Spring.NET tho。在我看来,使用属性验证并不是最好的解决方案。首先,您必须在域模型中引用基础设施。其次,您没有任何机会向编译的

我试图为一个主要的应用程序选择一个验证框架,虽然这两个选项看起来都很诱人,我想知道在提交一个或另一个之前,是否有任何具体的优点和缺点我应该知道。

我发现企业库块有一点是,它可以迫使您使用其他您不想要/不需要的块。例如,验证程序可能使用日志块,但您对自己的日志系统感到满意。现在,你的应用程序以不同的方式记录事情。也就是说,我喜欢Ent库中验证块的外观。我还没有玩过Spring.NET tho。

在我看来,使用属性验证并不是最好的解决方案。首先,您必须在域模型中引用基础设施。其次,您没有任何机会向编译的类添加验证。最后,您不能用属性验证复杂的逻辑,您必须将validate方法用于实体,这看起来很尴尬

在我看来,验证应该分为不同的对象。例如,您可以将验证定义为规则的IValidator。使用类似框架的方法有助于使用JavaScript在表示层进行验证

你可能想要寻找和。1.2 alpha也有流畅的语法,并且它与xVal集成(不确定alpha,但1.0应该是)


企业验证块也几乎没有负面影响。我的实体的属性最终有3行属性,使可读性更差。尝试使用AND或or运算符添加验证也很痛苦。

Web或桌面?您是否正在使用其他entlib块?请指定体系结构好吗?它是用于web应用程序的。我可能会使用其他entlib块,如安全性和日志记录,因为这将是应用程序中所需要的。不过我不会使用Unity,因为它将由Spring处理。我没有使用Spring.NET的经验,但我非常喜欢EntLib块。你应该多读书,多谢!我肯定会考虑EnLIB。我从来没有过验证应用程序块的问题。您能指出VAB调用日志应用程序块的代码或位置吗?我对此进行了深入的研究,但没有从企业库的验证程序集直接调用任何日志程序集。我认为您的应用程序直接使用了日志部分。在我的应用程序中,我只发布特定于VAB的程序集。对于VAB 5.0,您需要:
Common
Validation
ServiceLocation
Unity
Unity.Configuration
Unity.Interception
。这可能是在旧版本上。当我想我看到这一点时,它是企业库的2.0版。验证应用程序块不必与属性一起使用。它包含一种基于配置的验证方法。阅读本文:与Marek描述的原因相同,我更喜欢基于配置的验证而不是基于属性的配置,但VAB 5.0允许您使用DataAnnotations引入的buddy类技术定义验证。xVal与ASP.NET MVC 1.0一起使用,目前已弃用