Evaluating Vaadin

Hi All,

First of all congratulations to Vaadin. At first look, Vaadin impressed me alot.

We were evaluating Vaadin for our new web application. Our will be a B2C e-commerce web application. And will have good amount of images to be displayed. Other features like forums and blogs will also be there. I need input from all the Vaadin experts on following points:-

  1. Is Vaadin fit for a customer facing internet web application. Have checked javablack belt, not impressed(–>click on the footer, you will not know what happened in top of the page. -->slow).

After reading quite a few blogs, it seems like Vaadin suits more for intranet based business applications.Is it true?

  1. Is the integration between Vaadin and persistence layer(hibernate + spring dao) smooth?

  2. Is Vaadin web site itself build using Vaadin?

Our priorities are (1)Performance, (2) cool look and feel, (3)Scalability and (4)maintainance of application. Out of these four priorities, I think Vaadin will fulfill 2 and 4th. But my doubt is about 1 and 3 w.r.t Vaadin.

Regards,
Vikram

It’s true that Vaadin is primarily focused for more intranet like applications. It is however possible to make the pages quite fast performance-wise. The traffic to the server-side logic is hardly the bottleneck as long as you have a fair understanding of what happens there and keep e.g. data loading from persistence layer reasonable. The trickier part is making the UI itself not too heavy on the client side. This can also be done, but has to be kept in mind during development. Choosing what Layouts to use etc might have quite an effect on performance. Also if you pack the UI really full of components, this naturally slows things down. The DOM-tree created by Vaadin is quite complex in some cases which might affect client side rendering.


http://vaadin.com/wiki/-/wiki/Main/Optimizing%20Sluggish%20UI


http://vaadin.com/blog/-/blogs/vaadin-scalability-study-quicktickets

As smooth as it gets. Hibernate is used in a number of projects all the time. I know Spring is also used, but I have no personal experience on that topic.

Yes and no. The site itself is build on Liferay serving most of the static content, but there are a number of Vaadin portlets scattered all over the site. They’re responsible for most of the dynamic part of the web pages.

Cool look and feel is certainly possible, look e.g. at the Vaadin site.

Thanks Jonas for the inputs.

I have shortlisted (1) GWT(2) Wicket (3) Vaadin .Primarily because of the reason that I know Java/J2EE ecosystem. Each has its own pros and cons.I am a developer from Oracle ADF world. And all these years have developed intranet application for large enterprises.

Developing an internet application is all together a different ball game. And availability of too much options of framework is making a decision bit difficult.

More inputs are welcome from Vaadin developers.

Thanks,
Vikram

One of the key factors in this case is probably whether you want to create something that feels like a web page or something that feels like an application. Vaadin is good for the latter, not so much for the former.

Scalability certainly isn’t an issue for a well designed Vaadin application (see e.g.
this scalability study
).

As for performance, on the server side most of the bottlenecks in Vaadin applications tend to be in DB access etc, not in the use of Vaadin. Client side performance was already mentioned in another post, it might require some work if your layouts get very complex with lots of components.

Hello,
Yes indeed Vaadin is really great :slight_smile:

In our company we use it quite a lot for large scale and enterprise applications both on the intranet and also on the internet and we are very happy with it.

I agree that it is ideal for web applications and certainly for applications running on a safe/calm environment as the intranet, but works nicely on the internet as well. Now if you want to build a web page/site kind of thing, well i think you could do better with some other framework or raw nice technologies (i.e. jsp, jsf) or even other platform/technology i.e. php :slight_smile: . … .unless we are talking about a portal, with portlets and stuff in which case vaadin and liferay work nicely together for building very nice systems.

Well if you publish your web app on the internet you have to take care of things that you would anyway regarding web applications, i.e. caching (at the web server and application server or even use a reverse proxy etc), small sized images, sprites, well designed html/custom templates in addition to maybe custom widgets for vaadin especially if you need something that is used extensively and you want to save trips to the server based on some logic etc

Generally you can do a lot… we have published some applications on the internet www.e-prices.gr (in a bit beta condition - this has very few optimisations regarding the web stuff and slow load times are basically because of that, very significant…however we are talking about a lot of data - millions of records and a load time in the range of 2-8secs), e-services.minagric.gr (here you can’t see much , but you see that it loads fast working nicely with jquery and everything loads as the user moves around the app etc)

We use jpa all the way, without any vaadin addon although there is one i think that might assist…It all depends on your architecture and how you integrate your technologies. In general you are very flexible.

Sorry if i’ve missed an answer…it’s running on liferay with vaadin stuff here and there as portlets as far as i can tell… and it is nice :slight_smile:

1 - performs nicely, although you could optimise some components or make your own easily, depending on your system reqs… also take care of your layouts and your java code. Working on server and building objects takes memory and you have to handle that nicely otherwise your application server/servlet container might go slow.
2 - very cool lookin i think and easily customizable
3 - scalable yes, since you are running everything on the server you are flexible with your architecture
4 - its pure java if you want or any other web technology you like or know…so i think it’s up to the teck stack you choose

p.s. since i’ve used in the past adf a lot, trust me it’s much faster than adf (i.e. adf faces) , i’ve even compared an implentation with php app and of course the power of java shined having a beautiful vaadin ui .

Thanks Guys . Thanks for your input.

Regards,
Vikram

You might also check out
this forum thread
. Our CEO
Joonas
suggest a hybrid approach with Apache Play making the static pages for nice rendering and SEO and the combine those pages with Vaadin for the more application like views.