How does server-side Vaadin work?


I am coming from GWT and I wonder how server-side GUI development works.

In GWT you always have the distinction between server side and client side. At server side you can include third party java libraries, while at client side you can control the GUI in the browser.

In Vaadin, at the first sight, there seems to be no such differentiation. There is just a piece of code, like the one generated by the eclipse project wizard, and it shows up in the browser.

This is still very new to me. How can I understand this? Can I use any java library (jar) I want? How gets all the GUI stuff to the browser? What is the equivalence to GWT, where everything between server and client is manually transported with RPC?


Correct me if i’m wrong but:

Vaadin logic, so the code outside of Vaadin components and embedded Javascript/Html is running on the serverside.
Vaadin components generally consist out of a Serverside, a Connector class(running on client-side, Vaadin 7+) and a client-side GWT class which contains the actual visual represantation of the component.
Some components might also have a JavaScript component as their client side (none of the standard Vaadin components though i think).
You can theoretically use any java library you want in a Vaadin project though you have to remember that your normal code is running on the server side.
When only looking at the client side of a Vaadin application it consist out of GWT components, HTML and Javascript.
For your last question you should have a look at the Vaadin 7 wiki (Link below). There you can read about how to create an own Vaadin component out of an existing GWT component. This might make it more clear to you if you come from GWT.

More information can be found here: