The InstantView RAD Framework

Objective

InstantView includes an interactive design tool (workbench) that automatically generates the InstantView code for an interface description.

This tool is itself written with InstantView: Here, InstantView processes the window objects of the interface instead of the business objects.

InstantView code can be edited alternately with the workbench or with an editor. The code generator of the design tool modifies existing code while retaining the formatting and comments made with the editor.

Since the Workbench itself consists of InstantView code, it can be seen as an easily modifiable construction kit of a design tool. A reduced version - MiniWorkbench - can be integrated into an application to support quick changes.

Application modules are program parts written with the InstantView scripting language. They correspond to a subtask or a work step of the application and determine how an application presents itself to the user. The modules are compiled in an extensive library, the AppsWarehouse. Thus, various modules are available for the same subtasks.

Dynamic interface to business objects

The InstantView software layer provides powerful building blocks for the presentation and interactive processing of data, tailored to the needs of business applications. The corresponding C++ classes are not directly accessible, but are accessed via a simple language executed by the InstantView interpreter. This makes it possible to modify the user interface at program runtime - for example, directly during a discussion with a user.

The interpreter protects the underlying system and ensures high fault tolerance. Changes to the applications no longer pose a high risk of error, and the changed InstantView code can be replaced while the system is running.

InstantView statements for the data transfer between (business) objects and the interface are based on the definition of a mapping of the data to the elements of the Window interface. This makes the input and output of any data - the recurring task in all applications - particularly easy and elegant to describe.

InstantView is object oriented with all its facets, which is reflected in the modules, whereby the inheritance also refers to the Windows resources: You can modify the Windows surface of a module by derivation, thus avoiding the copying of code segments and the associated problems of the.

InstantView statements naturally have full access to all data fields of business objects and can call their methods.

InstantView is the dynamic interface to business objects, which

  • organizes the visualization and
  • controls the interaction of the business objects.

The last point implies that there is a division of tasks between the C++ code in the methods of the objects and algorithms formulated with InstantView, which facilitates the adaptation to constantly varying requirements.
The runtime system of the InstantView software layer contains C++ classes that include

  • organize the user interface (basic modules for visualization).
  • Allow operations with objects and object sets (collections).
  • implement the object character of the applets (encapsulation by messages, inheritance, polymorphism).
  • Make services of the database accessible.

These services are called by the InstantView source code organized in modules. Modules communicate with each other exclusively by means of messages (and are therefore largely decoupled). A module can easily be replaced by a module with similar functionality.

Multimedia objects, voice input

The InstantView statements for data input DrainWindow and data output FillWindow also support bitmaps (graphics) as data fields of business objects.

Graphics can also be used as the background of any window or as icons for a button.

A video file can be played in any suitable surface object and there are instructions for playing wave files (audio).

Input fields can be activated for voice input, i.e. the input field that has the focus would accept both keyboard input and text spoken into the microphone. Commands can be arranged, i.e. tuples of a word and a message (see COM objects) are registered. If a word logged on as a command is recognized, it is not part of the entered text but the message associated with the word is triggered.

Print

InstantView supports the creation of print lists. Output texts, OLE objects, bitmaps, and other graphical elements such as lines and rectangles can be placed at any position in the current page or within the entire document at any time (page concept).

Parts of the window interface can be transferred to the print list; in the case of an object box, this also includes the lines that are currently not visible.

If a print list is wider than the printer logged on to Windows, the list is distributed over several sheets.

Help system

HTML files are used for both the system's online help and the applications' help. The simple connection between InstantView source code and HTML files enables users to add their own comments to the help texts.

Each Window object can be assigned its own help.

InstantView Editor

A plug in for Eclipse is available for editing InstantView code. The editor supports debugging at runtime.