Tuesday, March 09, 2010

Naked Objects

I recently received and re-read Dan Haywood's excellent "Domain-Driven Design Using Naked Objects" (I'd read a review copy some months ago). It's definitely worth the effort and I'm hoping to get some of the exercises done too as this means I can get up to speed with where the Naked Objects framework currently is these days.One of the first pieces of prototyping we did with xProcess (back in 2003) was to create a domain model (using TogetherSoft's "Together") and then connect it to Naked Objects so we could dynamically interact with those early models of Project, Task and Person. Naked Object effectively animates a domain model so you have an instant user interface to manipulate the domain objects. I believe the approach helped us then and I would certainly recommend projects consider doing the same - particularly in early stages of a project - as getting good domain models early pays off many times over at the end of the day.

2 comments:

Richard Pawson said...

Andy - glad to hear you're still interested in Naked Objects. It is many years since we met. Are you aware that you are responsible for a feature of Naked Objects? In the very early days Naked Objects only supported two kinds of actions: zero parameter (which were rendered on the pop-up object menu) and one-parameter, which were invoked by dropping one object on another. Our line then was that if you needed more than one parameter, then you were effectively looking at another object (albeit transient-only). It was you who suggested that public methods with mutiple parameters should also be rendered as menu actions, but generate a dialog reflectively. That's now been part of Naked Objects for so many years that it's very hard to remember how we managed without. So, belatedly: Thank You.

Andy said...

Hi Richard,
I remember the conversation well and I'm delighted that it was so fruitful - was it at BeJUG in Antwerp?. I am still interested in Naked Object because I am sure that frameworks like this are such a natural support for development teams. Surely that they will become ubiquitous. I think it's obvious that a good domain model contains more than enough information to generate full applications - albeit with standard user access and persistence mechanisms. It's probable that user interfaces will get specialised to gain competitive advantage, but in the early stages of projects/products there really is no justification for this extra expense.
Keep pounding the message. It'll get through eventually!

Breakout sessions that ensure everyone in the meeting meets everyone else

Lockdown finds us doing more and more in online meetings, whether it's business, training, parties or families. It also finds us spendin...