Microsoft Visual FoxPro

MS Visual FoxPro 5.0 ist eine sehr umfangreiche objektorientierte Entwicklungsumgebung für die Erstellung von Datenbanken und die Applikationsentwicklung. Visual FoxPro 5.0 stellt Entwicklern die Werkzeuge bereit, die sie für die Organisation großer Mengen an Informationen, das Ausführen von Abfragen oder die Programmierung von Daten-Management-Applikationen für Endanwender benötigen.

Visual FoxPro bringt viele einzigartige Stärken in die Gruppe der Visual Tools ein. Dazu gehören:

  • objektorientierte Tools für das Erstellen wiederverwendbarer Komponenten
  • datenzentrierte Tools mit einer leistungsfähigen lokalen Datenbank-Engine und Client/Server-Fähigkeiten
  • Eine mächtige interaktive Umgebung für die Datenbearbeitung

MS Visual FoxPro 5.0 ist eine Datenbank für den professionellen Entwickler. Es ist ein High-End-Produkt auf dem Markt für PC-Datenbanken, der Rapid Application Development (RAD) und der objektorientierten Werkzeuge. Die Stärke von Visual FoxPro liegt in seiner Ausgereiftheit, seiner Mächtigkeit, seiner Geschwindigkeit im Vergleich zu den Mitbewerbern, wie auch in einer großen Anzahl von FoxPro-Entwicklern, die viele Jahre Erfahrung in der Entwicklung von sehr schnellen Datenbank-Applikationen haben.

Die Datenbank-Engine

Die Visual FoxPro Datenbank-Engine ist eine vollständige relationale Datenbank-Engine, die für große Datenmengen optimiert ist. Datenbankapplikationen können nie schnell genug sein. Genau auf diesem Gebiet hat sich FoxPro einen legendären Ruf erworben, indem es beständig schneller war als die Mitbewerber und einen sehr schnellen Zugriff auf große Datenmengen bot.

Das Data Dictionary von Visual FoxPro befreit den Entwickler von der Notwendigkeit, eine Menge Code zu schreiben, um die Integrität der Daten zu überprüfen. Im Tabellenassistenten kann der Entwickler Regeln für die Gültigkeit von Daten und Werte, mit denen ein Feld vorbelegt werden soll, festlegen. Auch Datensätze können auf ihre Gültigkeit überprüft werden. Für Anlegen, Ändern und Löschen von Datensätzen kann der Entwickler eigene Triggerfunktionen schreiben, die ausgeführt werden, wenn diese Operationen ausgeführt wurden.

Vorgabewerte, Gültigkeitsregeln und Trigger können einfache Ausdrücke sein, z. B. "Der Verkaufspreis muß höher als der Einkaufspreis sein"; sie können aber auch aus Funktionen bestehen, die der Entwickler schreibt. Diese Funktionen können sowohl in einer eigenen Funktions-Bibliothek als auch in der Datenbank gespeichert werden. Dadurch wird der Entwickler in die Lage versetzt, jeden Code, den er für die Integrität der Daten benötigt, zu entwickeln und automatisch jedesmal, wenn Daten geändert wurden, ablaufen zu lassen.

Obwohl Visual FoxPro die Prüfung der Datenintegrität auf der Ebene der Daten-Engine nicht unterstützt, besitzt es einen Referential Integrity Builder, der die benötigten Trigger nicht nur für die referentielle Integrität erstellt, sondern auch das Cascading Delete (das automatische Löschen von Datensätzen in untergeordneten Tabellen, wenn ein entsprechender Datensatz in der übergeordneten Tabelle gelöscht wird) und Cascading Update (automatische Veränderung des Schlüssels, wenn er in der übergeordneten Tabelle geändert wird) unterstützt.

Lokale, Remote- und Offline-Views

Ein Datenansicht, im weiteren 'View' genannt, in Visual FoxPro ist das Ergebnis einer Abfrage, in dem Daten geändert werden können. Es entspricht den Datenblattansichten in MS Access. Die Definition eines Views ist eine SQL-SELECT-Anweisung zur Bestimmung einer Untermenge von Daten. Es ist möglich, die Anzahl der Datensätze in dem Ergebnis einer Datenbankabfrage zu beschränken. Als Beispiel könnte ein View mit Bestelldaten aus einer SELECT-Anweisung bestehen, das die Bestelldaten-Tabelle mit einer Bestelldaten-Detailtabelle verbindet; als Suchkriterium dient die Bestellnummer. Der Benutzer könnte in einem Formular die Bestellnummer eingeben und die Eingabetaste drücken, um das SELECT-Statement erneut laufen zu lassen und sich die Daten auf seinem Formular anzeigen zu lassen.

Entfernte Views, im weiteren 'Remote-Views' genannt, unterscheiden sich von lokalen Views durch den Zugriff mittels ODBC (Open Database Connectivity) auf Daten, die z. B. in einer MS SQL Server-Datenbank gehalten werden. Sie werden durch den Abfrage-Assistenten in der gleichen Weise wie lokale Views erstellt und gestaltet.

Mit Hilfe von Visual FoxPro können Entwickler einen Prototyp ihrer Client/Server-Applikation erstellen, der lokale Views und lokale FoxPro-Tabellen benutzt. Wenn die Applikation mit Remote-Daten eingesetzt werden soll, kann der Upsizing-Assistent benutzt werden, um eine SQL Server- oder Oracle-Version der FoxPro-Daten zu erstellen. Falls die Formulare und Berichte auf Views basieren, genügen wenige Zeilen Code, um die Anwendung auf die Remote-Datenbank umzustellen.

In manchen Fällen stehen Entwickler vor der Aufgabe, Daten unabhängig von der Remote-Datenbank anzuzeigen, zu sammeln oder zu verändern. Mit den neuen Offline-View-Möglichkeiten von Visual FoxPro ist es jetzt möglich, eine Verbindung zur Host-Datenbank (es kann sich hier sowohl um eine FoxPro-Datenbank als auch um eine ODBC-Datenbankverbindung handeln) herzustellen und sich Daten herunterzuladen, um sie offline zu bearbeiten. Für die Bearbeitung kann der View direkt oder mittels einer Applikation benutzt werden. Die im View gemachten Änderungen können anschließend wieder zur Host-Datenbank geschickt werden.

Ein Hauptvorteil der Offline Views in Visual FoxPro 5.0 ist, daß minimale Änderungen im Code notwendig sind, um mit ihnen zu arbeiten. Statt auf die lokalen Daten verweist die Applikation auf den Offline View, und auf alle Felder, Indizes, Tabellen, Formulare usw. kann mit exakt den gleichen Namen zugegriffen werden. Die Entwickler müssen lediglich Code schreiben, der Konflikte behandelt, die durch das gleichzeitige Ändern von Daten in der Host-Datenbank und im Offline View entstehen können.

Die Design-Tools

Der Mittelpunkt von Visual FoxPro ist der Projekt-Manager. Mit seiner Hilfe werden die Dateien eines Projekts organisiert und verwaltet. Alle Dateien, die zu einem Projekt gehören, sind in einer Übersicht organisiert, die der Benutzer anzeigen oder ausblenden kann. Dadurch können Anwender einfach und schnell auf alle Bestandteile eines Projekts zugreifen.

Der Datenbank-Designer zeigt alle Tabellen, Views und Relationen an, die in der Datenbank enthalten sind. Er ermöglicht es dem Anwender, visuell die Datenbank zu verändern, indem Tabellen hinzugefügt und anschließend die Relationen durch Drag-and-Drop der Felder erstellt werden. Vom Datenbank-Designer gelangt man auch direkt in den Tabellen-Designer, der das Verändern der Tabellenstruktur ermöglicht.

