NOVEDADES DE 4D 20 R5

4D Write Pro 

Envolver texto alrededor de imágenes y cajas de texto.

Con 4D 20 R5, las imágenes y las cajas de texto ofrecen ahora la posibilidad de envolver texto, lo que aporta flexibilidad en el diseño de la maquetación de los documentos. Con los nuevos modos de anclaje, los usuarios pueden envolver texto alrededor de imágenes y cajas de texto, creando documentos visualmente atractivos sin restricciones.

Se ha mejorado la interfaz de 4D Write Pro para que pueda elegir cómo desea que se muestren las imágenes y las cajas de texto. Están disponibles nuevos valores para la acción estándar image/anchorLayout y textBox/anchorLayout. También puede ajustar estos valores por programación utilizando los nuevos atributos: wk text wrap top bottomwk text wrap squarewk text wrap square leftwk text wrap square right y wk text wrap square largest.  

Además, esta función se tiene en cuenta al exportar a SVG, PDF y HTML (en función del modo incorporado) y al importar y exportar a Word.

GESTIÓN DE SECCIONES DESDE LA INTERFAZ

4D 20 R5 permite gestionar los saltos de sección a través de la interfaz de usuario.

La actualización de la interfaz introduce menús accesibles por dos botones, que permiten a los usuarios insertar saltos de sección (como antes) y acceder a opciones para diferentes páginas. Esto permite una fácil personalización dentro de las secciones, como distinguir la primera página de las siguientes o diferenciar entre las páginas derecha e izquierda directamente desde la interfaz. Además, el nuevo menú ofrece la posibilidad de eliminar los encabezados y pies de página de las secciones y subsecciones.

LLENAR TABLAS CON líneas Y COLUMNAS ILIMITADAS

4D 20 R5 elimina el límite de 1000 líneas.

Este límite ya no es fijo y controlado por 4D Write Pro sino que sólo está limitado por la memoria disponible. Ahora puede asociar fuentes de datos con tablas, permitiendo el poblamiento automático sin restricciones.

wk page size para dimensionamiento de documentos

4D 20 R5 introduce un nuevo atributo de documento para 4D Write Pro: wk page size. Esta práctica funcionalidad le permite definir tanto el ancho como el alto del documento en un solo paso. Independientemente de su impresora actual, puede elegir entre formatos de impresora predefinidos, formatos personalizados creados por el usuario o incluso formatos ISO estándar (A0-C10, DL, Legal, etc.). Esto simplifica la definición de tamaños de documentos para distintas necesidades, ¡ahorrándole tiempo y código!

 

ORDA

RESTRICCIÓN DE DATOS EN SELECCIONES DE ENTIDADES

4D 20 R5 mejora la restricción de datos en las selecciones de entidades agilizando la implementación de filtros, asegurando una recuperación de datos más precisa adaptada a criterios específicos e interacciones de usuario, y asegurando el acceso a los datos a través de restricciones refinadas de consulta y selección.

Permite a los desarrolladores 4D aplicar filtros comerciales a los datos leídos de las clases de datos designadas. Los desarrolladores web pueden filtrar los datos recuperados basándose en el usuario u otra información relevante almacenada en las sesiones web. Los desarrolladores Qodly pueden filtrar los datos leídos en función de los usuarios finales que interactúan con la aplicación.

REST

USO MEJORADO DE LICENCIAS 4D CLIENT

4D 20 R5 introduce una nueva funcionalidad para sus APIs REST llamada Force Login. Este modo asegura que nadie pueda acceder a sus datos a menos que estén correctamente autenticados, requiriendo una autenticación exitosa antes de que cualquier dato pueda ser visto o manipulado a través de las APIs REST. Además, esta funcionalidad asegura que ninguna licencia 4D Client sea utilizada hasta que la autenticación sea exitosa.

FUNCIONALIDADES RELACIONADAS CON LA PROGRAMACIÓN

INTRODUCCIÓN DE LOS BLOQUES TRY-CATCH

Después de implementar el comando throw() e introducir la palabra clave Try(Expression), 4D 20 R5 se entrega con la siguiente evolución en el sistema de gestión de errores de 4D: ¡los bloques de código Try-Catch!

Los desarrolladores pueden manejar y localizar errores con precisión encapsulando código dentro de las palabras clave Try, Catch y End try. Si se produce un error, el bloque Catch se ejecuta para gestionarlo adecuadamente.

