Benutzer-Werkzeuge

Webseiten-Werkzeuge


warum_visual_foxpro

Allgemeines

Auf dieser Seite finden sie Infos rund um Visual FoxPro, die ihnen eine - hoffentlich realistische - Bewertung dieses Werkzeuges ermöglichen sollen.

Historie

Visual Foxpro ist aus einem xBase-Produkt (FoxBase, FoxPro) entstanden, dessen Wurzeln zum Anfang der 80er Jahre zurückreichen. Es unterstützt auch noch immer dessen Sprachsyntax. FoxPro war über Jahre die anerkannt schnellste auf PC-Hardware verfügbare Datenbank, was wohl Anfang der 90er Jahre auch für Microsoft ausreichender Grund war, die komplette Firma Fox Software einzukaufen. Es gab Spekulationen darüber, daß FoxPro nur aufgekauft wurde, um an die Rushmore-Technologie heranzukommen, die maßgeblich für die enorme Performance ist. Zudem brachte Microsoft kurz nach dem Aufkauf sein (ebenfalls eingekauftes) ACCESS (Version 1.0) auf den Markt und vermarktete anschließend praktisch nur dieses Produkt als „Datenbank-Entwickler Werkzeug“. Dies alles führte mit schöner Regelmäßigkeit zu aufkommenden Gerüchten bezüglich der baldigen Einstellung des Produktes FoxPro, die zudem auch durch absolut miserables FoxPro-Marketing (eigentlich nicht vorhandenes Marketing) verstärkt wurden. Datenbankentwicklern wurde bei allen möglichen Gelegenheiten und mit schöner Regelmäßigkeit VB, ACCESS und sogar C++ als Entwicklungswerkzeug für Datenbank-orientierte Anwendungen empfohlen. All diese widrigen Umstände haben dem Produkt selbst jedoch nicht geschadet, lediglich seinem Bekanntheitsgrad. In der Folgezeit hat sich jedoch selbst bei Microsoft - oder zumindest in Teilen der Firma - die Erkenntnis durchgesetzt, dass im eigenen Hause VFP das leistungsfähigste Datenbankentwicklungstool ist.

Der Aufhänger „xBase“ wurde seitdem von Microsoft nicht mehr benutzt, was eigentlich auch richtig ist.

