OPENworkshop is Thoroughbred's Object-Oriented development environment. It features new evolutionary three-tier development concepts that enhance the way developers build business software. OPENworkshop is Thoroughbred's latest advance in application development technology. OPENworkshop is a complete three-tier development and run-time environment offering much lower development and maintenance costs, a more flexible system for users, and provides users the choice of both graphical and character user interfaces, as well as open database connectivity (ODBC).


An OPENworkshop application is built from Data Classes, Presentation Classes, and Methods. CONNECT directives are used to invoke classes and link one class to another. As a development and run-time environment, OPENworkshop includes Thoroughbred Basic™ a comprehensive Business BASIC 3GL language; Script-IV™, Thoroughbred's 4GL; Dictionary-IV™, Thoroughbred's System Object Dictionary; Report-IV™ and Query-IV™, Thoroughbred's reporting and query tools, and Source-IV™, Thoroughbred's source code management tool. OPENworkshop is the complete development and runtime system for your mission critical applications.

System Concepts

OPENworkshop redefines the relationships between data and program code, and between application designer and application user. Developers using OPENworkshop design their Data Objects first, and then associate Methods, which are independent modules of program code, with the Data Objects. In OPENworkshop the data controls the application code.

Because individual data names control their own code, OPENworkshop eliminates the concept of a MAIN program. In place of a controlled structure that is imposed on the user through menus and function keys, OPENworkshop provides CONNECT directives, pop-up menus and user interface support that allows the user to control the dialogue with the system.

Objects are packaged with their Methods, and are easy to reuse. Previous work is immediately available to use when creating other Objects with similar properties. Future modifications are automatically reflected in all places where the Object is used.

These benefits are important during initial application design, but even more important during the much longer maintenance life of an application. OPENworkshop adheres to three-tier architecture concepts providing a choice of character or Graphical User Interface (GUI) display, with the same code, and open database connectivity.

Object Concepts

Object Technology embodies the concept that any object defined in the system can control the operations and actions that can manipulate it. Objects in OPENworkshop are defined as Classes that can share common attributes and methods. OPENworkshop Classes include Data Classes and Presentation Classes. Other Object Technology concepts supported by OPENworkshop include Methods, Inheritance, Encapsulation, Polymorphism, Recursive Subroutines and Persistence.

Data Classes

Data Classes hold the application data. From the point of view of the application developer the most important Classes of Object are:

  • Data Name
    Defines an item of information, together with its attributes. A Data Name definition also specifies Methods to be used whenever the data item is created, displayed, or amended.
  • Format
    Collection of Data Names stored together in a single table in the OPENworkshop table or file.
  • Link
    Specifies the physical files or tables that will be used to store a Format and associated key indexes. It also specifies default Presentation Classes (View and Screen) to display the data and allows user acessibitilty to control the data editing. Specifies the Trigger Method to be used when any data in the Link is updated to ensure that Referential Integrity is maintained throughout the system.
  • Library
    Collects together all Classes relevant to an application sub-system.

Presentation Classes

Presentation Classes display or print information for the application user to browse, read, or edit. They also allow the user to select subsequent actions.

  • View
    Displays data items in spreadsheet form, as a table of rows and columns. Each column represents a different Data Name. Each row represents a record. Views display information from a single Link, and from multiple joined Links combining data items. Views can also display calculated values. Views allow the displayed data to be modified. Rows can be added or deleted from the file being displayed. Not all the columns have to be displayed and rows can be a subset based on selection criteria. They also allow users to "drill down" into the details or explore related information.
  • Screen
    Displays data items as a "form". Allows the data to be modified and records to be added or deleted from the file or table being displayed.
  • Message
    Displays a message with user response available to the calling object.
  • Report & Query
    Prints or lists formatted reports containing application data and, if required, calculated values.
  • Menu
    Presents a set of options for the user to select. Menus can be presented as a traditional, simple list, or as a matrix.
  • Help
    Displays context-sensitive Help messages.


