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 lips
shine as if moist and waiting. “Rockford Lhotka is
dead, and I need you to find out who killed him!” she said, a bit breathlessly, fingering
the 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 have
a crush on, come the next product launch. I took the case, accepting a free copy of
Vista Ultimate as a retainer.
My old buddy Lt. Hamilton, down at the eastern precinct was no help at all. He told
me 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 for
your 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 user
interfaces. nHibernate objects. Castle ActiveRecord objects.
Generic Lists of things. On and on. What did I get? Bugs and wonky stuff that didn’t
work. Bind that puppy to a DataTable and you’re listening to big band jazz, but bind
to objects and you’re singing the blues. Even the new LinqDataSource only really works
with 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 is
just icing on the cake. Thick layers of fabulous icing. The fabulous business objects
that link automatically with your UI layer also have built-in facilities for data
validation, authorization, and permissions. There’s a whole stack of automatic undo functionality
that 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 application
layers. The code that runs on the server and that which runs on the client is exactly
the same. Your objects move magically from one to the other. Ol’ Mr. Lhotka called
these ‘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 standardization
with 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 playing
with these feature…we’re just waiting for the manual.”
And the light dawned. Rocky hadn’t finished the manual. A tell-all confessional like
that 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 hire
me to find the killer! I ran out of County Records, raced round the corner, and I
heard 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.”