Tag Archives: CaptainCasa

XII. Captain Casa Community Meeting


Flattr this

Motivation

Seit ich vor 8 Jahren im Java Magazin einen Artikel von Björn Müller gelesen hatte, interessiere ich mich für das Captain Casa Framework. Die Captain Casa GmbH führt seit Ihrer Gründung 2007 jährlich ein Community Meeting durch. Auf diesem treffen sich Nutzer und Lizenznehmer der Captain Casa GmbH, sowie Partner als auch generell Rich Client Interessierte. Zu Letzteren zähle ich mich und so nutze ich hin und wieder die Möglichkeit am Treffen teilzunehmen. 2016 bot sich für mich zur Teilnahme an, da bereits in der Vorankündigung große Dinge, in Worten „RISC HTML“ ihre glänzenden Strahlen vorausschickten. 

Organisation

Die Treffen an denen ich persönlich teilgenommen habe fanden bislang stets in Eppelheim statt. Dieses Jahr wurde ich durch eine Einladung nach Schwetzingen überrascht. Für mich als Besitzer einer Bahn Card ist Schwetzingen von Nürnberg her besonders günstig zu erreichen. Mein Hotel buchte ich keine 5 Gehminuten vom Bahnhof Schwetzingen entfernt. Der Veranstaltungsort (ein modernes Gemeindehaus) lag ebenfalls nur wenige Gehminuten sowohl vom Bahnhof wie auch vom Hotel entfernt. Da der Zeitpunkt des Treffens in der beginnenden Vorweihnachtszeit lag, konnte ich am Vorabend noch über den Weihnachtsmarkt schlendern und in aller Ruhe ein Souvenir für zu Hause auswählen. Für eine Schlossbesichtigung reichte die Zeit meines Aufenthalts leider nicht aus aber dieses Vorhaben wird in Zukunft nachgeholt. 

Teilnehmer

Wie auch schon in der Vergangenheit kamen vorwiegend proffessionelle Nutzer des Captain Casa Frameworks. Neu für mich war ein scheinbar gewachsener Anteil englischsprachiger Nutzer für die eine Simultanübersetzung angeboten wurde. Weiterhin hatte das Treffen auch Rich Client Interessierte Freiberufler angelockt, welche offensichtlich in Projekten in denen das Captain Casa Framework eingesetzt wird unterwegs sind. 

Stimmung

Auch an der Stimmung hat sich im Laufe der Zeit nichts geändert. Es war wieder eine sehr harmonische Stimmung unter den Teilnehmern. Viele kannten sich bereits durch vorangegangene Treffen und tauschten rege Ihre Erfahrungen über das Framework aus. Alle äußerten sich positiv zum Einsatz des Frameworks und lobten den hervorragenden Support der Captain Casa GmbH.

Inhalt der Veranstaltung

Generell lässt sich der Inhalt in folgende Bereiche einordnen:

  • Rückblick auf das letzte Treffen mit aktueller Markt- und Trendanalyse
  • Erfahrungsberichte von Unternehmen bzw. Captain Casa Nutzern.
  • Vorstellung technologischer Neuerungen durch die Captain Casa GmbH.
  • Ausblick und Roadmap über die weitere Entwicklung des Frameworks
  • Blick über den Tellerrand – ein Gastvortrag zur Architekturdokumentation

Markt- und Trendanalyse

Dass sich in der Vergangenheit bei der Entwicklung von Webanwendungen große Veränderungen ihren Weg bahnten und zu einer neuen Ära in der Sparte führten musste nicht erwähnt werden. Daher begann das Meeting auch gleich mit der Positionierung und Einordnung des Captain Casa Frameworks in den bestehenden Markt. Das wiederum ist aus meiner Sicht ein wirklich sehr wichtiger Punkt. Die Captain Casa GmbH, welche mit ihrem Framework bislang Swing, JavaFX und HTML Clients unterstützte, ist nicht ausgezogen um sich mit Giganten wie AngularJS etc. zu messen, sondern verfolgt ihren bewährten Weg weiter.

