03 octubre 2011

El nuevo jsClient


Sin duda la principal novedad incluida en Omnis Studio 5.2 es el cliente basado en JavaScript, que permite ejecutar aplicaciones Omnis en cualquier dispositivo y/o navegador web, sin tener que instalar el plug-in, además de ser totalmente compatible con HTML5 y CSS3.

Una nueva propiedad del "remote form" denominada $client, nos permitirá determinar si ésta será usada con el habitual "kClientPlugin", para el nuevo "kClientJavaScript" o para "kClientiOS".


He tenido el placer de probarlo en un iMac con Mac OS Lion, WebServer, MySQL y OS 5.2 Beta, tras la creación de la nueva "remote form" y de modo totalmente automático, se crea la carpeta "/Applications/Omnis Studio 5.2 Beta 1.app/Contents/MacOS/html", con todo el contenido necesario para poner a prueba el nuevo "remote form".


- Una carpeta denominada "_icons", recogerá cada uno de los iconos que hemos utilizado.
- La carpeta "css", la carpeta "images", la carperta "scripts" y la carpeta "sounds".


Todas ellas deberán ser trasladadas al directorio "Documents" del WebServer cuando deseemos poner nuestra aplicación en explotación. Cabe mencionar que, aunque en la carpeta "_icons" encontraremos ya incluidos todos los iconos usados en nuestras "remote form". OS 5.2, incluye una nueva herramienta web llamada "JS Icon Export", que nos permitirá colocar en la carpeta "_icons" cualesquiera otros iconos, aunque aún no hayamos hecho uso de los mismos.


Además de ésto deberemos configurar la pagina html que deberá cargarse inicialmente en el navegador, lo cual incluye otra interesante novedad, pues al contrario de lo que sucedía con el anterior "plugin", en el nuevo formulario será posible invocar a más de un "remote form" en la misma página html.


Observemos el siguiente ejemplo:


-----------------------------
≤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"≥
≤html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"≥

≤head≥

≤meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/≥
≤title≥Preinscripciones UPSA≤/title≥
≤link rel="shortcut icon" href="http://www.upsa.es/images/favicon.ico" /≥

≤!-- This makes mobile device support work --≥
≤meta name="viewport" content="width=device-width"≥

≤!-- The scripts and style sheets must be present at relative URLs from this page --≥
≤link type="text/css" href="css/omn_dlg.css" rel="stylesheet" media="print,screen" /≥
≤link type="text/css" href="css/omn_menu.css" rel="stylesheet" media="print, screen" /≥
≤link type="text/css" href="css/smoothness/jquery-ui-1.8.15.custom.css" rel="stylesheet" /≥   
≤link type="text/css" href="css/slick.grid.css" rel="stylesheet" /≥
≤link type="text/css" href="css/slick.columnpicker.css" rel="stylesheet" /≥
≤link type="text/css" href="css/slick.pager.css" rel="stylesheet" /≥

≤!-- Must occur after other stylesheets e.g. jquery-ui-1.8.15.custom.css, as it overrides values --≥
≤link type="text/css" href="css/omnis.css" rel="stylesheet"/≥

≤!-- Omnis Studio JavaScript client scripts --≥
≤script type="text/javascript" src="scripts/omjsclnt.js"≥≤/script≥
≤script type="text/javascript" src="scripts/omjqclnt.js"≥≤/script≥

≤/head>

≤body bgcolor="#608090" onload="jOmnis.onLoad()" onunload="jOmnis.onUnload()"≥

≤div id="omnisobject1" align="center" WebServerURL="http://172.25.45.24/cgi-bin/nph-omniscgi" OmnisServerAndPort="5912" OmnisLibrary="NaviPrein52" OmnisClass="Inicio_Form" param1="" param2=""≥
≤/div≥

≤/body≥

≤/html≥
-------------------------
Observe la sección:

≤div id="omnisobject1" align="center" WebServerURL="http://172.25.45.24/cgi-bin/nph-omniscgi" OmnisServerAndPort="5912" OmnisLibrary="NaviPrein52" OmnisClass="Inicio_Form" param1="" param2=""≥
≤/div≥

- El parámetro "id" contiene en nuestro ejemplo el valor "omnisobjct1", pero es posible crear nuevos "omnisobjt...", permitiendo integrar diferentes clientes JavaScript, en diferentes lugares de nuestra página web, ¡no es genial!

El resto de los parámetros ya son viejos conocidos y creo que no necesitan explicación, solo añadir que los parámetros "param1" y "param2", podrían muy bien ser usados para especificar el tamaño de la pantalla o "frame" que ocupará el "remote form". Por defecto, el cliente JavaScript utilizará el tamaño especificado para el propio "remote form", pero podemos cambiar su altura y anchura en el método $construct, tras el paso de dichos parámetros.

Espero sus comentarios, reciban un cordial saludo.

07 septiembre 2011

OMNIS Developer's Meeting 2011

  El próximo Miércoles, 21 de Septiembre del 2011...

Tendrá lugar en Italia la presentación de la versión 5.2 de Omnis Studio, que incluye el nuevo Cliente Web Java (jsClient) que permite el desarrollo de aplicaciones con garantía de total compatibilidad con todos los navegadores y dispositivos móviles (incluidos iPhone y Android), ¡sin el uso de plug-ins!. Para registrarse por haga clic aquí:  Formulario de Registro
El encuentro tendrá lugar en: Sasso Marconi (centro de Italia, cerca de Bolonia), salida de la autopista A1 en Sasso Marconi. Visite su página Web
Será preferible llevar ropa informal, entre otros ponentes, contaremos con la presencia de John Bramley y Alain Teboul de Tiger Logic.

Será una magnífica ocasión para conocernos personalmente y (para los que no podáis asistir) prometo publicar en éste blog, alguna reseña de lo que veamos en Italia. ¡Nos vemos!