Java Development News:
The Naked Object Architecture Series
By Richard Pawson, Robert Matthews and Dan Haywood
01 Jan 2004 | TheServerSide.com
The Naked Objects Framework enables the design and development of business systems in which all business functionality is implemented as methods on the domain objects, and these objects are exposed directly and automatically to the user. Two of the benefits claimed for using Naked Objects are that it dramatically improves development productivity (because the developer no longer writes a user interface) and that the resulting systems will be more agile because they will be built on cleaner object models.
This article describes a controlled experiment that compares an application designed using a conventional 4-layer/multi-tier approach with an application of equivalent functionality developed with Naked Objects. It aims to provides evidence for the claims that Naked Objects speeds up the development cycle and that the resulting systems are more agile.
Because the Naked Objects framework is written in Java 1.1. it will compile (as J#) for the .Net platform. Furthermore, if you choose to write your application in Java 1.1. (and since you aren't writing any user interface code that's no great restriction) then your application will compile, without modification, for either the Java or .Net platforms.
Traditionally developers have had to choose between the benefits of rapid prototyping and of up-front modelling. The Naked Objects Framework gives you the best of both approaches. When combined with various development environments, you can model simultaneously in UML, Java code and user perspectives, with all three in guaranteed synchronization.
This article discusses the need for rich clients in certain types of applications, such as expense reporting and customer-service systems. It contrasts two kinds of applications as coined by Alan Cooper: 'transient' and 'sovereign', and shows you how to use Naked Objects to gain all of the advantages of a rich-client interface, without sacrificing the advantages of the thin-client approach.