Uniface
Uniface Version 3 (1986) Uniface3は最初に公開したリリースだった。 それはマルチデータベース(RMS、オラクル 、C_ISAM、イングレス とRDB)、バーチャルマシンインタプリタ、ストラクチャエディタ、Unifaceテキストとコマンドエディタをサポートした。
Uniface Version 4 (1988) Uniface4ではテキストエディタ(現在のフォームエディタ)を改善した。印刷、ディスプレイサポートも改善され、MS-DOSに対するサポートを導入して、そしてCASEツールインタフェースを加えた。
Uniface Version 5 (1990) Uniface5はPolyserverを使ったリモートデータベース接続の導入でクライアント/サーバの実装を可能にした。 そしてユニバーサルプレゼンテーションインタフェース (UPI)によるグラフィカル・ユーザインタフェースを導入した。 データベースは合計13のデータベースとファイルシステムをサポートするように拡張された、それはDOS、VMS、OS/2、Stratus VOS とUNIX上で利用可能になり、日本語のサポートも同じく導入された。
Uniface Six (1994) Uniface6 では完全なグラフィカル開発環境への移行が完了した。 それはグラフィカルフォームペインタとアプリケーションモデルエディタから成る。DOL(ダイナミックオブジェクトライブラリ)を通して実装を改善し、マイクロソフトOLEに対するサポート及びアップル・マッキントッシュ のサポートを加えた。
アプリケーションモデルは、参照一貫性と共にエンティティ(テーブル)、フィールド、キー(インデックス)とリレーションを定義する。モデル内のエンティティとフィールドは、一式のトリガーとプロパティを持っている。 ビジネスルールは事前にアプリケーションモデル上のプロパティの設定を行い、アプリケーションモデル上のトリガーにProcコード(Unifaceの手続き型言語)を記述する。
トリガーはコードにとっての格納場所。トリガーがユーザの行うシステムイベントを受け付ける。例えば、<Occurrence Gets Focus>や< Read>、< Leave Field>というトリガーが存在する。トリガーは他にチェック機能を記述したり、関連チェックを行うトリガーも存在する。
アプリケーションモデルレベルのトリガーの使用は、ビジネスオブジェクトを集約するのに利用される。故に物理データ構造から論理的にロジックを分離が可能になる。一箇所にシステム全体の標準の動作を記述することが可能になり、再利用性の高い、3層アーキテクチャのアプリケーションを迅速に作成することが可能になる。
Unifaceアプリケーションは、コードを変更することなく、携帯からメインフレームまでのプラットホームで展開(運用)することが可能。コンポーネント(スタートアップシェル、メニュー、ツールバーパネル、グリフ、グローバルPROC、インクルードPROC)は圧縮ファイルにパッケージ化され、全てのプラットホームに配布が可能なランタイムオブジェクトにコンパイルされる。ランタイムオブジェクトは、バーチュアルマシンとプラットホーム固有のインタプリタを使用し実行される。(後に、Javaと他の言語は、この方法でUnifaceに続いた) Uniface Virtual Machineが存在している環境なら、1台のマシンの上でコンポーネントをコンパイルして、別の環境で実行可能。