Neues und Altes aus der Softwareprogrammierung

Totgesagte leben länger: Warum ich den „Dinosaurier“ Domino als perfektes Backend für Vue 3 nutze

Jörg Reck  May 1 2026 09:12:36 AM
In der IT-Welt jagen wir oft dem neuesten Framework-Hype hinterher. Doch im Mittelstand zählt für mich eine andere Währung: Verlässlichkeit und Effizienz. In einem aktuellen Projekt habe ich eine verstaubte Excel-Fahrzeugverwaltung in eine moderne Web-App transformiert – und das auf einer Infrastruktur, die viele bereits auf dem Schrotthaufen der Geschichte wähnten.

Meine Botschaft ist klar: Der Dinosaurier lebt, er ist hungrig und er ist verdammt effizient!

Die Ausgangslage: Mein Kampf gegen das Excel-Chaos

  • Der Bestand: 20–30 Fahrzeuge, mühsam verwaltet in einer überladenen Excel-Tabelle.
  • Mein Schmerzpunkt: Keine Echtzeit-Auswertungen, keine saubere Historie, mühsame Kollaboration.
  • Die Hürde: Das Budget für neue Server oder Cloud-Infrastruktur lag bei exakt 0 €.
  • Meine Ressource: Ein bereits vorhandener, stabil laufender HCL Domino Server.

Meine Architektur: Der „Single File Stack“

Anstatt ein komplexes Geflecht aus Docker-Containern, Reverse Proxies und Datenbanken hochzuziehen, nutze ich die Domino-Datenbank (.nsf) als mein Schweizer Taschenmesser. Eine einzige Datei übernimmt hier für mich alle Rollen:

  1. NoSQL-Datenspeicher: Dokumentenorientierte Speicherung (Notes-Dokumente).
  2. Webserver: Der bewährte Domino HTTP-Task.
  3. Frontend-Hosting: File Resources für die Web-Assets.
  4. API-Gateway: Native JSON-Schnittstellen über Views.

Der technische Deep-Dive

1. Frontend: Wie ich Vue 3 & Vite in Domino integriere

Ich nutze ein modernes Vue 3 (Composition API) Frontend, gebaut mit Vite. Da Domino von Haus aus keine URL-Rewrite-Rules für das moderne HTML5-History-Routing mitbringt, habe ich mich für den Hash-Mode entschieden.

  • Mein Vorteil: Die App ist unter einer festen URL (z.B. /apps/fleet.nsf/index.html) erreichbar.
  • Mein Deployment: Ein einfaches Script schiebt meinen dist-Ordner per DXL oder Designer-Import direkt in die File Resources der NSF.
2. API & Struktur: DXL als mein Schweizer Taschenmesser

Hier kommt der Clou: Ich klicke mir die Datenbankstruktur nicht mühsam im Designer zusammen. Ich nutze DXL (Domino XML Language), um die gesamte App programmatisch aufzubauen:

  • Provisioning: Ich erstelle die notwendigen Forms (Masken) für die Datenvalidierung und die Views (Ansichten) für die API-Endpunkte direkt via DXL-Import.
  • Datenmigration: Die Altdaten aus Excel werden per SheetJS geparst, in das Domino-XML-Schema transformiert und dann samt Design-Elementen in die NSF importiert.
  • Vorteil: Das gesamte Backend ist somit quasi "Infrastructure as Code" – versionierbar, reproduzierbar und sauber dokumentiert.
3. High-Speed JSON ohne eine Zeile Code

Sobald die Views via DXL erstellt sind, lässt der Dinosaurier die Muskeln spielen. Ich schreibe keine REST-Endpunkte in Java oder LotusScript, sondern nutze die Native ReadViewEntries API:

GET /fleet.nsf/api_v1_vehicles?ReadViewEntries&OutputFormat=JSON&Count=1000

  • Performance: Domino serialisiert die C-API-Daten direkt in JSON. Das ist nach meiner Erfahrung schneller als jeder interpretierte Code.
  • Abfrage-Logik: Die Selektionsformel der View fungiert als meine Query. Den Rest erledigt der Server-Index in Millisekunden.

Sicherheit: Fort Knox inklusive

Während ich bei modernen Stacks oft an der Integration von OAuth2 oder LDAP-Handshakes verzweifle, nutze ich hier einfach das, was da ist:

  • Authentifizierung: Bestehende Domino-Web-Anmeldung (Session-Cookie).
  • Autorisierung: Die knallharte Access Control List (ACL) der NSF.
Wer keinen Zugriff auf meine Datenbank hat, sieht nicht ein einziges Byte JSON. Kein zusätzliches Hardening notwendig.


Warum ich das „hervorragend“ finde

Manche nennen es "Legacy", ich nenne es "Ultimate Stability".

  • Zero Footprint: Keine neue VM, keine neue IP-Adresse, kein Patch-Management für neue Linux-Distributionen.
  • Modern UX: Mein Endanwender sieht ein reaktives Dashboard mit PrimeVue-Komponenten, KPIs und flüssigen Übergängen. Dass im Hintergrund ein System aus den 90ern atmet, merkt man nur an der extremen Stabilität.
  • Wartungsarm: Während Node.js-Projekte nach zwei Jahren oft in der "Dependency Hell" landen, läuft mein Domino-Kern einfach weiter.

Mein Fazit

Lotus Domino als Plattform für eine Vue-SPA zu nutzen, wirkt 2026 vielleicht wie ein Anachronismus. Doch architektonisch ist es für mich in bestehenden Domino-Landschaften ein Geniestreich.

Es ist der Beweis: Ich muss das Rad nicht neu erfinden, wenn der alte Wagen noch 200 km/h fährt. Der Dinosaurier lebt – und er sieht mit Vue 3 verdammt gut aus!