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