El generador de código con IA de la versión 2025 proporciona sugerencias de código en WLanguage a medida que escribe, lo que reduce drásticamente el tiempo de programación.
Una de las ventajas de la generación de código WLanguage con IA se pone en evidencia cuando los desarrolladores necesitan programar para un dominio con el que no están familiarizados.
Ahora los desarrolladores solo tienen que escribir un comentario describiendo el proceso deseado y la IA generará sugerencias basadas en el contexto del código actual y del proyecto.
La generación de código WLanguage basada en IA también es útil para los desarrolladores nuevos en WINDEV, dado que les permite descubrir las increíbles posibilidades de un lenguaje de quinta generación (5GL).
En este caso también, basta con describir el proceso deseado y el código correspondiente se generará basado en el contexto del código y del proyecto actuales.
Esta IA generativa de código se ofrece en una fase relativamente temprana.
Con el tiempo se irán añadiendo nuevas funcionalidades, y el propio motor mejorará de forma autónoma mediante el aprendizaje automático.
El nuevo control Botón segmentado funciona como un conjunto de botones ON/OFF agrupados en un solo control.
Todos sus elementos utilizan un diseño coherente.
Además, admite opciones únicas y múltiples.
Cada opción puede contener texto o una imagen. La programación es muy sencilla.
Puede transformar un control Casilla de verificación en un control Botón segmentado de opción múltiple, o un control Botón de opción en un control Botón segmentado de opción única.
Programar un Botón segmentado es mucho más sencillo que programar un conjunto de controles Botón de opción, Casilla de verificación o Interruptor.
Puede definir las siguientes opciones en el código de un Botón segmentado:
La palabra clave Reactive indica que el procedimiento debe observar las variables y controles utilizados en el código y ejecutarse si se detecta algún cambio.
Un procedimiento reactivo puede ser global (y por tanto permanentemente reactivo), local a una ventana o local a un control.
Los procedimientos reactivos proponen 2 opciones:
Un procedimiento reactivo puede modificar una variable o un control utilizados por otro procedimiento reactivo. En este caso, se ejecutará el otro procedimiento reactivo.
El framework implementa los mecanismos de seguridad necesarios para evitar llamadas en bucle, por ejemplo.
El comportamiento de esta ventana debe ser el siguiente:
REACTIVE PROCEDURE Shipping_modes()<delay=1s>
GR_SHIPPING..Grayed = True // Default
IF CBOX_GTC[1] = True THEN
RADIO_SHIPPING_MODE..Grayed = False
SWITCH RADIO_SHIPPING_MODE
CASE 1 // Delivery to one address
COMBO_ADDRESS..Grayed = False
CASE 2 // Delivery to a relay point
COMBO_RELAY_POINT..Grayed = False
CASE 3 // Store pickup
END
END
Con un procedimiento reactivo, todos estos procesos se reducen a 11 simples líneas de código. En este ejemplo, solo es necesario crear un procedimiento local en la ventana, y declararlo como un procedimiento reactivo.
Este procedimiento se ejecutará automáticamente cuando CBOX_GTC o RADIO_SHIPPING_MODE cambien de valor, por ejemplo, cuando un usuario seleccione una opción.
Los procedimientos reactivos permiten desencadenar automáticamente la ejecución de procesos.
Un procedimiento reactivo se ejecuta cuando el valor de una variable o el contenido de un control utilizado en el procedimiento cambia, ya sea mediante programación o por una acción del usuario final.
En resumen, el procedimiento se ejecuta automáticamente cuando se modifica una variable o un control.
Entrada de un importe antes y después de impuestos.
Cuando se introduce un importe en un control, los demás controles se actualizan automáticamente.
También es posible escribir esta operación en WLanguage, directamente en cada control.
En ese caso, tendría que crear un procedimiento que realice el cálculo, e incluir una llamada en ese procedimiento, en el proceso de Modificación de cada uno de los 3 controles.
En la versión 2025, solo es necesario indicar que el procedimiento de cálculo es un procedimiento reactivo.
El framework de WINDEV observa los controles y los valores de las variables y ejecuta automáticamente el procedimiento cuando se detecta un cambio.
No es necesario escribir las llamadas en cada control en el que se pueden realizar cambios.
No es necesario realizar acciones manuales, cargar archivos o definir parámetros. Cuando utiliza un almacén de contraseñas, éste se carga automáticamente con el programa ejecutable. Otra ventaja más de la integración total de WINDEV.
El almacén mismo está protegido por una contraseña. Puede crear varias contraseñas para acceder a un almacén.
Existen dos niveles de contraseña:
Por ejemplo, el director del proyecto puede tener la contraseña maestra y crear una contraseña secundaria para cada desarrollador que esté autorizado a crear o modificar contraseñas.
En la versión 2025, se detectan las contraseñas legibles en el código y se genera una advertencia en tiempo de compilación. Esta verificación puede activarse en las opciones del compilador.
El nuevo modificador se convertirá rápidamente en una herramienta indispensable en su flujo de trabajo.
Este nuevo panel ofrece una vista inteligente e intuitiva de las propiedades de la ventana, página, control o grupo de controles en edición.
Las propiedades se ordenan por relevancia, según el control. Cada propiedad se representa de forma visual, lo que proporciona una mejor experiencia de usuario.
El nuevo modificador está disponible para todos los elementos:
La vista se adapta a cada elemento, pero mantiene una coherencia global.
Los cambios que se realizan en el nuevo modificador se reflejan inmediatamente en el elemento actual.
La cinta de opciones contiene todos los controles disponibles. Sin embargo, entre tantos elementos puede resultar difícil encontrar el control deseado.
En la versión 2025, un nuevo panel le permite crear controles fácilmente.
La cinta de opciones sigue estando disponible.
El nuevo panel ofrece una disposición mucho más clara. Los controles están agrupados por categorías.
Cada control se muestra en una miniatura.
El panel puede ubicarse a la derecha o a la izquierda del entorno, o puede desacoplarse.
El panel de creación de controles contiene una serie de funcionalidades esenciales:
El editor de páginas de WEBDEV 2025 presenta una increíble novedad: una sofisticada vista 3D de los controles de la página.
La vista 3D le ayudará a manipular fácilmente los controles contenedores: Flexbox, celdas, etc.
Puede activar la vista 3D para toda la página o para un contenedor determinado.
Esta vista 3D también permite seleccionar y abrir la ventana de descripción de cualquier control.
La vista 3D incluye las siguientes características:
Esto facilita la visualización de controles anidados y apilados.
Puede trabajar en vistas 2D y 3D de forma simultánea.
Cuando selecciona un control en una vista, este se selecciona automáticamente en la otra.
Por lo tanto, puede seleccionar un control en la vista 3D y editarlo inmediatamente en 2D.
La presencia de un certificado en un servidor garantiza que los usuarios visiten el dominio buscan.
Los certificados evitan la suplantación del nombre de dominio.
Los sitios web son accesibles a través de HTTP.
HTTPS es la versión segura de HTTP.
Los navegadores modernos ya no permiten visitar sitios web que no utilicen HTTPS.
Por lo tanto, la instalación de un sitio web requiere la implementación de HTTPS y, por lo tanto, la presencia de un certificado en el servidor.
Los certificados Let's Encrypt son ampliamente utilizados. Se trata de certificados gratuitos generados automáticamente por la organización ISRG, que cuenta principalmente con el apoyo financiero de Google.
WEBDEV Application Server 2025 gestiona automáticamente:
Para utilizar un certificado Let's Encrypt en un servidor WEBDEV, basta con marcar la casilla "Generar automáticamente un certificado Let's Encrypt" en la cuenta para la que se desea activar el certificado.
Puede especificar el nombre o los nombres de dominio que estarán protegidos por el certificado.
¡WEBDEV Application Server 2025 se encarga de todo!
Puede utilizar certificados distintos de los de Let's Encrypt.
En este caso, debe instalar y gestionar los certificados manualmente.
El protocolo OAuth es un estándar abierto utilizado para emitir autorizaciones seguras.
Un servidor de autenticación OAuth gestiona los siguientes aspectos:
Un servidor de autenticación OAuth puede estar alojado en un servidor físico de cualquier tipo: red local ("on premise"), proveedor de alojamiento, nube, etc.
De forma predeterminada, WEBDEV Application Server 2025 incluye un servidor de autenticación OAuth.
Para utilizar este servidor de autenticación, basta con activar la opción del servidor de autenticación OAuth al instalar WEBDEV Application Server en la versión 2025.
Este servidor de autenticación simplifica enormemente la instalación, administración y programación, sin costos adicionales.
Este servidor de autenticación también puede utilizarse para la autenticación SSO.
El servidor de autenticación OAuth proporcionado con WEBDEV 2025 incluye todas las funcionalidades que pueda necesitar.
El servidor gestiona una base de datos de cuentas, así como un sitio web para administrar, crear y editar cuentas o importarlas de un directorio LDAP, etc.
Una vez implementada la autenticación OAuth en un sitio web o aplicación, los usuarios deben proporcionar sus credenciales de inicio de sesión.
Esta etapa la gestiona el servidor de autenticación.
Puede personalizar la página de inicio de sesión.
Si un usuario olvida su contraseña, esta página le permite obtener una nueva.
También puede crear nuevas cuentas desde la página de inicio de sesión.
Se acepta la verificación en dos pasos (por correo electrónico o aplicaciones de autenticación).
La función AuthIdentify de WLanguage gestiona la autenticación y abre la página de inicio de sesión.
Un lenguaje de terceros puede utilizar el servidor de autenticación de WEBDEV a través de solicitudes HTTP.
Los tokens son generados por el servidor e identifican a un usuario determinado.
Al crear credenciales de OAuth (par "Client ID/Secret"), puede definir permisos que determinan las autorizaciones del token.
El servidor de OAuth gestiona automáticamente la solicitud del usuario para utilizar uno o más permisos disponibles.
Los tokens se actualizan automáticamente.
WEBDEV permite crear fácilmente servicios web REST.
En la versión 2025, también puede crear servicios web REST que requieran un token de acceso OAuth.
¡WEBDEV 2025 se encarga de todo!
Para acceder a determinados servicios web, se requiere un token de acceso.
Por lo tanto, los usuarios deben obtener un token para llamar a los servicios web.
OAuth es un protocolo estándar que les permite obtener este token.
Recordatorio: OAuth permite gestionar las autorizaciones de acceso.
Este token es proporcionado por un servidor de autenticación, utilizando el protocolo OAuth.
Basta con crear un servicio web como de costumbre. En la descripción del servicio web, especifique la dirección del servidor de autenticación deseado.
Con WEBDEV 2025, no se requiere programación adicional.
oauth_parameters is OAuth2Parameters
...
// Authentication request
MyToken is AuthToken = AuthIdentify(oauth_parametres)
// Retrieve number of invoices for the logged-in user
req is httpRequest
req.AuthToken = MyToken
req.URL = "http://serv.mycompany.com/V1/Billing/Invoice?num_invoice=" + num
req.Send()
Para autorizaciones más específicas, puede utilizar permisos detallados, conocidos como "scopes".
Este tipo de autorización se define a través de una interfaz específica en el servidor de autenticación.
Algunos ejemplos son: acceso en modo de escritura, acceso a un recurso específico, etc.
Puede especificar los permisos necesarios para cada punto de entrada del servicio web.
Un servicio web seguro requiere un servidor OAuth. WEBDEV 2025 permite elegir entre:
Si utiliza un servidor de autenticación de terceros, simplemente compruebe que dispone de los servicios necesarios.
El inicio de sesión único (SSO) ofrece un enfoque práctico en el proceso de autenticación de usuarios.
Los usuarios introducen sus credenciales de inicio de sesión una vez, y estas son reconocidas automáticamente por todos los demás sitios web a los que acceden. Esto significa que los usuarios no necesitan introducir sus credenciales de acceso varias veces.
El nombre de usuario y la contraseña solo se almacenan en el servidor de autenticación, lo que garantiza la seguridad y facilita el acceso a los sitios
Todo se gestiona automáticamente para los sitios desarrollados con WEBDEV 2025.
Cada sitio que utilice el inicio de sesión único debe llamar a un servidor de autenticación.
El servidor de autenticación:
Este servidor de autenticación viene con WEBDEV Application Server 2025.
WEBDEV 2025 utiliza el protocolo OpenID Connect, que permite a otros sitios web (no desarrollados con WEBDEV) utilizar este servidor de autenticación.
Para implementar el inicio de sesión único, los sitios web deben conocer una clave secreta emitida por el servidor de autenticación.
Para autenticar a un usuario, el sitio web debe llamar a la función AuthIdentify de WLanguage, que incluye entre sus parámetros esta clave secreta.
La primera vez que un usuario intenta iniciar sesión, se muestra una página de inicio de sesión definida por el servidor de autenticación. Una vez iniciada la sesión, el servidor emite un token (almacenado en una cookie).
La próxima vez que se inicie sesión, se detectará automáticamente esta cookie y se validará el acceso al sitio.
No se requiere programación adicional. La función AuthIdentify de WLanguage se encarga de todo.
Existen dos métodos para implementar el inicio de sesión único en un sitio WEBDEV:
La forma más sencilla de implementar el inicio de sesión único en un sitio WEBDEV es utilizar el Groupware Usuario integrado. Con este método, solo necesita especificar los parámetros de acceso al servidor de autenticación en la ventana de configuración del GPU.
Este método es el más adecuado para sitios que no utilizan el Groupware Usuario.
La programación sigue siendo igual de fácil gracias a las funciones AuthIdentify y OpenIDIdentify de WLanguage.
Un reporte impreso puede contener distintos tipos de contenido en el anverso y el reverso de la página.
Un ejemplo típico es una factura, impresa en una cara de la hoja, con las condiciones generales de venta impresas en el reverso.
En la versión 2025, puede imprimir dos reportes diferentes en ambas caras del papel.
La vista previa de un reporte que contiene un anverso y un reverso diferentes muestra las páginas una al lado de la otra.
La nueva función iInitReportVerso de WLanguage permite especificar el nombre del reporte que se imprimirá en el reverso.
Este reporte puede imprimirse en una sola página o en varias.
Si hay más páginas en el reverso que en el anverso, puede utilizar páginas "en blanco" en el anverso.
También puede utilizar un documento PDF en el reverso de cada página.
// Print the General Terms and Conditions on the back of the invoice
iInitReportVerso(RPT_GTC)
iPrintReport(RPT_Invoice, Invoice_Number)
Las nuevas funciones ScanFromCameraToImage y ScanFromCameraToPDF de WLanguage permiten tomar fotos con un smartphone y transformarlas en un documento listo para usar.
Los elementos no deseados se eliminan y, si es necesario, se corrige la distorsión de la perspectiva.
Un caso común es el escaneo de un documento firmado a mano.
La función WLanguage captura la imagen, detecta el documento y crea una representación dentro de un paralelogramo. El usuario puede ajustar el área del documento.
Una vez que el usuario confirma los cambios, se corrige cualquier distorsión de la perspectiva.
Los usuarios pueden escanear varias páginas seguidas.
En ese caso, se generará un solo archivo PDF con todas las páginas.
El escaneo incluye algunas opciones avanzadas. En este modo, el resultado devuelto es un array de variables de tipo Image.
Esto permite realizar todos los procesos específicos necesarios.
Por ejemplo, puede utilizar el OCR en imágenes escaneadas llamando a las funciones OCRDetectTextArea y OCRExtractTextBlock de WLanguage.
Una forma común de confirmar una acción dentro de una aplicación es solicitar un código recibido por SMS.
Para la mayoría de los usuarios, puede ser un proceso tedioso, dado que implica navegar entre varias aplicaciones.
El control Smart "Autenticación mediante un código de un solo uso" permite a su aplicación obtener y utilizar este código automáticamente.
Este control Smart utiliza la nueva función SMSDetectOneTimeCode de WLanguage.
El control Smart tiene en cuenta las pequeñas diferencias entre Android e iOS.
En Android, todo el proceso se realiza directamente, mientras que iOS añade una capa extra de seguridad al exigir una confirmación por parte del usuario final.
En la versión 2025, solo tiene que utilizar este control Smart en su aplicación y este se adaptará al sistema operativo automáticamente.
Este control Smart es totalmente personalizable, puede editar las opciones del control, el código, etc.
Inserte una firma manuscrita en un documento PDF directamente desde un smartphone.
El documento PDF puede haber sido escaneado con el dispositivo.
Solo tiene que tomar una foto de su firma y sus iniciales (función incluida en el control Smart) e insertarlas en el lugar deseado.
La versión 2025 incluye el nuevo control Smart "Firma manuscrita en un PDF".
Recordatorio: Las firmas electrónicas también están disponibles en aplicaciones móviles mediante Docusign o Yousign.
Con las paletas, los usuarios finales pueden cambiar el aspecto de su aplicación con un solo clic.
Solo tiene que utilizar la función WLanguage PaletteChange en el código fuente indicando la paleta que se va a aplicar.
El motor gráfico de WINDEV 2025 aplica los cambios dinámicamente.
Una paleta es un conjunto de casi cien colores.
Cada color está destinado a un uso específico en la plantilla: fondo, texto, filetes (líneas), etc.
Cada color recibe un nombre según su uso: color_fondo_principal, color_texto_principal, color_banner, color_fondo_boton, etc.
Una vez definidas, las paletas asignan un color a cada "nombre de color". Por ejemplo, color_fondo_boton = amarillo o color_fondo_boton = RGB(125,200,36)
Cuando se cambia la paleta actual, todos los controles cambian automáticamente a los nuevos colores.
Este mecanismo permite cambiar el aspecto de una aplicación de forma fácil y dinámica.
La nueva función PaletteChange de WLanguage permite cambiar la paleta de colores utilizada por una plantilla, y así, renovar una aplicación en una sola línea de código.
La versión 2025 incluye un gran número de paletas de colores. Entre ellas, la paleta "Tema oscuro" que permite cambiar fácilmente las aplicaciones a un tema oscuro.
La nueva función PaletteGenerate de WLanguage genera una paleta de colores basada en el color de Windows del equipo del usuario final. Esto permite obtener una IU que coincide con el color dominante del PC en uso.
La función PaletteGenerate también permite crear una paleta de colores específica. Esto es particularmente útil cuando un proyecto tiene que cumplir con una guía de estilo. También es posible crear colores adicionales, asignarles un nombre e incluirlos en una paleta.
Las plantillas definen el estilo de los controles: bordes, efectos, tamaño, tipo de fuente, tamaño de la fuente, etc. Las plantillas utilizan colores para todos estos elementos. En la versión 2025, se ha cambiado el formato interno de las plantillas para utilizar una paleta de colores en lugar de colores fijos.
Cuando se aplica una paleta diferente, los íconos deben adaptarse, sobre todo al cambiar a un tema oscuro. Por ejemplo, en un tema oscuro, los colores de los íconos cambian automáticamente a blanco para mejorar la legibilidad.
Las paletas se almacenan como archivos JSON en el disco. Esto permite compartirlas fácilmente entre diferentes proyectos.
En cualquier parte del código WLanguage, puede asignar un nombre a un color en lugar de utilizar el código del color. Esto incluye funciones, propiedades, etc. También puede asignar un nombre a un color en la ventana de 7 pestañas.
Una factura electrónica adopta la forma de un documento PDF/A-3 (legible por el ser humano) y de un documento XML (para aplicaciones) que contiene los datos de la factura. WINDEV permite:
WINDEV dispone de todas las funcionalidades que permiten a los vendedores enviar facturas a un portal público y a los compradores descargar facturas del portal:
Ya era posible automatizar los enlaces con el portal francés Chorus Pro (implementado para la contratación pública). Ahora, también es posible crear facturas electrónicas en formato Factur-X.
La versión 2025 incluye un nuevo gráfico de porcentaje pictórico.
Este nuevo gráfico es una representación visual de los datos en forma de porcentajes, que utiliza ilustraciones como botellas, siluetas humanas, termómetros, etc.
Esto facilita la comprensión de la información de un vistazo.
La programación del nuevo gráfico de porcentaje pictórico se realiza de la misma manera que cualquier otro gráfico estándar.
Puede especificar las imágenes deseadas mediante programación o a través de la ventana de 7 pestañas.
Se admiten imágenes vectoriales (SVG) o de mapa de bits (JPEG, PNG, etc.).
El formato vectorial se recomienda cuando se debe cambiar el tamaño de las imágenes sin que pierdan calidad.
Puede manipular este tipo de gráfico utilizando las funciones gr de WLanguage.
La versión 2025 incluye la nueva plantilla "Apollo".
Esta plantilla le brinda nuevas posibilidades de personalización.
Utilice esta y todas las demás plantillas proporcionadas con WINDEV libremente en sus aplicaciones y paquetes de software.
Recuerde que puede aplicar una paleta para cambiar los colores y para crear sus propias plantillas.
La versión 2025 incluye la nueva plantilla "Emerald". ¡Utilícela para personalizar sus aplicaciones!
Utilice libremente esta y todas las demás plantillas proporcionadas con WINDEV Mobile en sus aplicaciones.
Recuerde que puede aplicar una paleta para cambiar los colores y para crear sus propias plantillas.
WINDEV 2025 le permite integrar fácilmente las soluciones de Yousign en sus aplicaciones. Esta aplicación de firma electrónica cumple con el reglamento europeo eIDAS.
Se admiten los tres tipos de firma electrónica:
Yousign incluye un modo muy útil llamado "Aprobador".
Este modo permite que uno o varios destinatarios, no necesariamente firmantes, aprueben un documento antes de que se firme. Puede tratarse de una aprobación jurídica o técnica, por ejemplo.
Esta funcionalidad es compatible de forma nativa con la versión 2025.
Las funciones WLanguage están disponibles como un Componente interno, con su código fuente.
Las funciones permiten:
El proveedor de servicios (Yousign) se encarga de todos los aspectos de verificación, el envío por correo electrónico, la comprobación del documento de identidad y el almacenamiento de los documentos.
Para simplificar el desarrollo, un asistente intuitivo genera el código necesario.
Para manipular casos especiales, puede acceder a todas las API proporcionadas por Yousign realizando una llamada en el código WLanguage.
Todos los puntos de entrada están disponibles directamente en el editor de código.
Yousign ofrece varios tipos de suscripción, que dan acceso a diferentes tipos de firmas.
Para acceder a todas las funcionalidades de las API, debe elegir una suscripción de API.
TLS permite realizar una copia única de una variable global para cada subproceso.
Esto hace posible que varios subprocesos utilicen variables globales sin sobrescribirlas.
En la versión 2025, los subprocesos que utilizan procedimientos se ejecutan hasta 8 veces más rápido.
Las llamadas a procedimientos en subprocesos ahora son mucho más rápidas.
En la versión 2025, puede forzar la conversión de un tipo simple a otro (por ejemplo, Integer a String) sin utilizar una variable local.
product_ref is string = (string) 378 + (string) 578
// -> Returns 378578 instead of 956
Los desarrolladores tienen que manipular archivos JSON cada vez más grandes, en algunos casos de hasta varios GB.
Por ejemplo, el gobierno francés proporciona archivos muy extensos del registro de propiedad codificados en formato JSON a través del portal OpenData.
La versión 2025 incluye un nuevo modo para acceder al contenido JSON.
Este modo permite gestionar contenidos de tamaño ilimitado. El modo habitual carga todo el contenido JSON en la memoria, lo que puede causar problemas de rendimiento o de uso de memoria en función del tamaño del archivo JSON.
El nuevo tipo jsonReader y la nueva función JSONOpenReader permiten leer contenido JSON sin tener que cargar todo el contenido en la memoria.
En la versión 2025, puede combinar un archivo de certificado sin clave privada y una clave privada en un nuevo archivo de certificado en formato pfx.
Esto es especialmente útil para los usuarios de OpenSSL, pero puede ser de gran utilidad para otros usuarios.
Al buscar correos electrónicos en una sesión IMAP, puede utilizar la función EmailSeekFirst de WLanguage para especificar un criterio de búsqueda: nombre del remitente, nombre del destinatario, asunto, cuerpo del mensaje, etc.
El editor de código le permite escribir consultas SQL. En la versión 2025, la fuente de datos de una consulta puede ser a su vez una consulta procedente directamente del código.
Una aplicación WINDEV puede iniciar otra aplicación (o proceso) escrita en WINDEV o en otro lenguaje de programación. Esto afecta principalmente a las aplicaciones de consola (ejecutadas desde una línea de comandos).
En la versión 2025, puede leer los datos de la salida estándar (stdout) y de la salida de error estándar (stderr).
También es posible escribir datos en la entrada estándar (stdin). Esto le permite controlar el proceso iniciado, y obtener el informe del proceso.
En la versión 2025, la función ZipAddFile, que añade archivos a un archivo Zip es hasta 4 veces más rápida.