17
UI independent Application Development in practice Roland Hörmann

Technology independent UI development with JVx

Embed Size (px)

DESCRIPTION

Are there enough web and UI frameworks for us developers? Absolutely! There are really cool web UI frameworks like GXT or Vaadin. There are swing and JavaFX for desktop apps and many others. Don’t forget all web frameworks! Which UI framework is the best for your next project and works with browsers and OS‘ in 5 or 10 years? Which investment is future save? The only solution is a technology and UI independent framework. Such a solution is JVx (Apache 2.0). It is a full-stack app framework, designed as library. Develop UI independent and decide which UI technology is best for you. If you prefer Swing, start your app as Swing Application. If it’s Vaadin, use Vaadin. Don’t rewrite your application, just choose the preferred UI technology!

Citation preview

Page 1: Technology independent UI development with JVx

UI independentApplication Development

in practice

Roland Hörmann

Page 2: Technology independent UI development with JVx

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?

Page 3: Technology independent UI development with JVx

JVx - Application Framework

UI independent application development in practice

An

UI independent Framework

is the solution

Page 4: Technology independent UI development with JVx

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

Page 5: Technology independent UI development with JVx

JVx - Application Framework

UI independent application development in practice

Web

Page 6: Technology independent UI development with JVx

JVx - Application Framework

UI independent application development in practice

Mobile

Same Source Code!

Page 7: Technology independent UI development with JVx

JVx - Application Framework

UI independent application development in practice

Desktop Swing

Same Source Code!

Page 8: Technology independent UI development with JVx

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

Page 9: Technology independent UI development with JVx

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

Page 10: Technology independent UI development with JVx

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

Page 11: Technology independent UI development with JVx

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

Page 12: Technology independent UI development with JVx

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

Page 13: Technology independent UI development with JVx

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

Page 14: Technology independent UI development with JVx

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

Page 15: Technology independent UI development with JVx

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

Page 16: Technology independent UI development with JVx

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

Page 17: Technology independent UI development with JVx

- Web, Mobile & Desktop Applications

http://sourceforge.net/projects/jvx/