Domain-driven design (DDD) focuses on what matters in enterprise applications: the core business domain. And Naked Objects lets you build DDD applications just by writing the core domain classes, the rest of the application is taken care of for you.

This blog supplements and expands on my book, Domain Driven Design using Naked Objects, describing how you can rapidly develop and test domain applications using Naked Objects.

Adding support for Java 5 enums to Naked Objects – part 2

In the previous post we saw how to write a FacetFactory so that Naked Objects treats enums as value types. Let’s now complete the story by also showing how to provide drop-down lists for any properties or action parameters of that type.

Adding support for Java 5 enums to Naked Objects

In the previous posts we’ve seen how to simulate enums in Naked Objects 4.0. But it’d be nice if Naked Objects supported enums natively. So let’s see how, half in this post and half in the one that follows.

What we’re going to do here is to extend the Naked Objects programming model, which [...]

Putting a Custom UI on Naked Objects: Part 4, Business Rules

In the previous post in this series we saw how the Naked Objects metamodel uses Facets to allow arbitrary metadata to be associated to the classes, properties, collections or actions. We’ve already explored the well-defined facets that are used to capture presentation semantics and to enable interactions, but we still need to see how [...]

Putting a Custom UI on Naked Objects: Part 3, The MetaModel API

In part one of this series we saw how to bootstrap Naked Objects, and in part two we saw how we can interact directly with domain objects as pojos (with Naked Objects taking care of persistence and transaction management). But we can also interact with domain objects through their NakedObject wrapper/adapter. Although more [...]

Putting a Custom UI on Naked Objects: Part 2, Interacting with Pojos

In the previous post we saw how to bootstrap Naked Objects, and open a PersistenceSession. In this post let’s see how to actually get hold of and interact with a domain object.

First thing we usually do is to get hold of the registered services (as per nakedobjects.services key in nakedobjects.properties configuration file). These [...]

Putting a Custom UI on Naked Objects: Part 1, Bootstrapping

One of the objectives for Naked Objects v4.0 was to make the framework more modular. So although (as the screencasts here show) it can still be used as a full-stack framework, it’s also possible to use it just for domain and persistence services. You can then graft on your own user interface as [...]