# Framework (office suite)

Framework, launched in 1984, was an office suite to run on the (x86) IBM PC and compatibles with the MS-DOS operating system.
Unlike other integrated products, Framework was not created as "plug-in" modules with a similar look and feel, but as a single windowing workspace representing a desktop metaphor that could manage and outline "Frames" sharing a common underlying format.
Framework could be considered a predecessor to the present graphical user interface window metaphor: it was the first all-in-one package to run on any PC platform to offer a GUI, WYSIWYG typography on the display and printer output, as well as integrated interpreters.

## History
### Background

ValDocs, an even earlier integrated suite, and actually comparable to the original Macintosh of 1984 and Apple Lisa of 1982, was produced by Epson, a complete integrated work station that ran on the previous-generation Zilog Z80 CPU and CP/M operating system, with a graphical user interface (GUI) and "WYSIWYG" typography on the monitor and printing. Despite several iterations, ValDocs was too slow on the hardware that it was released on.
A few months before Framework, its close rival Lotus Symphony was released.
Framework offered all of the above ValDocs' functionality in the first all-in-one package to run on any PC platform.
Programmers at Work credits Robert Carr as the designer and principal developer of Framework.

### Forefront Corporation

Robert Carr and Marty Mazner founded Forefront Corporation to develop Framework in 1983. In July of that year, they approached Ashton-Tate to provide the capital and to later market the product. Together with a team of six other individuals, Carr and company released the original Framework.
The initial release of Framework included about a dozen or so frame types (identified by a FRED function, @frametype). Frame types included containers which could be filled up with other frames, empty frames which could become other type of frames based on user input, formulas embedded in them or program output targeting them, word processor frames, flat-database frames and spreadsheet as well as graphic frames.
The product proved successful enough, that in 1985, Ashton-Tate bought Forefront a year sooner than planned.

### Ashton-Tate era

The original team, now working for Ashton-Tate, continued to enhance the product.
Later Framework versions included a frame type that can hold compiled executable code. Beginning with Framework II (1985), the company also produced the Framework II Runtime and the Framework II Developer's Toolkit. These products allowed application developers to create business applications using the built-in FRED programming language. Novel MHS Electronic Mail was integrated into Framework and a MailBox cabinet was added to the desktop.
Framework III was produced in 1988–1989, and in 1991, Framework IV emerged as the last Ashton-Tate-released version.
Although Ashton-Tate humorously advertised, that "Lotus uses Framework", Framework failed to gain more than a fraction of the market share needed to become a workplace standard. Lotus 1-2-3 was able to successfully capture most of the spreadsheet market, and after a number of setbacks regarding Ashton-Tate's flagship product dBASE, Borland bought Ashton-Tate, and later sold Framework to Selections & Functions, Inc.

### Selections and Functions, Inc

Beginning with Framework V (Framework 5), Selections and Functions introduced only a few features — mainly features required to prevent the office suite from becoming out-of-date.
For example, Framework VII (Framework 7) introduced long file names, the Euro symbol and the ability to display pictures in Framework.
Framework VIII (Framework 8) introduced the ability to display JPEG and .BMP files and to load such files into Framework databases.
Of particular importance, all of the Selections and Functions' versions of Framework added the ability to share "cut and paste" (memory buffer data) between Windows and Framework. For detailed feature lists and screen shots see the Framework homepage listed below.
Selections and Functions continues to sell Framework — though no price is available publicly.

## Components

In addition to frame types with compiled executable code, the current versions, 9 and 10, Framework IX, and Framework X, which run in virtual mode on a thunking platform includes a dynamic link library file (.FWL) that contain 32 bit flat memory GUI/API code that can be called by FRED as a function to run on the host operating system accepting parameters and returning a value. Present versions include the FrameworkPascal compiler, which extend Framework making it possible to compile .FWL filed that access Windows API.
The spreadsheet program was superior in its day, offering true 3D capability, where spreadsheets could form an outline which can be "opened" to reveal a separate spreadsheet, as well as other frame types — a feat of sheer convenient function never again seen and further enhanced in later versions.
Framework's built-in interpreter, the FRED (Frame Editor) computer language, was based on Lisp eval function. It can reference all frames and types across the product and can sense and perform all user interface operations.

## Compatibility

Framework works on most versions of Microsoft Windows. Framework 7 was the last version which can be run on Windows 95/98/ME or on DOS. Framework 8 and 9 were designed to run on Windows XP, but not in Windows 9x or DOS. Official updates are provided to run Framework on Windows 7 and 8. Framework VIII, Framework IX and Framework 10 runs in a thunking virtual machine platform integrated with the latest version of Windows.

## Reception

Stating that "Every module has been improved", BYTE in 1989 said while not revolutionary like previous versions, "Framework III is a good choice for anyone with a limited budget who isn't afraid of real power". The magazine criticized Ashton-Tate's new marketing of the suite as "'decision support software', whatever that means", and said that "FRED is [still] probably the most difficult macro language around".