summaryrefslogtreecommitdiffstats
path: root/documentation/architecture/architecture-client-side.asciidoc
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/architecture/architecture-client-side.asciidoc')
-rw-r--r--documentation/architecture/architecture-client-side.asciidoc43
1 files changed, 43 insertions, 0 deletions
diff --git a/documentation/architecture/architecture-client-side.asciidoc b/documentation/architecture/architecture-client-side.asciidoc
new file mode 100644
index 0000000000..e16b003687
--- /dev/null
+++ b/documentation/architecture/architecture-client-side.asciidoc
@@ -0,0 +1,43 @@
+---
+title: Client-Side Engine
+order: 3
+layout: page
+---
+
+[[architecture.client-side]]
+= Client-Side Engine
+
+((("Client-Side
+Engine")))
+The user interface of a server-side Vaadin application is rendered in the
+browser by the Vaadin Client-Side Engine. It is loaded in the browser when the
+page with the Vaadin UI is opened. The server-side UI components are rendered
+using __widgets__ (as they are called in Google Web Toolkit) on the client-side.
+The client-side engine is illustrated in <<figure.architecture.client-side>>.
+
+[[figure.architecture.client-side]]
+.Vaadin Client-Side Engine
+image::img/clientside-arch-hi.png[]
+
+The client-side framework includes two kinds of built-in widgets: GWT widgets
+and Vaadin-specific widgets. The two widget collections have significant
+overlap, where the Vaadin widgets provide a bit different features than the GWT
+widgets. In addition, many add-on widgets and their server-side counterparts
+exist, and you can easily download and install them, as described in
+<<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using
+Vaadin Add-ons">>. You can also develop your own widgets, as described in
+<<dummy/../../../framework/clientside/clientside-overview.asciidoc#clientside.overview,"Client-Side
+Vaadin Development">>.
+
+The rendering with widgets, as well as the communication to the server-side, is
+handled in the [classname]#ApplicationConnection#. Connecting the widgets with
+their server-side counterparts is done in __connectors__, and there is one for
+each widget that has a server-side counterpart. The framework handles
+serialization of component state transparently, and includes an RPC mechanism
+between the two sides. Integration of widgets with their server-side counterpart
+components is described in
+<<dummy/../../../framework/gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
+with the Server-Side">>.
+
+
+