Inicio rapido
En menos de 5 minutos tendras tu primera clase .NET corriendo desde VFP.
Paso 1: Inicializar FoxBridge
loBridge = NEWOBJECT("FoxBridge", "FoxBridge.prg")
? loBridge.Ping() && "Pong" confirma que la DLL esta cargada Paso 2: Crear tu primer objeto .NET
System.Text.StringBuilder es una clase .NET que construye cadenas de forma eficiente. Es el 'Hola Mundo' de FoxBridge.
* Crear un StringBuilder con texto inicial
loSB = loBridge.Create("System.Text.StringBuilder", "Hola ")
* Llamar metodos encadenados
loSB.Append("mundo ")
loSB.Append("desde .NET!")
* Convertir a string VFP
lcResultado = loSB.ToString()
? lcResultado && "Hola mundo desde .NET!"
* Ver cuantos caracteres tiene
? loSB.Length && 22
* Liberar
loSB = .NULL. Paso 3: Trabajar con colecciones genericas
FoxBridge traduce List<T> y Dictionary<K,V> a proxies VFP. La indexacion es base-1 (como VFP).
* Crear una List<String>
loLista = loBridge.Create("List<String>")
* Agregar elementos
loLista.Add("Visual FoxPro")
loLista.Add("C#")
loLista.Add("F#")
? "Total:", loLista.Count() && 3
? "Primero:", loLista.Item(1) && "Visual FoxPro" (base-1)
* Recorrer la lista
For i = 1 to loLista.Count()
? loLista.Item(i)
Next
* Eliminar un elemento
loLista.Remove("F#")
? "Despues de Remove:", loLista.Count() && 2
loLista = .NULL. Paso 4: Llamar metodos estaticos
Muchas clases .NET tienen miembros estaticos (sin necesidad de instanciar). Usamos loBridge.Static() para acceder a ellos.
* System.Math es una clase estatica (no se puede instanciar)
loMath = loBridge.Static("System.Math")
? loMath.Abs(-42) && 42
? loMath.Sqrt(144) && 12
? loMath.Max(10, 20) && 20
? loMath.PI && 3.14159...
* System.IO.File: leer y escribir archivos
loFile = loBridge.Static("System.IO.File")
loFile.WriteAllText("C:prueba.txt", "Hola desde FoxBridge")
? loFile.Exists("C:prueba.txt") && .T.
? loFile.ReadAllText("C:prueba.txt")
loMath = .NULL.
loFile = .NULL. Paso 5: Cargar tu propia DLL
FoxBridge puede cargar cualquier DLL .NET que hayas compilado tu mismo.
* Cargar tu DLL compilada en .NET
llOk = loBridge.LoadAssembly("C:MiAppinMiLogica.dll")
IF llOk
* Instanciar una clase de tu DLL
loObj = loBridge.Create("MiEmpresa.MiLogica.Calculadora", 0.16)
lnTotal = loObj.CalcularConIVA(1000.00)
? "Total con IVA:", lnTotal
loObj = .NULL.
ELSE
? "Error:", loBridge.GetLastError()
ENDIF Regla de oro Siempre libera los objetos FoxBridge con = .NULL. cuando ya no los necesites. Esto libera la memoria en el heap .NET.
Siguiente: Ejemplos ->