Konzept Architektur DbBow
Datenbank-Webapp-GeneratorName "DbBow"
- Db
- Datenbank
- Bow
- Benutzer Oberfläche für das Web
Zielsetzung
DbBow soll automatisiert, flexible und anpassbare Webbenutzeroberflächen für relationale Datenbanken erzeugen. Ziel ist den Programmieraufwand von Datenbank Webanwendungen durch Automatisierung zu reduzieren, dabei aber die Anpassbarkeit, Erweiterbarkeit und die Integrierbarkeit in andere Lösungen zu erhalten.Kreativität, Vernunft und Handwerk kann nicht durch Maschinelles "Lernen" oder LLM's ersetzt werden. Das Schaffen von Lösungen erfordert tatsächliche und nicht künstlich simulierte Fake Intelligenz. Das primäre Ziel ist daher nicht, wie bei manchen sogenannten Low oder No Code Lösungen, erfahrene Programmierer zu ersetzen, sondern sie mit einem flexiblen und leistungsstarken Werkzeug zu unterstützen. Die immer wiederkehrenden Funktionen von Datenbankanwendungen wie CRUD, Abfragemasken, Einzelsatzansicht, Tabellenansicht, Listenansicht, Kopf/Positionsansichten, Navigation, Datenvalidierung etc. sollen automatisiert erzeugt werden. Das Ergebnis soll aber anpassbar und leicht erweiterbar bleiben.
Prinzipien
- KISS: Keep It Simple and Stupid
- SOC: Seperation of concerns
Software Teile
- Maker:
- Ein Dynamic Site Generator. Ich schlage für dieses neue Konzept die Abkürzung DSG vor. Ähnlich wie ein SSG (Static Site Generator) erzeugt der Maker aus Metainformation über die Daten eine komplette Webanwendung mit statischen HTML Templates, die als Variablen nur mehr Platzhalter für die Daten enthalten. Dabei werden Datentypen HTML Oberflächenelementen zugeordnet und Seiten und Navigationsstrukturen erzeugt.
- MetaMaker:
- ist Teil davon und erzeugt die für den Maker notwendigen Metainformation aus Datenbank DDL und generischen Schema Definitionen, z.B. standardisierten Tabellen und Spaltennamen unter Anlehnung an vorhandenes Vokabular wie Microformats und Schema.org.
- AppMaker:
- Die Anpassungen für eine spezifische App. Optional.
- App:
- Der vom Maker generierte Programmcode für einen konkreten Satz Datenmetainformation.
- Runner:
- Das generische Webserver Laufzeitprogramm, dass die App HTML Oberfläche mittels SSR (Server Side Rendering) über HTTP zur Verfügung stellt
- Datenquelle:
- Eine Datenbank oder API, die die eigentlichen relationalen, strukturierten Daten zur Verfügung stellt.
Einfacher und effizienter ist jedoch in einem ersten Schritt die Implementierung mit vom Runner generierten, dynamischen Seiten (SSR). Daher wird im Sinne von KISS das zunächst realisiert. Allerdings mit der in sonst üblichen SSR Server Webanwendungen unüblichen strikter, sauberen Trennung zwischen statischen und dynamischen Inhalt.
Jänner 2024