Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
warum_visual_foxpro [25.03.2013 15:46] – [Delphi] Joachim Hilgers | warum_visual_foxpro [01.06.2023 08:58] (aktuell) – Joachim Hilgers | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
====== Historie ====== | ====== 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 annerkannt | + | 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 |
Der Aufhänger " | Der Aufhänger " | ||
- | VFP ist heute zwar immer noch "xBase kompatibel" | + | VFP ist heute zwar immer noch "xBase kompatibel" |
- | Ab der Version 5.0 war VFP seinen Kinderschuhen entwachsen (die da " | + | Ab der Version 5.0 war VFP seinen Kinderschuhen entwachsen (die da " |
- | Im Jahr 2007 hat Microsoft dann bekannt gegeben, dass die zu dem Zeitpunkt aktuelle Version 9 die [[# | + | Im Jahr 2007 hat Microsoft dann bekannt gegeben, dass die zu dem Zeitpunkt aktuelle Version 9 die [[# |
s.a.: [[# | s.a.: [[# | ||
- | Eine durch internationale Zusammenarbeit entstandene | + | Eine durch internationale Zusammenarbeit entstandene |
====== FoxPro wurde eingestellt ====== | ====== FoxPro wurde eingestellt ====== | ||
Zeile 22: | Zeile 22: | ||
Im Sommer 2007 war es " | Im Sommer 2007 war es " | ||
- | Die Teile von Visual FoxPro, die selbst in VFP geschrieben sind (sehr viele Werkzeuge der Entwicklungsumgebung sowie umfangreiche Klassenbibliotheken), | + | Die Teile von Visual FoxPro, die selbst in VFP geschrieben sind (sehr viele Werkzeuge der Entwicklungsumgebung sowie umfangreiche Klassenbibliotheken), |
+ | Auf [[http:// | ||
+ | * Unterstützung für xlsx (Excel >= 2007) | ||
+ | * diverse " | ||
+ | * FoxUnit für Unit Tests | ||
+ | * Erweiterungen der Entwicklungsumgebung | ||
+ | * Grafikunterstützung | ||
+ | * ... | ||
- | Für Entwickler und Kunden bedeutet das " | + | Für Entwickler und Kunden bedeutet das " |
- | * Visual FoxPro | + | * Visual FoxPro |
* Unter Linux ist VFP mittels [[http:// | * Unter Linux ist VFP mittels [[http:// | ||
- | * Die Teilnehmer der FoxPro Entwicklerkonferenz in Frankfurt, konnten sich im nicht gerade kleinen gastgebenden Hotel regelmäßig davon überzeugen, | + | * Die Teilnehmer der FoxPro Entwicklerkonferenz in Frankfurt, konnten sich im nicht gerade kleinen gastgebenden Hotel regelmäßig davon überzeugen, |
+ | * Es gibt sehr viele noch laufende FoxPro-Anwendungen, | ||
+ | * Funktionalitäten, | ||
+ | ====== 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. | ||
- | ====== Was kommt nach FoxPro | + | Zum Zeitpunk der Einstellung von VFP existierte von Microsoft als Empfehlung ausschließlich der Umstieg auf das .Net-Framework. |
+ | Um " | ||
+ | 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 (" | ||
+ | Das Haupt-Argument für diesen Aufbau ist das Versprechen, | ||
- | Viele FoxPro-Entwickler sind nach der Einstellung des Produkts (die wie oben beschrieben keine kurzfrisigen Auswirkungen auf die Lauffähigkeit existierender Software hat!) auf der Suche nach einer anderen Entwicklungsplatform. | + | Ob das für Anwender in reinen Windows-Desktop Umgebungen ein wirklicher Vorteil ist, muß jeder für den eigenen Anwendungsfall entscheiden. |
- | Die deutschsprachige FoxPro User Group favorisiert dabei das auf .net basierende Silverlight aus dem Hause Microsoft. Die dFPUG bietet hierfür auch einen Konverter für existierende | + | 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 " | ||
+ | |||
+ | 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, | ||
+ | Auch für Web-basierte Anwendungen gibt es reichlich Support durch entsprechende Frameworks non Dritt-Anbietern - siehe: [[warum_visual_foxpro# | ||
+ | |||
+ | |||
+ | Für Neu-Entwicklungen setzen wir - wie auch viele andere FoxPro-Entwickler - primär auf [[servoy|]] | ||
- | Viele andere Entwickler, wie auch wir, halten [[Servoy]] für den vielversprechenderen " | ||
====== FoxPro und .NET ====== | ====== 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 Grossteil | + | 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 |
- | Einer engen Zusammenarbeit im .NET-Konzert steht von FoxPro-Seite jedoch nichts entgegen, da durch die integrierte XML-Unterstützung | + | Einer engen Zusammenarbeit im .NET-Konzert steht von FoxPro-Seite jedoch nichts entgegen, da Webservices sowohl auf der Serverseite " |
Aus den Reihen der FoxPro-Gemeinde gibt es zudem noch mehrere bemerkenswerte Projekte. | Aus den Reihen der FoxPro-Gemeinde gibt es zudem noch mehrere bemerkenswerte Projekte. | ||
- | * Das Projekt [[http:// | + | * Das Projekt [[http:// |
- | * Der [[http://www.etecnologia.net|NET Extender for VFP]] ermöglicht es, innerhalb von FoxPro auf die gesamte .NET Klassenbibliothek zuzugreifen. Der selbe Hersteller bietet zudem den [[http:// | + | * [[http://west-wind.com/ |
- | * Bei der [[http:// | + | |
====== Offizielle Positionierung durch Microsoft ====== | ====== Offizielle Positionierung durch Microsoft ====== | ||
Zeile 52: | Zeile 80: | ||
Grundsätzlich hatte Microsoft wohl tatsächlich immer ein " | Grundsätzlich hatte Microsoft wohl tatsächlich immer ein " | ||
- | Ein unbestätigtes aber realistisches Zitat: //" | + | Ein unbestätigtes aber realistisches Zitat: //" |
Nun ja - überlegen Sie, was das aus Kostensicht für **Ihre eigene** Investition in eine zu entwickelnde oder pflegende Software bedeuten kann... | Nun ja - überlegen Sie, was das aus Kostensicht für **Ihre eigene** Investition in eine zu entwickelnde oder pflegende Software bedeuten kann... | ||
Zeile 59: | Zeile 87: | ||
===== DotNet/ | ===== DotNet/ | ||
+ | .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. | ||
- | Hinweis: diese Infos werden | + | 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 " |
+ | |||
+ | .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 | ||
+ | * .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 " | ||
+ | * .net Anwendungen tendieren dazu, aus einer großen Anzahl komplementärer, | ||
- | .Net wurde Anfang der 90er Jahre 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. | ||
===== ACCESS ===== | ===== ACCESS ===== | ||
- | Mit ACCESS lassen sich recht einfach und schnell Datenbankanwendungen entwickeln. Deshalb wurde ACCESS von Microsoft in der Anfangseit | + | Mit ACCESS lassen sich recht einfach und schnell Datenbankanwendungen entwickeln. Deshalb wurde ACCESS von Microsoft in der Anfangszeit |
* einstellige Benutzerzahlen hat | * einstellige Benutzerzahlen hat | ||
- | * Daten bis max 20-50-MB verwaltet | + | * Daten bis max. 20-50-MB verwaltet |
- | Die Möglichkeit " | + | Die Möglichkeit " |
===== Visual Basic (VB6) ===== | ===== Visual Basic (VB6) ===== | ||
Zeile 85: | Zeile 119: | ||
===== Delphi ===== | ===== Delphi ===== | ||
- | Anmerkung: | + | Anmerkung: inzwischen hat die Firma Borland Delphi verkauft. |
Viele Delphi Entwickler suchen sich deshalb inzwischen ebenfalls eine "neue Heimat" | Viele Delphi Entwickler suchen sich deshalb inzwischen ebenfalls eine "neue Heimat" | ||
- | Im wesentlichen kann Delphi ähnlich wie VB plaziert | + | Im wesentlichen kann Delphi ähnlich wie VB platziert |
+ | ===== 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 " | ||
+ | |||
+ | 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, | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | Weiteres dazu finden sie unter [[Servoy]] | ||
===== SQL Server ===== | ===== SQL Server ===== | ||
Zeile 97: | Zeile 154: | ||
Sie sind dann sinnvoll oder notwendig wenn | Sie sind dann sinnvoll oder notwendig wenn | ||
* mehrere hundert oder tausend Benutzer zu " | * mehrere hundert oder tausend Benutzer zu " | ||
- | * erhöhte Anforderungen an den Zugriffsschutz gestellt werden | + | * erhöhte Anforderungen an den Zugriffsschutz gestellt werden |
* erhöhte Anforderungen an die Transaktionssicherheit gestellt werden | * erhöhte Anforderungen an die Transaktionssicherheit gestellt werden | ||
* nur eine relativ instabile Verbindung zwischen Client und Server besteht | * nur eine relativ instabile Verbindung zwischen Client und Server besteht | ||
Zeile 107: | Zeile 164: | ||
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. | 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 | + | Es lassen sich Anwendungen |
Falls bereits bei der Planung und Realisierung einer VFP-Software eine Trennung in die Schichten Oberfläche, | Falls bereits bei der Planung und Realisierung einer VFP-Software eine Trennung in die Schichten Oberfläche, | ||
Zeile 121: | Zeile 178: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
====== Die Verbreitung von VFP ====== | ====== Die Verbreitung von VFP ====== | ||
Grob geschätzt gibt es bundesweit ca. 40.000 FoxPro Entwickler, weltweit ca. 200.000. | 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. | Rund 1.500 Einzel-Entwickler und Firmen sind in der deutschsprachigen FoxPro User Group (dFPUG) organisiert. | ||
- | Über die dFPUG werden Regionaltreffen, | + | Über die dFPUG werden Regionaltreffen, |
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. | 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. | ||
Zeile 133: | Zeile 190: | ||
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 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) um Applikationen | + | VFP benötigt nur seine eigenen DLLs (2), sowie die auf den meisten Rechnern bereits vorhandenen Visual-C Runtime (msvcr71.dll) um Applikationen |
- | Diesen Umstand werden alle die zu schätzen wissen, die größere Installationen zu warten haben (Netzwerkadministratoren), | + | Diesen Umstand werden alle die zu schätzen wissen, die größere Installationen zu warten haben (Netzwerkadministratoren), |
Zeile 151: | Zeile 208: | ||
Die Datenbankfunktionalitäten ermöglichen die effiziente Kommunikation mit dem Datenbank-Back End (z.B. SQL Server, aber auch VFP) | 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 | + | In Kombination mit den OO-Fähigkeiten |
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. | 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. | ||
Zeile 174: | Zeile 231: | ||
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. | 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 15 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 | + | 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 ====== | ====== Typische Einsatzbereiche ====== | ||
Zeile 180: | Zeile 237: | ||
* Anwendungen mit großen Datenmengen | * Anwendungen mit großen Datenmengen | ||
* Verarbeitung von mehreren Millionen Datensätzen | * Verarbeitung von mehreren Millionen Datensätzen | ||
- | * Verarbeitung von Daten im GigaByte-Bereich | + | * Verarbeitung von Daten im Gigabyte-Bereich |
* Anwendungen bei denen es auf schnellsten Zugriff auf große Datenmengen ankommt | * Anwendungen bei denen es auf schnellsten Zugriff auf große Datenmengen ankommt | ||
* Komplexe Datenbankanwendungen mit vielen Tabellen und datenbezogenen Ein- und Ausgaben (Masken, Listen) | * Komplexe Datenbankanwendungen mit vielen Tabellen und datenbezogenen Ein- und Ausgaben (Masken, Listen) | ||
Zeile 196: | Zeile 253: | ||
====== Große mit VFP realisierte Projekte ====== | ====== 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. | * Die Bundeszentrale des Arbeiter Samariter Bundes in Köln verwaltet rund eine Million Mitglieder komplett mit VFP. | ||
* [[http:// | * [[http:// | ||
- | * HO Sports, der weltgrößte Herstelle von WasserSki | + | * HO Sports, der weltgrößte Herstelle von Wasserski |
- | * 1-800-Contacts. Die größte Mailorder-Kontakte Firma der USA... | + | * 1-800-Contacts. Die ehemals |
* March of Dimes - California Birth Defects Monitoring Program | * March of Dimes - California Birth Defects Monitoring Program | ||
- | * Die Betriebsdaten des Eurotunnels | + | * Die Betriebsdaten des Eurotunnels wurden mit einer FoxPro-Applikation verwaltet. Hierbei |
- | * Teile der Transport-Logistik der US-Streitkräfte und Teile der Einsatzplanung | + | * Teile der Transport-Logistik der US-Streitkräfte und Teile der Einsatzplanung |
+ | |||
+ | |||
+ | 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 ====== | ====== wofür sich VFP nicht besonders gut eignet ====== |