You can edit almost every page by Creating an account. Otherwise, see the FAQ.

CaptainCasa Enterprise Client

Aus EverybodyWiki Bios & Wiki
Wechseln zu:Navigation, Suche

CaptainCasa Enterprise Client

[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value)
Entwickler CaptainCasa GmbH
Erscheinungsjahr 2007
Aktuelle Version 6.0
Betriebssystem plattformübergreifend
Programmiersprache Java
Kategorie Webframework
Lizenz Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value)
https://www.CaptainCasa.com

CaptainCasa Enterprise Client ist ein Webframework. Es besteht aus:

  • einem generischen Rendering-Client, der im Browser als JavaScript Anwendung läuft
  • einer Server-seitigen Dialogverarbeitung, innerhalb derer Dialoge definiert und an die Anwendung angebunden werden

Die Entwicklung geschieht rein auf Basis von server-seitigem Java. Die im Server entwickelten Dialoge werden zur Laufzeit als XML-Layout-Beschreibung zum Rendering-Client geschickt und von diesem in eine Oberfläche umgesetzt. Benutzereingaben in der Oberfläche werden umgekehrt zum Server geschickt und führen dort zu einer Verarbeitung in der Anwendung.

CaptainCasa Enterprise Client ist gratis nutzbar – ein Zugriff auf die Sourcen sowie Support und Mitarbeit am "RISC" Client ist an eine kommerzielle Lizenz gebunden.[1] Die Software kann über die Downloadseite der CaptainCasa GmbH bezogen werden.

Autoren und Community[Bearbeiten]

CaptainCasa Enterprise Client wird entwickelt durch die deutsche Firma CaptainCasa GmbH.[2]

Die Nutzer sind über ein Community-Konzept in die Entwicklung eingebunden. Sie sind einerseits über ein Forum[3] und andererseits über ein jährlich stattfindendes Community Treffen verbunden.[4][5]

Geschichte und Verbreitung[Bearbeiten]

Die Entwicklung von CaptainCasa Enterprise Client begann im Jahre 2007 – wobei zunächst ein Java-Swing basierter Client als Rendering-Client genutzt wurde[6]. Im Jahre 2012 kam ein Java-FX basierter Client als Alternative hinzu. Im Jahre 2017 wurde ein Web-Client eingeführt, der die beiden Java-basierten Clients komplett ablöste.[7]

Durch die Server-seitige Dialogverarbeitung und die damit verbundene explizite Abkopplung des Frontend-Clients vom Server konnte der Austausch der Clients ohne Änderung der Server-seitigen Anwendungsverarbeitung durchgeführt werden.

CaptainCasa wird vornehmlich im deutschsprachigen europäischen Raum genutzt. Nutzer sind in der Regel kleine bis mittelständische Softwarehäuser (ISVs) im Bereich der Entwicklung von Unternehmensanwendungen oder Softwareentwicklungsabteilungen größerer Unternehmen. Im Community Forum sind Stand 2023-05-04 295 aktive Entwickler registriert, die Anzahl der Forumsbeiträge liegt bei 9.227.[8]

Entwicklungskonzepte[Bearbeiten]

Die Entwicklung von Dialogen geschieht in zwei Schritten[9]:

  • Definition des Dialog-Layouts und seiner enthaltenen Controls
  • Entwickeln einer Java-Klasse, in der die Daten zum Dialog gehalten und verarbeitet werden

Definition des Dialog-Layouts[Bearbeiten]

Die einfachste Art der Definition des Dialog-Layouts geschieht über eine XML-Definition, in der Control-Instanzen als Baum angeordnet werden. Beispiel:

<t:rowbodypane>
  <t:row>
    <t:tabbedpane width="100%">
      <t:tabbedpanetab padding="20" rowdistance="5" text="First Tab">
        <t:row>
          <t:field text="#{DemoHelloWorld.name}" labeltext="Your Name" width="200" />
        </t:row>
        <t:row>
          <t:button actionListener="#{DemoHelloWorld.onHello}" text="Hello" />
        </t:row>
        <t:rowdistance  height="20" />
        <t:row>
          <t:field enabled="false" text="#{DemoHelloWorld.output}" labeltext="Result" width="100%" />
        </t:row>
      </t:tabbedpanetab>
      <t:tabbedpanetab text="Second Tab" />
    </t:tabbedpane>
  </t:row>
</t:rowbodypane>

Innerhalb der Control-Instanzen werden Attribute entweder direkt (text="Result") oder über einen Expression (text="#{DemoHelloWorld.output}") definiert. Ebenso werden Expressions genutzt, um Ereignisse einer Control-Instanz an eine zugehörige Verarbeitungsmethode weiterzuleiten (actionListener="#{DemoHelloWorld.onHello}").

Java-Klasse[Bearbeiten]

Eine Java-Klasse stellt die über Expressions referenzierten Daten und Methoden zur Verfügung:

