Der unmittelbar sichtbare Teil von InstantView® sind Windowobjekte,
von denen zur Zeit 30 verschiedene existieren. Windowobjekte besitzen Aktionslisten, in denen die Dynamik der Anwendung als Reaktion
auf Ereignisse festgelegt ist. Es gibt Systemereignisse und
frei definierte Messages (letztere sind ein wichtiges
softwaretechnisches Mittel zur Strukturierung komplexer Anwendungen in voneinander
unabhängige Module).
Windowressourcen und Aktionen werden mit InstantView®Script definiert - einer einfachen
Sprache, die, Bedürfnissen des Rapid Application Development entgegenkommend, so
entworfen wurde, dass auch der vor allem an der Anwendung interessierte Nicht-Informatiker
mit den Modellobjekten arbeiten kann. InstantView®(Script) soll leicht zu verstehen und
anzuwenden sein - in dieser Hinsicht vielleicht BASIC vergleichbar. Einfache,
überschaubare Konstrukte werden eleganten, aber komplizierten Lösungen vorgezogen:
- Kapselung: Unterschiedliche Module kommunizieren über Messages, die das Interface eines Moduls zur Außenwelt bilden. Um Module zusammenzufügen, müssen nur die akzeptierten Messages bekannt sein.
- Vererbung: Von einem Modul können weitere Module abgeleitet werden. Das abgeleitete Modul erbt die im Basismodul definierten Windowressourcen und Aktionen, um diese zu ergänzen oder durch Neudefinition zu überschreiben.
- Polymorphie: Alle geerbten Aktionen verhalten sich polymorph (analog virtual functions in C++).
Module sind die Softwarebausteine auf der höchsten Abstraktionsebene. Aus ihnen kann
sofort einen Anwendung zusammengestellt werden. Um auch sehr große Anwendungen zu
unterstützen, wurden externe Moduldefinitionen eingeführt.
Ein intelligentes Mapping zwischen Window- und Modell-Objekten steuert
den Datenaustausch zwischen Modell und Oberfläche. Die Visualisierung der Modelldaten wird einfach und effektiv (FillWindow, DrainWindow). Die Bindung zwischen View und Modell
beschreibt ein Zugriffsausdruck, mit dem u.a. Relationen
verfolgt und Funktionen aufgerufen werden können.
Die meisten Modellklassen von InstantView® haben die Fähigkeit, neben den durch die C++-Klassendefinition statisch festgelegten Daten auch dynamische Daten - Slots - zu halten. InstantView® sorgt dafür, dass Slots wie 'normale' Datenmember erscheinen. Slots können in einem Zugriffsausdruck erscheinen oder bei der Formulierung einer Query benutzt werden. Das Mapping zwischen Modell und Oberfläche trägt dem Umstand Rechnung, dass ein Slot nicht notwendigerweise in allen Instanzen einer Klasse vorhanden sein muss (volatile window objects).
InstantView® ist ein Interpreter. In InstantView®Script beschriebene Anwendungen werden beim Programmstart in ein zur Laufzeit sehr schnell interpretierbares internes Format übersetzt.
Die Oberfläche einer Anwendung wird im allgemeinen interaktiv mit der ClassiX® WorkBench aufgebaut. Die Workbench generiert automatisch die entsprechenden InstantView®Script-Files. Der generierte Code kann in jeder Stufe der Entwicklung mit einem Texteditor oder wieder mit der Workbench weiterbearbeitet werden.