Unter Windows geschriebene Basic-Programme mit wenig Aufwand auf Linux und sogar auf den Mac portieren – das verspricht Realbasic. Wie gut dies funktioniert, verrät der Artikel.
Als gut lesbare und leicht zu erlernende Programmiersprache ist Visual Basic unter Windows ebenso beliebt wie verbreitet. Wer auf Linux umsteigt, muss seine Visual-Basic-Programme jedoch normalerweise in einen anderen Basic-Dialekt übertragen. Für eine direkte Portierung unterscheiden sich freie Basic-Varianten wie Gambas [1], HBasic [2] oder WXBasic [3] zu sehr vom Original.
KBasic [4] verspricht zwar vollständige Syntaxkompatibilität zu Visual Basic, befindet sich nach mehreren Entwicklungsjahren aber immer noch in einer recht unstabilen Betaphase. Die Firma Real Software hat jetzt mit Realbasic [5] eine kommerzielle Software vorgestellt, die Visual-Basic-Projekte problemlos übernehmen und unter Linux sowie Mac OS X ausführen soll.
Verschiedene Lizenzen
Das Lizenzmodell von Realbasic ist etwas ungewöhnlich. Zusammen mit der Nutzungslizenz erwirbt der Käufer für eine bestimmte Zeit das Recht auf kostenlose Bugfixes und Verbesserungen. Danach gilt die Lizenz weiter, Bugfixes bekommt der Kunde allerdings nicht mehr. Real Software verspricht alle 90 Tage eine neue Version fertigzustellen, sodass Käufer einer Lizenz regelmäßig auch in den Genuss neuer Features kommen sollen.
Realbasic gibt es direkt beim Hersteller oder beim deutschen Vertrieb Application Systems Heidelberg [6]. Die Standard-Edition für Linux ist kostenlos, die Professional-Version kostet inklusive der Bugfixes in 18 Monaten 500 Euro, mit sechs Monaten gibt es sie für 330 Euro. Studenten bezahlen 350 Euro, Schüler 230. Die Standardedition für Linux und Mac OS kostet mit 18 Monaten Bugfixes 120 Euro, mit sechs Monaten 80 Euro. Tabelle 1 zeigt die Unterschiede zwischen beiden Varianten.
Realbasic für Linux erzeugt in der Professional-Version Programme für alle Windows-Versionen von 95 bis XP. Diese benötigen keine zusätzlichen DLL-Dateien, ebenso bestehen Realbasic-Programme unter Linux nur aus einer ausführbaren Datei. Da das Basic-Runtime-Modul enthalten ist, sind die entstehenden Programme aber nicht gerade klein. Eine ansonsten funktionslose Anwendung mit einigen Menüpunkten war im Test knapp 2 MByte groß und trotzdem noch mit 40 dynamischen Bibliotheken gelinkt. Auch die Standardversion erzeugt zum Testen Binaries für Windows und Mac OS, allerdings laufen diese Programme nur fünf Minuten lang.
Die Installation der Binärpakete gestaltet sich erfreulich einfach. Für Benutzer von Red Hat Desktop und Novell Linux Desktop stehen RPM-Pakete zum Download bereit, außerdem gibt es Realbasic in einem TGZ-Archiv. Unter den aktuellen Distributionen funktionieren beide Varianten problemlos. Die Dokumentation steht in Form von PDF-Dokumenten ebenfalls auf der Realsoftware-Homepage zur Verfügung.
Beim ersten Start erfragt das Programm Name und E-Mail-Adresse, bevor es den Lizenzschlüssel aus dem Netz herunterlädt. Ein Upgrade von der Standard- auf die Professional-Version setzt lediglich einen entsprechenden Lizenzschlüssel voraus, der die gesperrten Funktionen freischaltet. Eine Neuinstallation ist dazu nicht erforderlich.
Moderne Umgebung
Die Realbasic-Oberfläche selbst steht anderen modernen Entwicklungsumgebungen in nichts nach (siehe Abbildung 1). Umsteiger von Visual Basic finden sich ebenso schnell zurecht wie Kenner anderer IDEs. Der Editor verfügt über Syntax-Highlighting und vervollständigt Schlüsselwörter, Variablen, Klassen sowie Methoden automatisch. Indem er Codeblöcke auf Wunsch ein- oder ausblendet, bleibt die Übersicht auch bei größeren Programmen erhalten.

