UI independentApplication Development
in practice
Roland Hörmann
JVx - Application Framework
UI independent application development in practice
Are there enough web UI frameworks?
Which one will work in 5 or 10 years?
Core Applications have to run longer?
How can I handle different UI Plattforms?
JVx - Application Framework
UI independent application development in practice
An
UI independent Framework
is the solution
JVx - Application Framework
UI independent application development in practice
Same Source Code – different UI Platforms
Small & simple
Full Stack Framework
- Web, Mobile & Desktop Applications
Swing
HTML5 + Ajax
Native iOS & Android
JVx - Application Framework
UI independent application development in practice
Web
JVx - Application Framework
UI independent application development in practice
Mobile
Same Source Code!
JVx - Application Framework
UI independent application development in practice
Desktop Swing
Same Source Code!
JVx - Application Framework
UI independent application development in practice
Overview
HTML5 + Ajax
Mobile
Native iOS & Android
Web Desktop
GU
I Te
chn
olo
gie
s
Swing
Others…
FX, …
Same Java Source Code
You
rA
pp
licat
ion
Business Logic, Persistence, Database
JVx - Application Framework
UI independent application development in practice
GUI Architecture
HTML5 + Ajax
Web Desktop
GU
I Te
chn
olo
gies
Swing
Others…
FX, …
Same Java GUI Source Code
You
rA
pp
licat
ion
GUI specificLauncher
GUI API – javax.rad.genui.*
JVx.swing JVx.fxJVx.vaadinGUI specificImplementation
ApplicationWeb Start
ApplicationBrowser
JVx - Application Framework
UI independent application development in practice
GUI Architecture
Mobile
Native iOS & Android
GU
I Te
chn
olo
gies
Same Java Source Code
You
rA
pp
licat
ion
REST
GUI API – javax.rad.genui.*
Native iOS & Android App
JVx.mobile Server
Simple representation of Screens formobile usage and handles all serverinteractions.
Headless instantiation ofScreens
JVx - Application Framework
UI independent application development in practice
System Architecture
Mobile
PersistenceContext und Dependency Management Authentication Management
Serv
er
Web Desktop
Clie
nt
iOS & Android App Browser Java ClientWeb Start
GUI API – javax.rad.genui.*
GUI
Business Logic, PersistenceYou
rA
pp
licat
ion
JVx - Application Framework
UI independent application development in practice
General Features
• Open Source Application Framework– Apache 2.0 License
• Full Stack Framework– Full Application Stack (GUI to Persistence)– Simple APIs, short learning curve– Well documented– Easy to extend
• Database independent• Applicationsserver independent• Multi-Tier Architecture
JVx - Application Framework
UI independent application development in practice
Major GUI Features
• GUI platform independent– Web (vaadin)
– Mobile (iOS, Android)
– Desktop (Swing, in the future JavaFx)
• Unified dynamic model for all data-bound GUI controls– Uses persistence metadata as base
Datatypes, Sizes, Datatype dependent editors(e.g.: „Date“ -> date editor, Master data -> Dropdown list)
– Editor (Number, Date, Dropdown), Table, Tree, Chart
JVx - Application Framework
UI independent application development in practice
Global Features 1/2
• Flexible authentication management withdifferent security managers– Database table, NTLM, LDAP, XML
• CRUD Triggers on Client & ApplicationServer– Before/After Insert, Update, Delete, Select, …
• Event & Listener concept
• Multilanguage support
JVx - Application Framework
UI independent application development in practice
Global Features 2/2
• Lazy Loading– Only visible information is loaded
– No Paging, fully integrated in GUI Controls
– Millions of records can be processed
• Flexible application frame– Integrated in the Framework – consisting of Toolbar, Menu,
Login/out, Change password, Help, About, Save, Reload, …..
– Easy to extend and easy to adjust.-> Corporate Design – CSS, Layout-> Web Applicationen style
– Fully user-definable application frame through usage ofinterfaces
JVx - Application Framework
UI independent application development in practice
More Features
• Online Help System for Web & Desktop Applications
– Table of contents, Search, HTML
• User and roles management– Database tables, if Rolle==admin then function x
- Web, Mobile & Desktop Applications
http://sourceforge.net/projects/jvx/