Die Plattform bietet Unterstützung für eine ungewöhnlich breite Palette an Paradigmen, die sich gegenseitig ergänzen:
Objektorientierte Programmierung (OOP): Klassen, Objekte und Vererbung für wiederverwendbare, modulare Softwarekomponenten. Wird primär in C#-Skripten und Managed Classes eingesetzt, um Geschäftslogik strukturiert zu kapseln.
Ereignisgesteuerte Programmierung: Aktionen werden durch Benutzer- oder Systemereignisse ausgelöst — onClick, onChange, onLoad, onSave. Die Plattform ordnet Ereignisse automatisch basierend auf dem UI-Elementtyp zu, was die Entwicklung reaktionsfähiger Oberflächen erheblich beschleunigt.
Server-Side Programming (SSP) mit C#: Serverseitige Logik für Backend-Prozesse, Datenverarbeitung und Geschäftslogik. C#-Skripte werden in serverseitigen Events wie AfterFormInit oder AfterSave eingesetzt und über Managed Classes zentral verwaltet.
Deklarative Programmierung: Beschreibt „was“ geschehen soll, nicht „wie“ — umgesetzt durch SQL-Sichten, Trigger, gespeicherte Prozeduren und benutzerdefinierte Funktionen. Besonders geeignet für Datenabfragen und -manipulation ohne detaillierte Kontrollstrukturen.
Funktionale Programmierung: Funktionen als First-Class-Objekte, insbesondere in asynchronen Kontexten und clientseitigem JavaScript. Ermöglicht saubere Verarbeitung von Datenflüssen und Asynchronität in UI- und Verarbeitungsszenarien.
Data-Driven Programming: Der Programmfluss wird durch die Daten selbst gesteuert — dynamische n:m-Beziehungen, SQL-Filter und datengetriebene UI-Elemente. Anwendungen passen sich dynamisch an die Datenstruktur an.
Constraint-Programmierung: Regeln und Constraints sichern Datenintegrität und Geschäftsregeln direkt in der Datenverarbeitung ab. Validierungen werden deklarativ definiert und systemweit durchgesetzt.
Reaktive Programmierung: Anwendungen reagieren auf Zustands- oder Datenänderungen, umgesetzt durch die Adaptive Korrelations-Engine (ACE) und ereignisgesteuerte Masken. Die ACE leitet Werte und Zustände über Objektgrenzen hinweg ab, ohne dass Entwickler komplexe Kaskaden manuell programmieren müssen.
Regelbasierte Programmierung: Regeln definieren Aktionen und Zugriffe situationsabhängig — etwa bei der Berechtigungsvergabe oder der regelbasierten Steuerung auf Datenebene. Regeln wirken automatisch beim Laden einer Maske, unabhängig von der konkreten Benutzeroberfläche.