Preface
Vaadin Framework is an open source Java web framework released under the Apache License. The framework is well documented, includes sophisticated UI components and themes, has been battle-tested in real-life applications, and is supported by a committed company and a vibrant community that contributes to the framework through forum answers and hundreds of add-ons.
Vaadin Framework allows developers to implement web user interfaces using Java code that runs on the server's JVM. The UI is rendered as HTML5 on the browser. The framework provides fully automated communication between the browser and the server through a programming model close to Swing or AWT. This allows developers/programmers bringing the benefits of object-oriented techniques to the presentation layer in web applications.
Data-Centric Applications with Vaadin 8 is a practical guide that teaches you how to implement some of the most typical requirements in web applications where data management is central. You will learn about internationalization, authentication, authorization, database connectivity, CRUD views, report generation, and lazy loading of data.
This book will also help you to exercise your programming and software design skills by showing you how to make good decisions both at the UX and code level. You will learn how to modularize your application and how to provide APIs on top of your UI components to increase reusability and maintainability.
Who this book is for
This book is ideal for developers with a good understanding of the Java programming language and a basic knowledge of Vaadin Framework who want to improve their skills with the framework. If you want to learn concepts, techniques, technologies, and practices to help you master web development with Vaadin and see how common application features are developed in real-life applications, this book is for you.
What this book covers
Chapter 1, Creating New Vaadin Projects, demonstrates how to create a new Vaadin Maven project from scratch and explains the main architecture and parts of a Vaadin application.
Chapter 2, Modularization and Main Screens, explains how to design an API for implementing main screens and shows how to create functional application modules that are registered at runtime.
Chapter 3, Implementing Server-Side Components with Internationalization, discusses implementation strategies for implementing custom UI components with internationalization support.
Chapter 4, Implementing Authentication and Authorization, explores different approaches for implementing secure authentication and authorization mechanisms in Vaadin applications.
Chapter 5, Connecting to SQL Databases Using JDBC, focuses on JDBC, connection pools, and repository classes in order to connect to SQL databases.
Chapter 6, Connecting to SQL Databases Using ORM Frameworks, outlines how to use JPA, MyBatis, and jOOQ to connect to SQL databases from Vaadin applications.
Chapter 7, Implementing CRUD User Interfaces, takes you through user interface design and the implementation of CRUD (create, read, update, and delete) views.
Chapter 8, Adding Reporting Capabilities, shows how to generate and visualize print-preview reports using JasperReports.
Chapter 9, Lazy Loading, looks at how to implement lazy loading to make your applications consume fewer resources when dealing with large datasets.
To get the most out of this book
You'll get the most out of this book if you already have some kind of experience with the Vaadin Framework. If you don't, go through the official online tutorial at https://vaadin.com/docs/v8/framework/tutorial.html before continuing with this book.
In order to use the companion code, you need the Java SE Development Kit and Java EE SDK version 8 or later. You also need Maven version 3 or later. A Java IDE with Maven support, such as IntelliJ IDEA, Eclipse, or NetBeans is recommended.
Download the example code files
You can download the example code files for this book from your account at www.packtpub.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.
You can download the code files by following these steps:
- Log in or register at www.packtpub.com.
- Select the
SUPPORT
tab. - Click on
Code Downloads & Errata
. - Enter the name of the book in the
Search
box and follow the onscreen instructions.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
- WinRAR/7-Zip for Windows
- Zipeg/iZip/UnRarX for Mac
- 7-Zip/PeaZip for Linux
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Data-Centric-Applications-with-Vaadin-8. In case there's an update to the code, it will be updated on the existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
Download the color images
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: http://www.packtpub.com/sites/default/files/downloads/DataCentricApplicationswithVaadin8_ColorImages.pdf.
Code in Action
Visit the following link to check out videos of the code being run:https://goo.gl/qFmc3L
Conventions used
There are a number of text conventions used throughout this book.
CodeInText
: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "The application should be available at http://localhost:8080
."
A block of code is set as follows:
LoginForm loginForm = new LoginForm() loginForm.addLoginListener(e -> { String password = e.getLoginParameter("password"); String username = e.getLoginParameter("username"); ... });
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
LoginForm loginForm = new LoginForm() { @Override protected Component createContent(TextField username, PasswordField password, Button loginButton) { CheckBox rememberMe = new CheckBox(); rememberMe.setCaption("Remember me"); return new VerticalLayout(username, password, loginButton, rememberMe); } };
Any command-line input or output is written as follows:
cd Data-centric-Applications-with-Vaadin-8 mvn install
Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Select System info
from the Administration
panel."
Note
Warnings or important notes appear like this.
Note
Tips and tricks appear like this.
Get in touch
Feedback from our readers is always welcome.
General feedback: Email [email protected]
and mention the book title in the subject of your message. If you have questions about any aspect of this book, please email us at [email protected]
.
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected]
with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Reviews
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packtpub.com.