The user interface

Hide Navigation Pane

The user interface

Previous topic Next topic No directory for this topic  

The user interface

Previous topic Next topic Topic directory requires JavaScript JavaScript is required for the print function Mail us feedback on this topic!  

One of the key design features of Persistate is the formal separation of the Controller and User Interface (UI) modules.  This allows these two modules to be either in the same process, in different processes or in different computers.  It also allows entirely different types of user interface to be created, such as classic desktop, browser based, mobile platform, touch screen, kiosk, etc.. The Controller does not have to be aware of the type of UI it is connected to.

Consequently, developing the UI can be notionally split into two parts.  The first is independent of the type of the UI, and is concerned with creating metadata describing the UI.  Unlike the Model, most of this metadata does not start life in the definition file.  You create it using the Persistate Generator application.  The second part of UI development involves creating a concrete implementation of a particular type of UI from the metadata, and refining it using standard development tools, such as Visual Studio. The Developing the user interface topic describes both aspects of this development process.

Once a UI has been created, it must be used.  The Controller module has access to the UI using an abstract class called, appropriately enough, UserInterface, and an interface representing a window (or equivalent) called IPWindow.  These abstract entities deal solely with the metadata representing the UI, and in fact have no way of even discovering the concrete type of the UI that they are actually attached to.  The Accessing the user interface section describes these entities.