SlideShare une entreprise Scribd logo
1  sur  151
Télécharger pour lire hors ligne
Vaadin with
Java EE 7
Peter Lehto
@peter_lehto
Expert & trainer / Vaadin
Vaadin with
Java EE 7
Peter Lehto
@peter_lehto
Expert & trainer / Vaadin
What is
Vaadin?
Java EE 7
Vaadin
CDI
Addon
Structuring
Vaadin
App
How to
get started
QA
Application
architecture
Server driven UI
framework for rich
web applications
User Interface
Components
User Interface
Components
Developer
Productivity
Rich
UX
Server side UI
How?
• Loader page
• CSS Theme
• Images
• JavaScript
• Loader page
• CSS Theme
• Images
• JavaScript
135k
Compressed &
reduced
thin client
• name=”Joonas”
• button clicked
261 bytes

• name=”Joonas”
• button clicked
261 bytes
• Add notification
267 bytes

Java
Enterprise Edition 7
Collection of Java Specification
Requests (JSRs)
Collection of Java Specification
Requests (JSRs)
Implemented by app servers
Do you know some
Java EE specs?
Java Persistence
API 2.1 (JPA)

(JSR-338)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Server Pages
2.3 (JSP)

(JSR-245)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Server Pages
2.3 (JSP)

(JSR-245)
Bean Validation 1.1

(JSR-349)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Server Pages
2.3 (JSP)

(JSR-245)
Bean Validation 1.1

(JSR-349)Interceptors 1.2

(JSR-318)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Server Pages
2.3 (JSP)

(JSR-245)
Bean Validation 1.1

(JSR-349)Interceptors 1.2

(JSR-318)
Java Transaction
API 1.2 (JTA)

(JSR-907)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Server Pages
2.3 (JSP)

(JSR-245)
Bean Validation 1.1

(JSR-349)Interceptors 1.2

(JSR-318)
Java Transaction
API 1.2 (JTA)

(JSR-907)
Java API for RESTful
Web Services 2.0

(JAX-RS)

(JSR-907)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Server Pages
2.3 (JSP)

(JSR-245)
Bean Validation 1.1

(JSR-349)Interceptors 1.2

(JSR-318)
Java Transaction
API 1.2 (JTA)

(JSR-907)
Java API for RESTful
Web Services 2.0

(JAX-RS)

(JSR-907)
Java API for XML based
Web Services 2.2

(JAX-WS)

(JSR-907)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Message
Service 2.0 (JMS)

(JSR-343)
Context and 

Dependency

Injection 1.1 (CDI)

(JSR-340)
Java Server Faces
2.2 (JSF)

(JSR-344)
Java Server Pages
2.3 (JSP)

(JSR-245)
Bean Validation 1.1

(JSR-349)Interceptors 1.2

(JSR-318)
Java Transaction
API 1.2 (JTA)

(JSR-907)
Java API for RESTful
Web Services 2.0

(JAX-RS)

(JSR-907)
Java API for XML based
Web Services 2.2

(JAX-WS)

(JSR-907)
Java Architecture for
XML Binding 2.2 

(JAX-B)

(JSR-222)
APIs that form your technology stack
Which APIs should I know?
Java Persistence API 2.1
(JPA)
Customer
@Entity
______________________________
@Id

@AutoGenerated

Long id;

@Column(nullable = false)

String name;

Date birthdate;
Customer
@Entity
______________________________
Customer
Id name birthdate
1 Alex 07.02.1984
2 John 18.2.1992
@Id

@AutoGenerated

Long id;

@Column(nullable = false)

String name;

Date birthdate;
Customer
@Id

@AutoGenerated

Long id;

@Column(nullable = false)

String name;

Date birthdate;

@OneToMany(mappedBy=“customer”)

List<Invoice> invoices;
@Entity
______________________________
Customer
Id name birthdate
1 Alex 07.02.1984
2 John 18.2.1992
Invoice
Id customer number
1 1 123
2 1 124
Enterprise Java Beans 3.2 

(EJB)
Business layer services
Enterprise Java Beans
Business layer services
@local and @remote
Enterprise Java Beans
Business layer services
@local and @remote
Enterprise Java Beans
Transaction boundaries
(UI)
CustomerView
(@Remote)
CustomerService

(UI)
CustomerView

@Remote
@Local
(@Remote)
CustomerService

(UI)
CustomerView

(@Stateless)
CustomerService

