jo-projects
Transcription
jo-projects
jo-source projects Applikationsentwicklung mit den jo-source projects Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 3 Architektur Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 4 SWT Implementierung Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 5 Swing Implementierung Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 6 RWT Implementierung Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 8 Software Architektur Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 9 Software Architektur Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 10 Software Architektur Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 11 Software Architektur Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 15 Bean Table Widget Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 17 Bean Table Widget Filter Strukturiert → einschließend, ausschließend, benutzerdefiniert, ... Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 18 Bean Table Widget Filter Einfeldsuche (Suchfilter) Sortierung Default Sortierung, aktuelle Sortierung Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 20 Bean Table Widget Editierung Batch Editierung Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 21 Bean Table Widget CSV Export Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 22 Bean Table Widget Standard Actions Creator, Deleter Copy, Paste Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 23 Bean Form Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 24 Bean Form Layouting Anpassbare Layouts (high Level und low Level) Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 25 Bean Form Validierung Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 26 Bean Relation Tree mit Detail Darstellung von Relation zwischen Entitäten Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 31 Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 34 jo-useradmin Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 36 Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 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 - herr.grossmann@gmx.de 41 Infos BSD Lizenz Open Source seit 01.10.2010 Gehostet bei github https://github.com/jo-source http://www.jowidgets.org Kontakt: herr.grossmann@gmx.de Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 42 Vielen Dank für die Aufmerksamkeit! Michael Grossmann - www.jowidgets.org - herr.grossmann@gmx.de 43