Fundamentos del Aprendizaje de la Cuarta Dimensión
El concepto de runtime (tiempo de ejecución) es una de las ideas más importantes —y más incomprendidas— en el mundo de 4th Dimension (4D). Se encuentra en el corazón de cómo convertir una base de datos que usted mismo creó en una aplicación distribuible que otras personas puedan usar, sin darles las claves de su código fuente ni obligarlos a comprar una licencia de desarrollo completa. Esta sección explica qué son los runtimes, cómo 4D y FileMaker Pro (FMP) los abordaron de manera diferente y qué limitaciones prácticas necesita comprender antes de planificar una implementación.
Conclusiones clave
- Un runtime empaqueta un motor simplificado con sus archivos desarrollados para que los usuarios finales puedan ejecutar su aplicación sin poseer el producto de desarrollo completo.
- En 4D, la creación de runtimes está integrada en la Standard Edition y se puede distribuir libre de regalías y sin “binding” (vinculación).
- 4D Runtime es una aplicación independiente y redistribuible que ejecuta bases de datos interpretadas y no ofrece capacidad de diseño.
- 4D Runtime es monousuario por diseño: no puede conectarse en red, porque todas las redes de 4D requieren un servidor y puestos de cliente de pago.
- El enfoque de FileMaker Pro requería una Developer Edition y un paso de binding, y sus archivos de runtime tampoco podían conectarse en red.
Qué es realmente un runtime
Un runtime es un modelo de distribución. Cuando desarrolla una base de datos, está trabajando dentro de un entorno de desarrollo completo que incluye el editor de estructuras, el diseñador de formularios, el editor de métodos y todas las demás herramientas de diseño. Ese entorno es poderoso —y costoso—, y es peligroso entregárselo a un usuario final que podría alterar accidental (o deliberadamente) su estructura.
Un runtime resuelve los tres problemas a la vez:
- Costo: el usuario final no necesita comprar el producto de desarrollo completo.
- Protección: se elimina el entorno de diseño, por lo que la estructura y los métodos no se pueden editar.
- Enfoque: el usuario ve solo la aplicación que usted pretendía que viera, con sus menús e interfaz personalizados.
La contrapartida es la capacidad. Un runtime está deliberadamente limitado en relación con el producto completo. Comprender exactamente cómo está limitado —y si eso es importante para su proyecto— es la clave de todo.
En qué se diferenciaban 4D y FileMaker Pro
Tanto 4D como FMP ofrecían runtimes, pero la mecánica era bastante diferente. La siguiente comparación refleja el estado de los dos productos según lo documentado en ese momento.
| Aspecto | 4D (Standard Edition) | FileMaker Pro |
|---|---|---|
| Creación de runtime | Integrada | Requería una Developer Edition independiente |
| Binding requerido | No | Sí: archivos vinculados al motor |
| Regalías | Distribución libre de regalías | Regida por los términos de la Developer Edition |
| Redes en runtime | No compatible | No compatible, ni siquiera con FMP Server |
| Capacidad de diseño en runtime | Ninguna | Ninguna |
La diferencia arquitectónica clave es el binding. FMP requería que vinculara sus archivos al motor del runtime, y ese motor solo funcionaría con archivos que hubieran sido vinculados a él.
Relacionado: — Una interfaz simple de hoja de cálculo ubicada sobre una base de datos relacional real, con automatizaciones, vistas e interfaces para compartir..
4D adoptó un enfoque más flexible: el motor del runtime es simplemente una aplicación separada que puede abrir las bases de datos que usted diseñó para él, sin ningún paso de binding. Esa flexibilidad es una de las razones por las que los desarrolladores de 4D tendían a encontrar la distribución de runtimes menos engorrosa.
El 4D Runtime en detalle
Con 4D, la capacidad de crear runtimes está integrada en la Standard Edition. Puede crear versiones de runtime ilimitadas y distribuirlas libres de regalías. No existe ningún paso de binding. El motor 4D Runtime es una aplicación separada, al igual que 4D Standard, pero solo permite el uso de los programas 4D creados; no tiene capacidad de diseño alguna.
4D Runtime está designado como redistribuible según el Acuerdo de Licencia de 4th Dimension y puede distribuirse libremente según los términos de dicha licencia. 4D Runtime consta únicamente de la aplicación que lleva este nombre.
Si estás de compras: — Un creador de aplicaciones de bajo código que se conecta a la suite más amplia de Zoho y ofrece precios por usuario en lugar de por aplicación..
Algunos detalles de comportamiento son enormemente importantes en la práctica:
- 4D Runtime solo puede ejecutar bases de datos interpretadas. Si desea distribuir una base de datos compilada, necesita el producto 4D Runtime Classic, adquirido por separado, que permite runtimes de versiones compiladas.
- Cuando inicia 4D Runtime, el botón Nuevo no está presente en el cuadro de diálogo Abrir base de datos. No puede crear una nueva base de datos desde el runtime.
- El cuadro de diálogo Abrir base de datos le permite abrir solo estructuras interpretadas, y solo bases de datos diseñadas para ejecutarse en el entorno de Menús Personalizados (Custom Menus).
- Si abre una base de datos que no tiene barra de menú, 4D Runtime se cierra automáticamente. Este es un requisito estricto, no una advertencia.
- No puede ingresar al entorno de Usuario ni al entorno de Diseño. Si intenta acceder al entorno de Diseño —por ejemplo, utilizando el atajo Option-f— 4D Runtime se cierra automáticamente.
Vale la pena internalizar este último punto. El runtime no se niega cortésmente; termina el proceso. Este es un mecanismo de seguridad deliberado, pero significa que su base de datos debe estar configurada correctamente antes de crear el runtime, o sus usuarios chocarán contra un muro inmediatamente.
Por qué los runtimes no pueden conectarse en red
Esta es la limitación que más sorprende a la gente: los runtimes de 4D no pueden conectarse en red. A primera vista, esto parece una limitación grave. Pero tiene sentido una vez que se comprende la arquitectura de licencias de 4D.
Toda red con 4D requiere un Servidor. Los Clientes en sí pueden distribuirse libremente, pero aún así se debe comprar una licencia para cada puesto. Debido a que el modelo de servidor y cliente ya existe como la ruta admitida para el acceso multiusuario, el único propósito del runtime es el uso de un solo usuario. El runtime no compite con el Servidor: ocupa un nicho completamente diferente.
Por lo tanto, el árbol de decisión es sencillo:
- Usuario único, sin servidor $\rightarrow$ un runtime es el vehículo de distribución adecuado.
- Múltiples usuarios simultáneos $\rightarrow$ necesita 4D Server y licencias de cliente, no un runtime.
Intentar forzar un runtime a desempeñar una función multiusuario es un callejón sin salida. Planifique su arquitectura en torno a esto desde el principio.
Cómo decidir si un runtime se adapta a su proyecto
Antes de comprometerse con una distribución mediante runtime, analice estos criterios honestamente:
- ¿Es para un solo usuario? Si más de una persona necesita acceso simultáneo a datos compartidos, un runtime es la herramienta equivocada.
- ¿Interpretado o compilado? El 4D Runtime estándar ejecuta únicamente bases de datos interpretadas. Si necesita una distribución compilada, presupueste 4D Runtime Classic.
- ¿Su base de datos utiliza menús personalizados? Debe utilizarlos, y debe tener una barra de menú, o el runtime se cerrará al abrirse.
- ¿Ha eliminado todas las dependencias de tiempo de diseño? Cualquier método o formulario que asuma acceso al diseño fallará.
- ¿Comprende los términos de la licencia? La redistribución está permitida, pero se rige por el Acuerdo de Licencia de 4th Dimension; léalo en lugar de darlo por sentado.
Si puede responder a las cinco preguntas con confianza, un runtime es una forma limpia y libre de regalías de entregar su trabajo.
Lista de verificación de preparación práctica
Crear un runtime se trata menos de un solo comando y más de preparar su base de datos para que se comporte correctamente una vez que el entorno de diseño haya desaparecido. Una lista de verificación útil:
- Diseñe una barra de menú adecuada y gestione la aplicación a través del entorno de Menús Personalizados.
- Pruebe primero en el entorno de Usuario. Si su base de datos se comporta mal allí, se comportará peor en un runtime.
- Elimine o proteja cualquier código que asuma acceso al diseño, incluyendo cualquier cosa activada por accesos directos del modo de diseño.
- Confirme que la base de datos se abra limpiamente, sin ningún cuadro de diálogo que espere un botón “Nuevo”.
- Decida entre interpretado o compilado pronto, ya que esto determina si necesita 4D Runtime Classic.
- Documente las obligaciones de licencia que está transmitiendo a sus usuarios.
El tema recurrente es que el runtime no perdona las suposiciones. Todo lo que el entorno completo le permitió pasar por alto debe resolverse de antemano.
Dónde encajan los runtimes en la historia general de 4D
Los runtimes son una pieza de un panorama de implementación más amplio que incluye requisitos del sistema, estructuras de programas, diferencias de red, el compilador, alojamiento web, gráficos de datos, plug-ins y utilidades. Cada uno de estos interactúa con la decisión del runtime:
- El compilador determina si puede entregar la versión interpretada o si necesita un runtime compilado.
- La red determina si un runtime es viable en absoluto.
- Los plug-ins deben ser compatibles con el motor de runtime que distribuya.
- El alojamiento web es un canal de entrega completamente independiente, distinto de la distribución de runtime de escritorio.
Pensar en el runtime como la opción de “entrega de escritorio para un solo usuario” —situándose junto a la implementación multiusuario basada en servidor y la implementación web— mantiene todo el panorama coherente. Para obtener información sobre la plataforma en sí, consulte el artículo de Wikipedia sobre 4th Dimension, y para la categoría más amplia de herramientas que permiten a equipos pequeños crear aplicaciones empresariales, la descripción general de Wikipedia sobre plataformas de desarrollo de código bajo es una referencia útil. FileMaker, el otro producto analizado aquí, está documentado en FileMaker.
Preguntas frecuentes
¿Qué es un runtime de 4D?
Un runtime de 4D es una versión simplificada y redistribuible de la aplicación 4D que puede ejecutar las bases de datos que usted desarrolló, pero no ofrece capacidad de diseño. Le permite distribuir su trabajo a los usuarios finales sin exigirles que compren el producto de desarrollo completo. Está integrado en 4D Standard Edition y puede distribuirse libre de regalías.
¿Puede un runtime de 4D ser utilizado por varias personas a través de una red?
No. Los runtimes de 4D no pueden conectarse en red. Toda red en 4D requiere un Servidor y, aunque los clientes pueden distribuirse libremente, se debe comprar una licencia para cada puesto. Debido a esto, el único propósito del runtime es el uso de un solo usuario, y las implementaciones multiusuario deben utilizar 4D Server en su lugar.
¿Cuál es la diferencia entre 4D Runtime y 4D Runtime Classic?
El 4D Runtime estándar solo puede ejecutar bases de datos interpretadas. Si necesita distribuir un runtime de una base de datos compilada, debe comprar 4D Runtime Classic por separado. La elección entre ellos depende enteramente de si pretende entregar código interpretado o compilado.
¿Por qué se cierra 4D Runtime cuando intento abrir el entorno de Diseño?
Esto es intencionado. El runtime elimina deliberadamente toda capacidad de diseño, por lo que intentar ingresar al entorno de Diseño —por ejemplo, con el acceso directo Option-f— provoca que se cierre automáticamente. Del mismo modo, abrir una base de datos sin barra de menú provoca una salida inmediata, ya que el runtime espera bases de datos creadas para el entorno de Menús Personalizados.
¿Requiere FileMaker Pro vinculación (binding) para sus runtimes?
Sí. FMP requería que vinculara sus archivos con el motor de runtime, y ese motor solo funcionaba con archivos vinculados a él. También requería una Developer Edition separada. 4D, por el contrario, no tiene paso de vinculación e incluye la creación de runtimes en la Standard Edition.
¿Puedo crear una nueva base de datos desde 4D Runtime?
No. Cuando inicia 4D Runtime, el botón Nuevo no aparece en el cuadro de diálogo Abrir base de datos. El cuadro de diálogo permite abrir únicamente estructuras interpretadas y solo bases de datos diseñadas para ejecutarse en el entorno de Menús personalizados. La creación y el diseño de la base de datos deben realizarse previamente en el entorno de desarrollo completo.
Preguntas frecuentes
¿Qué es un tiempo de ejecución 4D?
Un tiempo de ejecución 4D es una versión simplificada y redistribuible de la aplicación 4D que puede ejecutar las bases de datos que usted desarrolló pero no ofrece capacidad de diseño. Le permite distribuir su trabajo a los usuarios finales sin exigirles que compren el producto de desarrollo completo. Está integrado en 4D Standard Edition y se puede distribuir libre de derechos.
¿Pueden varias personas utilizar un runtime 4D en una red?
No. Los runtimes 4D no se pueden conectar en red. Todas las redes en 4D requieren un servidor y, aunque los clientes pueden distribuirlo libremente, se debe comprar una licencia para cada puesto. Debido a esto, el único propósito del tiempo de ejecución es el uso de un solo usuario y las implementaciones multiusuario deberían usar 4D Server en su lugar.
¿Cuál es la diferencia entre 4D Runtime y 4D Runtime Classic?
El 4D Runtime estándar sólo puede ejecutar bases de datos interpretadas. Si necesita distribuir un runtime de una base de datos compilada, debe comprar 4D Runtime Classic por separado. La elección entre ellos depende completamente de si desea enviar código interpretado o compilado.
¿Por qué se cierra 4D Runtime cuando intento abrir el entorno de Diseño?
Esto es por diseño. El tiempo de ejecución elimina deliberadamente toda la capacidad de diseño, por lo que intentar ingresar al entorno de Diseño (por ejemplo, con el acceso directo Opción-f) hace que salga automáticamente. Del mismo modo, abrir una base de datos sin barra de menú provoca una salida inmediata, porque el tiempo de ejecución espera bases de datos creadas para el entorno de menús personalizados.
¿FileMaker Pro requiere vinculación para sus tiempos de ejecución?
Sí. FMP requería que vinculara sus archivos con el motor de ejecución, y ese motor solo funcionaría con archivos vinculados a él. También requirió una edición para desarrolladores separada. 4D, por el contrario, no tiene ningún paso vinculante e incluye la creación de tiempo de ejecución en la Edición Estándar.
¿Puedo crear una nueva base de datos desde 4D Runtime?
No. Cuando inicia 4D Runtime, el botón Nuevo no está presente en el cuadro de diálogo Abrir base de datos. El cuadro de diálogo le permite abrir solo estructuras interpretadas y solo bases de datos diseñadas para ejecutarse en el entorno de menús personalizados. La creación y el diseño de la base de datos deben realizarse de antemano en el entorno de desarrollo completo.
Pruebe FileMaker gratis durante 45 días
La plataforma de base de datos relacional de larga duración para equipos que necesitan aplicaciones personalizadas en escritorio, web y dispositivos móviles desde un solo archivo.