为什么业务规则是用C#(Code)编写的?

时间:2010-09-23 22:28:24

标签: csla business-rules

我正在查看Lhotka CSLA.NET对象库(Lhotka.NET)。这似乎很有趣,但有一点没有意义的是业务规则是用C#编写的。如果这些不是在代码之外编码的(即使它是一个未与应用程序的主逻辑耦合的库,规则仍然可以更改并需要重新编译)。

由于

2 个答案:

答案 0 :(得分:8)

不,那将是inner platform anti-pattern.

如果您制作的系统足够先进,可以处理您可能需要的任何业务规则,那么它将比以前复杂得多。

答案 1 :(得分:2)

CSLA业务规则只是委托,如果规则通过则返回true,否则返回false。

由于业务规则只是代码,因此您可以随心所欲地执行任何操作。如果您愿意,可以创建规则引擎,并根据需要处理对象外的规则。

如果您希望使用基于属性的规则,CSLA还支持基于属性的DataAnnotations。

从Csla 4开始,不再支持静态规则方法。而是创建一个类,它是BusinessRule命名空间中Csla.Rules的子类。这样可以更好地重复使用并更容易进行单元测试。