XBase++

From HandWiki
Visual Xbase++ with sample Animals

Xbase++ is an object oriented programming language which has multiple inheritance and polymorphism. It is based on the XBase language dialect and conventions. It is 100% Clipper compatible language supporting multiple inheritance, polymorphism, object oriented programming. It supports the xBase data types, including Codeblocks. With Xbase++ it is possible to generate applications for Windows NT, 95, 98, Me, 2000, XP, VISTA and Windows 7, 8, 10.[1]

Xbase++ offers complete integration of all common Windows forms, which are encapsulated as objects within the program code. All object-oriented approaches are supported in Xbase++ (e.g. single and multiple inheritance, abstract classes, abstract methods).

Using a so-called web application adapter, it is possible to support business processes via the Internet and to access dBASE databases directly via the Internet. The result can then be conveniently displayed in any browser or even in your own program interface via ActiveX components. With version 2.0, the web front end was expanded to include the Compiled Xbase Pages class (<CXP/>), with which the usual Xbase++ logic, embedded in HTML code for the user interface, can continue to be used. These pages can then be accessed from a web server using any browser; only the created program DLL must be on a Windows server.

In addition to the command line commands, Alaska provides licensees with the free Visual Xbase++ tool for development up to and including version 1.9 SL1. As of version 2.0, the IDE is made available as the central development environment under the name Workbench.

Clipper support

Xbase++ supports the old commands @SAY/GET to define data entry forms as well as a graphic editor to create data entry forms similar to Visual FoxPro. It also has a visual development environment, support for OEM files (DOS format) and ANSI (Windows), an integrated debugger and a resource compiler to add icons and graphics to the application. It can generate EXE or DLL files.

RDD

Xbase++ supports the Replaceable Database Drivers (RDD, which provide access to multiple database formats) of Clipper through the DatabaseEngines (DBEs). The basic package includes support for DBF, FOX, NTX, CDX, SDF and DEL(delimited). It also supports CORBA 2.0, based on IBM SOM, Visual FoxPro 3.0 to 5.0 database formats, and access to SQL servers.

Birth

Xbase++ was born after the decision of Computer Associates to abandon Clipper to develop Visual Objects. The failure of Visual Objects as Clipper substitute empowered the creation of third party libraries and the creation of Clipper syntax compilers.

Source code example

#include "class.ch"

//
//  This program prints:
//
//  Missy  Meow!
//  Mr. Bojangles  Meow!
//  Lassie  Bark!
//  Press any key to continue...
//

/////////////////////////////
//
PROCEDURE Main()
//
/////////////////////////////

  LOCAL aAnimals := Array(3)
  LOCAL i

  aAnimals[1] :=  Cat():New("Missy")
  aAnimals[2] :=  Cat():New("Mr. Bojangles")
  aAnimals[3] :=  Dog():New("Lassie")

  FOR i:=1 TO LEN(aAnimals)
     ? aAnimals[i]:Name + "  " + aAnimals[i]:Talk()
  NEXT i

  WAIT

RETURN

/////////////////////////////
//
CLASS Animal
//
/////////////////////////////

   EXPORTED:
      VAR Name   READONLY

      METHOD Init
      DEFERRED CLASS METHOD Talk
ENDCLASS

METHOD Animal:Init( cName )
   ::Name := cName
RETURN Self

/////////////////////////////
//
CLASS Dog FROM Animal
//
/////////////////////////////
   EXPORTED:
   METHOD Talk
ENDCLASS

METHOD Dog:Talk()
RETURN "Bark!"

/////////////////////////////
//
CLASS Cat FROM Animal
//
/////////////////////////////
   EXPORTED:
   METHOD Talk
ENDCLASS

METHOD Cat:Talk()
RETURN "Meow!"

Versions

  • Xbase++ 1.82, March 2003
  • Xbase++ 1.9, May 2006
  • Xbase++ 1.9 SL1 (build level 1.90.355), April 2009
  • Xbase++ 2.0, September 30, 2014, updates as part of the continuous delivery strategy on:
    • 09/30/2014 (Build 554)
    • ...
    • 11/13/2015 (build 656)
    • ...
    • 06/15/2020 (Build 1255)
    • ...
    • 07/06/2021 (Build 1461)

References

External links