Xbase++

Xbase++
Xbase++
Xbase++
Xbase++ "Hallo Welt":

procedure main()
msgbox("Hallo Welt!",;
"Xbase++ 1.90.355")
return

Basisdaten
Paradigmen: Objektorientierte

und Prozedurale Sprache

Erscheinungsjahr: 1997
Entwickler: Alaska Software Inc.
Aktuelle Version: 1.90 SL1  (21. April 2009)
Einflüsse: Clipper, dBase
Betriebssystem: Windows
Alaska Software

Xbase++ ist eine Programmiersprache für 32-Bit-Plattformen der Alaska Software Inc.. Sie kann sowohl prozedural als auch objektorientiert benutzt werden, wobei die eindeutigen Stärken in der Objektorientierung liegen.

Inhaltsverzeichnis

Funktionsumfang

Visual Xbase++ mit Beispielprojekt

Xbase++ ist mit einem internen Befehlssatz für das Arbeiten mit dBASE oder FoxPro Datenbanken ausgerüstet, weshalb zur Arbeit mit DBF-Dateien keine weiteren Treiber (auch kein ODBC) oder DBMS erforderlich sind. Xbase++ bietet eine vollständige Integration aller gängigen Windows-Forms, die innerhalb des Programmcodes als Objekte gekapselt sind. In Xbase++ werden alle objektorientierten Ansätze unterstützt (Einfach- und Mehrfachvererbung, Abstrakte Klassen, abstrakte Methoden, …). Im Standardsprachumfang bzw. in den mitgelieferten Laufzeitbibliotheken fehlt eine Unterstützung für Standardnetzwerkprotokolle (außer NetBIOS), wie TCP/IP, was aber durch zahlreiche Zusatzprodukte ausgeglichen werden kann. Zudem gibt es eine Vielzahl weiterer Zusatzbibliotheken, mit denen beispielsweise E-Mail Funktionalität via SMTP und POP3 Protokoll genutzt werden kann. Des Weiteren kann man die OpenGL Schnittstelle nutzen oder via ODBC auf beliebige Datenbanken zugreifen. Die Integration von ActiveX Komponenten ist ebenso möglich wie das Benutzen von .Net Komponenten. Über einen so genannten WebApplicationAdapter ist es sogar möglich Geschäftsprozesse via Internet zu tätigen und direkt über das Internet auf dBASE-Datenbanken zuzugreifen. Das Ergebnis kann dann bequem in jedem beliebigen Browser dargestellt werden oder über ActiveX-Komponenten sogar in der eigenen Programmoberfläche.

Neben den Befehlszeilen-Kommandos stellt Alaska den Lizenznehmern zur Entwicklung das kostenfreie Tool Visual Xbase++ zur Verfügung.

Versionen

  • Xbase++ 1.82, März 2003
  • Xbase++ 1.9, Mai 2006
  • Xbase++ 1.9 SL1 (build level 1.90.355), April 2009
  • Xbase++ 2.0 Arctica, Auslieferung der Beta-Version im 2. Quartal 2011[1]

Position im Markt

Xbase++ findet keinen so großen Anklang wie andere Produkte, wie beispielsweise C++, Visual Basic oder C#, obwohl die Sprache gegenüber diesen einige deutliche Vorteile aufweist. So ist man bei Xbase++ nicht gezwungen, Variablen zu deklarieren. Dynamische Variablen, die zur Laufzeit erzeugt werden, stellen für Xbase++ kein Problem dar. Auch die durch zugewiesene Datentypen weithin eingeschränkte Nutzbarkeit von Variablen ist in Xbase++ nicht vorhanden. So kann man prinzipiell in jede Variable während der Abarbeitung einer Funktion, Prozedur oder Methode jeden beliebigen Datentypen speichern. Dadurch kann man beispielsweise in einem Kontext die Variable "i" als numerischen Counter innerhalb einer "FOR … NEXT" Anweisung benutzen und die gleiche Variable unmittelbar nach Beendigung der Schleife mit einem Stringwert belegen oder ein Array darüber referenzieren. Ein großer Nachteil ergibt sich jedoch direkt aus der relativ geringen Durchdringung des Marktes mit Produkten dieser Sprache, was sich zwangsläufig bis zum Entwickler niederschlägt. Dem nämlich steht für seine Arbeit nicht in dem Umfang Informationsmaterial zur Verfügung, wie das bei den „großen“ Sprachen der Fall ist und viele Dinge, wie oben beschriebene Zusatzfunktionalitäten, müssen bei anderen Anbietern für oft viel Geld nachgekauft werden, während diese in den weit verbreiteten Sprachen bereits zur Grundausrüstung gehören. Bis vor einigen Jahren gab es für Xbase++ noch keine offiziell vom Hersteller der Sprache (Alaska Software) vertriebene IDE. Man musste sich also mit anderen Multilanguage-IDEs behelfen, was aber nicht unbedingt von Nachteil war. Seit einiger Zeit wird aber die IDE Visual Xbase angeboten, die mittlerweile in der Version 2.0 (Stand 24. September 2004) zu haben ist.

