在我的项目中,我需要创建一个业务对象验证层,该层将获取我的对象并根据一组规则运行它并返回通过或失败以及失败原因列表。我知道有很多选择可以实现这一目标。
来自微软:
开源:
有没有人在这些技术(或我没有列出的任何技术)上取得过特别大的成功或失败,或者对他们认为最适合业务规则验证的技术有任何意见。
编辑:我不只是询问通用验证字符串长度 < 200,邮政编码是 5 位或 5+4,而是假设规则引擎实际上会被利用。
最佳答案
代码与规则引擎的决定是一个权衡问题,恕我直言。几个例子是:
代码的优点
- 可能具有更高的性能。
- 利用开发者的现有技能。
- 不需要单独的工具、运行时引擎等。
规则引擎的优势
(功能因各种规则引擎而异。)
- 规定业务用户可写(或至少可读)的 DSL。
- 允许自动安排规则的生效日期和到期日期属性。
- 来自规则存储库的灵活报告支持改进对系统行为的分析和审计。
- 正如数据库引擎将数据内容/关系问题与系统的其余部分隔离开一样,规则引擎将验证和策略与系统的其余部分隔离开。
关于c# - 您会用什么作为业务验证层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/524659/