|Well, I'm finally here at the conference. The room has a bit too much of an echo - it's kind of hard to pick up speakers with an accent (and, I expect that means that non-English speakers will have trouble picking up people like me. Oh well).|
Anyway, the current talk is from Dr. Michael Prasse, on modularizing the ObjectLens. It could certainly stand some of that; I recall my first stint as a consultant, trying to use the Lens programmatically (instead of via the Forms Editor). Not only was it not fun, but support (this was back in the PPS days) told me that such usage wasn't supported.
You can imagine my reaction :)
Anyway - the lens is a fairly simplistic O/R layer, in that it maps a single class to a table - you can't store objects of different classes in the same table (polymorphism comes via foreign key mapping). Instance variable map straight to columns. Usage is fairly straightforward:
aLensSession add: anObject
aLensSession remove: anOBject
You can write queries using Smalltalk #select:. You get transaction support and proxies. You save the db mapping information declaratively in a spec (like a window spec). The dataSpec is too monolithic - what Michael is doing is creating a more modular set of specs, which allows for easier reuse across similar applications. Back in my SE demo days, this would have been highly useful (and, I can recall a number of Lens projects I consulted on that would have been a lot easier).
He's got modified tools that support these changes as well - pretty cool stuff.