Der FoxPro Datenbankcontainer enthält alle Tabellen, Local Views, Remote-Views und Verbindungen zu Remote-Datenbanken. In einem Datenbankcontainer definierte Relationen sind in allen Applikationen, die mit dem Datenbankcontainer arbeiten, gültig.

Der Formulardesigner wird für das Erstellen von Formularen und Steuerleisten verwendet. Der Entwickler kann auf der Ebene des Formulars auch eigene Eigenschaften und Methoden aber keine Ereignisse hinzufügen. Der Code für Gültigkeitsprüfungen und andere Operationen ist in der Visual FoxPro-Programmiersprache geschrieben und kann zusammen mit dem Formular, in einem separaten Programm, einer Klassendefinition oder als gespeicherte Prozedur in der Datenbank gespeichert werden.

Visual FoxPro erleichtert das Verbinden von Objekten und Daten mit dem visuellen Designer für Datenumgebung. Komplexe Formulare können durch einfaches Drag-and-Drop von Feldern und Kontrollelementen auf die Oberfläche des Designers erstellt werden. Wenn ein Formular mit einer Tabelle, zu der weitere Detailtabellen existieren, verbunden ist, genügt es, einfach diese Detailtabelle auf das Formular zu ziehen, um ein Grid zu generieren, das alle Datensätze der Detailtabelle anzeigt, die zu der Auswahl in der übergeordneten Tabelle passen.

Während des Erstellens eines Formulars kann der Anwender aus dem Formular-Designer heraus eine Gruppe von Objekten als Klasse abspeichern. Diese Klasse kann sowohl in der aktuellen Applikation als auch in anderen Anwendungen wiederverwendet werden. Als Beispiel nehmen wir an, daß der Entwickler auf einem Formular die Felder Name, Adresse und Telefonnummer plaziert. Diese Feldgruppe speichert er als Klasse. Wenn der Entwickler nun ein Formular für eine Mitgliederverwaltung entwirft, kann er diese Klasse verwenden und muß nicht eine neue Gruppe von Feldern entwerfen, um die gleichen Informationen zu handhaben. Mit diesem Vorgehen kann viel Zeit bei der Entwicklung von Anwendungen gespart werden, vor allem, wenn die Klassen so geplant sind, daß man sie auch in anderen Applikationen wiederverwenden kann.

