Search code examples
javaframeworksnaked-objects

Naked Objects. Good or Bad


I have recently been exposed to naked objects. It looks like a pretty decent framework. However I do not see it in widespread use like say, Spring. So why is this framework not getting any mainstream application credit. What are its shortcomings as you see?


Solution

  • From my experience using NOF 3.0.3...

    The good:

    • Automagically generates an DnD UI for your domain objects, like what db4o does for persistence.
    • This is what MVC was always meant to be, according to the MVC pattern creator.
    • The framework only asks your domain objects (POJOs) to be subclassed from AbstractDomainObject thats all the minimum wiring.
    • The framework favors convention OVER configuration: lots of annotations no freaking XML config giles.
    • Works great for prototyping along with db4o for persistence.
    • Out of the box functionality for Hibernate.
    • In my case, I required like 30 mins from Download to Hello world app. (IntelliJ IDEA IDE)
    • Deployment as JNLP, standalone, Web (NOX embedded Jetty or Scimpi flavor) and Eclipse RCP.
    • The NOF team is ALWAYS there for you when you ask for help in the forums.
    • The Naked Object Pattern is an awesome idea, do yourself a favor and take your time to grok it.
    • Theres a lot of usability flaming going on around the Drag and Drop GUI, but if your prospective end users simply can't work with the DnD UI then you are in deep trouble anyway.

    The bad:

    • None that I can think of.

    The kinda ugly:

    • No Swing components allowed, so say goodbye to JGoodies and all your favorite Swing component sets. The UI components are custom made; to get you an idea they look like early 90's VB controls. But there's a SWT port in the works.
    • The multiline line field for long strings has some issues. (NOF 3.0.3)
    • DnD UI for images is kinda buggy.
    • The validation code for getters n setters only fires if the domain object is modified from the UI. (This is probably wrong due to my n00bness, lets hope a NOF committer corrects me)
    • If an object is modified from a non-ui thread, lets say a b.g. worker, such object will
      not update its view on screen. This invalidates a use case such as representing a mail queue in real time on the DnD autogenerated UI. (Again)

    • Veikko