Introducción a FoxServer
Contenido
¿Qué es FoxServer?
FoxServer es un servidor HTTP multiservicio desarrollado en X# (un lenguaje basado en xBase que compila a .NET), diseñado para integrar aplicaciones de Visual FoxPro (VFP) con servicios web modernos. Permite crear APIs RESTful y servir contenido web estático, actuando como un puente entre el código VFP tradicional y las tecnologías actuales.
FoxServer transforma aplicaciones VFP en servicios web sin necesidad de reescribir el código, permitiendo la integración con sistemas modernos.
Con FoxServer, puedes:
- Crear APIs RESTful para exponer datos y lógica de negocio de VFP.
- Servir contenido web dinámico utilizando plantillas VFP.
- Implementar microservicios para conectar con aplicaciones externas.
- Modernizar aplicaciones legacy manteniendo la base de código existente.
Características principales
Servidor HTTP/HTTPS
Servidor web integrado con soporte para HTTP y HTTPS, configurable según el nivel de suscripción.
API RESTful
Crea endpoints REST con soporte para JSON, manejo de parámetros y métodos HTTP (GET, POST, PUT, DELETE).
Motor de Plantillas VFP (en mantenimiento)
Genera contenido HTML dinámico utilizando plantillas procesadas con Visual FoxPro.
Enrutamiento Avanzado
Sistema de rutas flexible con parámetros dinámicos y caché de rutas para mayor rendimiento.
Middleware Personalizable
Implementa lógica de pre y post procesamiento con soporte para autenticación JWT, logging y webhooks.
Seguridad y Licencias
Autenticación JWT, soporte CORS y un sistema de licencias basado en Patreon para diferentes niveles de acceso.
Requisitos del sistema
Componente | Requisito |
---|---|
Visual FoxPro | VFP 9.0 SP2 o superior (para backend) |
Sistema Operativo | Windows 7 SP1 o superior (Windows 10/11 recomendado) |
.NET Framework | .NET Framework 4.7.2 o superior (para el núcleo de FoxServer) |
Memoria RAM | Mínimo 4GB (8GB recomendado) |
Espacio en disco | 100MB para la instalación básica |
Permisos | Acceso de administrador para configuración HTTPS y bindings de puerto |
Conexión a Internet | Requerida para validación de licencia y actualizaciones |
Arquitectura
FoxServer está diseñado con una arquitectura modular que separa las responsabilidades del servidor, integrando componentes .NET y Visual FoxPro:

Componentes principales
- Núcleo HTTP (X#/.NET): Maneja las conexiones TCP/IP y el protocolo HTTP/HTTPS mediante HttpListener.
- Router: Dirige las solicitudes a los controladores adecuados con un sistema de caché para rutas.
- Middleware: Procesa solicitudes y respuestas en cadena (logging, autenticación JWT, webhooks).
- Controladores VFP: Implementan la lógica de negocio en Visual FoxPro a través de COM interop.
- Motor de Plantillas VFPTemplateEngine: Procesa plantillas VFP para generar contenido dinámico.
- Sistema de Licencias: Gestiona niveles de acceso y límites basados en suscripciones Patreon.
Estructura básica de un controlador en FoxPro
DEFINE CLASS testapiBackend AS ApiController OLEPUBLIC
PROCEDURE pHello(req, res) HELP "GET: hello public"
LOCAL loRes
loRes = THIS.NewObject("status,data,message")
loRes.status = "ok"
loRes.data = NULL
loRes.message = "VFP API Server is running"
res.Status(200).Json(THIS.ToJson(loRes))
ENDPROC
ENDDEFINE
Casos de uso
APIs para aplicaciones modernas
Exponer datos y lógica de negocio de VFP a aplicaciones móviles o web mediante APIs RESTful.

Modernización de aplicaciones VFP
Transformar aplicaciones de escritorio VFP en servicios web sin reescribir la lógica de negocio.

Integración con sistemas externos
Conectar sistemas VFP con plataformas modernas como CRMs, ERPs o servicios en la nube mediante APIs.

Primeros pasos
Para comenzar a utilizar FoxServer, sigue estos pasos básicos:
-
Instalar FoxServer
Descarga e instala el paquete desde el sitio oficial o Patreon.
Ver guía de instalación -
Obtener una licencia
Suscríbete en Patreon para obtener una licencia y copia el archivo
foxserver.lic
a la carpeta de configuración.copy foxserver.lic c:\foxserver\config\servers\
-
Crear un proyecto API o WEB con WinFx
Crea un proyecto web con la herramienta WinFx para Visual FoxPro que te permite crear proyectos nativos compatibles con FoxServer.
Ver opciones de configuración -
Crear un controlador VFP
Define endpoints para tu API utilizando controladores en Visual FoxPro.
PROCEDURE pHello(req, res) HELP "GET: hello public" LOCAL loRes loRes = THIS.NewObject("status,data,message") loRes.status = "ok" loRes.data = NULL loRes.message = "VFP API Server is running" res.Status(200).Json(THIS.ToJson(loRes)) ENDPROC
-
Iniciar el servidor
Ejecuta FoxServer para comenzar a recibir solicitudes en el puerto configurado.
FoxServer.exe