I have three different projects converging. They all need a more feature rich base class in the business layer.
I haven’t settled on a name for this base class. EntityBase? BusinessBase? BusinessObject? I expect something will stick in the near future.
Proposed interfaces:
- INotifyDataErrorInfo
- INotifyPropertyChanged
- INotifyPropertyChanging
- IRevertibleChangeTracking
- ISupportInitializeNotification
- ISupportUndo
- ITrackStatus
You should notice that most of these interfaces are pre-existing Microsoft interfaces. ISupportUndo and ITrackStatus are inspired by Rockford Lhotka’s CSLA framework. The details are changed, but I really like the syntax to make the interface more readable. “I support undo.” I can’t think of a better way to express what the interface does. Can you?
I’m still working on the implementation details. I’ll share more once I have a stable sample app.