Bean

@Remote
@Local
@Stateless
@Stateful
@Singleton
(@Stateless)
CustomerService

Bean

(@Stateless)
CustomerService

Bean
(DB)
Customer

Database
@Local
public interface CustomerService {
void storeCustomers(Collection<Customer> customers);
void removeCustomers(Collection<Customer> customers);
Collection<Customer> getAllCustomers()
Optional<Customer> getCustomerByName(String name);
}
@Stateless
public class CustomerServiceBean implements
CustomerService {
@PersistenceContext
private EntityManager em;
public void storeCustomers(Collection<Customer> cu) {
cu.forEach(c -> storeCustomer(c));
}
public void storeCustomer(Customer c) {
em.merge(c);
}
}
Context and 

Dependency

Injection 1.2 (CDI)
Instead of saying new say @Inject
Context and Dependency
Injection
Instead of saying new say @Inject
Decouples code and lets container
manage dependencies
Context and Dependency
Injection
Object references by scopes
Context and Dependency
Injection
@ApplicationScoped
@SessionScoped
@RequestScoped
Context and Dependency
Injection
Object references by scopes
@UIScoped
@ViewScoped
Context and Dependency
Injection
@ApplicationScoped
@SessionScoped
@RequestScoped
Object references by scopes
@Stateless
CustomerService

_________________

@UIScoped
AppUI

_________________

@EJB

CustomerService service;
@Stateless
InvoiceService

@Stateless
CustomerService

_________________

@EJB

InvoiceService invoices;
@UIScoped
AppUI

_________________

@EJB

CustomerService service;
@Stateless
CustomerService

_________________

@EJB

InvoiceService invoices;
@UIScoped
AppUI

_________________

@EJB

CustomerService service;

@Inject

MainMenu mainMenu;

@Inject

User currentUser;
@UIScoped
MainMenu

_________________

@Inject

Event<MenuEvent> menuEventSource;
@Stateless
InvoiceService
Integration to EE through
Vaadin CDI
Managed UI with @CDIUI
Managed UI with @CDIUI
Allows injection with @Inject and @EJB
Easily reference EE objects
Allows injection with @Inject and @EJB
Managed UI with @CDIUI
@CDIUI(“”)
public class AppUI extends UI {
}
@CDIUI(“”)
public class AppUI extends UI {
@Inject
private MainMenu mainMenu;
@Inject
private User currentUser;
@Inject
private ViewManager viewManager;
public void init(VaadinRequest request) {
VerticalLayout layout = new VerticalLayout();
layout.addComponent(mainMenu);
setContent(layout);
}
}
@UIScoped
AppUI
_____________________________
@Inject

private MainMenu menu;

@Inject

private ViewManager viewMgr;

@Inject

private User loggedInUser;

<<UIScope>>
MainMenu

ViewManager

<<SessionScope>>
User
<<UIScope>>
MenuBar

Footer

ViewManager

<<SessionScope>>
User

@UIScoped
AppUI
_____________________________
@Inject

private MenuBar menu;

@Inject

private ViewManager viewMgr;

@Inject

private User loggedInUser;

<<UIScope>>
MenuBar

Footer

ViewManager

<<UIScope>>
MenuBar

Footer

ViewManager

<<UIScope>>
MenuBar

