jo-projects

Transcription

jo-projects
jo-source projects
Applikationsentwicklung
mit den
jo-source projects
Michael Grossmann - www.jowidgets.org - [email protected]
1
Überblick
Framework
jo-widgets
jo-client-platform
(ui-framework)
(crud-framework)
Applikationen
jo-useradmin
(Nutzerverwaltung)
jo-modeler
(Modellierung von
Applikationen)
Michael Grossmann - www.jowidgets.org - [email protected]
2
Was ist jowidgets?

Eine GUI API für Java

Spezielle Funktionen für Enterprise Applikationsentwicklung

Unterschiedliche Renderer (SPI – Implementierungen) für

SWT

RWT

Swing

JavaFx (derzeit nicht produktiv, Bachelorarbeit)

Dummy (Für JUnit Tests)
Michael Grossmann - www.jowidgets.org - [email protected]
3
Architektur
Michael Grossmann - www.jowidgets.org - [email protected]
4
SWT Implementierung
Michael Grossmann - www.jowidgets.org - [email protected]
5
Swing Implementierung
Michael Grossmann - www.jowidgets.org - [email protected]
6
RWT Implementierung
Michael Grossmann - www.jowidgets.org - [email protected]
7
Was ist die jo-client-platform?

Ein Framework zur Entwicklung von CRUD Applikationen

Verwendet jo-widgets als UI Framework

Klare Schichtentrennung (UI, Service)

Transparentes Remoting

Unterschiedliche Deployments des gleichen Codes

Web-Client

Remote-Client

Fat-Client
Michael Grossmann - www.jowidgets.org - [email protected]
8
Software Architektur
Michael Grossmann - www.jowidgets.org - [email protected]
9
Software Architektur
Michael Grossmann - www.jowidgets.org - [email protected]
10
Software Architektur
Michael Grossmann - www.jowidgets.org - [email protected]
11
Software Architektur
Michael Grossmann - www.jowidgets.org - [email protected]
12
3Tier Systemarchitektur (Remote-Client)
Client 1
Client 1
Client n
Client n
Client Tier
Application Server
Application Server
Application
Application
DB
DB
Server Tier
Data Tier
Michael Grossmann - www.jowidgets.org - [email protected]
13
Jo-client-platform Service Layer

Asynchrone zustandslose Dienste

Sortierung und Filterung in der Datenbank

Unterstützung folgender Datenschichten

JPA (Addons für Hibernate und Oracle)

NEO4J

Mongo DB (experimentell)

Repository API (zur einfachen Anbindung beliebiger
Datenschichten)
Michael Grossmann - www.jowidgets.org - [email protected]
14
Jo-client-platform UI Layer


Alle Service Aufrufe sind asynchron

Kein blockierender UI Thread

Alle Service Aufrufe können abgebrochen werden
Generische Oberflächen mittels

Entity Descriptions

Attributen

Links Descriptions

Converter Providern

Control Panel Providern
Michael Grossmann - www.jowidgets.org - [email protected]
15
Bean Table Widget
Michael Grossmann - www.jowidgets.org - [email protected]
16
Bean Table Widget

Virtuelle Tabelle


Daten werden dynamisch (und asynchron) nachgeladen
Unterschiedliche Darstellungsformen

Langform, Kurzform, Datum, Datum&Uhrzeit, Icon, …
Michael Grossmann - www.jowidgets.org - [email protected]
17
Bean Table Widget

Filter

Strukturiert → einschließend, ausschließend, benutzerdefiniert, ...
Michael Grossmann - www.jowidgets.org - [email protected]
18
Bean Table Widget

Filter


Einfeldsuche (Suchfilter)
Sortierung

Default Sortierung, aktuelle Sortierung
Michael Grossmann - www.jowidgets.org - [email protected]
19
Bean Table Widget

Editierung

Inplace Editierung für beliebige Controls (wie z.B. Comboxen, etc)

Tastaturnavigation (TAB, SHIFT&TAB, ...)
Michael Grossmann - www.jowidgets.org - [email protected]
20
Bean Table Widget

Editierung

Batch Editierung
Michael Grossmann - www.jowidgets.org - [email protected]
21
Bean Table Widget

CSV Export
Michael Grossmann - www.jowidgets.org - [email protected]
22
Bean Table Widget

Standard Actions

Creator, Deleter

Copy, Paste
Michael Grossmann - www.jowidgets.org - [email protected]
23
Bean Form
Michael Grossmann - www.jowidgets.org - [email protected]
24
Bean Form

Layouting

Anpassbare Layouts (high Level und low Level)
Michael Grossmann - www.jowidgets.org - [email protected]
25
Bean Form

Validierung
Michael Grossmann - www.jowidgets.org - [email protected]
26
Bean Relation Tree mit Detail

