views:

375

answers:

6

Hello everyone,

I'm looking for a full stack framework (from persistency to view generation (CRUD)) for Java. I don't have experience with Rails style frameworks, like Grails, but I worked a lot with Hibernate, Struts, Spring ...

I prefer a framework that let you naturally modify the business domain design with the less effort ( i.e. writing the sql querys to modify the tables and constrains, change the view pages, etc ... ). I was looking a bit about this topic, I saw Naked Objects for example but its development has stopped. So, I want to hear about your experience.

Thanks in advance.

+4  A: 

Grails is the closest thing I know of to a full stack framework in Java (at least for general web apps). You define the domain objects and use them in your Grails controllers and views. To generate the tables, you use the GORM utility to create them from your domain objects.

Kaleb Brasee
Grails is the closest, but it's mainly known as a Groovy framework though.
notnoop
Yeah, that is true.
Kaleb Brasee
I disagree - Groovy might be the glue, but it's all Spring and Hibernate underneath. The generated code is Java AFAIK.
duffymo
Yeah on this inside it is Java, but from what I have seen, end users build on it with Groovy and GSP pages more often than with straight Java and JSP.
Kaleb Brasee
Grails can be thought of as a DSL for Spring and Hibernate. However, the question asks for Java... Groovy can be used in a way very similar to Java but Grails would be awkward. The bigger question is if there is anyway the original poster can break from the shackles of Java.
Michael Easter
Hi Michael, while Groovy lets me work with full compatibility between Java <=> Groovy I think that Groovy will be ok for me. I don't know if I will feel good with a dynamic typing language, does the refactor works good with groovy? Thanks!
Jonathan Barbero
@jonathan: last time I looked at grails (I even have 3 apps working with it, one of them I use daily), the tools where not as mature and well-working as those I'm used in java.Refactoring, code completion and such things that rely on the possibility of identifying the type of a variable at compiletime, will always be easier to develop and therefore work better for static and typesafe languages.So I myself am going back to plain Java. That said, the choice is not easy - options include Seam, Rife, Play, AppFuse. I'm beginning to write a medium-complex app with each of them.
Henning
+1  A: 

It's possible to go a very long way with just JSPs written with JSTL and JDBC.

If you've mastered that, I'd say that Spring alone would be sufficient.

duffymo
Yes, I use all what you said. But for every change that I do to the business domain I have to do a lot of well know steps to the code (and to the database) to get the CRUD of the domain changes.I could make a plugin Eclipse to make this easier but it will be a tool especific for my domain, or my way to develop applications. I was looking at Spring Roo, I'm still looking. Thanks Duffy.
Jonathan Barbero
Spring Roo just had release 1.0. Personally, I'd prefer Grails before Roo. I think it has more traction right now.
duffymo
+3  A: 

On the contrary, development hasn't stopped on Naked Objects, and we quietly released Naked Objects 4.0 a few months ago. There are also a number of sister projects that I have worked on, extending the capabilities of the framework. In addition, my book, "Domain Driven Design using Naked Objects", was released just before Xmas.

For more details, see:

  1. naked objects
  2. star objects: sister projects to naked Objects
  3. my book's website
  4. my blog

Cheers Dan

Dan Haywood
I am going to check look at the links. Thanks Dan.
Jonathan Barbero
+1  A: 

Openxava, this is the right tool for your needs. It's a Domain Driven Framework, you just write your JPA model class and Openxava generates de interface, with easily customizable view, actions and controllers.

visit: www.openxava.org

Bladimir Rondon
+1  A: 

You might want to check out Spring Roo which is a Spring project based on what you already know, ie Spring, Hibernate, but that gets you up to speed fast, by adopting a Convention over Configuration philosophy.

There is a blog post that describes the steps for creating a blog that might explain better what I mean

Jeduan Cornejo
+1  A: 

Two other full stack frameworks are Play (www.playframework.org) and Web4J (www.web4j.com). I never used either one, but both seem interesting.

xpmatteo