ViewManager
VaadinServlet
VaadinServlet
HttpSession
1
n
VaadinServlet
HttpSession VaadinSession
1
n
1 1
1
n
VaadinServlet
HttpSession VaadinSession
UI
1
n
1 1
1
n
1
n
@UIScoped
@UIScoped
UI specific bean references
@UIScoped
UI specific bean references
CDI context for mapping beans per UI
@UIScoped
UI specific bean references
CDI context for mapping beans per UI
@UIScoped
@UIScoped
public class MainMenu extends CustomComponent {
}
@UIScoped
public class MainMenu extends CustomComponent {
@Inject
private Event<NavigationEvent> eventSource;
protected void onMenuItemClicked(MenuItem item) {
eventSource.fireEvent(new NavigationEvent(item));
}
}
@CDIUI(“”)
public class AppUI extends UI {
…
protected void onNavigationEvent(@Observes
NavigationEvent event) {
viewMgr.navigateTo(event.getView());
}
}
Structuring Vaadin App with
Model View Presenter
Do you like
spaghetti?
Do you like
spaghetti?
Let’s clean it!
History behind MVP
Late
1970s
Late
1970s
Originally Model-View-Controller
Late
1970s
SmallTalk-80
Originally Model-View-Controller
Late
1970s
SmallTalk-80
Controller is mediator between
end user and application
Originally Model-View-Controller
1980s
1980s
Taligent Model-View-Presenter
1980s
Influenced by SmallTalk-80
Taligent Model-View-Presenter
1980s
Influenced by SmallTalk-80
Model, View, Presenter,
Interactors, Commands, Selections
Taligent Model-View-Presenter
1980s
Influenced by SmallTalk-80
Model, View, Presenter,
Interactors, Commands, Selections
Taligent Model-View-Presenter
Presenter orchestrates the
structure, not the input
late
1980s
late
1980s
Dolphin-Smalltalk MVP
late
1980s
Simplified Taligent MVP
Dolphin-Smalltalk MVP
late
1980s
Simplified Taligent MVP
View handles events by notifying
presenter
Dolphin-Smalltalk MVP
late
1980s
Simplified Taligent MVP
View handles events by notifying
presenter
Dolphin-Smalltalk MVP
Presenter handles the logic,
not the user input control
late
1980s
Simplified Taligent MVP
View handles events by notifying
presenter
Dolphin-Smalltalk MVP
Presenter handles the logic,
not the user input control
UI layer MVP targets
Clean code best practices
like…
Single responsibility principle
Class should have only one reason to change
Image credit: http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
Open closed principle
Open for extension, closed for change
Image credit: http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
Dependency Inversion principle
Depend on abstraction, not concretions
Image credit: http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
Today
many MVP variations exists
Here’s one…
Model-View-Presenter
Presenter
View Model
Model-View-Presenter
Presenter
View Model
View Impl
Model-View-Presenter
Presenter
View Model
Example
EditorView
- Button saveButton;
- Button cancelButton;
- FieldGroup personFieldGroup;
- saveButtonClicked()
- cancelButtonClicked()
ClickListener
+ buttonClicked()
Presenter
+ saveButtonClicked()
+ cancelButtonClicked()
EditorView
- Button saveButton;
- Button cancelButton;
- FieldGroup personFieldGroup;
+ commitChanges()
+ discardChanges()
ClickListener
+ buttonClicked()
Example
+ commitChanges()
+ discardChanges()
Presenter
+ saveButtonClicked()
+ cancelButtonClicked()
EditorViewImpl
- Button saveButton;
- Button cancelButton;
- FieldGroup personFieldGroup;
+ commitChanges()
+ discardChanges()
ClickListener
+ buttonClicked()
Example
EditorView
Benefits of MVP
Benefits of MVP
Simpler classes by SRP
Benefits of MVP
Simpler classes by SRP
Complex UI logic separated from
rendering
Benefits of MVP
Simpler classes by SRP
Complex UI logic separated from
rendering
Logic becomes easier to test by DIP
Application
Architecture
Client
Browser
View
<<EJB>>
Business
Logic
Server-side-UI
Presenter
<<JPA>>
Persistency
Business Persistency
Client
Browser
View
Server-side-UI
public interface CustomerView extends
ApplicationView<CustomerViewPresenter> {
}
public interface CustomerView extends
ApplicationView<CustomerViewPresenter> {
void populateCustomers(Collection<Customer> customers);
void openEditorFor(Customer customer);
void closeEditor();
void removeTableSelection();
}
Client
Browser
View
Server-side-UI
Presenter
@ViewScoped
public class CustomerViewPresenter extends AbstractPresenter<CustomerView> {
}
@ViewScoped
public class CustomerViewPresenter extends AbstractPresenter<CustomerView> {
@EJB
private CustomerService customerService;
@Override
protected void onViewEnter() {
getView().populateCustomers(customerService.getAllCustomers());
}
}
@ViewScoped
public class CustomerViewPresenter extends AbstractPresenter<CustomerView> {
@EJB
private CustomerService customerService;
@Override
protected void onViewEnter() {
getView().populateCustomers(customerService.getAllCustomers());
}
public void onCustomerSaved(@Observes CustomerSavedEvent event) { … }
public void onCustomerRemoved(@Observes CustomerRemovedEvent event) { … }
public void onCustomerSelected(@Observes CustomerSelectedEvent event) { … }
}
Client
Browser
View
<<EJB>>
Business
Logic
Server-side-UI
Presenter
Business
@Local
public interface CustomerService {
void storeCustomers(Collection<Customer> customers);
void removeCustomers(Collection<Customer> customers);
Collection<Customer> getAllCustomers();
Optional<Customer> getCustomerByUsername(String username);
}
Application
Architecture
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class CustomerServiceBean implements CustomerService {
@PersistenceContext(unitName = "appUnit")
private EntityManager entityManager;
@Override
public void storeCustomers(Collection<Customer> customers) {
customers.forEach(cu -> entityManager.merge(cu));
}
@Override
public Collection<Customer> getAllCustomers() {
return entityManager.createQuery(query).getResultList();
}
…
}
Client
Browser
View
<<EJB>>
Business
Logic
Server-side-UI
Presenter
<<JPA>>
Persistency
Business Persistency
Application
Architecture
@Entity
public class Customer {
@Id
@AutoGenerated
private Long id;
private String name;
@Temporal(DATE)
private Date birthDate;
public boolean isPersisted() {
return id != null;
}
…
}
<persistence-unit name="appUnit" transaction-type="JTA">
<jta-data-source>jdbc/app-backend</jta-data-source>
<class>org.vaadin.example.backend.entity.Customer</class>
<properties>
<property name="…" … />
</properties>
</persistence-unit>
How to
Get Started?
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-cdi</artifactId>
<version>1.0.2</version>
</dependency>
<repository>
<id>vaadin-addons</id>
<url>http://maven.vaadin.com/vaadin-addons</url>
</repository>
Eclipse
Download plugin
from Martketplace
IntelliJ IDEA
Built-in support
Netbeans
Download plugin
Netbeans Plugin Portal
slides
slideshare.net/PeterLehto
Peter Lehto
@peter_lehto
Vaadin Expert & trainer
Example App
github.com/peterl1084/cdiexample
slides
slideshare.net/PeterLehto
Peter Lehto
@peter_lehto
Vaadin Expert & trainer
Example App
github.com/peterl1084/cdiexample
slides
slideshare.net/PeterLehto
Peter Lehto
@peter_lehto
Vaadin Expert & trainer
Thank you!
slides
slideshare.net/PeterLehto
Peter Lehto
@peter_lehto
Vaadin Expert & trainer
Thank you!
What did we learn today?
What did we learn today?
1. Java EE contains tons of specifications for enterprise apps
What did we learn today?
1. Java EE contains tons of specifications for enterprise apps
2. Vaadin is a great way to assemble UIs with components
What did we learn today?
1. Java EE contains tons of specifications for enterprise apps
2. Vaadin is a great way to assemble UIs with components
3. Combining Vaadin with Java EE works best through CDI
What did we learn today?
1. Java EE contains tons of specifications for enterprise apps
2. Vaadin is a great way to assemble UIs with components
3. Combining Vaadin with Java EE works best through CDI
4. Write maintainable code by following best practices
Get the book!
vaadin.com/book
PDF, ePub, HTML
Vol 1
288 pages
Vol 2
434 pages
Rate the
presentation
gwtcreate.com/agenda
Peter Lehto
@peter_lehto
Vaadin Expert & trainer
Rate the
presentation
gwtcreate.com/agenda
Peter Lehto
@peter_lehto
Vaadin Expert & trainer

