Hi,
I'm evaluating an ecommerce solution for a client. I installed ofbiz
and the demo looks great. It has all the feature that my client needs.
 Then I asked myself what if I needed to customize and modify the
code... so I looked at the code.

I realize ofbiz was started a few years ago and developers had to
build a lot of infrastructure to do stuff like persistence...
something I take for granted today with hibernate. If you can start
over again, what would you change?

I would replace the whole entitymodel.xml stuff with a rich domain
model. I'm new to ofbiz so correct me if I'm wrong. It seems
entitymodel.xml is used to define domain objects. Why not define
domain objects in Java? Java is has a much richer type system than
xml. Furthermore entitymodel.xml  its redundant because u will need a
Java version of the entity defined in the xml anyway.

If I could do it over, I would remove the entitymodel.xml and the
org.ofbiz.entity.* packages and replace it with hibernate.

Browsing the code, I do not have a good sense of what the domain
objects are. The domain objects are one of the important pieces if not
the most important part of any system. Take a domain concept like
Product for example. I see there's a org.ofbiz.product.* packages but
no Product class! or is it hidden somewhere in an entitymodel.xml
file? ofbiz does not have a good domain model IMHO.  Because of this
adding new feature and maintenance would be costly IMHO.  I'm hesitant
to recommend to the client  because of the potential high maintenance
even though it has all the feature my client needs.

If I were to start over again, I would use Grails which is a
Groovy/Java framework using Spring, Hibernate, and SiteMesh. Grails
copies ideas from Ruby on Rails.
With Grails/Ralis, I can create a solution that meets the clients need
in a month or two.

So if you had to do it over again, how would u do it?

Happy Holidays!
Sonny

Reply via email to