Das Captain Casa Framework ist für den Bau von Anwendungen erdacht, welche durch Power User genutzt werden. Natürlich nutzt auch ein Entwickler ein Office oder ein Mailprogramm aber sein Powerprogramm ist die IDE. Andere Anwender wie Dispatcher oder Anlagenfahrer benötigen evtl. auch Office oder Mailprogramme oder ähnliche Software aber auch sie haben ein Powerprogramm in welchem sie ihre Hauptarbeitsgänge erledigen. Möglicherweise werden Schaubilder mit Maschinen erstellt, mit Datenquellen hinterlegt und in einen Ablauf gebracht. Vielleicht müssen auch Güter verwaltet oder gelagert werden oder oder oder. Auf jeden Fall wird es etwas geben was der Nutzer zu Beginn seines Arbeitstages als Programm startet um damit möglichst viele seiner Tätigkeiten durchführen zu können. Genau für den Bau solcher Programme ist das Captain Casa Framework erdacht worden und genau hier spielt es seine Stärken aus. Wer allerdings einfach ein Portal seiner Firma ins Internet setzen möchte, dem genügen Technologien von Google und Co. Da muss nicht noch ein neues Framework geschaffen oder ein Bestehendes umgebaut werden. 

RISC HTML – die neue Technologie

Offensichtlich gab es nach dem letzten Community Meeting eine Phase welche Björn Müller inspirierte die bestehende HTML Technologie des Captain Casa Frameworks zu optimieren. Der Vorteil einer HTML GUI ist im Prinzip die Zero Installation. HTML benötigt einen Browser und der ist beim Endnutzer in der Regel verfügbar. Leider gibt es dabei aber auch einen Nachteil, es gibt nicht nur einen Browser. Was im IE läuft sieht im Chrome schon ganz anders aus und ist im Mozilla evtl. gar nicht mehr sichtbar oder anders herum. Damit sich der Entwickler letztlich nicht mit diesen Dingen rumschlagen muss gibt es genau solche Frameworks wie das Captain Casa Framework. Diese sorgen mit Magie einfach dafür, dass es in jedem Browser gleich aussieht und auch gleichartig funktioniert. Die neue Magie des Frameworks heißt nun also RISC HTML. 

Was genau aber ist nun RISC HTML? Hinsichtlich der Erfahrungen welche vor Jahren bereits im Hardwarebereich gesammelt wurden, nämlich der Umstieg von CISC auf RISC Technologie wurde auch das Framework überarbeitet. Genau wie beim Prozessor wird auch beim HTML eigentlich nur ein kleiner Satz von Elementen benötigt um eine ganze Anwendung aufzubauen. So könnten evtl. Rechtecke und Texte vollkommen ausreichen um das Layout einer Seite zu berechnen. Wir erinnern uns dabei natürlich sofort an das Prinzip des Textsatzsystems Latex zurück. Hier wird alles was darzustellen ist als Rechteck beschrieben und relativ zu einem umgebenden Rechteck positioniert. Mit einem DIV Tag und einer absoluten Positionierung im CSS Style wäre so etwas auch im HTML möglich. Der Legende nach war dies der erste Versuch im Werdegang von RISC HTML, die Darstellung von 20000 absolut positionierten DIVs im Browser. Voila es funktioniert – nun gut das hätte auch jeder erwartet dafür sind Browser ja gebaut worden. Jetzt noch die Zeit gemessen und mit einer Referenzimplementierung in Swing und JavaFX verglichen und uuuupps ist das schnell. So in etwa stelle ich mir die Geburtsstunde von RISC HTML vor. 

In weiteren Versuchen stellte sich dann wohl heraus, dass diese Methode tragfähig ist und etwa mit 4 Grundelementen auskommt. Aber wer genau setzt sich jetzt hin und schreibt die absoluten Positionierungen an die HTML Elemente? Nein natürlich nicht der Entwickler, das erledigt der Layoutmanager. Diesen kennen wir bislang nur aus der Swing und JavaFX Ecke und so fragen wir uns wie genau dieser denn jetzt ins Spiel kommt. Ganz einfach: Layoutmanager ist Logik und Logik auf HTML Seiten wird in JavaScript realisiert. 

