Mike,
MM.NET has an interface called ImmBusinessRuleHost. Both the BusinessObject and the BusinessEvent (kind of like a session class from java) implement this interface. So the BusinessRule class knows how to talk to its host and the same rules object can be called from BusinessObjects and BusinessEvents.
The base BusinessRules class knows how to check for required fields and work with an ErrorProvider and notify its host when there are errors.
Its very flexible and a good example of the care that Kevin has taken to architect his framework with solid OOP principles.
Ok, I stand down from the soap box now.
>I'm still trying to figure out how to abstract a business rule in a way that provides real benefit to the developer. Why not just write the rule in code? What's the framework do?