Jorge
Jorge

Reputation: 55

Is GWT OK for this? if so, what´s the best back-end java technology that we can use?

I´ve been developing web appplications using Microsoft technologies for a long time, but now I´m been asked for building a VERY BIG application on a Java Web project. For some reason, I´m being forced for using GWT as the front-end; I´ve read some comments about it where some people says that is not the best option for big/enterprise applications (In this case, is something almost as complex as an ERP). Another requirements are: allow connecting to multiple databases, using a technology for rapid development and having a low performance cost (users don´t like to wait for pages to load)...

So the questions would be: - Is GWT the best option? - If so, what´s the best back-end (Java technology) that we can use? I´ve read that it could be Groovy, Spring Roo or JSF. - Should I user Hibernate, or creating another light-weight option?

Thanks in advance

Upvotes: 4

Views: 686

Answers (3)

LINEMAN78
LINEMAN78

Reputation: 2562

GWT is a very capable platform and is fitting for projects of all sizes especially since 2.1. The Google Wave team helped the GWT develop APIs and practices that really help in using GWT for large projects. As far as coming from a .NET background it may be a steep learning curve at first, but Google's getting started guide for GWT is a good place to start and you should be able to hit the ground running. One thing that people often forget is that GWT is actually just a compiler that emulates portions of the JRE and in the end it is all just HTML, CSS and Javascript.

For back end technologies there are many options, but there are actually 2 decisions you must make. First you will need to decide on a web/communications layer. The way I see it you have 3 main options for the type of communications before we even get into implementations: GWT-RPC, REST(XML or JSON), or SOAP. I prefer REST with JSON however, if you have no need to expose your services outside of GWT you may be better off with GWT-RPC. If you choose to go with REST or SOAP you may even choose to not use a Java back end but instead use .NET to stay in your comfort zone. To do this I would write an XSD to describe your data model and use .NET to persist and expose your data as JSON via REST. You can then use JAXB to generate a Java representation of those classes for use in your GWT client however you will have to strip out all of the XML annotations and modify them to work as overlay types.

Secondly you will need to decide your persistence layer. Many prefer Hibernate, but I prefer JPA, either will work great for enterprise level applications. The advantage to using a Java back end with GWT-RPC communications is that you can use the RequestFactory with EntityProxy so that you only have to maintain one version of the object from the client through the persistence layer.

Upvotes: 2

topchef
topchef

Reputation: 19783

GWT is a serious framework no matter if it's used for big or small project. Before committing to GWT you have to realize that:

  • it's a client(browser)-based technology
  • it's a translation layer from Java to JavaScript where JavaScript development is either eliminated or reduced to a minimum
  • it's capable of integrating with server (middle tier), especially well with Java-based ones no matter what technology it uses: JDBC, Hibernate, GAE, proprietary, etc.
  • it's tailored toward Java/desktop developers so expect steep learning curve if it's not your background
  • it requires fundamental understanding of MVP (variation of MVC) frameworks
  • it requires familiarity with JavaScript browser technology
  • big projects with GWT will require using supporting frameworks like GWT MVP, Guice, gin, gwtp, etc.

The good analogy would be Swing or Eclipse RCP. They offer rich GUI desktop development platform while integration with variety of server-based technologies. But the target platform for GWT is a JavaScript-enabled browser, not a desktop.

Upvotes: 6

Pageraz
Pageraz

Reputation: 1

First you can't use JSF for back-end i suggest you to use hibernate for back-end and jsf for front-end especially the new version jsf2 with the power of CDI and i recommend you to use Richfaces , Primefaces as lightweight jsf components and also Seamframeworkas development platform if you use it i think you will have the most powerful java web technologies

GWT can serve you in big project but it may take double time comparing with JSF but if you like GWT you should Have a look at Vaadin

Upvotes: 0

Related Questions