Auch im Klassendesigner werden Klassen erzeugt. Er bietet die einzige Möglichkeit, visuell Klassen zu ändern. Er hat die gleiche Oberfläche wie der Formular-Designer. Der Entwickler kann der Klasse eigene Eigenschaften und Methoden hinzufügen und damit die bei Visual FoxPro vorhandenen Eigenschaften und Methoden ergänzen. Benutzerdefinierte Klassen können von jeder Basisklasse, die in Visual FoxPro enthalten ist, abgeleitet werden, auch von Formularen, Befehlsschaltflächen, Textboxen und Grids ('Datenblattsteuerelemente'", um nur einige Möglichkeiten zu nennen.

Visual FoxPro enthält mehrere Assistenten, die den Vorgang der Anwendungsentwicklung weitgehend automatisieren. Dazu gehören Assistenten zum Erstellen von Tabellen, Abfragen, Formularen und Serienbriefen. Zusätzlich helfen Assistenten dem Entwickler, Daten in FoxPro-Tabellen zu importieren, Setup-Disketten zu erstellen und eine Anwendung auf den SQL Server oder Oracle zu portieren.

Die Programmiersprache und die Entwicklungsumgebung

Obwohl Visual FoxPro weiterhin die prozedurale xBASE-Programmierung unterstützt, bieten neue Erweiterungen der Sprache dem Anwender auch die Möglichkeiten der objektorientierten Programmierung. Objektorientiertes Design und objektorientierte Programmierung bedeuten einen Wechsel in der Fixierung auf den Standard der prozeduralen Programmierung. Anstatt von Anfang an den Programmablauf zu bedenken, muß der Anwender sich nun mit der Erstellung von Objekten befassen. Diese Objekte besitzen sowohl eine Funktionalität, die sie nur alleine nutzen können, als auch Methoden, die sie anderen Objekten zur Verfügung stellen. Visual FoxPro ermöglicht das visuelle Erstellen von Klassen (unter Verwendung des Klassen- oder des Formulardesigners) und durch die Verwendung von Code (mit dem DEFINE CLASS-Kommando).

Das Visual FoxPro Modell der objektorientierten Programmierung enthält:

  • Vererbung, wodurch ein neu erstelltes Objekt die Charakteristika (also die Eigenschaften und Methoden) seiner Elternklasse erbt. Die Objekte können nicht nur die Eigenschaften und Methoden erben, sondern die vererbten Charakteristika können auch überschrieben werden. Visual FoxPro unterstützt die Vererbung und das Überschreiben sowohl durch Code als auch visuell.
  • Ableiten von Klassen, was die Vererbung noch um die Möglichkeit, die Eigenschaften von Klassen zu vererben, erweitert. Die abgeleiteten Klassen erben von der Klasse, von der sie abstammen.
  • Kapselung, womit die Entwickler Eigenschaften und Methoden in Objekten kapseln können. Obwohl die interne Implementierung und das Management eines Objekts komplett vor anderen Objekten versteckt wird, hat das Objekt selber alle notwendigen Informationen, die es benötigt, um richtig zu arbeiten.
  • Polymorphismus, wodurch es einer bestimmten Funktion oder Methode möglich ist, sich vollständig anders zu verhalten als das Objekt, von dem es abhängig ist. Der Polymorphismus ermöglicht es den Anwendern, strukturierte Klassenhierarchien zu erstellen, bei denen die grundlegenden Eigenschaften der Objekte in der Basisklasse definiert sind; in den abgeleiteten Klassen befindet sich der spezielle Code.

Der Klassen-Browser wird zum Anzeigen, Verfolgen der Hierarchie und Modifizieren von Klassen verwendet. Er erlaubt es dem Entwickler auch, Klassen abzuleiten, Klassen von einer Bibliothek in eine andere zu kopieren, Klassen und Bibliotheken zu löschen, eine Klasse umzubenennen oder die Verbindung von Klassen untereinander neu zu definieren. Der Klassen-Browser erlaubt es dem Entwickler weiterhin, sich die Klassenhierarchie anzeigen zu lassen und die Vererbung zusammengehörender Klassen zu verfolgen. Außerdem kann der Entwickler sich mit dem Klassen-Browser alle Eigenschaften und Methoden jedes Automation-Servers anzeigen lassen.

Visual FoxPro enthält einen vollwertigen Debugger, der in einem eigenen Fenster läuft und fünf Fensterbereiche enthält: Trace-Fenster, das Überwachungsfenster, das Fenster "Aktuelle Variablen", das Aufruf-Stack-Fenster und das Ausgabefenster. Der Debugger enthält eine Reihe von erweiterten Möglichkeiten, einschließlich der Möglichkeit, eine Debug-Session zu speichern und wieder zu laden, Speichern der Einstellungen für die nächste Session, Ereignisverfolgung und komplexe Haltepunkte. Drag-and-Drop ist zwischen den einzelnen Bereichen des Debug-Fensters möglich.

Visual FoxPro 5.0 unterstützt die vollständige Integration von Visual SourceSafe (VSS), Microsofts projektorientiertem Team-Entwicklungs-System.

Erweiterungen mit ActiveX

Visual FoxPro unterstützt ActiveX-Kontrollelemente, einschließlich solcher, die als Container auftreten und solcher, die einzelne Datensätze verbinden. Es werden allerdings keine Kontrollelemente unterstützt, die mehr als einen Datensatz binden.

Visual FoxPro kann Automation-Server steuern und kann, da Visual FoxPro selbst ein Automation-Server ist, auch von anderen Anwendungen gesteuert werden. Daher kann eine MS Excel-Anwendung zum Beispiel eine Visual FoxPro-Routine aufrufen, die Daten sammelt.

Wie bereits früher ausgeführt, ist eine der mächtigsten Eigenschaften von Visual FoxPro die Fähigkeit, Klassen, die Funktionen auch für andere Applikationen bereitstellen, zu erstellen oder abzuleiten. Mit Visual FoxPro 5.0 wurde dieses Prinzip noch um die Möglichkeit, ActiveX-Kontrollelemente zu verwenden, erweitert. Eine Klassendefinition kann ActiveX-Kontrollelemente enthalten. Die Klassendefinition kann auch Eigenschaften und Methoden für die ActiveX-Kontrollelemente definieren und dabei die ererbten Werte ändern, so daß jede

Instanz einer Klasse genau das Verhalten zeigt, das der Entwickler benötigt. Dieses Prinzip verschafft den Entwicklern eine sehr genaue Kontrolle über die wiederverwendeten Objekte. Es ermöglicht den Entwicklern außerdem, Daten mit Kontrollelementen zu verbinden, die eigentlich keine solche Verbindung vorsehen. So ist es beispielsweise möglich, einen Kalender mit einem Datumsfeld zu verbinden.

Genau wie Visual Basic enthält Visual FoxPro 5.0 die Möglichkeit, Automation-Server zu erstellen, so daß die Funktionalität anderen Applikationen zur Verfügung gestellt wird. Ein Visual FoxPro-Entwickler kann einen vorhandenen Code in einen Automation-Server übernehmen, so daß er von jeder MS Office-Applikation oder vom Internet Information Server aufgerufen werden kann.

In der gleichen Art und Weise wie Visual Basic unterstützt ein Visual FoxPro-Automation-Server Remote-Automation, um so verteilte mehrschichtige Client/Server-Applikationen zu erstellen.

Visual FoxPro 5.0 und das Internet

Visual FoxPro 5.0 unterstützt die Nutzung des Internets auf verschiedene Arten:

  • ActiveX-Kontrollelemente. Durch die Verwendung von ActiveX-Kontrollelementen können Entwickler ihren Visual FoxPro-Anwendungen Internet-Funktionen hinzufügen. Es können sowohl Webseiten aufgerufen als auch File-Transfer-Protokoll(FTP)-Rechte in Visual FoxPro-Applikationen vergeben werden. Dabei können auch Sub-Klassen von ActiveX-Steuerelementen abgeleitet werden.
  • Einsatz von Visual FoxPro-Applikationen auf Internet-Servern. Seit der Version 5.0 können Visual FoxPro-Applikationen als Automation Server erstellt und auf Intranet- und Internet-Servern eingesetzt werden. Dabei werden die Datenbank-Dienste von Web-basierenden Clients unterstützt.
  • FoxISAPI. Die Bibliothek FoxISAPI ermöglicht es Entwicklern, Formulare in Visual FoxPro zu erstellen und sie von einer Webseite aus laufen zu lassen. FoxISAPI und auch Beispielcode, der die Möglichkeiten demonstriert, wird mit Visual FoxPro 5.0 ausgeliefert.
  • Visual FoxPro enthält auch einen WWW Internet-Such-Assistenten, der eine Webseite erstellt, die es Internetbenutzern ermöglicht, Datensätze in einer Visual FoxPro-Tabelle zu suchen und herunterzuladen. Der Assistent fragt nach der Tabelle, in der gesucht werden soll, dem Suchfeld und Informationen darüber, wie die HTML-Seite formatiert werden soll. Der Assistent erstellt die HTML-Seite, in die die Suchinformation eingegeben wird, eine Abfrage, damit die Daten von der Tabelle empfangen werden können und eine weitere Seite, auf der die Resultate angezeigt werden.

Weitere Informationen finden Sie auf der Microsoft Website unter http://www.microsoft.com/vfoxpro/.