CLASES COMPARTIDAS

4D 20 R5 introduce las clases compartidas, que facilitan el trabajo con objetos compartidos.

Las clases compartidas simplifican el proceso de creación y uso de objetos compartidos, ya que gestionan automáticamente la configuración necesaria. Añadiendo la palabra clave “shared” al constructor o función de una clase, se indica que creará o modificará objetos compartidos.

4D Singleton

4D 20 R5 introduce una funcionalidad extremadamente útil: los singletons, que son objetos accesibles en toda la aplicación. Ofrecen multitud de funcionalidades, sirviendo como hosts para valores interproceso y clases utilitarias e incluso como elementos fundacionales para modelos de diseño como el modelo de fábrica.

Los hay de dos tipos:

  • singletons regulares, únicos por proceso,
  • y singletons compartidos, que son únicos para toda la aplicación.

Definirlos es sencillo. Añada “singleton” al constructor de la clase. A continuación, puede acceder fácilmente a sus singletons utilizando el atributo “me”.

 

DECLARACIÓN E INICIALIZACIÓN DE PROPIEDADES RACIONALIZADAS

4D 20 R5 introduce una nueva funcionalidad que agiliza la declaración de propiedades, permitiendo a los desarrolladores inicializar las propiedades simultáneamente con su declaración en una sola línea. Esta mejora simplifica la legibilidad y eficiencia del código, reduciendo la necesidad de bloques de inicialización separados. Los desarrolladores pueden crear bases de código más limpias y fáciles de mantener con opciones para tipos inferidos o tipos declarados e inicialización.

NUEVO OBJETO DE sesión REMOTA 4D CON CONEXIÓN CLIENTE/SERVIDOR

4D 20 R5 introduce una funcionalidad extendida al comando Session, cubriendo conexiones Cliente/Servidor y procedimientos almacenados junto con las sesiones Web y móviles existentes en las aplicaciones 4D. Esta actualización introduce una nueva clase, ‘ClientServerSession’, específicamente diseñada para sesiones remotas 4D, ofreciendo las siguientes propiedades: ID, info, storage y userName.

GESTIÓN SIMPLIFICADA DE PAQUETES

4D 20 R5 incorpora una funcionalidad que simplifica la gestión de paquetes: Package Manager. Ya no es necesario almacenar los componentes del proyecto en una carpeta Components. En su lugar, esta funcionalidad utiliza dependencies.json y environment4d.json, ofreciendo a los desarrolladores una visión más clara de las dependencias de sus aplicaciones y la posibilidad de personalizar las rutas de acceso a sus componentes.

Además, ahora puede acceder tanto a los componentes de 4D como a los de la carpeta Components del proyecto a través de una nueva pantalla en el menú Diseño, en dependencias del proyecto. Pronto, también podrá añadir y gestionar dependencias directamente desde esta interfaz, así como otras funcionalidades del gestor de paquetes.

 

4D PROjECT

MEJORA DE LA GESTIÓN DE CATÁLOGOS EN LOS SISTEMAS DE CONTROL DE VERSIONES

Gracias a sus comentarios, hemos mejorado significativamente la configuración de nuestros proyectos 4D.

Antes, todos los detalles del proyecto, como colores y posiciones de tablas, campos y relaciones, se almacenaban en catalog.4DCatalog. Ahora, hemos dividido esta información en un archivo separado llamado catalog_editor.json.

Esto facilita la gestión de los cambios y la revisión del trabajo, especialmente cuando participan varios desarrolladores. Con este cambio, el archivo de catálogo permanece intacto cuando alguien ajusta una tabla o un campo.

Esto ayuda a evitar conflictos y simplifica la revisión de los cambios. Además, hemos añadido una opción para cambiar a esta nueva configuración en los proyectos más antiguos. Si activa accidentalmente esta función, ¡no se preocupe! Podrá deshacerla fácilmente volviendo a la configuración anterior.

4D View Pro

MEJORA DE LAS FUNCIONES PERSONALIZADAS

4D 20 R5 permite realizar cálculos personalizados al contenido de columnas o líneas en una hoja de cálculo sin necesidad de conocer previamente el número de celdas implicadas. Esto es posible al permitir el paso de múltiples rangos de celdas u objetos a fórmulas personalizadas, lo que permite recuperar una colección o un objeto que contiene todo el contenido de las celdas dentro de un método 4D.

4D Netkit

