"What if you never had to write a user interface again? What if you could simply expose your business objects directly to the end user? How would this affect your productivity? The way you work? The flexibility of your
applications? Is this even possible? Sometimes, yes. This describes a style of application development, Naked Objects, where you write just the business objects, and a framework lets your users interact directly with
these objects." (Dave Thomas)
Using Magritte we can already build (web/glamour) components representing attributes of domain objects. What should we add to enable a NO UI?
- (better descriptions of) relationships between domain objects;
- descriptions of actions, with and without parameters;
- build a canvas where multiple domain objects can be shown;
- make the domain objects identifiable with an icon and title;
- add drag-and drop to initiate actions and manage relationships;
- add buttons/drop down menus for actions;
(and a few other things, of which I'll think when these are finished :)
Benefits to the student
- Learn to use and extend a high quality framework.
- Learn and practice interaction design.
- Learn about hexagonal architecture.
Benefits to the community
The Naked Objects UI enables a very short feedback loop when prototyping a domain model. It provides a showcase for the superiority of smalltalk as a rapid development environment. It allows scaling down the engineering effort needed to create custom solutions. It fits very well with exploratory modeling.
In a mixed UI style it allows focusing effort on only the critical parts of the UI.