Abbildung 1: Die Realbasic-Oberfläche kann sich in puncto Übersicht und Funktionsvielfalt mit anderen modernen Entwicklungsumgebungen messen.
Der Formulareditor enthält alle auf den drei unterstützten Plattformen existierenden Steuerelemente. Zusätzlich gibt es noch OLE-Elemente, um Microsoft-Word- und Excel-Objekte einzubetten. Sie funktionieren zwar wegen fehlender Betriebssystem-Unterstützung unter Linux nicht, tauchen aber dennoch in der Werkzeugleiste auf.
Beim Platzieren und Ausrichten der Elemente hilft ein Fadenkreuz-Cursor, der mit einer grünen Linie die Kanten anderer Objekte anzeigt und einrastet, wenn das aktive Element rechtwinklig zu einem anderen ausgerichtet ist (Abbildung 2). Unter Linux greift Realbasic zur Darstellung des GUI auf das GTK-Toolkit zurück.
Portierung vorhandener VB-Programme
Ist es möglich, vorhandene Visual-Basic-Projekte mit Realbasic weiterzuverwenden? Die Antwort dazu könnte von Radio Eriwan stammen: Im Prinzip ja. Die Homepage von Real Software liefert einen Leitfaden für Visual-Basic-Entwickler [7], der auf Fallstricke bei der Portierung hinweist.
Während sich unterschiedlich verwendete Schlüsselwörter und abweichende Datentypen (Tabelle 1) leicht anpassen lassen, stehen Realbasic-Migranten spätestens beim intensiven Gebrauch von Active-X-Komponenten und außergewöhnlichen Steuerelementen vor einer unüberwindbaren Hürde.
|
Tabelle 1: Standard- |
||
|---|---|---|
|
|
Standard |
Pro |
|
Linux-Programme erzeugen (x86-Prozessoren) |
3 |
3 |
|
Linux-, Mac-OS- und Windows-Programme erzeugen |
– |
3 |
|
Konvertieren und Importieren von Visual-Basic-Projekten |
3 |
3 |
|
Integrierte Einzelplatz-Datenbank |
3 |
3 |
|
Zugriff auf externe Datenbanken (Access, PostgreSQL, MySQL, |
– |
3 |
|
SSL-Unterstützung |
– |
3 |
|
Tabelle 2: |
||
|---|---|---|
|
|
Visual Basic |
Realbasic |
|
16-Bit-Integer |
Integer |
Nicht unterstützt, verwendet 32-Bit-Integer |
|
32-Bit-Integer |
Long |
Integer |
|
Single |
Single |
Single |
|
Doule |
Double |
Double |
|
String |
String |
String |
|
Currency |
Currency |
Memory Block |
|
8-Bit-Typ |
Byte |
Memory Block |
|
Boolean |
Boolean |
Boolean |
|
Colors |
Nicht unterstützt |
Color |
|
Variant |
Variant |
Variant |
|
Object |
Object |
Object |
Workaround für Active X
Für einige Active-X-Komponenten liefert Realbasic Steuerelemente mit, die deren Aufgaben erledigen. Die Dokumentation beschreibt diese Funktionen, sodass sich jeder vor dem Kauf über mögliche Kompatibilitätsprobleme informieren kann. Die Aufgaben des bei vielen Visual-Basic-Programmierern sehr beliebten Steuerelements »Flex Grid« etwa erfüllt unter Realbasic die »ListBox«.

Abbildung 3: Der Visual-Basic-Konverter wandelt Projekte ins Realbasic-Format um – allerdings nur unter Windows.
Um Visual-Basic-Projektdateien, -Module und -Formulare in auf XML basierende Realbasic-Projekte zu verwandeln, stellt Real Software ein Konvertierungsprogramm bereit ([8], Abbildung 3) – es funktioniert jedoch ausschließlich unter Windows. Die Software entdeckt und behebt dabei auch Syntaxfehler. Allerdings versagt sie, wenn Beschriftungen von Steuerelementen Umlaute oder andere Sonderzeichen enthalten; solche Namen schneidet der Konverter beim ersten Umlaut einfach ab. Aufgetretene Probleme und mögliche Lösungen protokolliert er in einer HTML-Datei (Abbildung 4). Auch der erzeugte Quelltext enthält Kommentare mit Hinweisen zur Verbesserung des Ergebnisses.
In der Standardversion verwendet Realbasic lediglich eine interne, auf SQLite basierende Datenbank. Die Professional-Variante erlaubt dagegen über Plugins auch den Zugriff auf lokale oder entfernte MySQL-, MS-SQL- und MS-Access-Datenbanken. Um die Entwicklung weiterer Schnittstellen zu ermöglichen, stellt Real Software ein Plugin-Development-Kit unter [8] kostenlos zur Verfügung. Als Abfragesprache verwendet es SQL, sodass sich mit der internen Datenbank getestete Anwendungen auch mit anderen Backends verwenden lassen.
Um die Unterschiede zwischen den SQL-Dialekten von Visual Basic und Realbasic brauchen sich Umsteiger nicht zu kümmern, die räumt das Konvertierungsprogramm aus. Auch das Datenbanksteuerelement bindet Realbasic auf etwas andere Weise ein als Visual Basic, doch auch hier erledigt der Konverter die Arbeit selbstständig.
Entwanzen
Bei der Fehlersuche in Realbasic hilft ein übersichtlicher grafischer Debugger. Die Professional Edition von Realbasic bietet sogar die Möglichkeit, auf einem anderen Rechner laufende Programme zu debuggen (Remote Debugging). Das ermöglicht es mit Linux arbeitetenden Entwicklern, ihre Anwendungen auf einer anderen Maschine im Netzwerk unter Windows zu testen.
Die Standard-Version enthält nur einen in die IDE integrierten grafischen Debugger, der die üblichen Funktionen wie Breakpoints, schrittweise Ausführung des Programms und Überwachung von Variablen und Funktionsaufrufen beherrscht. Auch Laufzeitfehler fängt der Debugger während der Entwicklung ab.
Fazit
Realbasic kann Visual-Basic-Anwendungen unter Linux zwar nicht direkt übernehmen. Die Portierung ist aber mit relativ geringem Aufwand möglich, denn viele Basic-Konstrukte gleichen sich. Der Basic-Entwickler sollte allerdings noch eine Windows-Version installiert haben, um auf den Visual-Basic-Konverter zurückgreifen zu können.
Wer nicht zahlreiche Active-X-Controls und selbst gestaltete oder zugekaufte Steuerelemente verwendet, migriert seine Visual-Basic-Projekte mit nur wenigen Änderungen am Quellcode. Als willkommener Nebeneffekt laufen diese Programme dann nicht nur unter Linux und Windows, sondern auch unter Mac OS X und dem klassischen Mac OS. Die gute Dokumentation hilft beim Umstieg. Zudem existiert eine deutschsprachige Nutzergemeinde, die ein eigenes Forum unterhält [10]. (csc/ofr)
|
Infos |
|---|
|
[1] Gambas: [http://gambas.sourceforge.net] [2] HBasic: [http://hbasic.sourceforge.net] [3] WXBasic: [http://wxbasic.sourceforge.net] [4] KBasic: [http://www.kbasic.org] [5] Realbasic: [http://www.realbasic.com] [6] Application Systems Heidelberg: [http://www.application-systems.de/realbasic/] [7] Leitfaden für Visual-Basic-Programmierer: [http://www.realbasic.com/support/whitepapers/portingvisualbasic/] [8] Visual-Basic-Konverter: [http://highspeed.realsoftware.com/REALbasic55/VBPC.zip] [9] Realbasic-Plugin-SDK: [http://highspeed.realsoftware.com/REALbasic2005r4/PluginsSDK.zip] [10] Deutschsprachige Realbasic-Community: [http://www.realbasic.de] |







