用于WCF服务的Fluent验证或EntLib验证应用程序块

用于WCF服务的Fluent验证或EntLib验证应用程序块,wcf,validation,fluentvalidation,validation-application-bl,Wcf,Validation,Fluentvalidation,Validation Application Bl,我正在寻找一种标准方法,将输入参数的验证添加到WCF服务集 有人能比较Fluent验证和EntLib验证应用程序块吗 它们各自的优点/缺点是什么 当使用一种或另一种时,有哪些场景 我的问题类似于和,但这些问题的答案没有详细的比较 如果能推荐其他类似的技术,我将不胜感激(并说明原因) 是否有人对这两个框架都有经验,并为他们的项目选择一个?做出此决定的原因是什么?几个月后,我可以回答,EntLib验证应用程序块(VAB)是一个成熟的库,支持代码、属性和配置验证 在大多数情况下,开发人员应该从Data

我正在寻找一种标准方法,将输入参数的验证添加到WCF服务集

有人能比较Fluent验证和EntLib验证应用程序块吗

它们各自的优点/缺点是什么

当使用一种或另一种时,有哪些场景

我的问题类似于和,但这些问题的答案没有详细的比较

如果能推荐其他类似的技术,我将不胜感激(并说明原因)


是否有人对这两个框架都有经验,并为他们的项目选择一个?做出此决定的原因是什么?

几个月后,我可以回答,EntLib验证应用程序块(VAB)是一个成熟的库,支持代码、属性和配置验证

在大多数情况下,开发人员应该从DataContract请求中的DataMember属性的属性验证开始,这是最简单和简洁的方法

如果您预计验证规则将频繁更改,或者不同的应用程序安装将需要相同属性的不同规则(例如,不同国家/地区的邮政编码规则不同),则应选择配置。这并不简单,需要学习,但灵活性是一个优势。EntLib配置编辑器有助于简化此过程

只有对于无法使用属性或配置表示的复杂规则,才应该编写代码。 如果重复几次相同的规则,请考虑创建自定义验证器和验证属性。

支持在代码中添加验证,这是一种不太理想的方法。所以我不明白,为什么流畅的验证如此流行。我也很惊讶,使用EntLib VAB

我最初的问题是关于WCF操作的输入参数。但是,最佳实践建议使用单个请求参数作为数据协定,而不是多个RPC样式的简单参数。 无论如何,VAB为WCF操作的各个参数提供属性,从而提供更简洁的视图
(例如,请参阅)

不要忘记.NET framework中包含的数据注释。注意,这个问题有待讨论,可能不适合Stackoverflow。通过选择VAB,我可以使用DataAnnotations进行简单的验证(根据您的回答):)不要忘记,您可以流畅地构建VAB配置,尽管这需要花费时间,因为它是。