JVx stellt sich vor. Zurück zur Effizienz! Code once, run anywhere.

Web Desktop Mobile

HTML5 + Ajax Native iOS & Android

… Code once, run anywhere. -> Why?

 1x Framework, 1x Team for all UI Platforms  Easy UI Platform Change. E.g. Swing -> Web  Own customized UI Plattform  More flexible  More efficient, smaller Teams, less Know How  Faster Application Development  Powerful Business Features  Easy to use, to extend  and works well with other frameworks LIVE Less Files, just simple!

GUI

Persistence

2x xml // GUI Low Code! UILabel label = new UILabel(“Hello World“); add(label);

// Data Binding UIEditor ed = new UIEditor(); ed.setDataRow(model ); ed.setColumnName(“NAME"); ProjectsWorkScreen.java add(ed);

RemoteDataBook model = new RemoteDataBook(); model.setName(“projects“); model.setDataSource(getDataSource()); model.open();

// DAO & Persistence DBStorage dao = new DBStorage(); dao.setWritebackTable("projects"); dao.setDBAccess(getDBAccess()); Projects.java dao.open(); put("projects", dao); Conventions over Configuration! Conventions over Configuration!

Foreign Key -> Typ erzeugt automatisch eine Auswahlliste Conventions over Configuration! select m.ID, m.NAME, m.BESCHREIBUNG, m.VON_DATUM, m.BIS_DATUM, m.TYP_ID, l1.TYP TYP_TYP from projekte m LEFT OUTER JOIN PROJEKTEDOAG.TYP l1 ON m.TYP_ID = l1.ID

// DAO & Persistence Projects.java DBStorage dao = new DBStorage(); dao.setWritebackTable("projects"); dao.setDBAccess(getDBAccess()); dao.open(); put("projects", dao);

Framework Compare – Time for 1xScreen

blue = 1st run, green = 2nd run Roland Hörmann [email protected]

blog.sibvisions.com @sibvisions www.sibvisions.com Code once, run anywhere. -> How does it work?

Web Desktop Mobile

HTML5 + Ajax native iOS & Android Interface / UI Component - IButton, ILabel, IPanel, IEditor, ITable, …

public interface IButton extends IComponent { public String getText(); public void setText(String text); Implementations

public void setImage(IImage image); public IImage getImage(); }

VaadinButton public class SwingButton extends SwingComponent implements IButton { public SwingButton() { JavaFXButton super(new JButton()); } public String getText() { … return resource.getText(); } public void setText(String pText) { resource.setText(pText); }} UI independent Wrapper Class

UIButton, UILabel, UIPanel, UIEditor, UITable, … public class HelloWorldApplication extends Application { public HelloWorldApplication(UILauncher pLauncher) { super(pLauncher);

UILabel label = new UILabel ("Hello World!"); add(label); } } Instantiate UI Implementation over Factory Pattern

Web Desktop Mobile

HTML5 + Ajax native iOS & Android