The CSLA of the Maltese Falcon

She sat down in my office, batting those beautiful blue eyes behind little girl glasses.Her only makeup seemed to be a bit of lip gloss that made her thin expressive lipsshine as if moist and waiting. “Rockford Lhotka isdead, and I need you to find out who killed him!” she said, a bit breathlessly, fingeringthe Microsoft logo on the form-hugging knit polo shirt she wore over her waifish figure.Her mousy hair and shy expression made clear she was the geek girl they’d all havea crush on, come the next product launch. I took the case, accepting a free copy ofVista Ultimate as a retainer.

My old buddy Lt. Hamilton, down at the eastern precinct was no help at all. He toldme that Rocky Lhotka, wrote the code and the documentation for CSLA. “What’s CLSA?”I asked.  “The primary goal of CSLA.NET is to enable you to build a rich, powerful, and flexible business layer foryour application.” Man. The L.T. can be a dick when he’s hung over. Talk English man!I took off, rather than listen to more marketing-speak from that hack.

Luckily, Maggie, who works in the stacks down at county record-keeping knew more.“What does CSLA .NET do? What doesn’t it do, honey.”

“Make it simple for me?” I asked.

“Pay attention, and I’ll boil it down: CSLA Data Binds beautifully!I’ve worked with all sorts of objects that I could supposedly bind to my .NET userinterfaces. nHibernate objects. Castle ActiveRecord objects.Generic Lists of things. On and on. What did I get? Bugs and wonky stuff that didn’twork. Bind that puppy to a DataTable and you’re listening to big band jazz, but bindto objects and you’re singing the blues. Even the new LinqDataSource only really workswith LINQ to SQL, not the other flavors.”

“So you can’t bind your UI to objects?”

“Try it with a CSLA business object. It’s like butter. These objects work so well,so completely, that you barely need to write any more code”

“But you said it did more than that?”

“Once you have that foundation, all of the other magic that the framework does isjust icing on the cake. Thick layers of fabulous icing. The fabulous business objectsthat link automatically with your UI layer also have built-in facilities for datavalidation, authorization, and permissions. There’s a whole stack of automatic undo functionalitythat you can have almost for free.”

“Wow. That’s something. You want a drink?”

“On top of all that, is an Active Record pattern implementation and ‘data portal’which allow you to use almost any remoting technology to link between applicationlayers. The code that runs on the server and that which runs on the client is exactlythe same. Your objects move magically from one to the other. Ol’ Mr. Lhotka calledthese ‘mobile objects.’”

“Seriously. I need to go and get a beer. Maybe read the sports section.”

“Coming in the next version are better LINQ query support, data access layer standardizationwith externalized object factories, and async data access. Also coming is CSLA Light,which provides mobile objects to your Silverlight Apps. I’m excited to start playingwith these feature…we’re just waiting for the manual.”

And the light dawned. Rocky hadn’t finished the manual. A tell-all confessional likethat could keep people from buying MSDN magazine and certification manuals for months!The mousy little booth babe had killed poor Rocky, and then had the nerve to hireme to find the killer! I ran out of County Records, raced round the corner, and Iheard thunder. Light flashed behind my eyes. My knees buckled. What a sap I was!

Tune in next week when you’ll hear Rocky say, “That wasn’t me, I used a mocking framework.”