martes, febrero 28, 2006

Un paseo por Intraweb...

Muchos de nosotros posiblemente hemos hablado de esta suite de componentes para desarrollar nuestras paginas web desde Delphi, pero en realidad ¿que hay detras de esta Suite?.

Tiene sus origenes desde la version 7 de Delphi, y su principal objetivo es desarrollar aplicaciones para internet en Delphi (paginas web) como si estuvieramos programando alguna aplicacion GUI, es decir, es cuestion de insertar algunos componentes en nuestra superficie de diseño (Form), cambiar algunas propiedades y finalmente agregar uno que otro evento, y como resultado tendremos nuestra primera aplicacion web desde nuestro tan querido entorno de programacion Delphi.

Una Caracteristica importante de Intraweb, es que no necesita de las Cookies para dar continuidad a una serie de peticiones hechas por el usario, sino que dentro de su mismo URL va implicito este llamado creando una sola sesion por cada usuario que se conecta, de esta forma se evita poder enviar 2 o mas veces los datos desde la misma pagina o bien se intente recuperar del cache del navegador una pagina generada por la peticion de otro usuario. La URL de Intraweb es como se muestra a continuacion:

http://127.0.0.1:4956/EXEC/6/2CFAA80007485C0FDE6AE240

Como se puede observar en la URL anterior, se puede ver un valor (informacion de ruta) el cual es generado aleatoriamente del lado del servidor y el cual se mantendra constante durante todo el tiempo que dure la sesion del usuario.

Antes de este valor, se puede observar un numero [ ... 6 ... ] el cual le sirve a Intraweb para indicar la posicion de la pagina en la secuencia de peticiones, este numero se genera incrementalmente de acuerdo a la peticion del usuario.

Al inicio de la URL se encuentra el dominio de la pagina y seguido de esta se debe poner el puerto (:4956)por el cual se conectara la aplicacion cliente al servidor.

Una clase muy importante de Intraweb es la clase llamada TUserSession la cual se genera por cada aplicacion nueva que se crea, de tal forma que cuando se inicie una nueva sesion automaticamente se crea una instancia de ella, asi si declaramos una variable dentro de la clase obtendremos una copia independiente de la misma por cada sesion del usuario.

Pero bueno, vayamos al grano, ¿Como crear una nueva aplicacion de Intraweb?, para crear una nueva aplicacion se realzan los siguientes pasos. Bueno es importante mencionar que para este ejemplo ocupo Borland Developer Studio 2006 la ultima version de Delphi el cual tiene incluido la version 8 de Intraweb. ahora si continuo con los pasos:



  1. Ir al Menu del IDE de Delphi a la opcion de File --> New -->Other.
  2. En la siguiente Imagen se puede observar la opcion que debemos escoger, en este caso Intraweb Application Wizard.



  3. Escoger el tipo de Aplicacion StandAlone Application. Ahi mismo escoger las opciones de Crear una sesion para el usuario, el tiempo de forma principal Estandar, puede ser PDA o Wab, dar un nombre de Proyecto y finalmente escoger la ruta donde se alojara dicho proyecto. esto se puede ver en la imagen siguiente:




Una vez hecho lo anterior, podemos darnos cuenta que automaticamente se crearon tres unidades, una llamada Unit1.pas, otra llamada UsesSessionUnit.pas y finalmente ServerController.pas.



  • La primera de ella servira para poner todos nuestros componentes los cuales queremos que se muestren en nuestra pagina, Botones, Cajas de Edicion, Etiquetas, etc. es decir es la que se encontrara del lado del cliente.

    Para ejemplificar nos podemos ir a los componentes estandar de Intraweb los cuales estan en la pestaña de IW Standard y escogemos una Etiqueta, cambiamos su propiedad de Caption, en este caso "Hola ROCOED". Esto se puede ver en la siguiente imagen:



  • UserSessionUnit.pas como se explico anteriormente, aqui es en donde se encuentra instanciada la clase TUserSession, nos puede servir como un modulo de datos en donde podemos poner nuestros componentes de base de datos.y por cada usuario que se conecte tendra su propia instancia de datos

  • Finalmente ServerController.pas es la que se encuentra del lado del servidor, aqui se encontraran los metodos que queremos se realicen en el servidor, es decir si queremos que algo suceda cuando un usuario se desconecta, aqui lo tendriamos que poner


  • Una vez que guardamos nuestro proyecto, lo compilamos y ejecutamos, tendremos nuestra primera aplicacion web hecha desde Delphi cuando ejecutamos la aplicacion aparece una ventana como se muestra en la imagen siguiente:


    Esta ventana anterior es la aplicacion servidora de nuestro proyecto, esta se refiere a la Unit ServerController.pas, finalmene dando un click al primer icono, el cual abrira nuestro navegador que tenemos por default, mostrara la pagina web que diseñamos en la Unit1 como se ve a continuacion:




Si observamos el Codigo fuente de la pagina web, se puede observar puro codigo HTML convinado con JavaScript, internamente es como funciona el motor de Intraweb el cual transforma todos los controles o componentes que insertamos en la Unit en codigo HTML y/o JavaScript para poder desarrollar aplicaciones de internet desde Delphi.

Bueno espero que haya sido de ayuda este primer paseo por Intraweb. en otro articulo hablaremos de como desarrollar una aplicacion web convinado con una Base de Datos.