Contenu connexe

Tendances

Vaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationVaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationPeter Lehto
 
Vaadin Flow - JavaLand 2018
Vaadin Flow - JavaLand 2018Vaadin Flow - JavaLand 2018
Vaadin Flow - JavaLand 2018Peter Lehto
 
Jug Guice Presentation
Jug Guice PresentationJug Guice Presentation
Jug Guice PresentationDmitry Buzdin
 
Introduction to Google Guice
Introduction to Google GuiceIntroduction to Google Guice
Introduction to Google GuiceKnoldus Inc.
 
Vaadin DevDay 2017 - Data Binding in Vaadin 8
Vaadin DevDay 2017 - Data Binding in Vaadin 8Vaadin DevDay 2017 - Data Binding in Vaadin 8
Vaadin DevDay 2017 - Data Binding in Vaadin 8Peter Lehto
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionRichard Paul
 
Spring IOC and DAO
Spring IOC and DAOSpring IOC and DAO
Spring IOC and DAOAnushaNaidu
 
Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15Murat Yener
 
Building web apps with Vaadin 8
Building web apps with Vaadin 8 Building web apps with Vaadin 8
Building web apps with Vaadin 8 Marcus Hellberg
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular UJoonas Lehtinen
 
Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java DevelopersJoonas Lehtinen
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CNjojule
 
