Mit Xataface existiert eine hierzulande wenig bekannte Open-Source-Anwendung, um schnell Datenbankanwendungen für das Web zu erstellen. Gerade für User, die wenig oder gar nicht programmieren wollen, aber eine Datenbankanwendung im Browser benötigen, so wie man es von Microsoft Access oder Filemaker kennt, ist Xataface möglicherweise ein gute Alternative.
Oftmals steht man vor der Aufgabe, eine Website zu erstellen, die eher eine Art Webanwendung ist: Daten werden eingegeben, gespeichert, verarbeitet, ausgegeben. Content Management Systeme machen genau so etwas. Und wenn es darum geht, eine Website zu erstellen, ist man meistens mit einem CMS sehr gut bedient. Und für andere Bereiche wie Blogs, Ticketmanagementsysteme, Foren etc. gibt es fertige Lösungen.
Doch was ist, wenn andere Funktionen gewünscht sind. Wenn man beispielsweise eine Datenbankanwendung aufsetzen will, also zum Beispiel Verzeichnisse mit eigener inhaltlicher Struktur?
Im Desktop- bzw. Notebookbereich sind Anwendungen wie Microsoft Access oder Filemaker sehr beliebt. Mit diesen Produkten gelingt es, relationale Datenbanken zu erstellen, ohne, das man dafür programmieren muss. Die grafischen Userinterfaces sind sehr leistungsfähig. Man erzeugt Eingabeformulare, Abfragen, Berichte und andere Ausgaben in kurzer Zeit.
Mit entsprechenden proprietären Serverlösungen bekommt man diese Datenbankanwendungen auch ins Web. Doch meistens werden zusätzliche Softwarelizenzen fällig.
Im Webbereich haben wir mit MySQL ein sehr leistungsfähiges Datenbanksystem zur Verfügung. Im Regelfall wird man, wenn man beispielsweise eine Verzeichnissystem erstellen möchte, die entsprechende MySQL-Datenbank entwerfen und aufsetzen, mit HTML, CSS und Javascript hübsche Seiten zur Eingabe und Ausgabe von Daten erstellen und die Prozess- oder Businesslogik mit PHP realisieren, also etwa die Übergabe und Übernahme von Eingaben die die Datenbank, die Behandlung der Daten, so wie sie gewünscht ist und Dinge wie Suchen, Ersetzen, Löschen sowie die Generierung von Berichten.
Das klingt nach viel Programmierarbeit und ist es sicher auch, je nach Projekt. Daher wäre es toll, wenn man so ein System wie Microsoft Access hätte, um Datenbanken für das Web aufzusetzen, ohne Programmierung in PHP oder Javascript.
Es gibt sogenannte grafische Frontends für MySQL-Datenbanken. PHPMyAdmin gehört dazu. Dies ist über das goneo Kundencenter zugänglich, um bei goneo gehostete Datenbanken anzusprechen und Änderungen durchzuführen. Ein anderes beliebtes, grafisches Frontend unter Open-Source-Lizenz für MySQL-Datenbanken ist Workbench.
Workbench installiert man auf dem PC oder Notebook. Entfernte Datenbanken, die auf einem Server liegen, spricht man auf Workbench heraus mit ODBC an. Zum Designen der Datenbank sind diese Tools wunderbar. Die Funktionalität einer Access-Anwendung hat man aber nicht.
Für PHP gibt es eine Reihe von Frameworks, die die Entwicklung von Datenbankanwendungen unterstützen. Limbas gehört dazu, hier ein Artikel auf entwickler.de. Andere schwören auf Simfony. Doch diese Frameworks richten sich an Coder, die Funktionen im Code abbilden wollen.
Wer datenbankorientiert vorgehen will und eher in diesem Bereich seinen Fokus sieht, griff eben gerne zu Desktop-Datenbanksystemen.
Eine Alternative als Open-Source-Access-Replacement bietet Xataface von Steve Hannah (Website) ansehen. Die aktuellste Version dieses Datenbank-Frameworks stammt aus 2016 und trägt die Nummer 2.1.3 (siehe Github).
Wofür ist Xataface gedacht?
Mit Xataface gelingt es, in recht kurzer Zeit eine Datenbankanwendung auf dem eigenen Webserver oder auf dem Webspace bereit zu stellen. Voraussetzung ist, dass PHP und MySQL verfügbar sind – dies ist bei goneo natürlich gegeben.
Die Datenbanktabellen selbst werden praktischerweise mit z.B. PHPMyAdmin definiert. PHPMyAdmin ist als „Datenbankadmintool“ im goneo Kundencenter für Webhostingpakete und managed Server installiert. Die Zugangsdaten für die jeweilige Datenbank (in einem Webhostingpaket stehen viele Datenbanken zur Verfügung, je nach Tarif) findet man im Kundencenter-Abschnitt „Webserver“.
Was macht man mit Xataface und wie funktioniert es?
Die Installation ist für PHP 5.6 recht einfach. Es sind eigentlich nur ein paar Dateien auf den Webspace zu kopieren. Für PHP müsste man einige Vorkehrungen treffen, aber Xataface funktioniert grundsätzlich auch mit neuen PHP-Versionen.
Xataface bringt einen Installer mit, den man kurz ausführt, damit die passende Konfigurationsdatei geschrieben wird. Dies umfasst insbesondere den FTP- und Datenbankzugang, die der Xataface-Installer natürlich nicht selbst ermitteln kann. Diese Informationen müssen im Dialog eingetippt werden.
Als nächstes ist es erforderlich, eine Application anzulegen. Wie das funktioniert, ist im Getting started-Tutorial unter http://xataface.com/documentation/tutorial/getting_started beschrieben. Eine PDF-Anleitung für Xataface und Dataface gibt es auch.
Im Grunde musst du nur folgende Schritte erledigen, um eine Online-Datenbankanwendung aufzusetzen:
- Das Xataface-Framework muss auf einen Webspace auf einem Server, der PHP verarbeiten kann und Zugang zu einer MySQL-Datenbank bietet. Dies ist bei goneo in allen Hosting- und Serverpaketen gegeben. Man lädt die Dateien herunter und auf dem Zielsystem hoch und entpackt sie. In den Dateien ist eine Beispielanwendung enthalten.
- In der Installationsanleitung wird beschrieben, wie man die Beispielanwendung über das Frontend hochlädt und die Einstellungen so halbautomatisch einsetzen kann. Nach einigen Tests funktioniert das nicht besonders komfortabel. Du solltest dies manuell vornehmen.
- Bau deine Datenbank, eventuell mit Hilfe von PHPMyAdmin (bei goneo im Kundencenter erreichbar unter dem Menüpunkt „Datenbank-Admintool“ unter dem Hauptpunkt „Webserver“).
- Um die Anwendung zu konfigurieren, legst du eine Datei conf.ini an und definierst in dieser Textdatei den Datenbankzugang und die Tabellen dieser Datenbank. die du in deiner Anwendung verwenden möchtest. Füge einige Zeilen der .htaccess-Datei hinzu, damit conf.ini nicht aus dem Web aufgerufen werden kann.
- Das Aussehen der Anwendung – das Frontend – ist durch ein Template festgelegt. Aktuell mit „G2“ mitgeliefert und integriert. Dieses Template ist voreingestellt, kann aber mit der Templateengine Smarty geändert werden.
Wie Xataface im Browser aussieht, davob gibt dieses Tutorial7Preview-Video einen Eindruck:
https://www.youtube.com/watch?v=ehXIeIEoaeA
Das Projekt von Steve Hannah hat sich seit 2005 natürlich immer weiterentwickelt. Auf den Seiten von Xataface wirst du mit verschiedenen Themes konfrontiert, was anfangs leicht zur Verwirrung beitragen kann. Es wird von „Xataface“ und von „Dataface“ gesprochen. Bei letzterem wird meist Bezug auf das Frontend genommen, also auf die Ansicht im Browser. Seit der Einführung des G2-Templates dominiert offensichtlich die Bezeichnung Xataface.
Das Grundprinzip hat sich aber nicht verändert. Das Aufsetzen ist sehr einfach und man erhält eine Online-Datenbank, die sehr gut angepasst werden kann, was die Eingabemöglichkeiten angeht (Texteditor etc.).
Du kannst über das Xataface-Framework auch Relationen definieren, das heißt, Datenbanktabellen anhand von gemeinsamen Kriterien verknüpfen.
Weitere Möglichkeiten bieten sich durch ein Actions-Konzept, mit dem Veränderungen an den Daten oder andere Interaktionen ausgelöst werden können. Man kann sich dies wie die Erstellung von Makros vorstellen. So kannst du den Funktionsumfang individuell erweitern.
Xataface verfügt über ein filigranes Rollen-/Rechtemanagement. Außerdem kann man ein Report-Modul hinzufügen, mit dem Datenbankinhalte ausgegeben werden können.
Der größte Nachteil ist eventuell die Dokumentation, die nur in englischer Sprache vorliegt. Steve Hannah beantwortet über ein Wiki und ein Forum Fragen zu Xataface, allerdings eben auch auf Englisch.
Hallo Markus,
ich bin auf deinen Artikel gestoßen und möchte zu Limbas ergänzen, dass es kein reines Coding Framework ist.
Limbas wurde als datenbankunabhängiges Open Source Replacement für MS Access erstellt und bedient sich ebenfalls einer grafischen Oberfläche. Gleichzeitig werden neben Limbas keine weiteren Tools wie z.B. phpMyAdmin benötigt.
Die Funktionen in Limbas sind benutzerfreundlich und Lösungen lassen sich ohne Programmierkenntnisse erstellen.
Zahlreiche Basisfunktionalitäten die in Limbas fest integriert sind, wie Dateimanager, DMS und vieles mehr unterstützen dies zusätzlich.
Auf Wunsch lassen sich Codes zusätzlich mit einbauen, wie es in dem von Dir verlinkten Artikel beschrieben ist. Dort wird beschrieben wie Codes bei Bedarf eingebunden werden um das System durch Erweiterungen noch flexibler zu machen.
Zudem kann Limbas ohne Weiteres auf goneo Webservern verwendet werden.
In der aktuellen Version 3.6 unterstützt Limbas PHP bis einschließlich 7.3.
Liebe Grüße
Martina Hatzinger
LIMBAS GmbH
http://www.limbas.com
Hallo Martina, danke für den Hinweis. Das werden wir uns auf jeden Fall zeitnah ansehen… LG Markus