It has been a couple years since you wrote this article.Are you still using Web Rule, or have you moved on? Examples of these sort of validations are: checking that a value is unique in the database, and checking other entity values. Issue - My problem is that I end up repeating the same code in the Service layer.For example, when I insert and update an entity, I repeat the same code for checking that the given value is unique.Of course you would put the business rules in a logical place - like behind some WCF services, so that they cannot be bypassed.You could argue the point forever, but nothing is absolutely perfect and there's always going to be a "What if...? Business rules usually involve references to services and/or arbitrary application layers that data objects have no business knowing anything about., whatever) because ...You refer to the "new type of rules engines that have begun to emerge lately", which implies that there are more than one.I am quite impressed with Web Rule, but I was wondering if you could suggest any other examples that I might be able to compare it against.
Additionally, tests support all types of facts (XML, Java, RL, and ADF-BC) and can be run on SOA or non-SOA use cases.Two notable issues that arose from the study were how to implement feedback mechanisms into the process and how to manage the complexity of a real-world problem domain by using abstraction without losing important details.The test feature enables both developers and business users to quickly check that a rule satisfies the expected behavior or, if modified, to see if a rule regresses existing functionality.For example: Each of your repositories will have access to the entities is manages, such as an Object Set in Entity Framework (I think it's called that), so you can safely place any shared validation, in the context of a specific entity, on the repository.For example: When you have to go to the database then you need to use Db Context and Db Context has an Overridable method called Validate Entity. The input and output Fact trees are auto-initialized based on the inputs/outputs specified for the Decision Function.