GWT integration with Vaadin
GWT integration with VaadinGWT integration with Vaadin
GWT integration with VaadinPeter Lehto
 
Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015Sami Ekblad
 
Spring andspringboot training
Spring andspringboot trainingSpring andspringboot training
Spring andspringboot trainingMallikarjuna G D
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
 
Guice tutorial
Guice tutorialGuice tutorial
Guice tutorialAnh Quân
 

Tendances (20)

Vaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationVaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfiguration
 
Vaadin Flow - JavaLand 2018
Vaadin Flow - JavaLand 2018Vaadin Flow - JavaLand 2018
Vaadin Flow - JavaLand 2018
 
Jug Guice Presentation
Jug Guice PresentationJug Guice Presentation
Jug Guice Presentation
 
Introduction to Google Guice
Introduction to Google GuiceIntroduction to Google Guice
Introduction to Google Guice
 
Vaadin DevDay 2017 - Data Binding in Vaadin 8
Vaadin DevDay 2017 - Data Binding in Vaadin 8Vaadin DevDay 2017 - Data Binding in Vaadin 8
Vaadin DevDay 2017 - Data Binding in Vaadin 8
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency Injection
 
Spring IOC and DAO
Spring IOC and DAOSpring IOC and DAO
Spring IOC and DAO
 
Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15
 
Google Guice
Google GuiceGoogle Guice
Google Guice
 
Building web apps with Vaadin 8
Building web apps with Vaadin 8 Building web apps with Vaadin 8
Building web apps with Vaadin 8
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular U
 
Vaadin & Web Components
Vaadin & Web ComponentsVaadin & Web Components
Vaadin & Web Components
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
 
Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java Developers
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CN
 
GWT integration with Vaadin
GWT integration with VaadinGWT integration with Vaadin
GWT integration with Vaadin
 
Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015
 
Spring andspringboot training
Spring andspringboot trainingSpring andspringboot training
Spring andspringboot training
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDB
 
Guice tutorial
Guice tutorialGuice tutorial
Guice tutorial
 

En vedette

Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createRemote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createPeter Lehto
 
Vaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderVaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderPeter Lehto
 
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring BootWebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring BootPeter Lehto
 
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)Peter Lehto
 
Comparing GWT Transport Mechanisms
Comparing GWT Transport MechanismsComparing GWT Transport Mechanisms
Comparing GWT Transport Mechanismslastrand
 
Improving the HTML Table
Improving the HTML TableImproving the HTML Table
Improving the HTML Tablelastrand
 
Building web apps with vaadin 8
Building web apps with vaadin 8Building web apps with vaadin 8
Building web apps with vaadin 8Marcus Hellberg
 

En vedette (8)

Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createRemote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
 
Vaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderVaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with Binder
 
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring BootWebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot
 
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
 
Comparing GWT Transport Mechanisms
Comparing GWT Transport MechanismsComparing GWT Transport Mechanisms
Comparing GWT Transport Mechanisms
 
Vaadin 7 what next
Vaadin 7   what nextVaadin 7   what next
Vaadin 7 what next
 
Improving the HTML Table
Improving the HTML TableImproving the HTML Table
Improving the HTML Table
 
Building web apps with vaadin 8
Building web apps with vaadin 8Building web apps with vaadin 8
Building web apps with vaadin 8
 

Similaire à Vaadin with Java EE 7

What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyMohamed Taman
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 javatwo2011
 
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)Kevin Sutter
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootJosué Neis
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New EvolutionAllan Huang
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the HorizonJosh Juneau
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEQAware GmbH
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEMario-Leander Reimer
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGArun Gupta
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Matt Raible
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
 
Java EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureJava EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureArun Gupta
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Jagadish Prasath
 

Similaire à Vaadin with Java EE 7 (20)

JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter LehtoJavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
 
Javaee6 Overview
Javaee6 OverviewJavaee6 Overview
Javaee6 Overview
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
JEE5 New Features
JEE5 New FeaturesJEE5 New Features
JEE5 New Features
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019
 
J2ee
J2eeJ2ee
J2ee
 
Tu1 1 5l
Tu1 1 5lTu1 1 5l
Tu1 1 5l
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
 
Java EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureJava EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the future
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 

Dernier

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Dernier (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Vaadin with Java EE 7