Ein Konkurrenzprojekt zu Xbase++ bietet der Hersteller xHarbour.

Xbase++ ist kompatibel zu Clipper, was eine Portierung von Clipperprogrammen in die 32-Bit Windowswelt ermöglicht.

Nachteil von Xbase

Es ist nicht möglich, komponentenbasiert und sprachübergreifend mit Xbase++ zu arbeiten. So kann man zwar in C++ oder Visual Basic geschriebene DLLs nutzen, umgekehrt jedoch kann man mit Xbase++ keine DLLs erstellen, die sich aus anderen Sprachen heraus nutzen lassen.

Ein weiterer Nachteil besteht darin, dass diese Sprache keinem international anerkannten Standard entspricht, sondern von einer einzelnen Firma spezifiziert und proprietär entwickelt wird (wie z. B. Visual Basic auch; C++ jedoch nicht). Mit Xbase++ ist es weiterhin nicht möglich plattformübergreifend zu entwickeln, da als Plattform lediglich Windows (und hier außerdem nur 32-Bit-Versionen) unterstützt wird.

Syntaxbeispiel

Ein wesentlicher Punkt, warum man sich als Programmierer für oder gegen eine bestimmte Sprache entscheidet, ist sicher der Aufwand den es macht, diese zu erlernen. Xbase++ stellt dahingehend eine recht einfache Sprache dar. Folgender Beispielquellcode zeigt eine Klasse, deren Objektinstanzen nur eine Methode haben, mit der sie alle in einem angegebenen Verzeichnis vorhandenen Dateien eines bestimmten Typs sammeln, in einer Klassenvariable speichern und in einer einfachen Messagebox anzeigen.


