Bueno este tutorial está enfocado a la programación con un master page.
Un master page en genexus, ayuda al programador facilitando la tarea de programar, todos los objetos web en genexus tienen algo en común: cabezal, menu, pie, área de datos, tema y algún otro propio de la aplicación.
La idea de un master page es juntar todas estas características y aplicarlas de forma automática a cualquier otro webpanel.
Primero que nada creamos un nuevo objeto del tipo webpanel. Luego en las propiedades del objeto le indicamos que tipo de objeto será:
Donde dice "Type", indicamos que será Master Page y aceptamos.
Luego hay que diagramar el diseño del objeto, en mi caso lo que hice fue bien sencillo, un cabezal, pie, menu y area de datos.
En este caso se agregan objetos del tipo WebComponent en las distintas áreas de la página, y como podemos ver también agregué un objeto del tipo Content Place Holder, que es el objeto que mostrará el área de datos.
Ahora la base de nuestra página ya está pronta, lo único que hace falta es aplicar este Master Page en los WebPanel que queremos aplicarle un diseño.
Creamos un nuevo WebPanel y abrimos sus propiedades, vemos que donde dice "Master Page" ahora nos permite elegir el WebPanel que definimos como Master Page.
Ahora bien, el funcionamiento de esto sería de esta manera, cuando mostramos un webpanel, este aparecerá en el área de datos del Master Page (Content Place Holder), de esta manera, no es necesario que se programe un cabezal, menu o pie en cada uno de los webpanel que deseamos abrir, y todo el código necesario para mostrar un menú, estaría en el Master Page y no en cada WebPanel.
Realmente con esta funcionalidad, se pueden obtener buenos resultados y un look & feel interesante.
miércoles, 20 de junio de 2012
lunes, 30 de enero de 2012
Hacer deploy una aplicación GX9+Java+Apache
Estos son los pasos para poder compilar una aplicación Genexus utilizando el generador de Java corriendo sobre Apache Tomcat utilizando una base de datos MySQL.
Una vez que tengamos nuestro modelo pronto para ser compilado, presionamos la tecla F5, la cual nos lleva a la siguiente ventana:
En esta ventana podemos ver una lista con varios items que corresponden a las diferentes opciones de nuestra aplicación.
En el primer item veremos "WinDeveloperMenu", lo seleccionamos y hacemos click en el botón Execute.
Inmediatamente se mostrará esta ventana:
Hacemos click en el menú Utilities y elegimos la opción "Deployment Wizard", nos saldrá otra ventana como esta:
En esta ventana podemos ver dos listas, en la lista de la izquierda, se encuentran todos los objetos de nuestra aplicación que tienen la propiedad "Main Program = True". En nuestro caso tenemos el objeto Inicio que es un web panel. Entonces debemos seleccionar nuestro objeto main, y hacer click en la flecha que apunta hacia la derecha para poder realizar el deploy del resto de la aplicación.
Hecho esto seguimos a la siguiente ventana del asistente, nos volverá a salir una pantalla como esta:
En este apso simplemente pasaremos a la siguiente pantalla sin modificar nada.
En esta otra pantalla del asistente debemos activar la opción "Transfer location files", ya que se deben copiar los archivos compilados por genexus a la carpeta de la aplicación. En modo de transferencia tenemos dos opciones, la primera es la copia por FTP, simplemente hay que escribir la ruta de la carpeta donde vamos a hacer deploy, el nombre del host, el usuario y la contraseña.
La segunda opción es la copia en el equipo local, es decir, hay que indicarle al asistente la ruta donde se guardan las aplicaciones, en este caso en la carpeta "webapps" dentro del directorio de instalación de Apache Tomcat.
Este es el último paso antes de realizar el deploy, hacemos click en Finish, al finalizar el asistente se nos abrirá otra ventana donde se nos pedirá configurar la aplicación para hacer War Deployment.
Los servlets pueden ser ejecutados por motores de servlets (Tomcat, Resin, Jrun, etc.), o por servidores J2EE (WebSphere, BEA Weblogic, etc.).
Una vez que tengamos nuestro modelo pronto para ser compilado, presionamos la tecla F5, la cual nos lleva a la siguiente ventana:
En esta ventana podemos ver una lista con varios items que corresponden a las diferentes opciones de nuestra aplicación.
En el primer item veremos "WinDeveloperMenu", lo seleccionamos y hacemos click en el botón Execute.
Inmediatamente se mostrará esta ventana:
Hacemos click en el menú Utilities y elegimos la opción "Deployment Wizard", nos saldrá otra ventana como esta:
En esta ventana podemos ver dos listas, en la lista de la izquierda, se encuentran todos los objetos de nuestra aplicación que tienen la propiedad "Main Program = True". En nuestro caso tenemos el objeto Inicio que es un web panel. Entonces debemos seleccionar nuestro objeto main, y hacer click en la flecha que apunta hacia la derecha para poder realizar el deploy del resto de la aplicación.
Hecho esto seguimos a la siguiente ventana del asistente, nos volverá a salir una pantalla como esta:
En este apso simplemente pasaremos a la siguiente pantalla sin modificar nada.
En esta otra pantalla del asistente debemos activar la opción "Transfer location files", ya que se deben copiar los archivos compilados por genexus a la carpeta de la aplicación. En modo de transferencia tenemos dos opciones, la primera es la copia por FTP, simplemente hay que escribir la ruta de la carpeta donde vamos a hacer deploy, el nombre del host, el usuario y la contraseña.
La segunda opción es la copia en el equipo local, es decir, hay que indicarle al asistente la ruta donde se guardan las aplicaciones, en este caso en la carpeta "webapps" dentro del directorio de instalación de Apache Tomcat.
Este es el último paso antes de realizar el deploy, hacemos click en Finish, al finalizar el asistente se nos abrirá otra ventana donde se nos pedirá configurar la aplicación para hacer War Deployment.
Los servlets pueden ser ejecutados por motores de servlets (Tomcat, Resin, Jrun, etc.), o por servidores J2EE (WebSphere, BEA Weblogic, etc.).
Configurar en forma adecuada los distintos
motores de servlets o servidores J2EE, para ejecutar las aplicaciones web Java,
tiene cierta complejidad, se necesita conocer en cual directorio deben ir los
servlets, en cual directorio deben ir los archivos adicionales (driver JDBC,
classes adicionales, etc.) y dónde colocar el contenido estático. Además, una
vez que se hace funcionar todo en un ambiente de prototipo hay que llevarlo a
producción, es decir, configurar todo esto en el cliente. Entonces, el
generador Java provee el War Deployment, que es un ‘output
processor’ del Deployment
Wizard, que permite empaquetar en un solo archivo,
todo lo necesario, para la instalación y ejecución de una aplicación web Java,
en los distintos motores de servlets,
o servidores J2EE, de forma sencilla.
El War Deployment genera archivos con
extensión .WAR (Web Archive Resource), los cuales son básicamente
archivos .JAR a los cuales se les cambia la extensión a .WAR. Estos archivos
empaquetan servlets, contenido
estático, librerías adicionales y un archivo con formato xml, al cual se le
llama descriptor, que contiene cierta información de la aplicación web como por
ejemplo el nombre de la aplicación, nombre de los servlets, mapeos, etc.).
Las opciones son:
Location
|
Aquí se debe seleccionar el Location para el
cual se quiera armar el .WAR. En caso de tratarse de un .WAR para una
aplicación web se debe seleccionar el Location <Client>; el resto de
los locations son para el caso de querer distribuir las clases necesarias
para ejecutar el servidor de aplicaciones en un aplicación en 3 capas con
protocolo HTTP.
|
Deploy this Location
|
Sirve para confirmar que se desea armar un
.WAR para la Location actualmente seleccionado.
|
Descriptor
Type
|
Aquí se debe seleccionar el motor de
servlets que se va a utilizar y en función de ello se arma el descriptor
correspondiente (se profundiza más adelante), en mi caso utilizo Generic Servlet v2.2
|
Web Application Name
|
Este es el nombre que identifica a la
aplicación web. Para algunos motores de servlets va a ser utilizado luego en
la URL para invocar los servlets.
|
Additional Libraries
|
Aquí se deben agregar todos las librerías
adicionales para ejecutar la aplicación; el caso más común es el de los drivers JDBC.
|
Additional Files
|
Esta es una estructura de directorios (que
por defecto es vacía) en la cual se puede agregar todo el contenido estático
que se necesite para ejecutar la aplicación.
|
Add Directory
|
Permite agregar un directorio a la
estructura de directorios de Additional Files.
|
Remove
Directory
|
Permite borrar un directorio a la estructura
de directorios de Additional Files.
|
Add Files
|
Permite agregar un contenido estático a los Additional
Files en el directorio seleccionado.
|
Remove Files
|
Permite borrar un contenido estático antes
agregado en los Additional Files.
|
En la otra pestaña (Deployment descriptor), se edita el
descriptor del .WAR a generarse, en formato XML.
Las opciones son:
Use Custom Deployment Descriptor
|
Al chequear esta opción se permite modificar
el descriptor por defecto
|
Get Default
|
Vuelve a obtener el descriptor por defecto
|
Validate
|
Valida el XML del descriptor en caso de
haberlo modificado.
|
Eso es todo lo necesario para realizar un deploy de la aplicación que desarrollamos.
Notar que cuando se haga algún cambio en genexus en algún objeto, no es necesario realizar el deploy, ya que cuando se compila, genexus reemplaza todos los archivos que están dentro de la carpeta de servlets de java; solamente cuando se agrega un nuevo objeto en genexus sí es necesario que se realize un nuevo deploy, o en su defecto, que se modifique el archivo web.xml y se agregen las líneas correspondientes.
Espero que este tutorial haya servido de ayuda.
sábado, 28 de enero de 2012
Programar con Genexus 9+MySql+Java+Apache
Todo el que alguna vez programó con genexus sabe que es un herramienta bastante potente que permite desarrollar aplicaciones de manera profesional, reduciendo el tiempo al simplificar muchos procesos que siempre nos pueden dar mas de un dolor de cabeza, y sobre todo si programamos en ambiente web.
Primero que nada necesitamos que genexus esté con todas las actualizaciones y parches disponibles hasta el momento, tanto para el ide como para los generadores, con sus respectivas licencias.
Tambien necesitamos todas estas herramientas:
1 - Servidor mysql. Aquí
2 - Apache tomcat en su última versión. Aquí
3 - Maquina virtual de java (JDK). Aquí
4 - Librerías necesarias para compilar y ejecutar. Aquí
Una vez que tengamos el servidor mysql instalado, el apache tomcat y la maquina virtual, vamos a descomprimir las librerías, dentro veremos que contiene el conector mysql para java, y diversas librerías propias de genexus.
Ahora cuando estemos en genexus y quieramos pasar a prototipo, nos saltara una ventana para configurar el modelo.
Paso 1 - Se configuran las opciones generales:
Paso 4 - Configuración de las carpetas de la aplicación
En este paso necesitaremos crear ciertas carpetas, para ello nos iremos a la carpeta de instalación de Apache, dentro veremos una carpeta de nombre webapps que contendra las aplicaciones, luego crearemos una carpeta con el nombre de nuestra aplicación, ej. prueba.
Dentro de la carpeta de nuestra aplicación, debemos crear otras dos carpetas, un de nombre images y otra con el nombre WEB-INF (en mayuscula), y dentro de WEB-INF crearemos otras dos carpetas mas de nombre classes y lib (dentro de esta carpeta descomprimiremos el archivo que descargamos previamente que contenía las librerías necesarias para la ejecución).
Una vez que tengamos todas las carpetas de nuestra aplicación creadas, pasamos al paso 4 en genexus.
Este paso es muy importante, sobre todo si escribimos mal algún parámetro, que nos podría dar dolores de cabeza mas adelante cuando compilemos.
Espero que les haya servido!
Primero que nada necesitamos que genexus esté con todas las actualizaciones y parches disponibles hasta el momento, tanto para el ide como para los generadores, con sus respectivas licencias.
Tambien necesitamos todas estas herramientas:
1 - Servidor mysql. Aquí
2 - Apache tomcat en su última versión. Aquí
3 - Maquina virtual de java (JDK). Aquí
4 - Librerías necesarias para compilar y ejecutar. Aquí
Una vez que tengamos el servidor mysql instalado, el apache tomcat y la maquina virtual, vamos a descomprimir las librerías, dentro veremos que contiene el conector mysql para java, y diversas librerías propias de genexus.
Ahora cuando estemos en genexus y quieramos pasar a prototipo, nos saltara una ventana para configurar el modelo.
Paso 1 - Se configuran las opciones generales:
- Nombre del modelo
- Lenguaje, en este caso seleccionamos Java
- Tipo de interfaz, seleccionamos Web
- Motor de base de datos, elegimos MySQL
Paso 2 - Se configura el motor de base de datos
- El driver a utilizar, seleccionamos mySQL JDBC Driver
- Usar un JDBC personalizado, le damos que no
- Escribimos el nombre de la base de datos, previo a este paso crear el schema en mysql
- Nombre del servidor, escribimos localhost
- Escribir el puerto utilizado en la conexión, en este caso 3306 que es por defecto, si cuando instalamos mysql habilitamos otro puerto, entonces cambiarlo
- En este paso podemos utilizar el usuario root que elegimos durante la instalación de la base de datos, o simplemente usar algún otro
- Contraseña del usuario
Paso 4 - Configuración de las carpetas de la aplicación
En este paso necesitaremos crear ciertas carpetas, para ello nos iremos a la carpeta de instalación de Apache, dentro veremos una carpeta de nombre webapps que contendra las aplicaciones, luego crearemos una carpeta con el nombre de nuestra aplicación, ej. prueba.
Dentro de la carpeta de nuestra aplicación, debemos crear otras dos carpetas, un de nombre images y otra con el nombre WEB-INF (en mayuscula), y dentro de WEB-INF crearemos otras dos carpetas mas de nombre classes y lib (dentro de esta carpeta descomprimiremos el archivo que descargamos previamente que contenía las librerías necesarias para la ejecución).
Una vez que tengamos todas las carpetas de nuestra aplicación creadas, pasamos al paso 4 en genexus.
- En servlet directory ubicaremos la carpeta "classes" dentro de WEB-INF
- En static content base URL escribiremos /images
- Y en static content directory ubicaremos la carpeta "images" dentro de la carpeta raiz de nuestra aplicación
Este paso es muy importante, sobre todo si escribimos mal algún parámetro, que nos podría dar dolores de cabeza mas adelante cuando compilemos.
- Primero elegimos la plataforma para trabajar, seleccionamos Java
- Aquí debemos ubicar el compilador de java, es decir el javac.exe, para ello buscamos en la carpeta de instalación de java jdk.
- Como 3er paso debemos ubicar el archivo nmake.exe, que se encontraba dentro del archivo de librerías que descargamos.
- Ubicamos el interprete java.exe.
- En classpath debemos ir ubicando cada una de las librerías que se encuentran en el archivo que descargamos.
Recordar que cada línea se va a separar por ";" y que al final debe llevar doble ";".
Debería quedar algo así:
C:\Librerias\gxclassd.jar;C:\Librerias\gxclassp.jar;C:\Librerias\gxclassr.jar;C:\Librerias\GxUtils.jar;C:\Librerias\iText.jar;C:\Librerias\mysql-connector-java-5.0.4-bin.jar;C:\Librerias\servlet-api.jar;; - Aquí escribimos la ruta URL de nuestra aplicación:
En este caso http://localhost:8080/prueba/servlet/
Espero que les haya servido!
Suscribirse a:
Entradas (Atom)