Under OS/2 Version 1.3, the Presentation Manager provides a basis for the implementation of object-oriented software engineering principles, allowing the developer to take advantage of the benefits inherent in the object-oriented approach. However, the Presentation Manager application model lacks a built-in inheritance hierarchy, and therefore prevents the developer from realizing the productivity and consistency benefits that may be achieved under the principle of inheritance.
OS/2 Version 2.0 extends the object-based Presentation Manager user interface with the introduction of the Workplace Shell*, and also provides an object-oriented application model that allows applications to exploit the principle of inheritance. The Workplace Shell application model views an application as a series of objects, typically represented by icons on the Workplace Shell desktop, which are manipulated by the user to achieve the required result.
Objects may represent entities such as files, programs or devices, or may be containers that allow the user to logically group related objects. The properties or contents of an object may be examined using a view of the object, which is typically implemented as a Presentation Manager window.
The Workplace Shell application model is based upon the system object model, which defines a set of classes to form a basic inheritance hierarchy, and a set of protocols for interaction between application objects. The Workplace Shell defines its own object classes that extend the inheritance hierarchy, and an application developer can continue to extend the hierarchy, subclassing existing object classes to create new classes.
The Workplace Shell therefore brings both the end user and the application developer closer to the concept of direct object manipulation, and allows exploitation of the class-based theory of object-oriented programming. The Workplace Shell application model, along with the creation and manipulation of Workplace Shell objects, is described in detail in Workplace Shell and the System Object Model.