FoxBridge
FoxBridge holt das .NET-Ökosystem nach Visual FoxPro. Sie instanziieren jede .NET-Klasse, rufen ihre Methoden auf, lesen und schreiben Eigenschaften, arbeiten mit generischen Sammlungen (List<T>, Dictionary<K,V>), rufen statische Member auf und verwenden async/await – alles mit der Punktsyntax Ihres gewohnten VFP-Codes. Ohne COM, und ohne dass etwas zu registrieren wäre.
In diesem Abschnitt
- Installation: Welche Dateien zu kopieren sind, die .NET-Laufzeit und das Freischalten der Lizenz.
- Erste Schritte: Ihr erstes .NET-Objekt aus VFP in weniger als fünf Minuten.
- Beispiele: Zwanzig aufeinander aufbauende Beispiele, von StringBuilder bis HttpClient und async/await.
- API-Referenz: Die FoxBridge-Klasse und die Sammlungs-Proxys, Methode für Methode.
So funktioniert es
Zwei Schichten und eine einzige Klasse. FoxBridge.prg ist die API, die Sie aus VFP sehen; darunter startet x86\FoxBridgeNE.dll die .NET-Laufzeit und reicht die Aufrufe weiter, gestützt auf FoxBridge.dll, Nexum.dll und die beiden .json-Dateien daneben. Alle fünf Dateien dieses Unterordners gehören zusammen.
* Initialisieren und freischalten (die zwei Zeilen gehoeren zusammen)
loBridge = NEWOBJECT("FoxBridge", "FoxBridge.prg")
IF !loBridge.Activate(lcJwt)
? loBridge.GetLastError()
RETURN
ENDIF
* Und ab hier: .NET mit Punktsyntax
loSB = loBridge.Create("System.Text.StringBuilder", "Hallo ")
loSB.Append("aus .NET!")
? loSB.ToString() && "Hallo aus .NET!"loBridge.Activate() übergeben, und die Prüfung steht am Anfang aller fünfzig Einstiegspunkte des Motors: ohne Freischaltung nicht einmal ein StringBuilder. Ist die Wartung abgelaufen, läuft das Produkt weiter; was abläuft, ist der Anspruch auf neue Versionen. Was enthalten ist
- Instanziierung jedes .NET-Typs, mit bis zu zehn Konstruktorparametern
- Generische Sammlungen:
List<T>,Dictionary<K,V>und Arrays, 1-basiert wie in VFP - Statische Member: Klassenmethoden, -eigenschaften und -felder, über
Static() - Enums werden über ihren Namen aus dem statischen Proxy gelesen (
loFileMode.Create), statt sich die Zahl zu merken - Automatische Überladungsauflösung und Typumwandlung von VFP nach .NET
async/awaittransparent: auf die Task wird gewartet, und sie liefert ihr Ergebnis- Laden eigener kompilierter DLLs, mit
LoadAssembly() - Neun fertige Satelliten und ein Tutorial mit ClosedXML und iText, im Paket selbst (die Tabelle unten)
Die neun Satelliten
Sie liegen im Paket unter Satellites\ und sind VFP-.prg-Dateien, die Sie lesen und ändern können: jede kapselt ein Stück .NET in Funktionen mit FoxPro-Namen, damit Sie Create() nicht von Hand schreiben. Geladen wird mit SET PROCEDURE TO fb_http ADDITIVE, und die Bridge übergeben Sie einmal mit FB_SET_INSTANCE(loBridge); alle teilen sie sich.
| Satellit | Was es kapselt |
|---|---|
fb_http | Anfragen mit HttpClient: GET, POST, PUT und DELETE, der Statuscode per HEAD und der Download in eine Datei. |
fb_json | JSON per Punktpfad auf Basis von System.Text.Json lesen, prüfen und formatieren; und mit Funktionen in reinem VFP aufbauen. |
fb_crypto | Hashes von Text und Dateien, HMAC, AES (Text und Dateien), RSA (Schlüssel, verschlüsseln, signieren und prüfen), sichere Zufallswerte und Base64. |
fb_email | E-Mail per SMTP mit SmtpClient: Server und Absender festlegen, senden und eine Adresse prüfen. |
fb_io | ZIP (erstellen, entpacken, hinzufügen und auflisten), Dateien (kopieren, verschieben, löschen, Größe), Ordner und Pfade. |
fb_process | Prozesse starten und ihren Exit-Code oder ihre Ausgabe abholen, sie auflisten und beenden, eine Datei oder URL mit ihrem Programm öffnen, und Umgebungsvariablen. |
fb_dialogs | Meldungsfenster, Datei öffnen und speichern, Ordnerauswahl und die Zwischenablage. Er ist der einzige, der die .NET Desktop Runtime braucht, weil er WinForms verwendet. |
fb_aixl | Führt AIXL-Skripte über VFP-Cursor aus. Er braucht die DLL und die Lizenz von AIXL, die derzeit nicht verkauft werden. |
fb_aixl_easy | Dieselbe AIXL-Schicht als einzeilige Funktionen, etwa AIXL_CLASSIFY(). Gleiche Voraussetzung wie fb_aixl. |
Voraussetzungen
| Komponente | Voraussetzung |
|---|---|
| Visual FoxPro | VFP 9.0 SP2 (x86). Das Paket enthält auch x64\ für 64-bittiges VFP Advanced |
| Windows | Windows 10 oder 11 |
| .NET | Laufzeit 8.0 oder neuer, in der Architektur des Prozesses: bei VFP 9 die x86-Variante |
| COM | Keines. Keine Registrierung, kein Installer und kein Eintrag in der Windows-Registry |