Merge with NakedObjects?
Here are some thoughts on this topic:
Business objects should be behaviorally complete. In other words, they must implement all business logic that applies to them.
The UI then provides generic views onto the business objects. There are several ways to approach this. One way is described at http://www.nakedobjects.org. Although I am still understanding their work, it appears that a limitation of their approach is a lack of ability to search for some subset of objects to manipulate or to manipulate more than one object at a time.
More work needs to be done on generalizing UI patterns so that they can be applied successfully to TheDataIsTheUserInterface.
Another example of TheDataIsTheUserInterface is [the PowerOfPlainText] the classic Unix tradition of storing all data in ASCII files that can be edited by a text editor. Die-hard Unix sysadmins tend to mistrust any graphical or other tool built on top of these files in order to make editing them more convenient, often because they have experienced situations where these tools break, causing the system itself to break.
--DaveOrme
Searching should be accomplished using generic first-class search objects. It should be possible to search through anything that implements either allInstances or allObjects. One way to implement searches is to use the VisitorPattern and have Searches as your visitors.
Selecting and manipulating more than one object at a time should be done using a non-broken UI. Something that isn't WIMP. It's really a no-brainer since all operations (moving, deleting, copying, renaming, injecting, flattening) should be defined over a set or graph of objects. -- RK
See CascadingDialogBoxesAntiPattern, WidgetsRepresentRelationshipsInTheModel
See http://www.nakedobjects.org