Business Objects are cooler than you think

I think it was Paul Stovell’s article on Validation in WPF that got me started. The article is amazing and has inspired a lot of my thoughts on what to do with binding in v-next.

Paul mentioned CSLA. I wasn’t familiar. I dug in. Found Rockford Lhotka. Then I found Expert C# 2005 Business Objects.

Great book! (at least as of page 53).

I figured if we’re going to build a foundation that allows easy use of business objects, I’d better understand them deeply.

An interesting nugget from the book: the philosophical difference between a relational model and a object model (at least according to Rockford).

Relational model: all about data. Should always strive for data normalization–reduce duplication of data.
Object model: all about behavior. Should always strive for behavior normalization–reduce duplication of behavior.

Things I rarely think about. I’ll let you know if I get any other cool nuggets as I read.

Any other good resources on the topic that you know?

Hope ya’ll had a good weekend.

Comments (3)

  1. Eisenberg says:


    Another great book to check out is “Applying Domain-Driven Design and Patterns” by Jimmy Nilsson.

  2. Rocky’s an icon in the business object world. He showed VB developers how to push object development to the max with his "Professional VB Business Objects" book.

    The one area in his C# book that I would caution on is the whole state management thing. Basically he lays out an implementation that uses binary serialization to save every modification of an object in n a "transaction". The heavy part gets in that it not only saves its serialization state, but the state of all referenced objects. With a large object graph, that’s a lot of serialization. The idea is to the order of operations so that in a rollback scenario each object literally undoes each and every operation that was done to it.

    My $.02

  3. Ivolved says:

    Here’s another great book in that area

    Agile Principles, Patterns, and Practices in C#

    (left out the referral ID because I didn’t want anyone to take offense).