#include "xbtsys.ch"
#include "directry.ch"

  // zuerst wird die Klasse definiert
  CLASS FolderScanner
     EXPORTED:
        VAR aFiles
        VAR cFileMask
        VAR aFileMask
        VAR cDirectory
  
        METHOD Init
        METHOD ListFilesFromFolder
  ENDCLASS
  
  // dann werden die Methoden definiert
  METHOD FolderScanner:Init( cMask, cDirectory )
     // die übergebenen Variablen cMask und cDirectory werden automatisch als LOCAL definiert
     IF VALTYPE( cMask ) == "C" .AND. ! EMPTY( ALLTRIM( cMask ) )
        ::cFileMask := ALLTRIM( cMask )
     ELSE
        ::cFileMask := ""
     ENDIF
  
     IF VALTYPE( cDirectory ) == "C" .AND. ! EMPTY( ALLTRIM( cDirectory ) )
        // es darf aber ohne weiteres Instanzvariablen mit dem gleichen Namen geben
        ::cDirectory := ALLTRIM( cDirectory )     
     ELSE
        MSGBOX( "Kein Pfad zum Durchsuchen angegeben. Programmabbruch", "Achtung" )
        QUIT
     ENDIF
     ::aFiles := {}
     ::aFileMask := {}
  RETURN self
  
  METHOD FolderScanner:ListFilesFromFolder()
     LOCAL aX, i   // eine strenge Typisierung ist nicht notwendig
     LOCAL cMessageString := ""   // bei der Deklaration können Werte zugewiesen werden
     
     IF ! DIRCHANGE( ::cDirectory ) == NO_DISK_ERR  
        //Konstanten wie NO_DISK_ERR können in Include-Dateien definiert werden, ähnlich den *.h-Dateien in C
        MSGBOX( "Das angegebene Verzeichnis existiert nicht. Programmabbruch", "Achtung" )
        QUIT
     ELSE
        aX := DIRECTORY( "*." + ::cFileMask )
     ENDIF
     
     FOR i:= 1 TO LEN(aX)
        IF UPPER(RIGHT( aX[ i, F_NAME], LEN( ::cFileMask ) )) == ::cFileMask
           AADD( ::aFileMask, ::cDirectory + "\" + aX[ i, F_NAME ] )
           cMessageString += aX[ i, F_NAME ] + CHR(13) + CHR(10)
        ENDIF
     NEXT
     
     MSGBOX( "Zur Dateimaske " + ::cFileMask + ;
        " wurden folgende Dateien im angegebenen Verzeichnis gefunden : " + ;
        cMessageString, "Ergebnis" )
     
  RETURN self
     
  // So kann die Klasse verwendet werden
  PROCEDURE Main()
     LOCAL oFolderscanner
     oFolderscanner := Folderscanner():New( "EXE", "C:\TEMP" )
     oFolderscanner:ListFilesFromFolder()
  RETURN
  

Einzelnachweise

  1. Aussage des Alaska Software Inc. CEO Steffen Pirsig am 30. April 2011 beim Arctica Sneak Preview in Isernhagen.

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • XBase — hat sich als Oberbegriff für eine Gruppe von Programmiersprachen und zugehörige Datenbank Formate eingebürgert, deren Syntax und Struktur von dBASE abgeleitet sind. Inhaltsverzeichnis 1 Entwicklung 2 xBase Programmiersprachen 3 Datenbank Format 4 …   Deutsch Wikipedia

  • Xbase — hat sich als Oberbegriff für eine Gruppe von Programmiersprachen und zugehörige Datenbank Formate eingebürgert, deren Syntax und Struktur von dBASE abgeleitet sind. Inhaltsverzeichnis 1 Entwicklung 2 xBase Programmiersprachen 3 Datenbank Format 4 …   Deutsch Wikipedia

  • XBase — is the generic term for all programming languages that derive from the original dBASE (Ashton Tate) programming language and database formats. These are sometimes informally known as dBASE clones . While there was a non commercial predecessor to… …   Wikipedia

  • xBase — hat sich als Oberbegriff für eine Gruppe von Programmiersprachen und zugehörige Datenbank Formate eingebürgert, deren Syntax und Struktur von dBASE abgeleitet sind. Inhaltsverzeichnis 1 Entwicklung 2 xBase Programmiersprachen 3 Datenbank Format …   Deutsch Wikipedia

  • XBase — es el término genérico para todos los lenguajes de programación que derivan del lenguaje de programación dBase, originalmente publicado por Ashton Tate. Existen indicativos de que existió un predecesor no comercial. La x significa que existen… …   Wikipedia Español

  • XBase++ — es un lenguaje de programación desarrollado por Alaska Software Inc., una empresa germano americana, totalmente compatible con Clipper 5.2, soportando la programación orientada a objetos, la herencia múltiple y el polimorfismo. Soporta todos los… …   Wikipedia Español

  • Xbase++ — Xbase++  разрабатываемый Alaska Software с середины 1990 х Clipper совместимый язык программирования. Xbase++ позволяет создавать объектно ориентированные приложения, содержит библиотеки для доступа к SQL и ODBC данным и средства для… …   Википедия

  • xBase — xBase  собирательное название семейства dBase подобных языков программирования и программных продуктов, являющихся производными этой РСУБД, c расширенной по отношению к ней функциональностью. Были предназначены для разработки баз данных в… …   Википедия

  • XBASE — собирательное название семейства технологий, программных продуктов и языков программирования, являющихся производными или клонами СУБД dBASE. Предназначены в первую очередь для разработки и создания табличных ( недореляционных , упрощённых) БД,… …   Википедия

  • XBase — xBase  собирательное название семейства dBase подобных языков программирования и программных продуктов, являющихся производными этой РСУБД, c расширенной по отношению к ней функциональностью. Были предназначены для разработки баз данных в… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”