Der Vorteil dieser Technologie liegt auf der Hand. Es gibt einen Kernel welcher für das Rendering und Verhalten der (4) definierten Grundelemente Sorge trägt. Also dafür sorgt, dass diese von jedem Browser gleichartig verarbeitet werden. Darauf aufbauend gibt es eine Schicht in welcher diese Grundelemente solange kombiniert und aggregiert werden, bis eine Vielzahl neuer Komponenten daraus entstanden ist. In dieser Schicht lassen sich dann auch eigene Komponenten erstellen. 

One Pass Rendering

Kennen Sie diesen Effekt wenn Sie auf einem leistungsschwachen Tablet eine herausfordernd überfrachtete Webseite modernster Bauart ansteuern und gerade einen schmalen Button klicken wollen, doch noch in der Bewegung ihres Fingers wird die Seite neu layoutet und der Button ist jetzt woanders und sie drücken dadurch an gleicher Stelle nun auf einen Link der eine Seite lädt die sie gar nicht sehen wollen und welche sich noch langsamer aufbaut als die vorherige? Dieser Effekt liegt am layouting Mechanismus der Browser. Größe und Position der dargestellten Elemente ist erst bekannt wenn diese auch dargestellt werden. 

Bei RISC HTML ist das anders. Hier kennt jedes der Elemente seine Größe vorher durch die absolute Positionierung und dem Layoutmanager. Ändert sich die Größe eines Elements wird ein dirty Event an das umgebende Element gesendet. Dieses meldet ebenfalls dirty und so weiter. Es entsteht ein kurzzeitiger Event Sturm nach oben bis zum äußersten Element. Dieses sammelt in aller Ruhe alle Events ein und wartet dabei bis auch die letzte dirty Meldung eingetroffen ist. Erst jetzt sendet es ein render Event zurück und alle Elemente berechnen ihre Position im umgebenen Element neu. Da die Berechnung von außen nach innen erfolgt ist die Position des äußeren Elements stets bekannt und fest. Damit kann es nicht zu dem anfangs beschriebenen Verhalten kommen.

Page Bean Components

Von vielen in der Community scheinbar unbemerkt, haben die Page Bean Components ihren Weg in das Captain Casa Framework gefunden. Page Bean Components bieten dem Entwickler die Möglichkeit das Framework um eigene Komponenten zu bereichern und als eigenständige Deliverables in Form von JARs auszuliefern/auszutauschen. Ganz klar ein Punkt Richtung Community – hier kann sich jeder zum Komponenten Provider herauf schwingen und damit nicht nur für sich selbst sondern auch für andere Entwickler hilfreiche Dinge zur Nachnutzung erstellen. Die genaue Erstellung solcher Komponenten würde den Rahmen dieses Artikels sprengen, wird aber vorgemerkt als zukünftig eigener Artikel auf meinem Blog. 

Ausblick

Zukünftig möchte die Captain Casa GmbH das Framework vorwiegend im Bereich RISC HTML weiter entwickeln. Die Swing und JavaFX Clients verbleiben im Wartungsmodus bis die Community keine weitere Unterstützung wünscht. Diese Priorisierung soll sich zukünftig auch im Lizenzkostenmodell widerspiegeln. Änderungen an den Open Source Lizenzbedingungen (Binary License) sind mir auf dem Treffen nicht bekannt geworden, dennoch sollten diese vor einer Realisierung selbstverständlich gelesen und für das jeweilige Vorhaben geprüft werden. 

Am Rande des Tellers