Darstellung von Relation zwischen Entitäten
Michael Grossmann - www.jowidgets.org - [email protected]
27
Bean Relation Tree mit Detail

Kontextabhängige Detailansicht

Synchronisierung Detail - Baum (Sortierung auf Name wurde in Tabelle ausgelöst)
Michael Grossmann - www.jowidgets.org - [email protected]
28
Bean Relation Tree mit Detail

Anlegen und Entfernen von Verknüpfungen

Eine Aktion / Dialog für “Verlinken” und “Erstellen und Verlinken”, Formular dient gleichzeitig als Suchmaske

Copy von Entitäten

Paste verlinkt mit der Entität
Michael Grossmann - www.jowidgets.org - [email protected]
29
Bean Relation Tree mit Detail

Eine Aktion / Dialog für “Verlinken” und “Erstellen und Verlinken”, Formular dient gleichzeitig als Suchmaske
Michael Grossmann - www.jowidgets.org - [email protected]
30
Entity Component




Jowidgets Workbench Komponente
Verknüpft die Tabelle (Master) mit dem Bean Releation Tree und
Detail
Verwendet für die Implementierung den EntityService

Liefert Beschreibungen für Entitäten

Liefert die CRUD Services

Liefert die Verlinkungsdefinition und Link Services
Aussehen und Verhalten kann durch Plugins angepasst werden
Michael Grossmann - www.jowidgets.org - [email protected]
31
Michael Grossmann - www.jowidgets.org - [email protected]
32
Was ist der jo-useradmin?



Eine Nutzerverwaltung, welche auf Basis der jo-clientplatform entwickelt wurde
Oberflächen zum Anlegen und Verwalten von Nutzern,
Rechten und Rollen
Service Schicht stellt Authentifizierungs- und
Authorisierungsservice bereit
Michael Grossmann - www.jowidgets.org - [email protected]
33
jo-useradmin - REST Schnittstelle

REST Schnittstelle

Authentifizierung – Prüfen der Credentials

Autorisierung – Bereitstellung der Rechte

Import der default Rechte
Michael Grossmann - www.jowidgets.org - [email protected]
34
jo-useradmin
Michael Grossmann - www.jowidgets.org - [email protected]
35
Was ist der jo-modeler

Ein Tool zur Erstellung eines Applikationsmodels, um daraus
automatisiert eine Applikation zu erzeugen

Dynamisch




Mit Hilfe des Models wird ein EntityService erzeugt
In der UI-Schicht wird für jede Entität eine EntityComponent
verwendet
Änderungen am Model wirken sich direkt aus
Statisch

Generierung von Code aus dem Model (noch nicht umgesetzt)
Michael Grossmann - www.jowidgets.org - [email protected]
36
Michael Grossmann - www.jowidgets.org - [email protected]
37
Dynamischer Ansatz (konzeptionell)
Client 1
Client 1
Client n
Client n
Client 1
Client 1
Client m
Client m
Client Tier
Server Tier
Implementor
Implementor
Application Server
Application Server
Modeler
Modeler
Application Server
Application Server
Model
Application
Application
DB
DB
Model
Model
DB
DB
Michael Grossmann - www.jowidgets.org - [email protected]
38
Dynamischer Ansatz (Prototyp)
Client n
Client n
Client 1
Client 1
Client Tier
Server Tier
Application Server
Application Server
Neo4J Implementor/ JPA Modeler
Neo4J Implementor/ JPA Modeler
Model
Neo4J
Neo4J
Application DB
Application DB
Model
Model
H2 DB
H2 DB
Michael Grossmann - www.jowidgets.org - [email protected]
39
Vorteile


Prototyping

Kunde sieht sehr früh, wie es aussehen könnte

Erleichert agilen Prozess
Statischer Ansatz


Enorme Steigerung der Produktivität - > Reduzierung von
Kosten
Dynamischer Ansatz

Applikationserstellung und Anpassungen ohne Kompilierung
Michael Grossmann - www.jowidgets.org - [email protected]
40
Nachteile

Dynamischer Ansatz


Applikation nur so mächtig wie das zugrundeliegende Modell → aber
Erweiterung durch Plugins möglich
Bei Erweiterung des Modells kann der Entwicklungsaufwand Anfangs höher sein
wie bei konventioneller Entwicklung→ amortisiert sich, wenn Funktion künftig
auch benötigt wird
Michael Grossmann - www.jowidgets.org - [email protected]
41
Infos

BSD Lizenz

Open Source seit 01.10.2010

Gehostet bei github

https://github.com/jo-source

http://www.jowidgets.org

Kontakt: [email protected]
Michael Grossmann - www.jowidgets.org - [email protected]
42
Vielen Dank für die Aufmerksamkeit!
Michael Grossmann - www.jowidgets.org - [email protected]
43