Comenzamos una serie de publicaciones en el blog sobre los ajustes de compatibilidad y las opciones secretas que pueden ayudar a mejorar drásticamente el rendimiento y el comportamiento de sus aplicaciones(QUERY BY FORMULA, Transactions y punto y coma). Este último post de la serie dará una visión general de los ajustes restantes.
Aquí hay un ejemplo de una estructura creada hace muchos años. Las opciones de compatibilidad están deshabilitadas, lo que significa que está funcionando completamente en modo v17.
Tenga en cuenta que los ajustes de compatibilidad le permiten emular un comportamiento más antiguo, pero no se supone que sean permanentes. Te conceden un tiempo de migración ampliado, pero no esperes demasiado… con el tiempo las opciones de migración desaparecen. Teniendo en cuenta que las estructuras recién creadas no permiten utilizar estos ajustes antiguos, se prueban cada vez menos, lo que aumenta el riesgo de comportamientos inesperados.
Modo Unicode
OS X, Windows NT y 4D v11 (y más recientes) están diseñados para y ejecutan sólo Unicode. El motor de la base de datos de 4D sólo funciona con Unicode. El lenguaje soporta un modo de compatibilidad, donde cada línea ejecutada convierte el texto a/desde Unicode para emular el manejo de la codificación MacRoman. Y sí, esto disminuye el rendimiento. Durante los últimos 10 años, ha habido muchas notas técnicas, sesiones del 4D Summit y formaciones sobre cómo migrar a Unicode. Si no lo ha hecho ya, es hora de empezar ahora.
Con Unicode activado, debería activar también el ajuste de compatibilidad «Guardar métodos como Unicode». Una vez habilitado, cada nuevo método analizado se guarda en Unicode, lo que permite utilizar conjuntos de caracteres extendidos como literales en su código. No hay ningún problema de compatibilidad con guardar los métodos en Unicode, excepto si usas plugins antiguos para leer/escribir directamente los métodos (que están obsoletos desde hace mucho tiempo).
Por último (pero DEFINITIVAMENTE no menos importante), la notación de objetos sólo es posible con Unicode.
Utilizar el tipo de fecha en lugar del formato de fecha ISO en los objetos
Esta opción es nueva en la v17, consulte la entrada del blog sobre las fechas dentro de los objetos para obtener más información.
Utilizar la nueva arquitectura para el despliegue de aplicaciones
Esta opción facilita la creación de aplicaciones de sólo lectura y, dado que la ruta del último servidor o archivo de datos utilizado ya no se almacena dentro de la aplicación, también ayuda a desplegar las actualizaciones. Obtenga más información en esta entrada del blog.
Evitar la caída de datos que no provengan de 4D
Si esta configuración está activada, sus aplicaciones todavía se ejecutan en el modo 4D v2004, donde arrastrar y soltar desde otras aplicaciones en 4D (que no sean texto e imágenes) no era posible.
Si no lo ha hecho ya, ha llegado el momento de soportar la función de arrastrar y soltar. Para más información, lea los capítulos Arrastrar y soltar y Gestión de la mesa de trabajo en la documentación.
No utilizar el nuevo modo de referencia contextual
Esta configuración es tan antigua, que honestamente ni siquiera recuerdo si esto emula a 4D 6.0 o 6.5.
Si no utiliza el servidor web de 4D, simplemente desactívelo. Si lo usa, está habilitado, y no ha tocado su código en 15 años, es hora de una actualización …
Eliminar «/» en las URLs desconocidas
Esto establece el Servidor Web en modo 4D v2003. Si este ajuste está activado, es hora de reescribir su código.
Asignación automática de variables
Si está activada: URGENTE – ¡LEA ESTO AHORA!
Este es un problema de seguridad potencial, posiblemente enorme (dependiendo de su código).
Hace 20 años, esta era una característica cómoda que fue rápidamente reemplazada por un enfoque más seguro (y que requería más codificación).
Cuando se habilita, las variables HTML utilizadas en un formulario HTML son automáticamente mapeadas a variables 4D siempre que estén definidas en Compiler_Web. Aunque sólo un pequeño subconjunto de variables se definen normalmente allí, sigue existiendo la amenaza potencial de que esas variables puedan ser sobrescritas por un hacker.
Una mejor manera de asignar variables (introducida con 4D 6.5) es usar WEB GET VARIABLES.
4D recomienda encarecidamente que reescriba su código (si es necesario) y desactive esta configuración.
… en conclusión
Este último post completa la serie sobre los ajustes de compatibilidad, esperamos que lo hayas disfrutado. Ahora disfruta de tus nuevos conocimientos sobre compatibilidad y diviértete configurando tus aplicaciones para que se ejecuten de forma segura y óptima.