You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

intro-overview.asciidoc 4.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. ---
  2. title: Overview
  3. order: 1
  4. layout: page
  5. ---
  6. [[intro.overview]]
  7. = Overview
  8. Vaadin Framework is a Java web application development framework that is
  9. designed to make creation and maintenance of high quality web-based user
  10. interfaces easy. Vaadin supports two different programming models: server-side
  11. and client-side. The server-driven programming model is the more powerful one.
  12. It lets you forget the web and program user interfaces much like you would
  13. program a desktop application with conventional Java toolkits such as AWT,
  14. Swing, or SWT. But easier.
  15. While traditional web programming is a fun way to spend your time learning new
  16. web technologies, you probably want to be productive and concentrate on the
  17. application logic. The server-side Vaadin framework takes care of managing the
  18. user interface in the browser and the __AJAX__ communications between the
  19. browser and the server. With the Vaadin approach, you do not need to learn and
  20. deal directly with browser technologies, such as HTML or JavaScript.
  21. [[figure.intro.architecture]]
  22. .Vaadin application architecture
  23. image::img/architecture.png[width=100%, scaledwidth=100%]
  24. <<figure.intro.architecture>> illustrates the basic architectures of web
  25. applications made with Vaadin. The server-side application architecture consists
  26. of the __server-side framework__ and a __client-side engine__. The engine runs
  27. in the browser as JavaScript code, rendering the user interface, and delivering
  28. user interaction to the server. The UI logic of an application runs as a Java
  29. Servlet in a Java application server.
  30. As the client-side engine is executed as JavaScript in the browser, no browser
  31. plugins are needed for using applications made with Vaadin. This gives it an
  32. edge over frameworks based on Flash, Java Applets, or other plugins. Vaadin
  33. relies on the support of Google Web Toolkit for a wide range of browsers, so
  34. that the developer does not need to worry about browser support.
  35. Because HTML, JavaScript, and other browser technologies are essentially
  36. invisible to the application logic, you can think of the web browser as only a
  37. thin client platform. A thin client displays the user interface and communicates
  38. user events to the server at a low level. The control logic of the user
  39. interface runs on a Java-based web server, together with your business logic. By
  40. contrast, a normal client-server architecture with a dedicated client
  41. application would include a lot of application specific communications between
  42. the client and the server. Essentially removing the user interface tier from the
  43. application architecture makes our approach a very effective one.
  44. Behind the server-driven development model, Vaadin makes the best use of AJAX (
  45. __Asynchronous JavaScript and XML__, see
  46. <<../architecture/architecture-technology#architecture.technology.ajax,"AJAX">>
  47. for a description) techniques that make it possible to create Rich Internet
  48. Applications (RIA) that are as responsive and interactive as desktop
  49. applications.
  50. In addition to the server-side Java application development, you can develop on
  51. the client-side by making new widgets in Java, and even pure client-side
  52. applications that run solely in the browser. The Vaadin client-side framework
  53. includes Google Web Toolkit (GWT), which provides a compiler from Java to the
  54. JavaScript that runs in the browser, as well a full-featured user interface
  55. framework. With this approach, Vaadin is pure Java on both sides. ((("Google Web
  56. Toolkit")))
  57. Vaadin uses a client-side engine for rendering the user interface of a
  58. server-side application in the browser. All the client-server communications are
  59. hidden well under the hood.
  60. ((("JavaScript")))
  61. Vaadin is designed to be extensible, and you can indeed use any 3rd-party
  62. widgets easily, in addition to the component repertoire offered in Vaadin. In
  63. fact, you can find hundreds of add-ons in the Vaadin Directory.
  64. Vaadin allows flexible separation between the appearance, structure, and
  65. interaction logic of the user interface. You can design the layouts either
  66. programmatically or declaratively, at the level of your choosing. The final
  67. appearance is defined in __themes__ in CSS or Sass, as described in
  68. <<../themes/themes-overview.asciidoc#themes.overview,"Themes">>.
  69. We hope that this is enough about the basic architecture and features of Vaadin
  70. for now. You can read more about it later in
  71. <<../architecture/architecture-overview.asciidoc#architecture.overview,"Architecture">>,
  72. or jump straight to more practical things in
  73. <<../application/application-overview.asciidoc#application.overview,"Writing
  74. a Server-Side Web Application">>.