package demo;
import javax.faces.event.ActionEvent;
public class DemoHelloWorld
{
    String m_name;
    String m_output;
    public void setName(String value)
    {
        m_name = value;
    }
    public String getName()
    {
        return m_name;
    }
    public String getOutput()
    {
        return m_output;
    }
    public void onHello(ActionEvent ae)
    {
        if (m_name == null)
            m_output = "No name set.";
        else
            m_output = "Hello World, " + m_name + "!";
    }
}

Weiterführende Konzepte[Bearbeiten]

Aufbauend auf diesem Prinzip gibt es verschiedene weiterführende Konzepte:

  • Dynamische Gestaltung des Layouts (statt über XML wird die Layout-Definition über ein API durchgeführt)
  • Dynamische Gestaltung der Java-Klasse (statt über set/get-Implementierung werden Expressions über HashMap/Listen-Strukturen implementiert)
  • Verschachtelung/Modularisierung von Dialogen: jeder Dialog kann einfach oder mehrfach in einen anderen Dialog eingebunden werden.

Werkzeuge[Bearbeiten]

Bestandteil des CaptainCasa Enterprise Clients sind verschiedene Werkzeuge, die bei der Entwicklung von Dialogen unterstützen:

  • Dialog Designer (WYSIWYG – "what you see is what you get")
  • Java-Code Generator
  • Java-Code Browser
  • Literal-Translator
  • Performance-Analyzer

Die Entwicklung von Java findet über klassische Entwicklungsumgebungen statt, z. B.: Eclipse, NetBeans, IntelliJ IDEA und andere.

CaptainCasa RISC-HTML Methode[Bearbeiten]

Um die Verarbeitung im Client möglichst stabil gegenüber Unterschieden in Browser-Implementierungen zu halten und um volle Freiheit beim Layouting von Komponenten zu haben, hat CaptainCasa 2017 die sogenannte „RISC-HTML“ Methode[10][11] definiert. Hierbei wird von den vom Browser zur Verfügung gestellten grafischen Elementen nur ein minimaler Bruchteil verwendet ("Nukleuselemente") und diese werden ihrerseits nur über einen Bruchteil ihrer zur Verfügung stehenden Funktionen angesprochen. Alle Controls, die im Rahmen der Control-Bibliothek des CaptainCasa Frameworks zur Verfügung gestellt werden, setzen sich innerhalb des Clients aus diesen Nukleuselementen zusammen.

Nukleuselemente und Controls sind JavaScript-Klassen, wobei nur die Nukleuselemente direkten Zugriff auf die DOM-Elemente des Browsers haben.

Nutzungsszenarien[Bearbeiten]

Inhaltlich wendet sich CaptainCasa Enterprise Client an Webfrontend-Entwickler in folgenden Nutzungsszenarien[12]:

  • Operativ genutzte Geschäftsanwendungen (z. B. durch Sachbearbeiter, Werker, Administrator, Mitarbeiter)
  • Geschäftsanwendungen mit langem Lebenszyklus
  • Geschäftsanwendungen mit großem Umfang an Dialogen

Technologisch läuft CaptainCasa Enterprise Client Server-seitg als Java-basierte Implementierung innerhalb einer Servlet-Verarbeitung.

Alternativen[Bearbeiten]

Die Architektur der Server-seitiges Dialogverarbeitung steht zunächst in Konkurrenz zur Client-seitigen Dialogverarbeitung. Bei der Client-seitigen Dialogverarbeitung geschieht die Entwicklung der Dialoge direkt durch Programmierung von JavaScript oder darauf aufsetzenden Sprachen.

Vertreter der Client-seitigen Frameworks sind:

Innerhalb der Frameworks zur Server-seitigen Dialogverarbeitung gibt es folgende Alternativen:

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Licensing. Abgerufen am 16. April 2023 (english).
  2. CaptainCasa GmbH Webseite. Abgerufen am 4. Mai 2023 (english).
  3. CaptainCasa Community Forum. Abgerufen am 4. Mai 2023 (english).
  4. XVII. Community Meeting. Abgerufen am 4. Mai 2023 (english).
  5. Bericht zu Community Meeting. Abgerufen am 7. Mai 2023.
  6. Erste Version von CaptainCasa - noch mit Swing Client (Bericht in "Java aktuell" 04/2011). Abgerufen am 4. Mai 2023.
  7. Geschichte CaptainCasa Enterprise Client. Abgerufen am 4. Mai 2023 (english).
  8. CaptainCasa Community Forum, Forumsdikussionen. Abgerufen am 4. Mai 2023 (english).
  9. Entwicklungsprinzipien. Abgerufen am 4. Mai 2023 (english).
  10. The "RISC" Method. In: Enterprise Client. Abgerufen am 31. Dezember 2020 (british English).
  11. Patent zu der RISC-Methode, Status "Anhängig/in Kraft". Abgerufen am 7. Mai 2023 (deutsch).
  12. Nutzungsszenarien. Abgerufen am 4. Mai 2023 (english).


Diese artikel "CaptainCasa Enterprise Client" ist von Wikipedia The list of its authors can be seen in its historical and/or the page Edithistory:CaptainCasa Enterprise Client.



Read or create/edit this page in another language[Bearbeiten]