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.

book-preface.asciidoc 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. [[preface]]
  2. [preface]
  3. []
  4. == Preface
  5. This book provides an overview of the Vaadin Framework and covers the most
  6. important topics that you might encounter while developing applications with it.
  7. A more detailed documentation of the individual classes, interfaces, and methods
  8. is given in the Vaadin API Reference.
  9. This edition mostly covers Vaadin Framework 7.5 released in 2015, as well as the
  10. latest versions of Vaadin Pro Tools. In addition to updates in the core
  11. framework, the Volume 1 includes a new chapter about the new Vaadin Designer
  12. plugin for Eclipse. New add-ons, namely Vaadin Spreadsheet, Vaadin CDI, and
  13. Vaadin Spring, which were released earlier this year, are documented in Volume
  14. 2.
  15. Writing this manual is an ongoing work and it is rarely completely up-to-date
  16. with the quick-evolving product. Some features may not be included in this book
  17. yet. For the most current version, please see the on-line edition available at
  18. http://vaadin.com/book. You can also find PDF and EPUB versions of the book
  19. there. You may find the other versions more easily searchable than the printed
  20. book. The index in the book is incomplete and will be expanded later. The web
  21. edition also has some additional technical content, such as some example code
  22. and additional sections that you may need when actually doing development. The
  23. purpose of the slightly abridged print edition is more to be an introductionary
  24. textbook to Vaadin, and still fit in your pocket.
  25. Also, many Vaadin 7 features are showcased as mini-tutorials, which are
  26. available in the Vaadin Wiki at https://vaadin.com/wiki/-/wiki/Main/Vaadin+7.
  27. = Who is This Book For?
  28. This book is intended for software developers who use, or are considering to
  29. use, Vaadin to develop web applications.
  30. The book assumes that you have some experience with programming in Java, but if
  31. not, it is at least as easy to begin learning Java with Vaadin as with any other
  32. UI framework. No knowledge of AJAX is needed as it is well hidden from the
  33. developer.
  34. You may have used some desktop-oriented user interface frameworks for Java, such
  35. as AWT, Swing, or SWT, or a library such as Qt for C++. Such knowledge is useful
  36. for understanding the scope of Vaadin, the event-driven programming model, and
  37. other common concepts of UI frameworks, but not necessary.
  38. If you do not have a web graphics designer at hand, knowing the basics of HTML
  39. and CSS can help so that you can develop presentation themes for your
  40. application. A brief introduction to CSS is provided. Knowledge of Google Web
  41. Toolkit (GWT) may be useful if you develop or integrate new client-side
  42. components.
  43. = Organization of This Book
  44. The Book of Vaadin gives an introduction to what Vaadin is and how you use it to
  45. develop web applications.
  46. Volume 1
  47. <<dummy/../../../framework/introduction/introduction-overview.asciidoc#intro.overview,"Introduction">>:: The chapter gives an introduction to the application architecture supported by
  48. Vaadin, the core design ideas behind the framework, and some historical
  49. background.
  50. <<dummy/../../../framework/getting-started/getting-started-overview.asciidoc#getting-started.overview,"Getting Started with Vaadin">>:: This chapter gives practical instructions for installing Vaadin and the
  51. reference toolchain, including the Vaadin Plugin for Eclipse, how to run and
  52. debug the demos, and how to create your own application project in the Eclipse
  53. IDE.
  54. <<dummy/../../../framework/architecture/architecture-overview.asciidoc#architecture.overview,"Architecture">>:: This chapter gives an introduction to the architecture of Vaadin and its major
  55. technologies, including AJAX, Google Web Toolkit, and event-driven programming.
  56. <<dummy/../../../framework/application/application-overview.asciidoc#application.overview,"Writing a Server-Side Web Application">>:: This chapter gives all the practical knowledge required for creating
  57. applications with Vaadin, such as window management, application lifecycle,
  58. deployment in a servlet container, and handling events, errors, and resources.
  59. <<dummy/../../../framework/components/components-overview.asciidoc#components.overview,"User Interface Components">>:: This chapter gives the basic usage documentation for all the (non-layout) user
  60. interface components in Vaadin and their most significant features. The
  61. component sections include examples for using each component, as well as for
  62. styling with CSS/Sass.
  63. <<dummy/../../../framework/layout/layout-overview.asciidoc#layout.overview,"Managing Layout">>:: This chapter describes the layout components, which are used for managing the
  64. layout of the user interface, just like in any desktop application frameworks.
  65. <<dummy/../../../designer/designer-overview.asciidoc#designer.overview,"Vaadin Designer">>:: This chapter gives instructions for using Vaadin Designer, a visual tool for the
  66. Eclipse IDE for creating composite designs, such as for UIs, views, or other
  67. composites.
  68. Volume 2:
  69. <<dummy/../../../framework/themes/themes-overview.asciidoc#themes.overview,"Themes">>:: This chapter gives an introduction to Cascading Style Sheets (CSS) and Sass and
  70. explains how you can use them to build custom visual themes for your
  71. application.
  72. <<dummy/../../../framework/datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding Components to Data">>:: This chapter gives an overview of the built-in data model of Vaadin, consisting
  73. of properties, items, and containers.
  74. <<dummy/../../../framework/sqlcontainer/sqlcontainer-overview.asciidoc#sqlcontainer.overview,"Vaadin SQLContainer">>:: This chapter gives documentation for the SQLContainer, which allows binding
  75. Vaadin components to SQL queries.
  76. <<dummy/../../../framework/advanced/advanced-overview.asciidoc#advanced.overview,"Advanced Web Application Topics">>:: This chapter provides many special topics that are commonly needed in
  77. applications, such as opening new browser windows, embedding applications in
  78. regular web pages, low-level management of resources, shortcut keys, debugging,
  79. etc.
  80. <<dummy/../../../framework/portal/portal-overview.asciidoc#portal.overview,"Portal Integration">>:: This chapter describes the development of Vaadin applications as portlets which
  81. you can deploy to any portal supporting Java Portlet API 2.0 (JSR-286). The
  82. chapter also describes the special support for Liferay and the Control Panel,
  83. IPC, and WSRP add-ons.
  84. <<dummy/../../../framework/clientside/clientside-overview.asciidoc#clientside.overview,"Client-Side Vaadin Development">>:: This chapter gives an introduction to creating and developing client-side
  85. applications and widgets, including installation, compilation, and debugging.
  86. <<dummy/../../../framework/clientsideapp/clientsideapp-overview.asciidoc#clientsideapp.overview,"Client-Side Applications">>:: This chapter describes how to develop client-side applications and how to
  87. integrate them with a back-end service.
  88. <<dummy/../../../framework/clientsidewidgets/clientsidewidgets-overview.asciidoc#clientsidewidgets.overview,"Client-Side Widgets">>:: This chapter describes the built-in widgets (client-side components) available
  89. for client-side development. The built-in widgets include Google Web Toolkit
  90. widgets as well as Vaadin widgets.
  91. <<dummy/../../../framework/gwt/gwt-overview.asciidoc#gwt.overview,"Integrating with the Server-Side">>:: This chapter describes how to integrate client-side widgets with their
  92. server-side counterparts for the purpose of creating new server-side components.
  93. The chapter also covers integrating JavaScript components.
  94. <<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using Vaadin Add-ons">>:: This chapter gives instructions for downloading and installing add-on components
  95. from the Vaadin Directory.
  96. <<dummy/../../../charts/charts-overview.asciidoc#charts.overview,"Vaadin Charts">>:: This chapter documents the use of the Vaadin Charts add-on component for
  97. interactive charting with many diagram types. The add-on includes the Chart and
  98. Timeline components.
  99. <<dummy/../../../framework/jpacontainer/jpacontainer-overview.asciidoc#jpacontainer.overview,"Vaadin JPAContainer">>:: This chapter gives documentation of the JPAContainer add-on, which allows
  100. binding Vaadin components directly to relational and other databases using Java
  101. Persistence API (JPA).
  102. <<dummy/../../../mobile/mobile-overview.asciidoc#mobile.overview,"Mobile Applications with TouchKit">>:: This chapter gives examples and reference documentation for using the Vaadin
  103. TouchKit add-on for developing mobile applications.
  104. <<dummy/../../../spreadsheet/spreadsheet-overview.asciidoc#spreadsheet.overview,"Vaadin Spreadsheet">>:: This chapter gives documentation of the Vaadin Spreadsheet add-on, which
  105. provides a Microsoft Excel compatible spreadsheet component.
  106. <<dummy/../../../testbench/testbench-overview.asciidoc#testbench.overview,"Vaadin TestBench">>:: This chapter gives the complete documentation of using the Vaadin TestBench tool
  107. for recording and executing user interface regression tests of Vaadin
  108. applications.
  109. = Supplementary Material
  110. The Vaadin websites offer plenty of material that can help you understand what
  111. Vaadin is, what you can do with it, and how you can do it.
  112. Demo Applications:: The most important demo application for Vaadin is the Sampler, which
  113. demonstrates the use of all basic components and features. You can run it
  114. on-line at http://demo.vaadin.com/ or download it as a WAR from the
  115. link:http://vaadin.com/download/[Vaadin download page].
  116. +
  117. Most of the code examples in this book and many others can be found online at
  118. http://demo.vaadin.com/book-examples-vaadin7/book/.
  119. Cheat Sheet:: The two-page cheat sheet illustrates the basic relationship hierarchy of the
  120. user interface and data binding classes and interfaces. You can download it at
  121. http://vaadin.com/book.
  122. Refcard:: The six-page DZone Refcard gives an overview to application development with
  123. Vaadin. It includes a diagram of the user interface and data binding classes and
  124. interfaces. You can find more information about it at
  125. https://vaadin.com/refcard.
  126. Address Book Tutorial:: The Address Book is a sample application accompanied with a tutorial that gives
  127. detailed step-by-step instructions for creating a real-life web application with
  128. Vaadin. You can find the tutorial from the product website.
  129. Developer's Website:: Vaadin Developer's Site at http://dev.vaadin.com/ provides various online
  130. resources, such as the ticket system, a development wiki, source repositories,
  131. activity timeline, development milestones, and so on.
  132. +
  133. The wiki provides instructions for developers, especially for those who wish to
  134. check-out and compile Vaadin itself from the source repository. The technical
  135. articles deal with integration of Vaadin applications with various systems, such
  136. as JSP, Maven, Spring, Hibernate, and portals. The wiki also provides answers to
  137. Frequently Asked Questions.
  138. Online Documentation:: You can read this book online at http://vaadin.com/book. Lots of additional
  139. material, including technical HOWTOs, answers to Frequently Asked Questions and
  140. other documentation is also available on link:http://dev.vaadin.com/[Vaadin
  141. web-site].
  142. = Support
  143. Stuck with a problem? No need to lose your hair over it, the Vaadin Framework
  144. developer community and the Vaadin company offer support to all of your needs.
  145. Community Support Forum:: You can find the user and developer community forum at http://vaadin.com/forum.
  146. Please use the forum to discuss any problems you might encounter, wishes for
  147. features, and so on. The answer to your problems may already lie in the forum
  148. archives, so searching the discussions is always the best way to begin.
  149. Report Bugs:: If you have found a possible bug in Vaadin, the demo applications, or the
  150. documentation, please report it by filing a ticket at the Vaadin developer's
  151. site at http://dev.vaadin.com/. You may want to check the existing tickets
  152. before filing a new one. You can make a ticket to make a request for a new
  153. feature as well, or to suggest modifications to an existing feature.
  154. Commercial Support:: Vaadin offers full commercial support and training services for the Vaadin
  155. Framework and related products. Read more about the commercial products at
  156. http://vaadin.com/pro for details.
  157. = About the Author
  158. Marko Grönroos is a professional writer and software developer working at Vaadin
  159. Ltd in Turku, Finland. He has been involved in web application development since
  160. 1994 and has worked on several application development frameworks in C, C++, and
  161. Java. He has been active in many open source software projects and holds an
  162. M.Sc. degree in Computer Science from the University of Turku.
  163. = Acknowledgements
  164. Much of the book is the result of close work within the development team at
  165. Vaadin Ltd. Joonas Lehtinen, CEO of Vaadin Ltd, wrote the first outline of the
  166. book, which became the basis for the first two chapters. Since then, Marko
  167. Grönroos has become the primary author and editor. The development team has
  168. contributed several passages, answered numerous technical questions, reviewed
  169. the manual, and made many corrections.
  170. The contributors are (in rough chronological order):
  171. [options="compact"]
  172. * Joonas Lehtinen
  173. * Jani Laakso
  174. * Marko Grönroos
  175. * Jouni Koivuviita
  176. * Matti Tahvonen
  177. * Artur Signell
  178. * Marc Englund
  179. * Henri Sara
  180. * Jonatan Kronqvist
  181. * Mikael Grankvist (TestBench)
  182. * Teppo Kurki (SQLContainer)
  183. * Tomi Virtanen (Calendar)
  184. * Risto Yrjänä (Calendar)
  185. * John Ahlroos (Timeline)
  186. * Petter Holmström (JPAContainer)
  187. * Leif Åstrand
  188. * Guillermo Alvarez (Charts)
  189. = About Vaadin Ltd
  190. Vaadin Ltd is a Finnish software company specializing in the design and
  191. development of Rich Internet Applications. The company offers planning,
  192. implementation, and support services for the software projects of its customers,
  193. as well as sub-contract software development. Vaadin Framework, previously known
  194. as IT Mill Toolkit, is the flagship open source product of the company, for
  195. which it provides commercial development and support services.