Preguntas Frecuentes (FAQ)

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 Email ✅ + 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:

  1. Crear proyecto API nuevo: Usas WinFx.app para generar un proyecto compatible con FoxServer
  2. Reutilizar tu lógica: Copias y adaptas el código de tu aplicación original (PRG, funciones, clases)
  3. Adaptar para servidor: Eliminas todo lo que sea interfaz de usuario (formularios, mensajes, diálogos)
  4. 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.