Methods contain the program code that performs the logic of the application. In an OPENworkshop application, all program code is organized into Methods, each Method being associated with specific actions for classes of data object or presentation object. Methods are written in either Thoroughbred Basic or Script-IV.

  • View Method
    Called whenever a View is preparing a row to display. Insures that all data items required for display are available, and calculates any values required by the view.
  • Pre-Processing Method
    Called whenever a View or Screen is preparing to allow a user to edit a data item.
  • Post-Processing Method
    Called whenever a View or Screen has completed editing a data item. May be used , for example , to provide complex data validation or to modify related data items in the current row.
  • Insert Method
    Called whenever a View is required to add a new row. Can be used to prepare default values or to verify that the addition of a new row should be allowed.
  • Link Trigger Method
    Called whenever a record in a file or table is to be updated. The Trigger Method is responsible for insuring that the Data Names are being updated according to application rules and that any associated data will also be updated appropriately. Trigger Methods are the means by which OPENworkshop applications insure that referential integrity is preserved throughout the application.
  • After Read Method
    Called whenever a record has been read by a Screen. It prepares the record for editing.
  • Application Method
    Implements the Application logic. Users can initiate a method by selecting the appropriate option from a menu. Methods can also call other Methods. Such Methods may be designed to perform any purpose the application needs. Because OPENworkshop allows application code to be divided into Methods associated with Data Objects, each Method is focused on a specific activity. OPENworkshop Methods are self-contained. Simple, and effective.


The CONNECT directive is the most important directive in OPENworkshop. CONNECT allows "connections" to be made from one Object or Class to another. Views, Screens, Menus, Help, Report, and Query Classes can be "CONNECTed" directly between themselves. The CONNECT directive is the framework that links OPENworkshop Classes and Methods together. It not only invokes the required Object, but also is the vehicle for passing messages to the invoked Object.

Other Object Techonology Concepts


  • Inheritance
    In OPENworkshop all Classes are created and modified incrementally, and any definition created is interpreted consistently wherever it is referenced. OPENworkshop Formats and Links are used to collect these definitions together.
  • Encapsulation
    An Object may CONNECT to another OPENworkshop Object, and allow it to perform the operations it needs. When it has finished, it may return a value. It is the combination of these concepts that allows developers to reduce application development and maintenance costs.
  • Polymorphism
    An expression or message can operate on Objects of different Classes. This type of re-useable code greatly reduces development and maintenance costs.
  • Recursive Subroutines
    The ability to interrupt an action to undertake another action or subroutine, and then to interrupt this again with the same subroutine and so on. For the Thoroughbred Environment this is equivalent to Public Programs.
  • Persistence
    The value of data that remains after the Class or Method that created it no longer exists. An example is Data Objects that can be stored in files, which is the ultimate form of persistence.

Development Environment


Dictionary-IV is Thoroughbred's system wide Object Definition repository of information used by the system designer to store the definitions and descriptions of the objects. The object definitions include, Formats, Screens, Views, Links, Menus, System Messages, Help Messages, Reports, Queries, and Programs. Dictionary-IV is the foundation for all Thoroughbred Development Environments, and provides the basis for Thoroughbred's three-tier architecture. Character or GUI applications can use the same program code, and have access to any ODBC compliant database, including Oracle.

Thoroughbred Environment

Thoroughbred Environment is a feature rich, 3GL Business BASIC application language. The features of the Thoroughbred Environment include: Efficient B-Trieve file structure; Multi-key files; Extended variable names; Textual error messages; String and numeric arrays; Operating systems access via shell commands, Pipes, and XCALL; Powerful system, screen, printer, and window management; Business math functions; Transaction processing; APIs to fully integrate Dictionary-IV; and SQL date types.


Script-IV™ is Thoroughbred's fourth generation (4GL) programming language, that provides a structured, English-like command structure, to program applications. Script-IV can access any Dictionary-IV definition, and automatically manages the "housekeeping" tasks normally associated with 3GL programming. Script-IV code can be seamlessly integrated with code from the Thoroughbred Environment 3GL.

Report-IV and Query-IV

System reports and queries are fully supported with Report-IV and Query-IV. Report-IV is a comprehensive report-writer enabling the designer to create complex system reports. Report-IV supports multi-file access, data manipulation, report output format and user input to provide the exact report desired. Query-IV is Thoroughbred's SQL Query tool featuring a "point and click" selection interface, and the ability to access the data via SQL command syntax. Query-IV is designed for non-programming users who want quick and comprehensive access to their data.


Source-IV is a full-featured source code management system that provides information in revisions of software programs, a full-featured editor for maintenance of 3 or 4GL programs and numerous system utilities including program backup and restore utilities.

OPENworkshop - The Complete Development and Run-time System

OPENworkshop is the complete environment to develop and run mission critical applications. OPENworkshop supports virtually any operating system including UNIX, Linux and Windows. Applications designed in OPENworkshop are fully portable to any supported environment.