~ bleibt immer noch Luft für weitere Dinge. Zum Beispiel für eine schöne automatisierte Architekturdokumentation. Der Gastredner Falk Sippach nutzte im Rahmen eines aufgelockerten Vortrages die Vorteile von Dokumentation an den Teilnehmer zu bringen. Hier merkte man sofort die praktischen Erfahrungen auf dem Gebiet und es baute sich die Hoffnung auf nun doch noch endlich alles dokumentieren zu können ohne Redundanzen und ohne Wenn und Aber. Der Redner kannte sich aus mit den üblichen Fallstricken und benannte Lösungen. So geht der Trend eindeutig in Richtung plain text basierter Dokumentation. Natürlich documentation as a code also im Versionskontrollsystem hinterlegt, idealerweise gleich beim Code (genau wie bei den fachlichen Stories von BDD).  Zielgruppen gerechte Dokumente generiert im üblichen Build Prozess. Die verfügbare Palette an Werkzeugen scheint schier grenzenlos und wartet nur auf ihre Entdeckung. Allein die Kombination der Werkzeuge zur gut geölten Werkzeugkette scheint das Salz in der Suppe zu sein. Hier muss wohl jeder für sich entscheiden welche Werkzeuge er warum und in welcher Reihenfolge einsetzt. Einige mir nützlich erscheinende Buzzwords möchte ich dennoch unkommentiert fallen lassen: asciidoc, asciidoctor, markdown, yed, plantuml, ditaa, graphiz, jQAssistant. 

Schlußwort

Aus meiner Sicht war es wieder ein sehr schönes und interessantes Community Treffen. Die Captain Casa GmbH hat einmal mehr gezeigt, dass sie ein steter Quell sowohl nachhaltiger als auch revolutionärer Ideen ist. Zusammenfassend hat sich bei mir der Eindruck gefestigt, dass es sich beim Captain Casa Enterprise Client auch weiterhin um ein sehr gutes, solides und fantastisches Framework handelt.

Hinweise und Kommentare zum Artikel sind wie immer ausdrücklich erwünscht.

Advertisements

VII. Captain Casa Community Meeting


Flattr this

Motivation

Seit einiger Zeit beschäftige ich mich nebenher mit der Evalutation verschiedener UI-Frameworks. Begonnen hatte ich dies mit der ersten Version von Thinlet. Bin dann auf GUI4J gekommen. Anschließend fand ich Canoo, evaluierte noch JavaFX und letztlich auch den Captain Casa Enterprise Client . Das Captain Casa Framework hat mir von den vorgenannten am Besten gefallen. So hatte ich mir dann auch gleich fest vorgenommen am Community Meeting teilzunehmen. Die dort gesammelten Eindrücke möchte ich in diesem Artikel vorstellen.

Organisation

Das VII. Captain Casa Community Meeting fand am 18.11.2011 in Eppelheim in der Wasserturmstraße 50 in den Räumen der KonSer Systems OHG statt. Organisiert wurde das Meeting vom Captain Casa Gründer Björn Müller über die RIA Gruppe der Internetplatform Xing. Das Treffen findet jährlich statt und wendet sich an Nutzer des Captain Casa Frameworks wie auch an Interessierte. Für alle Frühankommer war gegen 20:00 Uhr ein Treffen am Vortag in Heidelberg in der Lobby des Hotels „Holländer Hof“ organisiert. Anschließend Einkehr in eine Gasstätte und einen Spaziergang durch Heidelberg. Direkt am Veranstaltungstag war der Veranstaltungsraum extra für Frühaufsteher bereits ab 09:30 Uhr geöffnet und mit Kafffee und Brezeln bestückt.

Teilnehmer

Zum Community Meeting kamen vorwiegend proffessionelle Nutzer des Captain Casa Frameworks. Mein Eindruck war, dass es sich dabei sowohl um mittlere wie auch große Firmen handelt. Auch eine staatliche Einrichtung war mit einem aus meiner Sicht sehr großen Projekt vertreten.

Stimmung

Es war eine sehr harmonische Stimmung unter den Teilnehmern. Viele kannten sich bereits durch vorangegangene Treffen und tauschten rege Ihre Erfahrungen über das Framework aus. Alle äußerten sich positiv zum Einsatz des Frameworks und lobten den hervorragenden Support der Captain Casa GmbH.

Inhalt der Veranstaltung

