Del tema de la revista a la práctica del proyecto
Páginas de servicios y técnicas relacionadas
Cuando en las empresas se habla de Delphi multiplataforma para Windows, macOS y Linux, rara vez se trata de “tecnología por la tecnología”. Normalmente hay una razón práctica detrás: un software empresarial consolidado funciona de forma fiable en Windows, pero las áreas de negocio exigen clientes macOS, los equipos de TI quieren integrar Linux-services en los estándares de servidor existentes, o se plantea una modernización sin volver a desarrollar toda la funcionalidad.
Delphi puede ser en este campo de tensión un puente pragmático, siempre que la multiplataforma se entienda como un tema operativo y de arquitectura. Porque los costes reales no se generan en la primera compilación, sino en el mantenimiento, el proceso de versiones, las actualizaciones de seguridad, el acceso a datos, el ecosistema de controladores, el empaquetado y el soporte. Este artículo sitúa cómo planificar la multiplataforma de forma realista, qué decisiones técnicas repercuten en la operación y qué trampas suelen aparecer tarde en los proyectos.
Por qué la multiplataforma rara vez es “solo una característica” en las empresas
En la práctica, la necesidad de multiplataforma surge de tres impulsores típicos:
- Dispositivos heterogéneos: Windows está establecido, macOS llega por gestión, ventas, diseño o mandos. Linux aparece bien como escritorio en entornos especializados o como estándar de servidor en el centro de datos.
- Estándares operativos: Muchos departamentos de TI quieren consolidar los servicios en Linux (monitorización, gestión de paquetes, endurecimiento), incluso si los clientes siguen siendo Windows.
- Modernización sin Big Bang: Aplicaciones existentes deben migrarse por fases a capas mantenibles, a menudo en paralelo con proyectos de base de datos e integraciones.
Importa distinguir: multiplataforma en el cliente (aplicación de escritorio) es distinto de multiplataforma en el backend (services/REST). Especialmente en el contexto B2B suele convenir un enfoque híbrido: clientes Windows estables, pero servicios Linux en servidor y APIs REST para integración, automatización y portales web.
Delphi multiplataforma para Windows, macOS y Linux: qué significa eso en concreto
La multiplataforma en Delphi no es una varita mágica, sino una caja de herramientas. Para TI y operaciones hay tres capas decisivas:
- Capa de UI: En Windows existe en muchas empresas un mundo VCL establecido (interfaz clásica en Windows). Para clientes verdaderamente multiplataforma suele entrar en juego FireMonkey (FMX), que permite la misma interfaz en distintos sistemas operativos —con particularidades nativas en cada uno.
- Lógica de negocio: El mayor apalancamiento está en la lógica compartida y bien encapsulada. Quien separa la lógica de negocio y el acceso a datos de la interfaz de usuario puede cambiar de plataforma sin reinventar el producto.
- Tiempo de ejecución y despliegue: Cada plataforma impone requisitos diferentes sobre instalación, permisos, firmado, actualizaciones, rutas, certificados y bibliotecas. Aquí se decide si la multiplataforma es en el día a día “fácil” o “costosa”.
Para los responsables, la pregunta clave no es por tanto “¿Puede Delphi macOS y Linux?”, sino: ¿Qué partes de nuestra solución deben ser realmente multiplataforma —y cómo garantizamos la operación y la mantenibilidad durante años?
Arquitectura: el mayor multiplicador de los costes de mantenimiento
Los proyectos multiplataforma rara vez fracasan por el compilador, sino por la falta de desacoplamiento. En aplicaciones existentes con frecuencia todo está mezclado: eventos de UI, acceso a bases de datos, lógica de negocio, impresión, sistema de archivos, llamadas de red. Eso funciona en „el único Windows-PC“, pero se convierte en una obra permanente en cuanto amplía plataformas o externaliza servicios.
Modelo de capas en lugar de “formulario como eje central”
Una práctica probada es un modelo de capas claro (a menudo denominado arquitectura en capas):
- Presentación: UI de escritorio (VCL o FMX) o frontends web.
- Lógica de aplicación y de negocio: reglas, flujos de trabajo, permisos, validaciones; idealmente sin dependencia directa de la UI o de los controladores de base de datos.
- Capa de integración: conexión a ERP/DMS/CRM, interfaces de archivo, mensajería, REST.
- Acceso a datos: acceso consolidado mediante límites de repositorio/servicio claramente definidos, en lugar de SQL en cada esquina.
Esta separación no es un ejercicio académico: reduce los casos especiales por plataforma, facilita las pruebas, permite componentes del lado del servidor y hace que las migraciones de base de datos (p. ej. a PostgreSQL) sean mucho más controlables.
Lógica de negocio compartida: multiplataforma sin desarrollo duplicado
Si toma en serio lo multiplataforma, la lógica de negocio debe diseñarse de forma que pueda ejecutarse tanto en una aplicación de escritorio como en un servicio. Esto es especialmente relevante si más adelante añade un portal de clientes, una interfaz web interna o una integración REST. En la práctica, esto significa: las decisiones de negocio deben estar en servicios/módulos, no en eventos de clic en una pantalla.
Estrategia de UI: mantener VCL, usar FMX de forma selectiva, complementar con web
Muchas empresas cuentan con una sólida base de escritorio Windows. Un cambio inmediato a una nueva tecnología de UI suele ser innecesariamente arriesgado. Las estrategias típicas y viables son:
Estrategia A: el cliente Windows permanece VCL, el backend se vuelve neutral respecto a la plataforma
Aquí la lógica central se extrae progresivamente de la aplicación VCL: en bibliotecas y componentes del lado del servidor. Resultado: el cliente Windows se mantiene estable, mientras que la integración, la automatización y los nuevos frontends se implementan mediante servicios. Linux entra en juego a través de la operación del servidor (p. ej. servidor REST o servicios en segundo plano).
Estrategia B: cliente multiplataforma con FMX para escenarios definidos
FMX tiene sentido si realmente necesita el mismo cliente en Windows y macOS, por ejemplo para personal de campo, puestos de trabajo móviles o flotas mixtas. Importante: los detalles de la UI (tipografías, atajos de teclado, diálogos, selección de archivos) difieren según la plataforma. Eso debe contemplarse en pruebas y soporte.
Estrategia C: escritorio complementado con portal
Muchas empresas no abordan el tema «macOS» mediante un cliente completo, sino mediante un portal para procesos claramente delimitados: consultas, aprobaciones, estado de pedidos, documentos. Esto aligera los despliegues de escritorio, reduce el esfuerzo de instalación y suele permitir un aseguramiento más rápido, porque la capa web central es más fácil de controlar.
Acceso a datos y bases de datos: FireDAC como factor de estabilidad operativa
En arquitecturas multiplataforma, el acceso a datos suele ser el área en la que las cargas históricas resultan más costosas. Especialmente los sistemas más antiguos Delphi dependen de la Borland Database Engine (BDE) o de controladores que solo funcionan correctamente en Windows. Para la operación esto supone un riesgo: disponibilidad de controladores, cuestiones 32/64 bits, Unicode, parches de seguridad y monitorización son difíciles de controlar.
Estrategia de controladores: homogénea, documentada, verificable
BDE-sustitución con integración nativa es en Delphi una capa de acceso a datos habitual que aborda distintas bases de datos de forma uniforme. Operativamente es menos relevante «qué tan elegante» se vea en el código y más bien:
- ¿Qué bibliotecas cliente se requieren? (p. ej., cliente de PostgreSQL, MariaDB o Oracle)
- ¿Cómo se distribuyen? Parte del instalador, gestionadas de forma central, imagen de contenedor
- ¿Cómo se gestionan de forma segura los parámetros de conexión? (Secrets, configuración protegida, sin contraseñas en texto claro en archivos)
- ¿Qué tan estable es el comportamiento ante fallos de red? Reintentos, timeouts, pooling
Migraciones de bases de datos: la multiplataforma como ocasión para fronteras de interfaz limpias
Si de todos modos se van a ampliar plataformas, a menudo es el momento adecuado para consolidar el acceso a datos. Una migración (p. ej., desde antiguos formatos de fichero o bases de datos embebidas a sistemas SQL como PostgreSQL o SQL Server) debería gestionarse como un proyecto con fases claras: modelo de datos, herramientas de migración, funcionamiento en paralelo, aceptación, plan de reversión. La multiplataforma aumenta la presión aquí, porque los controladores «Windows-only» o las rutas de archivo en macOS/Linux dejan de funcionar.
Servicios e interfaces: REST como puente entre plataformas
En paisajes heterogéneos, un enfoque REST (REST = interfaz basada en HTTP con recursos y métodos claros) suele ser la vía más pragmática para conectar plataformas. Para la operación eso implica: autenticación centralizada, protocolos estandarizados, mejor observabilidad (logs/métricas) y un desacoplamiento limpio entre cliente y base de datos.
Delphi REST-servidor vs. acceso directo a la base de datos desde el cliente
Muchas soluciones de escritorio existentes funcionan con acceso directo a la base de datos desde el cliente. En redes puramente Windows eso fue habitual durante largo tiempo. Con multiplataforma y seguridad moderna se vuelve más complejo:
- Segmentación de red: las bases de datos ya no están en la misma red que los clientes; los cortafuegos son más estrictos.
- VPN/Zero Trust: las conexiones directas a DB a través de redes cambiantes son propensas a fallos.
- Auditoría y permisos: es difícil reflejar de forma limpia los permisos funcionales en la aplicación si cada cliente ejecuta SQL directamente.
Un REST-servidor (o una capa de servicios) puede centralizar estos puntos: autenticación, autorizaciones, registro, limitación de tasa, versionado. Para los administradores, a menudo es más sencillo operar esto que «cien clientes con acceso a la base de datos».
Autenticación y SSO: SAML 2.0, OAuth, Tokens
En el entorno B2B, el Single Sign-on (SSO) suele ser obligatorio. SAML 2.0 (un estándar para federación de identidades entre el proveedor de identidad y la aplicación) o OAuth/OpenID Connect (procedimientos basados en tokens) son componentes típicos. Lo decisivo no es la palabra de moda, sino la cuestión operativa: ¿dónde residen las identidades, cómo se realiza el provisioning, cómo se protegen los tokens y cómo se registran los accesos de forma que sean auditables?
Despliegue y empaquetado: el esfuerzo subestimado
Delphi multiplataforma para Windows, macOS y Linux también significa: tres ámbitos en el empaquetado. Muchos costes surgen solo después del primer go-live, cuando las actualizaciones deben desplegarse de forma regular.
Windows: Installer, permisos, Services
En Windows son habituales los procesos MSI/installer, las directivas de grupo, UAC (User Account Control) y la firma de código. En cuanto participa un Windows- y Linux-Services, aparecen temas adicionales: cuenta de servicio, permisos en el sistema de archivos y en la red, orden de inicio, opciones de recuperación y rotación de registros. Para el mantenimiento es importante que el servicio esté claramente versionado y pueda actualizarse sin intervenciones manuales.
macOS: Notarización, firma y Gatekeeper
macOS suele exigir para aplicaciones distribuidas la firma y, según la vía de distribución, una notarización (proceso de verificación para que Gatekeeper ejecute la app). Para las empresas esto es menos un „tema de Apple“ que un problema de procesos: ¿quién custodia los certificados, cómo se gestiona la pipeline de builds, cómo se generan los releases de forma reproducible? Sin esa disciplina, cada hotfix se convierte en una acción aislada.
Linux: Paquetes, dependencias, systemd
En Linux son relevantes las unidades systemd (definiciones de cómo se inician y supervisan los servicios), los formatos de paquete (p. ej., DEB/RPM) o los despliegues basados en contenedores. Para los administradores cuenta: configuración clara, rutas definidas, registros útiles (p. ej., a través de journald), health-checks y una estrategia de actualización compatible con la política de distribución propia.
CI/CD y proceso de release: multiplataforma necesita builds reproducibles
A más tardar con tres plataformas objetivo, el „build manual“ se convierte en un riesgo. CI/CD (Continuous Integration/Continuous Delivery) no significa necesariamente aquí „todo totalmente automático en producción“, sino sobre todo: artefactos reproducibles, versiones trazables y un proceso estandarizado de pruebas y autorización.
En la práctica debe definir al menos:
- Matriz de build: ¿Qué plataformas, qué variantes (Debug/Release), qué controladores de base de datos, qué módulos opcionales?
- Versionado: Números de versión uniformes para cliente y servidor, además de los estados de migración de la base de datos.
- Firma: ¿Dónde se firma, cómo se protegen las claves (p. ej., HSM o agentes de build asegurados)?
- Smoke-Tests: Comprobaciones funcionales mínimas por plataforma que pueden bloquear a cada candidato a release.
Para los responsables es un tema de gobernanza: sin disciplina de releases, la multiplataforma resulta más cara con los años, porque los patrones de fallo son más difíciles de reproducir y los hotfixes provocan efectos secundarios distintos según la plataforma.
Monitorización, registro y análisis de fallos: lo que en operación realmente cuenta
En el trabajo diario los equipos de TI necesitan respuestas rápidas: «¿Por qué se ha quedado colgado el proceso?», «¿Es un problema del cliente o del backend?», «¿Desde cuándo ocurre?» La multiplataforma aumenta la variabilidad, por eso la observabilidad debe mejorar.
Estrategia unificada de logs entre cliente y servidor
Comprobada es una estrategia de logs por niveles:
- Logs del cliente: logs locales con rotación, referencia de correlación inequívoca (p. ej. ID de solicitud), conformes con la protección de datos.
- Logs del servidor: almacenamiento central, entradas estructuradas (cronología limpia, legibles por máquina), separación entre logs de auditoría y logs de depuración.
- Métricas: tiempos de respuesta, tasas de error, longitudes de colas, utilización del pool de base de datos.
Especialmente en arquitecturas REST una Request-ID (un identificador único por solicitud que se propaga a través de todos los componentes) es de gran valor, porque los casos de soporte pueden acotarse en minutos en lugar de horas.
Manejo de crashes y análisis de errores simbolizado
En plataformas de escritorio los crash dumps y los stacktraces deben gestionarse de modo que sean utilizables por soporte sin filtrar datos sensibles. Esto es organizativo: ¿qué datos pueden transferirse? ¿Cómo se obtiene el consentimiento? ¿Cómo se aseguran los símbolos de depuración y se asignan versiones? Sin estas preguntas el soporte multiplataforma suele ser buscar a tientas.
Seguridad y cumplimiento: las plataformas implican superficies de ataque diferentes
Con Windows, macOS y Linux no aumenta automáticamente el riesgo, pero la superficie de ataque se vuelve más variada. Puntos típicos que en los proyectos a menudo se abordan demasiado tarde:
- Gestión de certificados: certificados TLS para servidores, certificados de cliente, fechas de expiración, renovación automatizada.
- Secretos: contraseñas de base de datos, API-Keys, claves de firma — no en configuraciones en texto claro ni en scripts de instalación.
- Concepto de permisos: privilegios mínimos para servicios, separación clara entre funciones de administrador y de usuario.
- Capacidad de actualización: los parches de seguridad deben poder desplegarse rápidamente; eso depende directamente del proceso de empaquetado y publicación.
Especialmente en empresas con requisitos de auditoría conviene definir pronto una breve lista de verificación de seguridad por plataforma e incorporarla en la aceptación.
Trampas típicas en proyectos multiplataforma
Algunos problemas aparecen una y otra vez — no porque los equipos «trabajen mal», sino porque en historiales exclusivos de Windows eran invisibles:
Sistema de archivos y rutas: detalle pequeño, gran impacto
Diferentes convenciones de rutas, sensibilidad a mayúsculas y minúsculas (case-sensitivity), directorios de usuario y permisos provocan errores en exportaciones, adjuntos, archivos temporales o caches. Aquí ayuda un concepto de abstracción consistente: servicios centrales de rutas, directorios de aplicación definidos, sin ubicaciones de almacenamiento codificadas de forma rígida.
Impresión, PDF e integración con Office
Los flujos de impresión y de documentos son a menudo críticos en procesos de negocio. Windows tiene rutas de impresión establecidas, macOS y Linux se comportan de forma diferente. Si la generación de PDF, las firmas o la salida de comprobantes son relevantes, estas funciones deben probarse pronto en todas las plataformas objetivo — no solo justo antes del despliegue.
Unicode y juegos de caracteres
A más tardar en plataformas mixtas, interfaces y bases de datos, Unicode (un estándar de codificación de caracteres para caracteres internacionales) se vuelve imprescindible. Los legados con historial „ANSI“ suelen provocar errores difíciles de rastrear en búsquedas, ordenación, exportaciones CSV o en las interfaces. Una estrategia de Unicode abarca la UI, las columnas de la base de datos, las interfaces y los datos de prueba.
32/64 bits y dependencias de bibliotecas
Un clásico: un controlador o una biblioteca de terceros está disponible solo para una arquitectura. Para el funcionamiento eso significa: lista de dependencias clara, documentar versiones, comprobar la compatibilidad de licencias y la capacidad de actualización. Una solución multiplataforma solo es tan estable como la dependencia más débil.
Ayuda para la decisión: ¿Cuándo merece la pena realmente Delphi multiplataforma?
Una mirada pragmática al esfuerzo y al beneficio ayuda a mantener la discusión técnica. Multiplataforma suele merecer la pena, por lo general, cuando:
- el núcleo funcional es estable a largo plazo y la reutilización compensa a lo largo de los años,
- existen razones organizativas reales para clientes macOS (no solo „sería bueno“),
- Linux ya es estándar en el backend y están previstos servicios/REST,
- la aplicación debe integrarse en una red de integración con ERP/DMS/CRM,
- se puede establecer un proceso de release claro (compilación, firma, pruebas).
Multiplataforma es menos sensato cuando la aplicación depende en gran medida de componentes específicos de Windows (p. ej. automatización profunda de Office, controladores especiales, integraciones basadas en COM) y esas funciones no se pueden encapsular claramente. En ese caso, a menudo una estrategia mixta es más realista: cliente Windows para casos especiales, Portal/REST para procesos independientes de la plataforma.
Ruta de modernización: multiplataforma sin reiniciar por completo
Para muchas empresas, el punto más importante es: multiplataforma no tiene por qué significar reescribirlo todo. Un camino viable suele ser el siguiente:
- Análisis del estado actual y definición de límites e interfaces: ¿Qué módulos son funcionalmente estables, cuáles están cerca de la UI o de la base de datos, dónde están los mayores riesgos?
- Consolidar el acceso a datos: p. ej. BDE-sustitución, BDE-Ablosung mit nativer Anbindung, estrategia unificada de conexión y de transacciones.
- Establecer capa de servicios: API REST para procesos centrales, sustitución gradual del acceso directo a la base de datos.
- Priorizar plataformas: Primero estabilizar el backend en Linux, luego el cliente macOS para grupos de usuarios definidos, en lugar de hacerlo todo a la vez.
- Profesionalizar empaquetado/CI: compilaciones y actualizaciones reproducibles como parte integral del proyecto.
Este camino es especialmente adecuado para software empresarial personalizado con ciclos de vida largos, porque protege la lógica de negocio y reduce de forma controlada los riesgos técnicos.
Conclusión: la multiplataforma es una decisión operativa – no solo una decisión de desarrollo
Delphi multiplataforma para Windows, macOS y Linux puede ser para las empresas un camino muy pragmático para desarrollar técnicamente procesos consolidados sin perder el núcleo funcional. Lo decisivo es planificar la multiplataforma como un paquete completo: arquitectura con capas claras, acceso a datos consolidado, interfaces aptas para servicios, compilaciones reproducibles, empaquetado limpio y una estrategia de logging/monitorización que aclare los casos de soporte con rapidez.
Cuando estas bases estén establecidas, la multiplataforma deja de ser un proyecto interminable y se convierte en una ampliación controlable de su solución empresarial digital – con costes operativos realistas y una hoja de ruta que conecta la migración con el desarrollo continuo.
Si desea evaluar de forma estructurada su situación inicial (inventario, plataformas objetivo, base de datos, interfaces y modelo operativo): contáctenos para una consulta técnica inicial.
En el ámbito técnico, la Delphi Modernización también desempeña un papel importante cuando las integraciones, los flujos de datos y el desarrollo deben funcionar de forma coherente.
Discutir un proyecto o iniciativa de modernización con Net-Base.
Siguiente paso
Cuando el tema se convierte en un proyecto real, la arquitectura, los sistemas existentes y la operación deben considerarse desde el principio.
No solo apoyamos en consultas puntuales, sino también cuando, a partir de fragmentos de código fuente, temas heredados o ideas de portales, debe consolidarse un proyecto empresarial robusto.
- La situación actual, el estado objetivo y los riesgos técnicos se evalúan conjuntamente.
- REST, el acceso a datos, los portales y el rollout no se posponen como consecuencias tardías.
- Detecta con antelación qué enfoque es viable desde el punto de vista económico y operativo.