我正在查看Lhotka CSLA.NET对象库(Lhotka.NET)。这似乎很有趣,但有一点没有意义的是业务规则是用C#编写的。如果这些不是在代码之外编码的(即使它是一个未与应用程序的主逻辑耦合的库,规则仍然可以更改并需要重新编译)。
由于
答案 0 :(得分:8)
不,那将是inner platform anti-pattern.
如果您制作的系统足够先进,可以处理您可能需要的任何业务规则,那么它将比以前复杂得多。
答案 1 :(得分:2)
CSLA业务规则只是委托,如果规则通过则返回true,否则返回false。
由于业务规则只是代码,因此您可以随心所欲地执行任何操作。如果您愿意,可以创建规则引擎,并根据需要处理对象外的规则。
如果您希望使用基于属性的规则,CSLA还支持基于属性的DataAnnotations。
从Csla 4开始,不再支持静态规则方法。而是创建一个类,它是BusinessRule
命名空间中Csla.Rules
的子类。这样可以更好地重复使用并更容易进行单元测试。