Hintergrundinformationen
zu Visual FoxPro
Seite zuletzt aktualisiert am
27.07.02
Auf dieser Seite möchten wir
Ihnen Hintergrundinformationen zu Visual Foxpro (VFP) liefern,
das
nach unseren Erfahrungen wohl eines der am meisten
unterschätzten Entwicklungswerkzeuge für datenbankorientierte
Software ist.
Historie
FoxPro und Microsoft .NET(aktualisiert am: 27.07.02)
Wird FoxPro eingestellt?
Offizielle Positionierung durch Microsoft (aktualisiert am: 27.07.02)
Realistische Positionierung (zu .NET, SQL Server, ACCESS,...)
Die Verbreitung von VFP
Highlights
Typische Einsatzbereiche
Große mit VFP realisierte Projekte (aktualisiert am: 27.07.02)
wofür sich VFP nicht besonders gut eignet
FoxPro Support im Internet
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Eine durch internationale Zusammenarbeit entstandene Web Site über die Fox-Geschichte finden Sie auf
www.foxprohistory.org (allerdings in englisch)
Visual Foxpro ist aus einem xBase-Produkt (FoxBase, FoxPro) entstanden, dessen Wurzeln über 10 Jahre
zurückreichen und unterstützt auch noch immer dessen Sprachsyntax. FoxPro ist dabei seit Jahren die
annerkannt schnellste auf PC-Hardware verfügbare Datenbank, was wohl vor Jahren auch für Microsoft
ausreichender Grund war, die komplette Firma Fox Software einzukaufen. Spekulationen darüber, daß Microsoft
FoxPro nur aufgekauft hat, um an die Rushmore-Technologie heranzukommen, die maßgeblich für die enorme
Performance ist, waren seitdem praktisch an der Tagesordnung. Zudem brachte Microsoft kurz nach dem Aufkauf
sein ACCESS 1.0 auf den Markt und vermarktete praktisch nur dieses Produkt als "Entwickler
Werkzeug". Dies alles führte mit schöner Regelmäßigkeit zu aufkommenden Gerüchten bezüglich der
Einstellung dieses Produktes, die allerdings auch durch absolut miserables FoxPro-Marketing (eigentlich
nicht vorhandenes Marketing) ausgelöst wurden. Datenbankentwicklern wurde bei allen möglichen Gelegenheiten
mit schöner Regelmäßigkeit VB, C++ und sogar ACCESS als Entwicklungswerkzeug empfohlen. All diese wiedrigen
Umstände haben dem Produkt selbst jedoch nicht geschadet, lediglich seinem Bekanntheitsgrad. Inzwischen hat
sich jedoch selbst bei Microsoft die Erkenntnis durchgesetzt, daß im eigenen Hause VFP das
leistungsfähigste Datenbankentwicklungstool ist.
Der Aufhänger "xBase" wird seitdem von Microsoft nicht mehr benutzt, was eigentlich auch
richtig ist.
VFP ist zwar immer noch xBase kompatibel (was z.B. die unterstützten Sprachkonstrukte betrifft),
hat aber im Kern nichts mehr mit dieser Welt zu tun.
Die flexiblen und mächtigen auf Datenhandling hin optimierten xBase-Befehle sind im Jahr 95 in ein neu entwickeltes
System (VFP 3.0) eingeflossen, das jedoch zum objektorientierten System mit stark erweiterter Datenbank-
Engine mutiert ist. Die Erweiterungen waren so gravierend, daß selbst langjährige
FoxPro-Experten längere Zeit an diesem "Brocken" zu knabbern hatten.
Ab der Version 5.0 ist VFP seinen Kinderschuhen entwachsen (die da "Unterstützung für 16-Bit-Windows"
heißen) und kann lediglich unter 32-Bit Windows (Win95, NT, W2000) ausgeführt werden. Es tritt in direkte Kokurrenz zu den Client-
Entwicklungsumgebungen der diversen Hersteller von SQL-Servern (Oracle, Sybase), ist der Client für
den MS-SQL Server, ein direkter Konkurrent von Powerbuilder und als Fileserver-basiertes DBMS wohl im Moment absolut konkurrenzlos.
zum Seitenanfang
I Kontakt
I Startseite
I eMail
FoxPro und Microsoft .NET
Hinweis: diese Infos werden momentan überarbeitet...
FoxPro ist nicht Bestandteil des .NET-Frameworks (das übrigens nicht mit der
groß angelegten .NET-Initiative von Microsoft zu verwechseln ist).
Es dort hinein zu integrieren würde auch ziemlich wenig Sinn machen, da dann ein
Grossteil der vorhandenen (Datenbank-)Funktionalität und vor allem der hochspezialisierten
Entwicklungsumgebung wegfallen müsste.
Einer engen Zusammenarbeit im .NET-Konzert steht von FoxPro-Seite jedoch nichts entgegen:
da u.a. durch die integrierte XML-unterstützung Webservices sowohl auf der Serverseite "befeuert"
als auch als Client genutzt werden können
Eine Ausführlichen Artikel um VFP in ASP.NET-Seiten einzubinden finden sie dort:
Using ASP.NET in Visual Studio .NET with Visual FoxPro 7.0
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Wird FoxPro eingestellt?
Hinweis: diese Infos werden momentan überarbeitet...
Im Sommer 2007 war es "endlich" so weit: Microsoft hat die Weiterentwicklung
von Visual FoxPro eingestellt. Der Standard-Support von Microsoft läuft bis einschließlich Dezember 2009,
der erweiterte Support bis einschließlich Dezember 2014 über den Lebenszyklus-Support-Plan für Entwicklertools.
Für Entwickler und Kunden bedeutet das jedoch keineswegs, dass jetzt möglichst
bald alle FoxPro-Aktivitäten eingestellt werden müssen, denn Anwendungen,
die unter FoxPro entwickelt wurden, sind oft enorm "langlebig".
So konnten sich die Teilnehmer der FoxPro Entwicklerkonferenz 2007 im
nicht gerade kleinen gastgebenden Hotel davon überzeugen, dass dort der Empfang
mit einer Software arbeitete, die unter FoxPro DOS 2.6 lief. Und diese FoxPro-Version
kam 1992! auf den Markt...
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Offizielle Positionierung durch Microsoft
Hinweis: diese Infos werden momentan überarbeitet...
s.a. Microsoft FoxPro FAQ
Grundsätzlich hatte Microsoft wohl tatsächlich immer ein "Problem" mit Visual FoxPro,
denn der Fuchs steht eigentlich in direkter Konkurrenz zum SQL-Server (s.a. Realistische Positionierung)
Da Microsoft naturgemäß keine Interesse daran hat, im eigenen Lager zu "wildern",
war die Positionierung lange Zeit ziemlich unklar, es wurde teilweise sogar vom Einsatz abgeraten.
Unbestätigtes aber realistisches Zitat: "Jede Schachtel FoxPro, die wir verkaufen, kostet uns 10.000 Dollar SQL-Server-Lizengebühren" .
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Realistische Positionierung
- DotNet/VB.NET/C#.NET
Hinweis: diese Infos werden momentan überarbeitet...
- ACCESS
Mit ACCESS lassen sich recht einfach und schnell Datenbankanwendungen entwickeln. Deshalb wurde ACCESS
von Microsoft lange Zeit als "DAS Datenbank-Entwicklungswerzeug" gepriesen.
Inzwischen wird ACCESS von Microsoft nicht mehr unter diesem Label plaziert. Stattdessen hat es seinen Platz im
Office Paket gefunden. Dies ist u.a. eine Folge daraus, daß ACCESS relativ schnell an seine Performancegrenzen
stößt.
Genaue Zahlen für diese Grenzen sind sehr schwer zu nennen, da diese stark von der Art der Anwendung abhängen.
Generell kann man allerdings sagen, daß man auf der sicheren Seite bleibt, wenn man
- einstellige Benutzerzahlen hat
- Daten bis max 20-50-MB verwaltet
Die Möglichkeit "einfach und schnell" zu entwickeln bedingt allerdings auch, daß für den Entwickler
relativ wenig Spielraum besteht, zu bestimmen, wie etwas (intern) geschehen soll. Gößere Projekte
sind durch diese Einschränkung sowie die fehlenden OO-Möglichkeiten mit einem deutlich erhöhten
Programmierungs- und Wartungsaufwand verbunden.
- Visual Basic (VB6)
Anmerkung:inwischen wurde nicht nur die Entwicklung von VB6 eingestellt,
sondern im März 2005 auch der "Mainstream Support".
Viele Delphi Entwickler suchen sich deshalb inzwischen eine "neue Heimat"...
VB6 ist ein Werkzeug mit faszinierenden Eigenschaften im Bereich Benutzeroberflächen und Komponentenbau
und verfügt über eine exzellente Entwicklungsoberfläche. VB ist quasi das "Schweizer Armee-Messer".
Nicht zuletzt weil inzwischen praktisch alle Microsoft Anwendungsprogramme über eigene VB-Dialekte verfügen,
gibt es eine große Anzahl von VB Programmierern. Das führt dazu, daß in vielen (Datenbankprojekten)
dann auch VB als das Werkzeug angesehen wird
Leider ist eine Anbindung an Daten nur über externe Module möglich (ODBC, RDO, XML, ADO, OLE DB oder wie auch immer).
Die Einbindung dieser Bibliotheken in VB ist oft hervorragend. Leider führte Microsoft in den letzten
Jahren spätestens alle 18 Monate eine neue Technik ein. Was das für die Entwickler und deren Programme bedeutet,
die über mehrere Jahren gepflegt/weiterentwickelt werden müssen...
- Delphi
Anmerkung:inzwischen hat die Firma Borland Delphi verkauft.
Viele Delphi Entwickler suchen sich deshalb inzwischen eine "neue Heimat"...
Im wesentlichen kann Delphi ähnlich wie VB plaziert werden. Delphi hat allerdings Vorteile bei der Erstellung
kleiner EXE-Programme (Keine Abhängigkeit von Runtimes wie bei VB+VFP)
- SQL Server
SQL Server sind Programme, deren eigentliche Aufgabe es ist, Daten sicher, konsistent und vor unbefugten Zugriffen
geschützt zu speichern und performant zur Verfügung zu stellen.
Sie sind dann sinnvoll oder notwendig wenn
- mehrere hundert oder tausend benutzer zu "bedienen" sind
- erhöhte Anforderungen an den Zugriffsschutz gestellt werden
- erhöhte Anforderungen an die Transaktionssicherheit gestellt werden
- nur eine relativ instabile Verbindung zwischen Client und Server besteht
Nebenbei sind sie eine nicht unerhebliche Einnahmequelle für die Hersteller, da für jede
Benutzerlizenz bezahlt werden muß, woraus sich auch der enorme entsprechende Werbeaufwand
erklären läßt.
- VFP
VFP ist nach rund 20-jähriger Weiterentwicklung immer noch besonders für datenintensive Anwendungen geeignet.
Dabei werden die Bereiche sicher abgedeckt, für die ACCESS nicht mehr ausreichend oder ein SQL Server
überdimensioniert ist. Es lassen sich Anwendungen entwicklen, die zunächst für 2 Benutzer und 2 MB Daten
gedacht sind, ohne befürchten zu müssen, daß bei 50 Benutzern und 1GB Daten bereits das
unvermeidbare Ende für die Applikation gekommen ist.
Falls bereits bei der Planung und Realisierung einer VFP-Software eine Trennung in die Schichten Oberfläche,
Geschäftslogik und Datenzugriff beachtet wird (VFP ist übrigens das einzige Werkzeug, in dem alle drei
Schichten realisiert werden können!), dann können diese bei Bedarf später einzeln ausgetauscht werden.
z.B.: Oberfläche in HTML und SQL-Server als Backend.
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Grob Geschätzt gibt es bundesweit ca. 40.000 FoxPro Entwickler, weltweit ca. 200.000.
Rund 1.500 Einzelentwickler und Firmen sind in der deutschsprachigen FoxPro User Group (dFPUG) organisiert.
Über die dFPUG werden Regionaltreffen, Workshops sowie die jährliche Entwicklerkonferenz organisiert.
Der weltweite sehr rege Informationsaustausch unter den Entwicklern erfolgt hauptsächlich über diverse Websites und Newsgroups.
Wer dort alle Nachrichten mitlesen möchte, der kommt wahrscheinlich nicht mehr dazu, zu programmieren...
Insgesamt gibt es wesentlich weniger VFP-Entwickler als z.B. für ACCESS oder VB.
VFP-Entwickler sind allerdings in den allermeisten Fällen hochqualifiziert und wissen genau,
warum sie ausgerechnet dieses Werkzeug einsetzen.
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Anwendungen mit großen Datenmengen
- Verarbeitung von mehreren Millionen Datensätzen
- Verarbeitung von Daten im GigaByte-Bereich
- Anwendungen bei denen es auf schnellsten Zugriff auf große Datenmengen ankommt
- Komplexe Datenbankanwendungen mit vielen Tabellen und datenbezogenen
Ein- und Ausgaben (Masken, Listen)
Daten-Schnittstellen zwischen anderen Systemen
Aufbereitung von/Reporting mit Daten aus anderen Systemen (z.B. SAP)
Geschäftslogik-Schicht in Multi-Tier-Applikationen
Benutzeroberfläche Client-Server-Applikationen
Rapid Application Development (RAD) für schnellste Entwicklung von Prototypen
Datenbankanwendungen mit komplexer Anwendungslogik ("Business Logik")
Projekte mit mehreren Entwicklern (Team Development)
Höchste Performance
Remote-Automation-Servern (DCOM)
oder einfach Anwendungen, bei denen Sie gerne auf Entwickler zurückgreifen möchten,
die dieses Werkzeug durch langjährige Nutzung in- und auswendig kennen... ;-)
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Anwendung
|
besser geeignete Werkzeuge
|
| "Hello World"-Programme |
Assembler, C, Delphi |
| 386SX-Rechner mit 4MB und Windows 3.x |
Delphi |
| Adressverwaltungen mit 2 Tabellen,
3 Eingabemasken und ein paar hundert Datensätzen und 2 Benutzern |
Delphi, Visual Basic, VBA, ACCESS |
| Gelegenheitsprogrammierer |
Delphi, Visual Basic, ACCESS
(VFP ist sehr komplex und läßt sich nicht "so nebenbei" beherrschen, was
allerdings durch die Assistenten z.T. ausgeglichen wird) |
zum Seitenanfang
I Kontakt
I Startseite
I eMail
Highlights
VFP bietet für die Entwicklung von Datenbankanwendungen eine ganze Reihe von Features, die nur
in diesem Werkzeug verfügbar sind, oder nur hier in dieser Kombination vorhanden sind.
- VFP benötigt nur seine eigenen DLLs (2) um Applikationen ausführen (ähnlich der VBxRUN.DLL von Visual Basic).
Diese enthalten bereits
alle Funktionalitäten für die Verwaltung der VFP-Datenbanken. Es müssen keine ODBC-Treiber,
Microsoft Data Access Components (MDAC), Jet Engines, Borland Database Engines oder ähnliches installiert werden.
Darin enthalten sind auch bereits alle notwendigen Kontrollelemente wie Schaltknöpfe, Eingabefelder,
List- und Comboboxen, Grids usw. Es werden somit keine externen Active-X Controls benötigt.
Diesen Umstand werden alle die zu schätzen wissen, die größere Installationen zu warten haben
(Netzwerkadministratoren), oder die schon einmal erlebt haben, daß auf einem Kundenrechner nach der Installation
der eigenen Software "nichts mehr geht"...
- Je nach Art der Anwendung sind reine VFP-Programme (d.h. basierend auf der VFP-Datenbankengine) oft deutlich schneller als SQL Server Anwendungen.
(von den günstigeren Betriebskosten einmal abgesehen)
- In VFP lassen sich alle Schichten einer Multi-Tier-Applikation realisieren. Wodurch es u.a. möglich ist, später einzelne
Schichten auszutauschen - z.B. VB-Oberfläche und SQL-Server als Backend.
- In VFP sind alle wesentlichen Konzepte der objektorientierten Programmierung umgesetzt (es fehlt multiple Vererbung)
- VFP COM-Server sind nahezu ideal um in Multi-Tier-Applikationen die Geschäftslogik-Schicht zu realisieren.
Die Datenbankfunktionalitäten ermöglichen die effiziente Kommunikation mit dem Datenbank-Back End
(z.B. SQL Server, aber auch VFP)
In Kombination mit den OO-Fähigkeiten läßt sich dann eine sehr flexible, wartungsfreundliche
und performante Abbildung der Geschäftsregeln erreichen.
- Die integrierte Datenbankengine ermöglicht
- die Kombination von SQL-Befehlen mit xBase-Konstrukten. Hier kann z.B. eine per SQL Select erzeugte Ergebnismenge
mittels einer SCAN-Schleife durchlaufen werden, um auf den einzelnen Datensätzen komplexe Logiken ablaufen
zu lassen. Dies ermöglicht zum einen das Entwickeln von hoch performantem Code, der zugleich durch die Anwendung
von OOP-Konzepten wartungsfreundlich gestaltet werden kann.
- es jederzeit ("BROWSE"-)Fenster zu öffnen, die einen Blick auf von gerade laufenden Programmteilen benutzten
Tabellen oder Cursor ermöglichen. Auf diese Art kann sehr effizient kontrolliert werden, ob ein bestimmter
Programmteil seine Daten richtig verarbeitet.
- sehr effizientes interaktives Entwickeln/Testen von SQL-Befehlen (ANSI-SQL ist völlig transparent integriert),
was erhebliche Vorteile beim Entwickeln und Einbinden komplexer Abfragen bringen kann
- Die eingebauten Stringfunktionen sind enorm mächtig und zugleich hoch performant.
So kann z.B. das Einsetzen von Tabelleninhalten oder beliebigen anderen (variablen-) Werten in eine HTML-Datei
die irgendwo und beliebig oft den Platzhalter %HOME-URL% enthält könnte so aussehen:
lcFile = "INDEX.HTML"
lcHomeDir = "www.hicosoft.de"
lcFileContents = FileToStr(lcFile) && liest die komplette HTML-Datei in eine String-Variable ein
lcFileContents = STRTRAN( lcFileContents, %HOME-URL%, lcHomeDir)
StrToFile(lcFileContents, lcFile) && schreibt den geänderten HTML-Code zurück
- Im Gegensatz zum MS SQL Server sind keine Lizenzgebühren für jeden hinzukommenden Benutzer zu entrichten.
VFP ist trotzdem in der Lage - je nach Art der Anwendung - bis zu mehrere hundert Anwender zu bedienen
- VFP bietet einen hervorragenden Investitionsschutz. Auch viele Programme, die mehr als 10 Jahre alt sind,
lassen sich weiter unter aktuellen VFP-Versionen ausführen.
Hierbei sind - falls man auf neue Features verzichtet - zumeist nur Änderungen an Bildschirm- und Druckausgaben
notwendig
zum Seitenanfang
I Kontakt
I Startseite
I eMail
COPYRIGHT HICOSOFT GMBH 2010
|
eMail
|
Kontakt