Hi Drew,

For what it's worth, here are my experiences with RIFE.

For the following points:

-- I want to use an Interface/Implementation approach, so each Class
will have a dedicated interface, so I can change the Class
implementations later on (i.e. Interface: ItemDAO; Implementations:
HibernateItemDAO, JDBCItemDAO).

-- I would like to be able to use IoC to inject dependencies using
setter or constructor injection. To follow the previous example,
ItemService (Interface) will have a method called
setItemDAO(ItemDAO dao), and the container (Spring or Yan/Nutts)
will inject HibernateItemDAO or JDBCItemDAO per configuration.

-- I would like to use an ORM + Database Caching solution, preferably
Hibernate 3.2.

-- I would like to be able to define database transactions either
programmatically in the Services (Business Logic) layer or using an
AOP approach similar to Spring with XML configurations.

For the points above, I do exactly those things in my project, using
Spring and Hibernate, and have no problems integrating RIFE.

-- This application needs to support i18n (language + layout).

My application is available in English and in French, and RIFE has
very good support for i18n.
  
-- I would like to use Log4j and commons-logging for all logging
purposes.
  
No problem there.

-- I would like to use  a Testing framework, such as JUnit.

RIFE is easy to test because independent of the Servlet API and also
possible to run out-of-container.

-- I would like to use Java 5 features, such as generics as much as
possible. (For example in the DAO layer) (Not too crazy about
annotations though)

Exactly how I feel, and RIFE has a Java 5 version available. I use the
generics and type-safety, but not annotations.
  
-- Can I meet these requirements by ONLY using Rife, or I need to
integrate Rife with other libraries/frameworks? 

Well, above you mentioned wanting to use Hibernate, and possibly
Spring. No problem there. If you want use *only* RIFE, you do have
database support. As for IoC/DI, I'm not sure what kind of support
RIFE offers for this. (Anyone else has more info on this?)

Basically I started my project from the bottom up, and I hadn't even
picked my web app framework yet. So I implemented using Hibernate and
Spring, as much functionality as I could without being tied to any web
app framework (as it should be, those services don't even "know" about
the user interface). Then I added RIFE for the UI.

What really sold me on RIFE was the templating mechanism and the way
elements are defined and wired together with flow links and data links.

However if you pick RIFE from the start you can use more of it (for
the database layer, example), and have nicer integration there.

Hope this helps..keep us informed on your thoughts about the design
points that you raised, because I'm sure others are interested in
these as well.

Frederic

_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to