Generell lässt sich der Inhalt in folgende Bereiche einordnen:

  • Erfahrungsberichte von Unternehmen bzw. Captain Casa Nutzern.
  • Vorstellung technologischer Neuerungen durch die Captain Casa GmbH.
  • Vorstellung aktueller Entwicklungen auf dem GUI Markt speziell im Bereich RIA und Mobile.

Für das Meeting war eine strikte Agenda von Herrn Müller entworfen wurden. Diese wurde auch Punkt genau begonnen, jedoch brachten die Vorträge einige Verzögerung in den Ablauf, so dass später einige Vorträge gekürzt und die Agenda dynamisch angepasst wurde. Alle Anpassungen erfolgten jedoch stets unter dem Gesichtspunkt „Was interessiert die Community“. Daher wurde stets auch die Community gefragt wie mit den einzelnen Punkten verfahren werden soll.

 

Einige Teilnehmer hatten Screenshots ihrer Anwendungen zu einem Wettbewerb eingereicht. Auf dieser Grundlage begann die Veranstaltung mit der Vorstellung der Teilnehmer. Jene, welche sich nicht am Wettbewerb beteiligt hatten, wurden mit ein paar persönlichen Worten ebenfalls vorgestellt. Damit waren die Teilnehmer alle untereinander bekannt, was für den Erfahrungsaustausch von großem Wert war.

Anschließend wurden die aktuellen Entwicklungen im RIA Umfeld vorgestellt und bewertet. Hierbei hat die Captain Casa GmbH klar ein Signal gesetzt zukünftig auch Androids zu unterstützen. Eine offizielle Erstversion soll es Anfang des 2. Quartals 2012 geben. Aktuell erarbeitet Captain Casa in einem Projekt mit einer Zeiterfassungsfirma die entsprechenden Bibliotheken. Die bereits existierende, interne Version der Anbindung wurde später in einem kurzen Tutorial zur Android Programmierung vorgestellt. In diesem Tutorial wurde zunächst gezeigt, wie mit den von Google vorgesehenen Werkzeugen eine Android Anwendung erstellt werden kann. Anschließend wurde gezeigt wie das Gleiche mit dem Captain Casa Enterprise Client funktioniert. Im Prinzip kein großer Unterschied, nur dass der Client dann sowohl auf mobilen Geräten wie auch auf Desktop PCs nahezu identisch läuft 🙂 Das Wort identisch wollte Herr Müller an dieser Stelle eigentlich nicht recht verwenden. Jedoch mangels Verfügbarkeit eines treffenderen Begriffes betonte er dann: Indentisch unter Berücksichtigung der Umgebungsbesonderheiten! Damit gemeint sind Besonderheiten wie Wischtechnik, Ortssensor etc.

Nachdem die aktuellen Entwicklungen am Markt betrachtet waren ging es zum nächsten Thema – Vorstellung der neuen Features. Es war eine enorme Menge von der ich hier nur besonders interessante erwähnen möchte:

  • Ein OpenStreetMap Control für die Einbettung freier Landkarten
  • Ein ScreenGraber Control zur Erstellung parametrisierbarer Screenshots
  • Ein Pivot Control welches auf der Grundlage von Apache POI ein vollständiges Excel anbietet
  • Ein TiledArea welches von Aussehen und Funktion an die Portlets von SUN erinnert

Bei CaptainCasa muss über Dinge wie Browserunabhängigkeit, identische Darstellung auf unterschiedlichen Systemen, einen möglichst kleinen UI Stack der Anwendung und über kleine Roundtrips zum Server durch Deltalieferungen kaum noch gesprochen werden, weil diese vom Framework sichergestellt sind. Aus diesem Grund möchte ich hier erwähnen, dass die Firma auch immer bestrebt ist, das Rad nicht neu zu erfinden sondern auf bestehende und erprobte Standards wie beispielsweise JSF setzt.

 

Präsentation von Kundenanwendungen

Es folgten nun diverse Präsentationen von Kundenlösungen. Hierbei stellten die einzelnen Firmen kurz das Projekt und die grundlegenden Anforderungen vor. Anschließend gab es dann einen Schnelldurchlauf durch die mit Demodaten gefüllte Anwendung. Hierbei wurden hier und da natürlich besondere Schmankl hervorgehoben.

