jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Perez" <mper...@gmail.com>
Subject Re: Web app design pattern questions
Date Wed, 20 Jun 2007 13:04:00 GMT
IMHO, everything depends on the nature of your application. This remembers
me the putting triggers/business logic/rules in your tables/db/stored procs.
discussion. So there is many ways to do it and everything depends on how you
plan to evolve your app.

Personally I find myself more comfortable writing an abstraction layer on
top of JCR/JDBC/whatever just to act as a facade. In the past I manage to
migrate from Hibernate to Jackrabbit almost seamlessly thanks to this
business objects/interfaces layer, so I could change everything to
Jackrabbit without touching the client apps. That business layer can also be
worth to expose your interfaces through WS/REST/Any-fancy-word-here very
easily. And of course, it will allow you in the future to migrate to any JCR
alternative or better technology (hopefully ther won't be).

But I also can see the value on Jukka's words and in many cases will also
make sense to go in that way, or even to choose an hybrid approach.

Regards,
Martin

On 6/20/07, bilobag <bilobag@hotmail.com> wrote:
>
>
> So you're saying that you use the actual node objects on the front
> end?  My
> motivation was that I was trying to make it easier for the front end
> coders
> to integrate the jackrabbit backend.  I thought if i used DTO's, the front
> end coders could just call the setters/getters from the page and send the
> object back to the business logic layer to be easily saved w/o having to
> work directly with too many jcr method calls like
> getProperty()/setProperty().  I definitely like the OCM tool, but i feel
> that i should wait till its been stable for a little longer.  I was also
> concerned that I could have some concurrent modification issues if i used
> the nodes in the front end.  Any specific ideas or feelings about all
> this?
> Ideally I would like to make things easier for the front end by providing
> methods to pass the form information to instead of having to repeat code
> everywhere.  I'm just unsure what objects to use for the front
> end...DTO's...nodes...wrapper classes?
>
>
> Jukka Zitting wrote:
> >
> > Hi,
> >
> > On 6/19/07, bilobag <bilobag@hotmail.com> wrote:
> >> I am in the beginning stages of a web based CMS tool using JSF, Spring
> >> and
> >> Jackrabbit.  Please give any design advice you may have for the
> following
> >> questions:
> >
> > Chiming in a bit late...
> >
> >> 1) I have 3 node types. Content, book, magazine.  Book and magazine
> >> extend
> >> the content type.  They all have some common properties and some
> >> different
> >> properties.  Now I first thought about creating wrapper classes that
> just
> >> wrap the Node object and provide getters/setters for any properties I
> >> have
> >> for each nodeType.  However, I am unsure if this is a good idea
> possibly
> >> because of locking and concurrency issues.  I don't know if its a
> better
> >> idea to have data transfer objects instead to move data to/from the
> front
> >> end.  However, its more work to have to copy the propertys to/from the
> >> DTO
> >> objects back into the node, but it could be the safer design.
> >
> > When possible I typically try to avoid extra layers on top of JCR.
> > Unlike relational databases, JCR is actually quite "OO-friendly" so
> > the need for an DAO/DTO layer is not that big. Typically such a layer
> > just ends up limiting the available functionality.
> >
> > I'm not against the OCM tool as is, I think it is very useful when you
> > already have an existing object model to be persisted, but if you get
> > to start from scratch then I would rather recommend directly using
> > JCR.
> >
> > My favourite way of working with JCR is to treat nodes as stateful
> > resources, and my code as a set of stateless operations to be applied
> > on those resources. Such an approach is very "web-friendly".
> >
> > BR,
> >
> > Jukka Zitting
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Web-app-design-pattern-questions-tf3946577.html#a11212237
> Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message