Noticias

De GeneXus 8.0: Nuevas funcionalidades del generador Java

Esta versión del generador se destaca principalmente por brindar mayor facilidad para convertir aplicaciones de interfaz Windows a Java y por optimizar las aplicaciones en tres capas.

Para lograr una mayor facilidad en la conversión a Java de las aplicaciones Windows Cliente/Servidor tradicionales, como ser Visual Basic o Visual FoxPro, se implementaron varias funcionalidades. La más destacable es que se introduce una alternativa al diálogo a pantalla completa que se asemeja bastante a la validación campo a campo (Por más detalles referirse al documento Validación a nivel de Cliente).

También se implementó en este generador el tipo de datos DBConnection que permite manejar las conexiones en forma dinámica para aplicaciones Windows dos capas.

Ejemplo:

Sea &MyConn de tipo DBConnection

Event 'Conectar'
&myConn = GetDataStore("Default")
&myConn.UserName = trim(&Usuario)
&myConn.UserPassword = trim(&Password)
&myConn.JDBCDriverName='com.inet.tds.TdsDriver'
&myConn.JDBCDriverURL='jdbc:inetdae:barbanegra:1433?database=testemp2'
&myConn.ShowPrompt = 2
&Res = &myConn.Connect()
Do case
Case &Res = 0
&ConnOk = 'S'
return
Otherwise
&ConnOk = 'N'
msg('No se pudo conectar, reintente...')
Endcase
EndEvent // 'Conectar'

Existen otras nuevas funcionalidades en el generador que facilitan la conversión, como ser el comando submit, el calendario y calculadora, y algunas propiedades del modelo del grupo de interfaz win:

? Maximum workfile lines
? Autocenter objects in (0,0)
? Field Exit = Enter, Tab, Shift-tab
? Field Exit = Passing last char
? Prompt Key = FX (por ejemplo F8)
? Menubar = Caller's.

En cuanto a las facilidades introducidas para las aplicaciones en tres capas, se destaca la posibilidad de ejecutar el evento load de un work panel en el servidor, con sólo cambiar una propiedad del mismo.

Al trabajar en una aplicación distribuida, para lograr una buena performance, como regla general hay que tratar de ejecutar la mayor cantidad de código en el servidor; básicamente pasar al servidor todo el código salvo el correspondiente a la interfaz.

Para los objetos batch como procedimientos y reportes (sin interfaz) no hay problema porque se definen como remotos tan solo especificando una propiedad. En cuanto a objetos que manejan interfaz, para transacciones y aquellos reportes con printblocks enviados a pantalla, existen facilidades para su optimización.

Sin embargo, para los work panels estaba quedando pendiente el evento load, que contiene código que claramente debería ejecutarse en el servidor y no necesariamente en el cliente. Para optimizar, era necesario reprogramarlo, por ejemplo pasando todo el código a un procedimiento y que éste se defina como remoto.

A partir de esta versión, configurando una nueva propiedad del work panel -Execute Load Events in the Application Server- se puede determinar que también se ejecute toda la lógica del evento Load en el servidor automáticamente, además de los accesos a la base de datos.

Estas son las principales funcionalidades implementadas en el generador Java en su versión 8.0.