Zwei Dinge haben mich persönlich am meisten begeistert. Zum Einen wurde ein Verwaltungssystem vorgestellt, bei dem eine Mail aus Outlook über Drag&Drop in das System fallen gelassen wurde und sofort als Dokument bzw. wenn mit Anhängen versehen sogar in Form mehrerer Dokumente im System verfügbar war. Zum Anderen haben viele Firmen das Casa Framework um eigene Controls erweitert. Diese ließen sich wie Casa eigene Contols in der gewohnten Entwicklungsumgebung verwenden. Ein solch nathlose Integration von Eigenentwicklungen habe ich selten in einem so mächtigen System gesehen. Ein Kunde wird seine Applikation sogar als SaaS anbieten. Damit kann Captain Casa dann auch zeigen wie sich das Framework innerhalb der Wolke verhält. Da aber viel auf Standards gesetzt wird sind hier eher positive Ergebnisse zu erwarten.

Die von den Kunden eingesetzten Technologie Stacks waren durchaus unterschiedlich, besaßen jedoch auch Gemeinsamkeiten. Eine häufige Kombination war Tomcat als Webcontainer für JSF und Hibernate zur Realisierung der Persistenz. Ab und an wurde noch ein EJB Container in Form von JBOSS seltener Classfish ergänzt. Bei den verwendeten Datenbanksystemen war es bunt gemischt. Vom Platzhirsch Oracle über MSSQL Server bis PostgreSQL war vieles vertreten.

Besonders schön empfand ich es, dass einige Präsentationen nicht nur die umgesetzten Features darstellten sondern auch auf Probleme eingingen. Dies führte zu einem besonders fruchtbaren Erfahrungsaustausch, da andere Kunden die gerade dabei waren ähnliche Wege zu beschreiten gleich prüfen konnten ob bei ihnen ein mögliches Risiko bestand. Vor allem aber konnten sie sich Tipps holen wie das Problem vermieden werden kann.

Captain Casa und Open Source

Die Captain Casa GmbH scheint generell eine Open Source freundliche Firma zu sein. Was jetzt nicht heißt, dass das Casa Framework Open Source Software sei. Nein – das nicht. Der Bezug des Quelltextes wird erst bei entsprechender, kostenpflichtiger Lizensierung möglich. Aber es sind Open Source Produkte wie Open Office und Thunderbird intern im Einsatz. Was in anderen Firmen ja teilweise undenkbar ist. Erkennbar war dies in den Vorbereitungspausen zu einzelnen Präsentationen.

Außerdem stellt Captain Casa eine freie Binary Lizenz für Entwickler bereit. Auf Wunsch kann diese auch in Form eines Dokumentes bereitgestellt werden. Diese Lizenz ist nicht exklusiv und ohne Garantien. Der Quellkode ist nicht dabei, das Logo darf nicht ausgeblendet werden aber die damit erstellten Programme dürfen mit den enthaltenen Casa Binaries verbunden an die Endnutzer weiter gegeben werden. Gerade dies ist aus meiner Sicht ein ganz wichtiger Punkt für die Entwicklung von Anwendungen im Open Source Bereich.

In der Lizenzpolitik unterscheidet sich Captain Casa damit entschieden von anderen Konkurrenzprodukten. Auf Grundlage meiner persönlichen Erfahrungen kann ich hier nur mit Canoo vergleichen. Letztlich war es die Lizenzpolitik von Canoo weshalb ich deren Framework nicht umfangreich evaluieren konnte und mich so gegen dessen Verwendung entscheiden musste. Auch einige Kunden von Captain Casa hatten zunächst Vaadin, JavaFX sowie Canoo evaluiert und sich schließlich für Captain Casa entschieden.

Schlußwort

Zusammenfassend habe ich den Eindruck erhalten, dass es sich beim Captain Casa Enterprise Client um ein sehr gutes, solides und fantastisches Framework handelt.

Hinweise und Kommentare zum Artikel sind wie immer ausdrücklich erwünscht.