ADJUNTAR UN EMAIL CON GMAIL

4D 20 R5 trae una nueva funcionalidad que le permite crear borradores de correos electrónicos y guardarlos directamente en etiquetas designadas en su buzón de correo sin necesidad de enviarlos. Esto le permite acceder fácilmente a sus plantillas y modificarlas cada vez que necesite enviar un correo electrónico similar.

PKCE PARA OAuth 2.0

4D 20 R5 ahora incluye PKCE (Proof Key for Code Exchange) en la autenticación OAuth 2.0. Activando el parámetro PKCEEnabled en la clase cs.NetKit.In de OAuth2Provider, se incrementa la seguridad contra ataques de intercepción y reproducción. Esta funcionalidad añade protección extra asegurando que cada intercambio de código de autorización sea criptográficamente seguro.

AUTENTICACIÓN OAUTH2.0 CON CERTIFICADO

En 4D 20 R5, Netkit ahora soporta la autenticación OAuth 2.0 basada en certificados para una mayor seguridad.

La autenticación se vuelve más robusta utilizando certificados en lugar de secretos de cliente, especialmente con servidores como Microsoft Identity Platform.

LA INTERFAZ USUARIO

PERSONALIZAr LA APARIENCIA DE LA APlicación CON los NUEVOS TIPOS DE VENTANAS

Dos nuevos tipos de ventanas le permiten diseñar a usted mismo la barra de título de la ventana y añadir sus propios elementos, como botones o una caja de búsqueda. Esto significa total libertad para adaptar la apariencia de su aplicación a sus especificaciones.

Pero eso no es todo. También hemos introducido varios nuevos comandos diseñados para agilizar su proceso de desarrollo:

  • Reducir una ventana en la barra de título en Windows o en el dock en macOS, REDUCE RESTORE WINDOW
  • Saber si la ventana está reducida en la barra de título en Windows o en el dock en macOS, Is Window Reduced
  • Saber si la ventana está maximizada, Is Window Maximized.

COMUNICACIÓN DE RED MEJORADA (QUIC)

SOPORTE DE IPV6 Y DE BROADCAST

Aunque QUIC (el futuro sistema de red entre 4D Remote y 4D Server) aún está en desarrollo y no está listo para producción, 4D 20 R5 añade más funcionalidades; es hora de empezar a probar en su propia red.

La funcionalidad broadcast permite a los usuarios identificar fácilmente los servidores 4D que ejecutan las aplicaciones en su red y conectarse, asegurando una integración transparente. Adicionalmente, la funcionalidad broadcast ha sido mejorada para proveer listados de servidores más precisos, asegurando que los usuarios sólo se conecten a los servidores relevantes.

Además, IPv6 también está soportado, lo que significa que puede utilizar su servidor 4D en una red IPv6.

Visual Studio Code

CONTROL DE LA SINTAXIS DEL Workspace

Con 4D 20 R5 y la extensión 4D-Analyzer, Visual Studio Code ofrece ahora la verificación sintáctica del workspace. Este control permite reducir errores y agilizar la codificación mediante la comprobación de errores en todo el proyecto 4D. Los errores y advertencias se muestran en una barra lateral, facilitando la detección y corrección de problemas.

DESCARGA AUTOMÁTICA DE TOOL4D

Con la versión 0.2.0 de la extensión 4D-Analyzer, en lugar de instalar manualmente una aplicación 4D e introducir su ruta en los parámetros de la extensión, la extensión descarga automáticamente una versión de tool4d, la almacena en una ubicación del sistema y la lanza en segundo plano. Esta simplificación pretende agilizar el proceso de inicio y mejorar el desarrollo con VS Code para 4D.

 

Codepaces GitHub

Los Codespaces de GitHub simplifican el desarrollo remoto al permitir la edición de repositorios desde cualquier lugar a través de Visual Studio Code o la aplicación Codespaces.

Con la integración de proyectos 4D, los desarrolladores pueden mejorar su experiencia de codificación con herramientas como 4D-Analyzer, que ofrece funcionalidades como resaltado de código y autocompletado. Como se ve en la sección anterior, 4D-Analyzer descarga y actualiza automáticamente la versión de la aplicación tool4d que haya definido. 4D ha lanzado una versión dedicada, tool4d, para GitHub para permitir esta operación en un entorno Codespace.

¿Quiere saber más? Lea todas las entradas del blog sobre 4D 20 R5