VFP ist heute zwar immer noch „xBase kompatibel“ (was z.B. die unterstützten Sprach Konstrukte 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 war VFP seinen Kinderschuhen entwachsen (die da „Unterstützung für 16-Bit-Windows“ heißen) und kann lediglich unter 32/64-Bit Windows (Win95, NT, W2000, Vista, 7, 10) ausgeführt werden. Es trat in direkte Konkurrenz zu den Client- Entwicklungsumgebungen der diversen Hersteller von SQL-Servern (Oracle, Sybase), ist immer noch ein sehr guter Client für den MS-SQL Server und als Fileserver-basiertes DBMS wohl immer noch so ziemlich konkurrenzlos.

Im Jahr 2007 hat Microsoft dann bekannt gegeben, dass die zu dem Zeitpunkt aktuelle Version 9 die letzte Version sein wird und dass im Rahmen der Produktpflege lediglich Service Packs veröffentlicht werden. Momentan ist VFP 9 SP2 Hotfix 3 die aktuellste Version. Weitere Infos dazu finden sie auf GitHub: https://github.com/VFPX/VFP9SP2Hotfix3

s.a.: FoxPro wurde eingestellt

Eine durch internationale Zusammenarbeit entstandene Website über die Fox-Geschichte finden Sie auf www.foxprohistory.org (in englisch)

FoxPro wurde eingestellt

Im Sommer 2007 war es „endlich“ so weit: Microsoft hat die Weiterentwicklung von Visual FoxPro bei Version 9 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.

Die Teile von Visual FoxPro, die selbst in VFP geschrieben sind (sehr viele Werkzeuge der Entwicklungsumgebung sowie umfangreiche Klassenbibliotheken), wurden zum Zeitpunkt der Bekanntgabe von Microsoft als Open Source freigegeben und werden seitdem von der sehr aktiven Entwicklergemeinde selbständig auf VFPX weiterentwickelt.
Auf VFPX sind u.a. Projekte zu den folgenden Themen zu finden:

  • Unterstützung für xlsx (Excel >= 2007)
  • diverse „aktuelle“ Oberflächenelemente
  • FoxUnit für Unit Tests
  • Erweiterungen der Entwicklungsumgebung
  • Grafikunterstützung

Für Entwickler und Kunden bedeutet das „Aus“ 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:

  • Visual FoxPro Anwendungen laufen auf allen Windows Versionen ab Windows 95 bis zur aktuellen Version Windows 10 und das auch unter den 64-bit Versionen
  • Unter Linux ist VFP mittels WINE lauffähig
  • Die Teilnehmer der FoxPro Entwicklerkonferenz in Frankfurt, konnten sich im nicht gerade kleinen gastgebenden Hotel regelmäßig davon überzeugen, dass dort der Empfang mit einer Software arbeitete, die unter FoxPro DOS 2.6 lief, einer FoxPro-Version, die 1992 auf den Markt kam und somit anscheinend immer noch problemlos lauffähig war.
  • Es gibt sehr viele noch laufende FoxPro-Anwendungen, die über viele Jahre gewachsen sind und in denen Teilbereiche zusammenarbeiten, die mit unterschiedlichen FoxPro-Versionen aus 3 Jahrzehnten realisiert wurden.
  • Funktionalitäten, die im nativen FoxPro nicht enthalten sind, lassen sich entweder - wie bei anderen Sprachen üblich - über externe Komponeneten (ActiveX, OLE, DLL) z.B. unter Verwendung der WestWind DotnetBridge einbinden oder bei letzterem in einer .net-Sprache wie c# selbst entwickeln.

Was kommt nach FoxPro?

Viele FoxPro-Entwickler sind nach der Einstellung des Produkts (die wie oben beschrieben keine kurzfristigen Auswirkungen auf die Lauffähigkeit existierender Software hat!) auf der Suche nach einer anderen Entwicklungsplattform für zukünftige Projekte.

Zum Zeitpunk der Einstellung von VFP existierte von Microsoft als Empfehlung ausschließlich der Umstieg auf das .Net-Framework. Um „Damals“ bei der Enwicklung der Anwendungen auch nur halbwegs so produktiv sein zu können wie mit VFP, wurden die auf .net basierenden Frameworks LightSwitch und Silverlight propagiert. Beide wurden inzwischen von Microsoft wieder ad acta gelegt. Die Investitionen der Entwickler in das notwendige Know-How somit ebenfalls. Anschließend waren reine Web-basierte Anwendungen angesagt. Microsoft hatt(e) hier die Pfeile ASP.Net als „WebForms“ und später „ASP.Net MVC“ als „professioneller“ im Köcher. Durch den großen Markt der neu entstehenden Web-Anwendungen, der zu weiten Teilen ausserhalb des Microsoft-Universums statt fand, war Microsoft wieder zu einer Anpassung der Strategie gezwungen, vermutlich auch durch die große Anzahl von Entwicklern, die mit Nicht-Microsoft Techniken aufgewachsen waren. Die Strategie „Web First“ und „Mobile First“ bewirkte dann den massiven den Schwenk zu JavasScript und den damit verbundenen Techniken und Framweworks (Angular, Node.js, Bootstrap,…). Um den bis dahin komplett vernachlässigten Markt der Desktop-Anwendungen (z.B. FoxPro) wieder bedienen zu können, werden diese Web-Techniken in eine Laufzeitumgebung gepackt, die die Verbindung zur lokalen Hardware herstellt (ein Webbrowser kann/darf das nicht). Intern besteht diese Umgebung („Elektron“) aus einem auf Node.js basierenden Webserver, der die Inhalte für den eingebetteten Browser („Chromium“) liefert. Das Haupt-Argument für diesen Aufbau ist das Versprechen, den einmal geschriebenen Code auf allen Plattformen (Windows, Linux, Mac, Android,…) benutzen zu können. Leider müssen sich Desktop-Entwickler bei dieser Umstellung „ein wenig“ umgewöhnen. Deshalb ist dann wahrscheinlich zwischenzeitlich auch Blazor/Webassembly am Start, um .NET Code direkt im Browser laufen lassen.

Ob das für Anwender in reinen Windows-Desktop Umgebungen ein wirklicher Vorteil ist, muß jeder für den eigenen Anwendungsfall entscheiden.

Zudem hat Microsoft dann noch sein .NET durch .net Core ersetzt, was plötzlich Open Source ist, dafür aber nur noch offiziellen Support für Zeiträume erhält, die man im geschäftlichen Umfeld wohl nur als homöopathisch bezeichnen kann…

Für uns als Entwickler sind jedoch die immer kürzer werdenden Zyklen ein wirkliches Problem, in denen die strategischen Entwicklungs- und konkreten Implementierungsansätze ausgetauscht werden. in der Regel weiß man erst nach dem ersten Live-Einsatz einer neuen Technik, was man besser nicht gemacht hätte. Wenn diese Technik aber beim folgenden Projekt in weiten Teilen schon wieder „Schnee von gestern ist“, dann bekommen längerfristig alle Beteiligten ein Problem.

Was kommt also nach FoxPro?

Als Benutzer einer exitierenden FoxPro-Anwendung sollte man sich zunächst der Frage stellen, ob diese Anwendung abgelöst werden muss und wenn ja, aus welchem Grund.

  • VFP läuft auf aktuellem 64-bit Windows 10 ziemlich problemlos
  • Für ein ausgereiftes Produkt wie VFP bedeutet das Support-Ende lediglich, dass der Hersteller keine Änderungen mehr an diesem (ausgereiften) Produkt vornimmt.
  • Es existiert das Projekt VFP Advanced, das einige Fehlerbereinigungen für VFP SP2 bereit hält. Dort gibt es ebenfalls eine 64-bittige Version…

Natürlich gibt es Funktionalitäten, über die das reine VFP nicht verfügt. Es läßt sich jedoch so ziemlich alles, was in Desktop-Anwendungen benötigt wird per Bibliotheken nachrüsten. Es besteht sogar die Möglichkeit das „große“ .net-Framework einzubinden und zu nutzen (https://www.west-wind.com/wwDotnetBridge.aspx)… Auch für Web-basierte Anwendungen gibt es reichlich Support durch entsprechende Frameworks non Dritt-Anbietern - siehe: VFP auf einem Webserver

Für Neu-Entwicklungen setzen wir - wie auch viele andere FoxPro-Entwickler - primär auf servoy

FoxPro und .NET

FoxPro ist nie Bestandteil des .NET-Frameworks geworden. Es dort hinein zu integrieren hätte auch ziemlich wenig Sinn gemacht, da dann ein Großteil der vorhandenen (Datenbank-) Funktionalität und vor allem der hochspezialisierten Entwicklungsumgebung weggefallen wären.

Einer engen Zusammenarbeit im .NET-Konzert steht von FoxPro-Seite jedoch nichts entgegen, da Webservices sowohl auf der Serverseite „befeuert“ als auch als Client genutzt werden können. Ansonsten kann per COM-Interop direkt auf Objekte der jeweils anderen Seite zugegriffen werden.

Aus den Reihen der FoxPro-Gemeinde gibt es zudem noch mehrere bemerkenswerte Projekte.

  • Das Projekt http://guineu.foxpert.com/ Guineu, das von Christof Wollenhaupt betreut wird. Guineu ermöglicht es, FoxPro-Code in einem in .NET implementierten Interpreter, bis hinunter zu Windows Mobile laufen zu lassen.
  • wwDotnetBridge von Rick Strahl ermöglicht es, recht problemlos aus FoxPro-Codes heraus auf die gesamte .NET Klassenbibliothek zuzugreifen und somit deren Möglichkeiten zu nutzen.

Offizielle Positionierung durch Microsoft

Grundsätzlich hatte Microsoft wohl tatsächlich immer ein „Problem“ mit Visual FoxPro, denn der Fuchs steht eigentlich in direkter Konkurrenz zum SQL-Server. 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.

Ein unbestätigtes aber realistisches Zitat: „Jede Schachtel FoxPro, die wir verkaufen, kostet uns 10.000 Dollar SQL-Server-Lizenzgebühren“.

Nun ja - überlegen Sie, was das aus Kostensicht für Ihre eigene Investition in eine zu entwickelnde oder pflegende Software bedeuten kann…

Realistische Positionierung

DotNet/VB.NET/C#.NET

.net wurde Anfang der 2000er Jahre von Microsoft auf den Markt gebracht und war eine von Grund auf neu entwickelte Plattform in die viele Konzepte aus der Java-Plattform eingeflossen sind. Die beiden Haupt-Programmiersprachen sind c# und VB.net, die einen recht ähnlichen Funktionsumfang haben.

Da .net momentan mehr oder weniger die einzige reine Entwicklungsplattform ist, die von Microsoft vermarktet wird (abgesehen von c++ und den Programmiermöglichkeiten innerhalb diversen Anwendungen wie VBA in Office oder innerhalb von SharePoint) ist es der „natürliche Kandidat“ für viele Microsoft-nahen Entwicklungsprojekte.

.net ist eine unglaublich tolle Umgebung um alle möglichen Arten von Anwendungen zu entwickeln.
Aus unserer Sicht hat sie aber die folgenden Nachteile:

  • Microsoft hat seit langem Entwicklungszyklen von 18-24 Monaten, was leider oft bedeutet, dass die im Rahmen eines Entwicklungsprojektes gemachten Erfahrungen oft nur bedingt oder teilweise auf das nächste Projekt übertragen werden können. Leider ist gerade das Thema „Erfahrung mit dem gewählten Werkzeug“ ein zentraler Baustein für verlässliche Planung und vor allem Qualität (=Termine + Kosten).
    Wir scheinen mit dieser Einschätzung auch nicht so ganz alleine zu sein - siehe z.B. einen Blog Eintrag ".NET 2020" bei ppedv, einem Anbieter für Schulungen im Microsoft-Umfeld.
  • .net zeichnet sich im Bereich Datenbank-orientierter Anwendungen im Vergleich zu darauf spezialisierten Entwicklungsumgebungen wie FoxPro oder Servoy nicht gerade durch überbordende Produktivität aus: Viele „coole“ Features sind schnell und einfach zu lösen. Aber zentrale und immer wiederkehrende Aufgabenstellungen wie „Daten in Masken anzeigen“ oder „Berichte“ sind recht aufwändig oder - wie schon beschrieben - ändern sich alle zwei Jahre grundlegend…
  • .net Anwendungen tendieren dazu, aus einer großen Anzahl komplementärer, aber jeweils recht anspruchsvoller Techniken (Stichworte: OR-Mapper, Dependency Injection Container, Reporting Services, WPF/XAML…) zusammengesetzt zu werden, was die interne Gesamtkomplexität der Anwendungen erheblich steigern kann.

ACCESS

Mit ACCESS lassen sich recht einfach und schnell Datenbankanwendungen entwickeln. Deshalb wurde ACCESS von Microsoft in der Anfangszeit als „DAS Datenbank-Entwicklungswerkzeug“ gepriesen. Inzwischen wird es jedoch nicht mehr unter diesem Label plaziert. Stattdessen hat es seinen Platz im Office Paket gefunden. Dies ist u.a. eine Folge daraus, dass 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, dass 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, dass für den Entwickler relativ wenig Spielraum besteht, zu bestimmen, wie etwas (intern) geschehen soll. Größ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: inzwischen wurde nicht nur die Entwicklung von VB6 eingestellt, sondern im März 2005 auch der „Mainstream Support“.

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 ebenfalls eine „neue Heimat“…

Im wesentlichen kann Delphi ähnlich wie VB platziert werden, hat jedoch deutlich bessere Möglichkeiten im Bereich größerer Projekte. Delphi hat zudem Vorteile bei der Erstellung kleiner EXE-Programme (Keine Abhängigkeit von Runtimes wie bei VB+VFP)

Python

Wir versuchen, diesen Abschnitt in absehbarer Zeit zu ergänzen

…ist aber definitiv einen Blick wert!

Javascript / NodeJS

Wir versuchen, diesen Abschnitt in absehbarer Zeit zu ergänzen

No Code / Low Code Plattformen

Wir versuchen, diesen Abschnitt in absehbarer Zeit zu ergänzen

Servoy

Wir - wie auch viele andere Foxpro-Entwickler halten Servoy für einen sinnvollen „Kandidaten“ für neue/aktuelle Projekte.

Die Zielgruppe der Projekte ist ähnlich wie die von FoxPro, nur dass Servoy grundsätzlich ein Client-Server System mit einem eigenen Applikationsserver ist, der den Datenzugriff und das Ausliefern der Benutzeroberflächen, incl. Browser regelt.

Der Hersteller verbessert seit vielen Jahren kontinuierlich sein Produkt und geht dabei auf die Bedürfnisse der Entwickler ein.

Von den zu Grunde liegenden Konzepten und bei der Entwicklung is Servoy zumindest „gefühlt“ in Teilen nahe dem, was FoxPro Entwickler kennen und schätzen gelernt haben und glänzt durch enorme Produktivität beim Entwickeln von Datenbank-orientierten Geschäftsanwendungen.

Weiteres dazu finden sie unter Servoy

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 (z.B. personenbezogene Daten)
  • 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 muss, woraus sich auch der enorme entsprechende Werbeaufwand erklären lässt.

Visual FoxPro (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 entwickeln, die zunächst für 2 Benutzer und 2 MB Daten gedacht sind, ohne befürchten zu müssen, dass 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 eines der wenigen Werkzeuge, 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.

s.a.: FoxPro und .NET

VFP auf einem Webserver

Obwohl VFP primär für das Entwickeln von Desktop-Anwendungen ausgelegt ist, kann es auch auf einem (Web-) Server eingesetzt werden. Typischerweise würde man hierfür zwar eher Sprachen/Techniken wie ASP.Net, PHP, Python, Ruby, Java usw. einsetzen. In bestimmten Szenarien kann aber auch VFP sinnvoll sein, z.B. große vorhandene VFP Code-Basis, die genutzt werden soll, der Einsatz von DBF-Dateien oder „nur“ VFP-Entwickler im Haus.

Für diesen Einsatzbereich sind die bekanntesten VFP Zusatzprodukte:

Die Verbreitung von VFP

Grob geschätzt gibt es bundesweit ca. 40.000 FoxPro Entwickler, weltweit ca. 200.000. Rund 1.500 Einzel-Entwickler und Firmen sind in der deutschsprachigen FoxPro User Group (dFPUG) organisiert. Über die dFPUG werden Regionaltreffen, Workshops sowie die jährliche dFPUG 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 allerdings wesentlich weniger VFP-Entwickler als z.B. für ACCESS, VB oder .NET. VFP-Entwickler sind jedoch in den allermeisten Fällen hochqualifiziert und wissen genau, warum sie ausgerechnet dieses Werkzeug einsetzen und nicht das, was gerade angesagt oder in der nächsten Softwareschachtel enthalten ist.

Highlights

VFP bietet für die Entwicklung von Datenbankanwendungen eine ganze Reihe von Features, die nur in diesem Werkzeug verfügbar oder nur hier in dieser Kombination vorhanden sind.

VFP benötigt nur seine eigenen DLLs (2), sowie die auf den meisten Rechnern bereits vorhandenen Visual-C Runtime (msvcr71.dll) um Applikationen auszufü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, dass 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ässt 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 kann zudem jederzeit ein („BROWSE“-)Fenster geöffnet werden, das einen Blick auf von gerade laufenden Programmteilen benutzten Tabellen oder Cursor ermöglicht. 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) && tauscht  %HOME-URL% durch den Inhalt von lcHomeDir aus
    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 20 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

Typische Einsatzbereiche

  • 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 (Interfaces) zwischen Systemen
  • Aufbereitung von/Reporting mit Daten aus anderen Systemen (z.B. SAP)
  • Geschäftslogik-Schicht in mehrschichtigen Anwendungen
  • Benutzeroberfläche Client-Server-Applikationen
  • Rapid Application Development (RAD) für schnellste Entwicklung von Prototypen
  • Datenbankanwendungen mit komplexer Geschäftslogik („Business Logik“)
  • Projekte mit mehreren Entwicklern (Team Development)
  • Höchste Performance beim Verarbeiten von Massendaten
  • 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… ;-)

Große mit VFP realisierte Projekte

Die folgende Liste ist ein Auszug der uns bekannten großen Projekte. Wir können nicht angeben, welche der Projekte aktuell noch im Einsatz sind.

  • Die Bundeszentrale des Arbeiter Samariter Bundes in Köln verwaltet rund eine Million Mitglieder komplett mit VFP.
  • Hier finden Sie eine Liste von - hauptsächlich - US-amerikanischen Projekten, die ständig aktualisiert wird.
    Einige Beispiele daraus:
    • HO Sports, der weltgrößte Herstelle von Wasserski und WaveBoards…
    • 1-800-Contacts. Die ehemals größte Mailorder-Kontakte Firma der USA…
    • March of Dimes - California Birth Defects Monitoring Program
  • Die Betriebsdaten des Eurotunnels wurden mit einer FoxPro-Applikation verwaltet. Hierbei waren ständig rund 128 GB Daten im Zugriff.
  • Teile der Transport-Logistik der US-Streitkräfte und Teile der Einsatzplanung erfolgten mit VFP. Mit Hilfe dieser Applikation wurden u.a. verschiedene Szenarios durchgespielt um Truppen und Ausrüstung möglichst effizient und im Zeitrahmen zu einem Einsatzort zu bringen. Die Anwendung wurde hauptsächlich in VFP entwickelt unter Zuhilfenahme einiger ActiveX-Komponenten, die in C++ entwickelt wurden.
    „Military Deployment for the United States Transportation Command“.
    Mit den beiden Teil-Applikationen
    JFAST (Joint Flow and Analysis System for Transportation)
    SCAS (Small Contingency Airlift Simulation).
    Das diesbezügliche Buch: „Modeling with FoxPro“, Pinnacle Publishing, ISBN 1-880935-26-0

Falls ihnen bekannt ist ob/wann eines dieser Projekte durch einen Nachfolger ersetzt oder abgeschaltet wurde, oder wenn sie weiter Projekte kennen, dann würden wir uns über entsprechende Infos freuen.

wofür sich VFP nicht besonders gut eignet

Anwendung besser geeignete Werkzeuge
„Hello World“-Programme Assembler, C, Delphi
Gelegenheitsprogrammierer Delphi, Visual Basic, ACCESS
(VFP ist recht komplex und läßt sich nicht „so nebenbei“ beherrschen, was allerdings durch die Assistenten z.T. ausgeglichen wird)
5 Mio Stellen von Pi
oder
Apfelmännchen berechnen
C, Assembler

FoxPro Support im Internet

Siehe: FoxPro Links

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
warum_visual_foxpro.txt · Zuletzt geändert: 01.06.2023 08:58 von Joachim Hilgers