Validation MS验证块或工作流规则引擎?
对于将要开发的大型应用程序,我们正在选择验证框架。虽然工作流规则引擎不是严格的验证框架,但它本身可以不使用工作流基础。它似乎提供了在运行时使用的数据库中指定规则的灵活性。但是,似乎无法在代码中指定规则Validation MS验证块或工作流规则引擎?,validation,workflow-foundation,enterprise-library,validation-application-bl,Validation,Workflow Foundation,Enterprise Library,Validation Application Bl,对于将要开发的大型应用程序,我们正在选择验证框架。虽然工作流规则引擎不是严格的验证框架,但它本身可以不使用工作流基础。它似乎提供了在运行时使用的数据库中指定规则的灵活性。但是,似乎无法在代码中指定规则 如果更大的灵活性是一项要求(不一定需要业务分析师编辑规则),那么您更喜欢这两项中的哪一项?为什么?这与您的具体要求非常重要。”“灵活”本身不是一个好的要求,因为它是不可测量的。如果某件事情是灵活的,这是非常主观的 我不熟悉微软的商业规则引擎,所以我不能对此发表评论。不过,我对Microsoft企业
如果更大的灵活性是一项要求(不一定需要业务分析师编辑规则),那么您更喜欢这两项中的哪一项?为什么?这与您的具体要求非常重要。”“灵活”本身不是一个好的要求,因为它是不可测量的。如果某件事情是灵活的,这是非常主观的 我不熟悉微软的商业规则引擎,所以我不能对此发表评论。不过,我对Microsoft企业库验证应用程序块(VAB)非常熟悉,它在过去一年中为我提供了很好的服务。它有几个特点,使其在我处理的情况下具有灵活性:
- 它允许定义验证声明性(使用属性)和使用外部配置文件(在生成实体时非常有用)李>
- 它包含一组可以使用的默认验证器,并且可以编写自定义验证器
- 它允许对单个属性进行验证,并允许您将多个属性作为一个组进行比较(通过使用自验证或自定义验证程序)
- 它允许单独验证对象以及对象图
- 它允许您定义多个“规则集”,例如允许您定义一组硬错误和一组警告
我感兴趣的是其他人对他们熟悉的验证框架有什么看法。@Steven-规则引擎具有一些VAB不支持的功能,如规则优先级和前向更改。我正在寻找一个功能丰富的框架,但不确定哪些VAB支持WF不支持的功能Rules@Steven-对于VAB,您在何处进行验证,例如“如果数据库中不存在此ID,则验证成功,否则不会成功”。DB访问逻辑是否作为类的一部分(可能在SelfValidation方法中)?@User102533:此注释字段太短,无法回答您的问题“复杂的DB特定验证逻辑在哪里”,但在另一个线程上写到了这一点。我希望它能回答您的问题:@Steven-是否可以在自定义验证器中获取对您正在验证的对象以外的对象的引用?如果我在DoValidate方法中为Order.Qty创建CustomValidator,那么用例可能是“确保Order.Qty>10,此时Employee.Status='Premium'”。如何获取对Employee对象的引用?@User102533:这取决于。为订单创建自定义验证器时,您可以访问Qty和Customer。如果需要基于上下文进行验证,请阅读本文:。