views:

8132

answers:

8

I just tried to play with Vaadin Framework and it seems to me very easy to use. Plus what I like about his framework is that it is built on top of GWT. What do you think, should I continue using this framework or it's better to stick with GWT.

+2  A: 

For building good looking UI's, I would say this would be the way to go. Plus it's very well documented.

Lucas McCoy
My experience is that good looking UIs depend more on team's talent than the UI framework in use, but Vaadin surely has quite nice default themes. In a commercial setting, you'd probably use your own theme, but then we're again back at team's talent :)
Kaitsu
+18  A: 

Hey. As a disclaimer, I work for the company developing Vaadin.

Vaadin uses GWT in a way that it has a set of components precompiled in gwt. You can, of course, additionally make your own components if you so want to. However, the set of components is quite complete, and can often be customized for your own need. This means that you don't have to recompile your code from Java to JavaScript every time you change your application. You just combine the already available components together.

The framework is server driven, so all logic is handeled on the server side. The components has two parts, client and server file. The client side is just a dummy "view" for the component. Once you interact with it, it sends a message to the server that this or that was pressed/written/etc. The server then decides what should be done. This is for increased security, because you can't "hack" the logic as only a small API meant for sending requests is available in the javascript. This may be in some cases a little trade-off with speed of the application, but I don't think it is a so bad. Worst speed bumps are usually db query roundtrips and such, which doesn't have anything to do with the choise of the UI framework. Sluggishness of the demos as suggested can be because you're far from the server or there is a high user hit at the moment. Try it in an own environment, close the the final application of your application, to see how well it performs. There are some ready application that you can just deploy to test it out.

I guess the choice boils down to what you are trying to do. Vaadin is good for web applications, as you can build a normal Java application and do the dynamic web UI for it easily. If your doing something more of a traditional web site, where users only views the page - more than actively interacts with it, then Vaadin is not the best way to go. Go with some other free frameworks like rails or a php framework etc. I think that you're more doing an application as you're suggesting that you are using GWT now, so Vaadin should be good.

Ask more questions, here, on the Vaadin forums or at the irc channel #vaadin @freenode and maybe someone can give you more reason to why or why not use Vaadin.

Jens Jansson
+1  A: 

I've been using it for a couple of weeks and I really like it so far. Code is solid, docs a re good, very logical construction, end results are excellent.

I'm loving it in combination with Hibernate to sort out all the database tedium.

Plus - easy to deploy (with Tomcat you can just upload a single .WAR file via the web interface, couldn't be easier)

DrTune
+2  A: 

Hi, take a look at the Vaadin demo build with Maven: http://asolntsev.blogspot.com/2009/11/vaadin-demo.html

Andrei Solntsev
+3  A: 

The usual talk about Vaadin concerns the widget set and worries about round trip communication between client and server.

But in my opinion this overlooks the most significant (perhaps revolutionary) aspect of Vaadin: it completely eliminates the task of designing and implementing the client-server communication that is usually required for AJAX applications (the "A" and "X" in AJAX).

With Vaadin, you can completely forget DTO's (data transfer objects), protocol-based security problems, Hibernate lazy loading exceptions, etc.

You are in some sense just writing a regular old Java Swing desktop application, only you are using a different UI toolkit from Swing.

Archie
A: 

The thing is, for serious development, you can't forget about anything, let alone dtos.. i am ditching seam, and server side ui concept just because i wish finer control over what is going on the wire.. vaadin's problem to me is precisely that, having state on the server side..

ali
+11  A: 

Well, I'd like to comment something.

After almost 1.5 year developing a not so huge GWT application, using all the best-practices I learned from the last Google I/O like MVP, EventBus, CommandPattern, etc. I say this from the bottom of my heart: after spending days trying to get things work out the way my team and client wanted both technically and visually, even after the release of UiBinder, Vaadin came to me like a light in the end of the tunnel.

After writing almost a thousand boilerplate actions for command pattern, another thousand presenters and views and another thousand event handlers, etc.. Not having to deal with almost 75% of these classes and still maintaining a good pattern approach (appfoundation add-on), a little network overhead is acceptable. With Vaadin, out-of-the-box, you get good widgets, paging, data binding, flawless layouting. All of this for what? Some more memory consumption in the server-side.

I think I can say this is acceptable because I'm not building the next Facebook or something. I still can handle thousands of simultaneous users per medium server and yet maintaining low-latency round-trips.

With Vaadin, I can build a nice app with almost a half of lines of code and still the application seems more complete. :-)

Thanks!

Marcos Alcantara

Marcos Alcantara
do you work for vaadin too ?
NimChimpsky
I can answer that for you, since I work for Vaadin Ltd: no he doesn't.
Jonas G
A: 

I dont mind using states on the server side. It serve its purpose. With Cloud computing now-a-days storage and bandwidth are becoming cheap. But yeah I can see your point from a good design perspective especially if you want to RESTify your application. But I believe that there are more pros than cons regarding Vaadin and the like. One major thing, you dont have to tweak a great deal about your web-apps for a specific browser lets call it IE, for Javascript/CSS intricacies - especially if you are oriented towards the back-end like me. All your webapps becomes compatible across browser without having to worry anything. Remember developer time is pricier than that of storage and bandwidth. Thats my opinion. =)

gerarldlee