© Ron Dale/Shutterstock.com
Teil 1: Mit TypeScript Metadata und Reflection ein Domänenmodell aufbauen

TypeScript domänenspezifisch nutzen?


TypeScript-Sprachkonstrukte ermöglichen es, mit überschaubarem Aufwand einen modellgetriebenen Ansatz aus folgenden Elementen zu etablieren: einem Domänenmodell, einem daraus erzeugten maschinenlesbaren Schema und einer pragmatischen, hierarchischen Query Language.

Artikelserie

Teil 1: Mit TypeScript Metadata und Reflection ein Domänenmodell aufbauen

Teil 2: Mit TypeScript Union Types die Grammatik für eine hierarchische QL definieren

Teil 3: Abfragen am Server generisch gegen eine relationale DB mappen und am Client typsicher verarbeiten

Webbasierte Applikationen haben sich zu Rich Clients entwickelt. Einer der Schwerpunkte bei datengetriebenen Rich Clients ist zweifellos ein möglichst effizienter und wartungsfreundlicher Datenaustausch mit Backends. Im Laufe der Zeit haben sich generische Abfragemethoden entwickelt, so z. B. OData, Facebook GraphQL oder Netflix Falcor. Da sie für möglichst breite Aufgabenstellungen konzipiert sind, bringen sie auch einen gewissen Overhead in Entwicklung und Ausführung mit sich. Wir wollen den Versuch wagen, mit den Konstrukten von TypeScript eine einfache, aber für die eigenen Bedürfnisse gut anpassbare Abfragesprache zu definieren. Die Basis dafür bildet ein Domänenmodell, das normale TypeScript-Klassen um Metadaten anreichert und aus dem ein maschinenlesbares Schema erzeugt wird. Letztendlich werden wir die in dieser Abfragesprache definierten Queries am Backend generisch auf eine relationale Datenbank mappen und das Ergebnis am Client typsicher verarbeiten. Durch die durchgängige TypeScript-Verwendung ersparen wir uns viel Overhead und schaffen Freiheitsgrade bei Design und Umsetzung.

Wissensmanagement oder Enterprise Relationship Management

Lassen Sie uns mit einem Beispiel aus der Praxis starten: In einem System, in dem es grob gesagt um das effiziente Verwalten und Wiederauffinden von Wissen oder Enterprise Relationship Management im weitesten Sinne geht, wird eine Vielzahl von Objekten logisch in einer netzwerkartigen Struktur gespeichert (Abb. 1).

image

Abb. 1: Verwaltung eines Wissensnetzwerks, einer Ontologie

Die physische Speicherung soll jetzt noch nicht relevant sein, sondern nur, dass die Objekte sehr stark miteinander vernetzt sind: Personen, Kunden, Lieferanten, Verträge, Angebote, Mails, Projekte, Teilprojekte, Telefonate, Ressourcen, Aufgaben, Termine, Mitarbeiter und viele mehr. Schaut man sich das Ganze aus einer Domain-driven-Design-Sicht an, fällt schnell auf, dass sich keine klare hierarchische Stru...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang