Preguntas Frecuentes (FAQ)
Contenido
Conceptos básicos
¿Qué es exactamente FoxServer y para qué me sirve?
FoxServer es como darle una "puerta moderna" a tu aplicación VFP que ya funciona perfectamente. Imagínate que tu sistema VFP es como una oficina con empleados expertos, pero solo tiene una puerta vieja que requiere estar físicamente ahí. FoxServer construye múltiples puertas modernas: una para la web, otra para móviles, otra para integraciones.
En términos prácticos: Tu cliente podrá consultar su estado de cuenta desde su celular, tu vendedor podrá verificar stock desde la calle, y otros sistemas podrán "hablar" con tu VFP automáticamente.
¿Qué son las APIs y por qué las necesito?
Una API es simplemente una forma para que diferentes programas "conversen" entre sí. Es como tener un traductor que permite que tu sistema VFP entienda las peticiones que vienen de una página web, una app móvil, o incluso Excel.
Ejemplo real: Tu cliente abre una página web, pone su código de cliente, y automáticamente ve cuánto debe. Tu sistema VFP responde esa pregunta sin que tú tengas que hacer nada manual.
¿Tengo que reescribir mi sistema VFP?
¡Para nada! Tu lógica de negocio queda exactamente igual. Solo necesitas crear un servicio API con algunas funciones VFP que devuelvan los datos que quieres compartir. Es como agregar "ventanillas de atención" a tu sistema sin cambiar lo que hay adentro.
* Ejemplo: Crear un servicio Web para consultar el estado de cuenta de un cliente
DEFINE CLASS Cobranzas AS ApiController OLEPUBLIC
PROCEDURE pEstadoCuenta(req, res) HELP "GET: cobranzas/estado/{codigo}"
LOCAL cCodigoCliente
cCodigoCliente = req.Params.codigo
* Aquí usas tu lógica VFP normal
* para consultar el estado de cuenta
SELECT * FROM facturas WHERE cliente = cCodigoCliente INTO CURSOR temp
IF RECCOUNT("temp") > 0
res.Status(200).Json(THIS.CursorToJson("temp"))
ELSE
res.Status(404).Json("{'error': 'Cliente no encontrado'}")
ENDIF
ENDPROC
ENDDEFINE
¿Es muy complicado de aprender?
Si sabes programar en VFP, ya tienes el 80% del conocimiento necesario. FoxServer se encarga de toda la parte técnica complicada (HTTP, JSON, seguridad). Tú solo te enfocas en crear clases que devuelvan datos.
Lo que necesitas saber: Trabajar con clases. Lo que NO necesitas aprender: Protocolos web, formatos JSON, configuración de servidores.
Instalación y configuración
¿Qué necesito tener instalado en mi computadora?
Para montar un entorno de desarrollo necesitas lo básico que probablemente ya tienes:
- Visual FoxPro 9.0/10.0/10.1/10.2 (32/64) bit (que ya usas)
- Windows 7 o superior (Windows 10/11 es mejor)
- .NET Framework 4.7.2 (se instala automáticamente si no lo tienes)
- 4GB de RAM mínimo (8GB recomendado)
Es muy probable que tu computadora actual ya cumpla todos estos requisitos.
¿La instalación es complicada?
La instalación es muy sencilla. Básicamente consta de un par de instaladores que puedes descargar desde el apartado Instalaciones y seguir las indicaciones.
¿Cómo obtengo una licencia?
Las licencias se manejan a través de suscripciones a Patreon con diferentes niveles según tus necesidades:
Característica | Free | Starter ($10/mes) |
Professional ($25/mes) |
Enterprise ($60/mes) |
|
---|---|---|---|---|---|
Proyectos simultáneos | 5 | 5 | 10 | ||
Servidores por proyecto | 5 | 5 | 10 | ||
Conexiones simultáneas | 25 | 25 | 100 | ||
Peticiones por día | 5000 | 10000 | 100000 | ||
Servidores HTTPS | ✅ Incluido | ✅ Incluido | ✅ Incluido | ✅ Incluido | ✅ Incluido |
Autenticación JWT | ✅ | ✅ | ✅ | ✅ | ✅ |
Webhooks activos | 5 | 10 | 25 | ||
Webhooks por día | 100 | 200 | 1000 | ||
Logs avanzados | ✅ | ✅ | ✅ | ✅ | ✅ |
Server Status | ✅ | ✅ | ✅ | ✅ | ✅ |
White Labeling | ❌ | ❌ | ❌ | ❌ | ✅ |
Soporte prioritario | ❌ | ❌ | ❌ | ✅ + Videollamadas |
💡 Estrategia recomendada: Empieza con Professional (cubre el 90% de casos comerciales) y escala según crezcan tus necesidades.
Desarrollo e integración
¿Cómo conecto mi sistema VFP existente?
Importante: Tu aplicación VFP existente NO se "conecta" mágicamente con FoxServer. Lo que necesitas hacer es crear un proyecto API REST completamente nuevo usando WinFx.app que exponga tus datos a través de endpoints web.
⚠️ Aclaración técnica importante
FoxServer no puede invocar directamente tu código VFP existente. Debes crear un nuevo proyecto API y adaptar tu lógica de negocio para que funcione como servicio de datos.
Proceso real paso a paso:
- Crear proyecto API nuevo: Usas WinFx.app para generar un proyecto compatible con FoxServer
- Reutilizar tu lógica: Copias y adaptas el código de tu aplicación original (PRG, funciones, clases)
- Adaptar para servidor: Eliminas todo lo que sea interfaz de usuario (formularios, mensajes, diálogos)
- Exponer como endpoints: Conviertes tus funciones en servicios web
* Archivo: ClientesController.prg (NUEVO proyecto API)
DEFINE CLASS ClientesController AS ApiController OLEPUBLIC
PROCEDURE pConsultarCliente(req, res) HELP "GET: cliente/{codigo}"
LOCAL cCodigo, loResultado
cCodigo = req.Params.codigo
* Aquí ADAPTAS tu lógica existente
* (copiada de tu aplicación original pero SIN interfaces)
loResultado = THIS.BuscarClienteEnBD(cCodigo) && Tu función adaptada
IF loResultado.encontrado
res.Status(200).Json(THIS.ToJson(loResultado))
ELSE
res.Status(404).Json('{"error": "Cliente no encontrado"}')
ENDIF
ENDPROC
* Función adaptada de tu sistema original
FUNCTION BuscarClienteEnBD(cCodigo)
LOCAL loResult
* Tu lógica de negocio ADAPTADA (sin MESSAGEBOX, sin formularios)
SELECT * FROM clientes WHERE codigo = cCodigo INTO CURSOR temp
loResult = THIS.NewObject("cliente,encontrado")
IF RECCOUNT("temp") > 0
loResult.cliente = THIS.CursorToObject("temp")
loResult.encontrado = .T.
ELSE
loResult.encontrado = .F.
ENDIF
RETURN loResult
ENDFUNC
ENDDEFINE
🚫 Limitaciones importantes que debes saber:
- Sin interfaces de usuario: Nada de MESSAGEBOX(), WAIT WINDOWS, formularios, ni diálogos
- Solo procesamiento de datos: Tu API es un servidor, no una aplicación interactiva
- Compilación MTDLL: WinFx compila a multithreaded DLL, que no permite interfaces VFP
- Adaptación necesaria: Debes modificar tu código existente para que funcione como servicio
💡 En resumen:
No es "conectar" tu aplicación existente, es crear un nuevo proyecto API que reutilice tu lógica de negocio adaptada para funcionar como servidor de datos. Tu aplicación VFP original sigue funcionando independientemente.
¿Puedo usar mis tablas y bases de datos actuales?
¡Por supuesto! FoxServer trabaja con tus tablas DBF, bases de datos SQL Server, MySQL, o cualquier fuente de datos que ya uses en VFP. No necesitas migrar ni cambiar nada de tu estructura actual.
¿Qué pasa si mi aplicación VFP tiene muchos formularios y reportes?
Los formularios y reportes siguen funcionando igual. FoxServer no interfiere con tu aplicación de escritorio. Simplemente agrega la capacidad de que otros sistemas consulten tus datos. Puedes tener tu aplicación VFP corriendo normal y FoxServer respondiendo consultas web al mismo tiempo.
¿Cómo hago para que mi página web muestre datos de VFP?
Una vez que tienes tu proyecto API en ejecución, cualquier página web puede obtener datos usando JavaScript simple:
// En tu página web
fetch('http://tuservidor.com/api/cliente/12345')
.then(response => response.json())
.then(data => {
document.getElementById('nombre').innerHTML = data.cliente.nombre;
document.getElementById('saldo').innerHTML = data.cliente.saldo;
});
Es decir, tu página web "pregunta" a tu sistema VFP y obtiene la respuesta automáticamente.
Seguridad y rendimiento
¿Es seguro exponer mi sistema VFP a internet?
FoxServer está diseñado con seguridad en mente. Tu sistema VFP nunca está expuesto directamente. FoxServer actúa como un "guardián" que:
- Valida todas las peticiones antes de llegar a VFP
- Maneja autenticación con tokens JWT
- Registra todos los accesos en logs
- Permite configurar qué datos se pueden consultar
Es más seguro que tener tu VFP corriendo directamente en red.
¿Qué pasa si muchas personas acceden al mismo tiempo?
FoxServer maneja múltiples conexiones simultáneas sin problemas. Está optimizado para responder rápido y usar eficientemente los recursos. En pruebas reales maneja cientos de consultas por minuto sin afectar el rendimiento de tu aplicación VFP principal.
¿Puedo controlar quién accede a qué información?
Sí, tienes control total. Puedes:
- Activar la seguridad con JWT (JSON Web Tokens) y hacer todos tus endpoints privados
- Exponer públicamente ciertos endpoints con el modificador de acceso public
¿Afecta el rendimiento de mi aplicación VFP actual?
FoxServer NO interfiere directamente con tu aplicación legacy - son procesos completamente independientes.
🔄 Escenario Actual (Coexistencia)
Si ambas aplicaciones acceden a las mismas tablas DBF:
- Pueden ocurrir locks temporales muy breves cuando ambas escriben simultáneamente
- El impacto es mínimo en la mayoría de casos
- Tu app desktop sigue funcionando a la misma velocidad
🚀 Arquitectura Recomendada
Lo ideal es centralizar todo a través de FoxServer:
- Tu aplicación desktop se convierte en cliente HTTP
- Todos los datos fluyen por el mismo canal (APIs)
- Eliminas completamente los conflictos de acceso
- Ganas consistencia, logs centralizados y mejor control
💡 Migración gradual: Puedes empezar con coexistencia y migrar módulo por módulo hacia la arquitectura API-first.
Licencias y soporte
¿Qué tipo de soporte ofrecen?
El soporte varía según tu nivel de suscripción:
🆓 Gratuito, Starter, Professional y Enterprise
- Documentación técnica completa: Guías, ejemplos y FAQ
- Chat comunitario: Acceso al grupo privado en Patreon
- Actualizaciones: 1-4 por año según nivel
🚀 Starter ($10/mes)
- Acceso a todas las herramientas y recursos
- Soporte por email: Respuesta en 24-48h laborables
- Actualizaciones inmediatas: Acceso a todas las versiones
💼 Profesional ($25/mes)
- Todo lo anterior, más:
- Soporte por email: Respuesta en 24-48h laborables
- Actualizaciones inmediatas: Acceso a todas las versiones
🏢 Enterprise ($60/mes)
- Todo lo anterior, más:
- Soporte prioritario: 2 horas mensuales incluidas
- Consultoría técnica: 1 videollamada mensual (30 min)
- Horario: Lunes a Viernes, 9:00-18:00 (hora española)
- Incluye: Optimización, mejores prácticas, diagnóstico de errores
Contacto: rodriguez.irwin@gmail.com
Nota: El soporte Enterprise requiere programar videollamadas con 5 días de antelación y está sujeto a disponibilidad de agenda.
¿Puedo cancelar mi suscripción en cualquier momento?
Sí, puedes cancelar cuando quieras desde Patreon. Si cancelas, FoxServer sigue funcionando hasta el final del período pagado, después pasa al modo de evaluación con limitaciones.
Casos prácticos
Tengo un ERP en VFP, ¿cómo permito que mis clientes vean sus facturas online?
Es un caso perfecto para FoxServer. Creas un proyecto API REST que conecte con tu ERP existente:
Paso 1: Crear el controlador API (archivo .prg separado)
** facturasApiBackend.prg
define class facturasApiBackend as ApiController olepublic
procedure pFacturasCliente(req, res) help "GET: facturas/{codigo} public"
local loRes, cCodigo
loRes = this.newobject("status,data,message")
cCodigo = req.params.codigo
* Aquí puedes reutilizar la lógica de tu ERP existente
select numero, fecha, total, estado ;
from facturas ;
where cliente = cCodigo ;
order by fecha desc ;
into cursor facturas_cliente
loRes.status = "ok"
loRes.data = this.TableToJsonObject("facturas_cliente", .t.)
loRes.message = "Facturas obtenidas correctamente"
use in facturas_cliente
res.status(200).json(this.toJson(loRes))
endproc
enddefine
Paso 2: Tu cliente accede a tuempresa.com/api/facturas/12345
y obtiene sus facturas en tiempo real, sin tocar tu ERP legacy.
El API actúa como "puente" entre tu sistema VFP y el mundo web.
Mis vendedores necesitan consultar stock desde sus celulares
Perfecto. Creas un endpoint que consulte tu tabla de inventarios y una app web simple que funcione en cualquier celular:
Resultado: Tu vendedor escanea un código de barras con su celular, y automáticamente ve stock disponible, precio, y puede hasta generar una cotización.
Necesito integrar mi sistema VFP con mi tienda online
FoxServer es ideal para esto. Tu tienda online (WooCommerce, Shopify, etc.) puede consultar precios y stock en tiempo real desde tu ERP VFP, y también puede enviar pedidos automáticamente.
Beneficio: No más sincronización manual de inventarios. Tu tienda online siempre muestra el stock real de tu sistema VFP.
¿Puedo crear reportes web desde mis datos VFP?
Absolutamente. Puedes crear dashboards web que muestren gráficos, reportes y estadísticas en tiempo real desde tus datos VFP. Es especialmente útil para gerencia que quiere ver números desde cualquier lugar.
Mi contador necesita acceder a reportes contables desde su oficina
Con FoxServer puedes crear un portal web seguro donde tu contador acceda solo a los reportes que necesita, sin tener que instalar tu sistema completo en su computadora.