Artículos técnicos Grupo Danysoft: Aplicaciones Web con Delphi Por Pablo Reyes – Grupo Danysoft noviembre de 2002 - (902) 123146 www.danysoft.com Aplicaciones Web con Delphi 7 Una de las novedades más importantes en Delphi 7 es IntraWeb de la empresa AToZed Software. Este producto, disponible también para C++Builder, Kylix, JBuilder y .NET, es un marco de trabajo que simplifica el desarrollo de aplicaciones Web reduciendo la curva de aprendizaje al mínimo. La misma filosofía Una de las principales ventajas de IntraWeb es que nos permite utilizar las mismas herramientas que utilizamos para el desarrollo de aplicaciones de escritorio. Esto significa que un programador Delphi que normalmente desarrolla aplicaciones de escritorio y no conoce las tecnologías relacionadas con el desarrollo de aplicaciones Web como HTML, JavaScrip y demás, puede desarrollar en pocos días y con mínimo esfuerzo una interface Web para sus aplicaciones de escritorio. Aplicaciones de escritorio Normalmente cuando desarrollamos una aplicación de escritorio lo que hacemos es crear uno o más formularios, añadir componentes a ellos, escribir código para algunos eventos y de vez en cuando presionar F9 para compilar y ejecutar y ver si todo funciona como esperamos. Este proceso es iterativo y muchas veces es necesario depurar para encontrar los errores que estamos cometiendo. Delphi es una herramienta de desarrollo madura y su entorno de desarrollo es una prueba de ello. Los programadores Delphi estamos acostumbrados al diseñador de formularios (Form Designer), a la paleta de componentes, al inspector de objetos (Object Inspector), al editor de código (Code Editor) y al depurador integrado. También conocemos el lenguaje de programación Delphi y los componentes de la VCL, sobre todo sus propiedades, métodos y eventos. Aplicaciones IntraWeb Cuando desarrollamos una aplicación Web con IntraWeb lo que hacemos es crear uno o más formularios (que luego se convertirán en páginas Web), añadir componentes a ellos (que luego se convertirán en código HTML), escribir código para algunos eventos (que luego se convertirán en código JavaScript o se ejecutarán del lado del servidor) y de vez en cuando presionar F9 para compilar y ejecutar y ver si todo funciona como esperamos. Este proceso es iterativo y muchas veces es necesario depurar para encontrar los errores que estamos cometiendo. Desarrollar una aplicación Web con IntraWeb es prácticamente igual que desarrollar una aplicación de escritorio. Utilizamos el mismo diseñador de formularios, añadimos a ellos componentes de la paleta de componentes, utilizamos el inspector de objetos, el editor de código y el depurador integrado de la misma forma que lo hacemos durante el desarrollo de aplicaciones de escritorio. También utilizamos el lenguaje Delphi y componentes equivalentes a los de la VCL con las mismas propiedades, métodos y eventos. Una imagen vale más que mil palabras Como programadores que somos, queremos ver código fuente e imágenes de pantalla para saber de qué nos están hablando. Pues bien, veamos un ejemplo. Supongamos que queremos desarrollar una aplicación de escritorio que le permite al usuario ingresar su nombre y al hacer clic en un botón que aparezca una ventana de diálogo con un mensaje de bienvenida. Aplicación de escritorio El formulario en cuestión sería similar al siguiente: El código para el evento OnClick del Button sería similar al siguiente: procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Hola ' + Edit1.Text); end; Al ejecutar la aplicación el resultado obtenido debería ser similar al siguiente: Supongo que esta aplicación no entraña ningún misterio para los programadores Delphi. Aplicación Web con IntraWeb El formulario en cuestión sería similar al siguiente El código para el evento OnClick del IWButton sería similar al siguiente: procedure TformMain.IWButton1Click(Sender: TObject); begin WebApplication.ShowMessage('Hola ' + IWEdit1.Text); end; Al ejecutar la aplicación el resultado obtenido debería ser similar al siguiente: A ver quién encuentra las siete diferencias. IntraWeb provee una modalidad mediante la cual no es necesario instalar la aplicación en un servidor Web ya que la misma aplicación tiene la capacidad de funcionar como un servidor Web, es decir, es capaz de aceptar requerimientos HTTP y responder con contenido HTML. Esta es la modalidad que he utilizado en este ejemplo. En la imagen de arriba puede verse el formulario de la aplicación generada por IntraWeb desde el cual podemos abrir el navegador para comprobar el funcionamiento de nuestras páginas HTML. Esta aplicación funciona como un servidor Web. También es posible generar aplicaciones ISAPI y Apache. Componentes de la página IWStandard IntraWeb provee los siguientes componentes equivalentes a los de la página Standard de la VCL. • • • • • IWApplet: permite incluir un objeto Applet en un formulario y acceder por código a sus propiedades. IWButton, IWCheckBox, IWComboBox, IWEdit IWFile: permite cargar (upload) un archivo desde el navegador IWFlash: permite incluir un objeto Flash en un formulario IWHRule • • IWImage IWImageFile: similar a IWFile pero para archivos de imágenes • • • IWList, IWLabel, IWListBox IWLink: permite incluir un enlace en un formulario IWMemo, IWMenu • • • • IWRadioGroup, IWRectangle IWRegion: similar a ScrollBox IWText, IWTimer, IWGrid, IWTreeView IWURL: similar a IWLink con la diferencia de que permite especificar una dirección URL y cuando el usuario hace clic en el enlace se abre una nueva ventana del navegar que navega a dicha dirección. Componentes enlazados a datos también IntraWeb también provee una serie de componentes enlazados a datos equivalentes a los de la página Data Controls de la VCL. Estos componentes utilizan los mismos componentes de acceso a datos a los que estamos acostumbrados. Veamos un ejemplo. Supongamos que queremos desarrollar una aplicación que permite navegar los registros de la tabla Animals.xml disponible con la instalación de Delphi. Aplicación de escritorio El formulario en cuestión sería similar al siguiente: Creo que no es necesario mostrar esta aplicación en ejecución ya que todos sabemos como se vería. Aplicación Web con IntraWeb El formulario en cuestión sería similar al siguiente: Al ejecutar la aplicación el resultado obtenido debería ser similar al siguiente: Tal y como podemos hacerlo para aplicaciones de escritorio, con IntraWeb podemos generar una página que permita no sólo navegar un conjunto de datos sino también insertar, editar y eliminar registros sin necesidad de escribir ni una sola línea de código. Una particularidad que tienen las aplicaciones Web es la gestión de sesiones. Tampoco tenemos que preocuparnos de ello ya que IntraWeb se encarga de gestionar sesiones por nosotros de manera transparente. Componentes de la página IWData IntraWeb provee los siguientes componentes equivalentes a los de la página Data Controls de la VCL. • IWDBCheckBox, IWDBComboBox, IWDBEdit, IWDBGrid, IWDBImage, IWDBLabel, IWDBListBox, IWDBLookupListBox, IWDBLookupComboBox, IWDBFile, IWDBMemo, IWDBNavigator, IWDBText Características adicionales IntraWeb provee una serie de componentes del lado cliente que permiten, entre otras cosas, trabajar con un conjunto de datos del lado cliente que el usuario puede navegar sin necesidad de generar requerimientos al servidor Web para obtener los datos del registro a mostrar. También provee componentes para mostrar gráficos de barras dinámicos, es decir, que el usuario pueda modificar su apariencia indicando, por ejemplo, qué datos desea ver, y rejillas dinámicas en las que el usuario puede ordenar y filtrar los datos por la columna que desee. Integración de WebBroker y WebSnap IntraWeb provee componentes que permiten integrar las páginas generadas por IntraWeb con aplicaciones WebBroker o WebSnap. De esta forma es posible mantener aplicaciones de este tipo sin dejar de aprovechar las ventajas que ofrece IntraWeb. Conclusión IntraWeb permite desarrollar aplicaciones Web de la misma manera que desarrollamos aplicaciones de escritorio. Su curva de aprendizaje es mínima. Un desarrollador Delphi puede comenzar a desarrollar aplicaciones Web con IntraWeb en cuestión de días. Para instalaciones pequeñas, IntraWeb nos da la posibilidad de desarrollar aplicaciones Web autónomas, es decir, que no requieran de un servidor Web. Para instalaciones más grandes, podemos desarrollar aplicaciones ISAPI y Apache. Con IntraWeb podemos reutilizar los DataModules de nuestras aplicaciones de escritorio para dotarlas con una interfaz Web en tiempo record y mantener ambas aplicaciones compartiendo dichos DataModules sin tener que duplicar la lógica de datos. IntraWeb también está disponible en versión CLX para Kylix. . Para más información El siguiente paso, puede ser revisar la documentación que incluye Delphi o para avanzar más rápido, asistir al curso que regularmente impartimos en el Grupo Danysoft sobre IntraWeb, del cual le incluimos el temario a continuación: Cursos Delphi 7: “Creación de sitios Web con IntraWeb” Este curso explica como crear sitios Web utilizando IntraWeb. IntraWeb provee un marco de trabajo para la creación de sitios Web con herramientas similares a las utilizadas para la creación de aplicaciones GUI (Graphical User Interface – Interface Gráfica de Usuario) tradicionales. Es decir, crear un sitio Web con IntraWeb es casi igual a crear una aplicación GUI tradicional. IntraWeb no sólo permite la creación de un sitio Web completo. También puede ser utilizado como herramienta para la creación de páginas Web en aplicaciones WebBroker y WebSnap. Además, IntraWeb provee componentes que facilitan la creación de páginas Web dinámicas con una interface de usuario rica desde el punto de vista visual y funcional. Objetivo El objetivo de este curso es capacitar al alumno para el desarrollo de sitios Web con páginas dinámicas sin tener que aprender a utilizar nuevas herramientas de diseño y ocultando la complejidad propia de la creación de un sitio Web. Duración La duración de este curso es de 18 horas. Normalmente se imparte durante 3 días en jornadas de 6 horas cada una. Temario 1. 2. 3. 4. 5. 6. Introducción a IntraWeb 1.1. ¿Qué es IntraWeb? 1.2. El entorno de desarrollo IntraWeb Diseño de páginas simples 2.1. Componentes visuales más comunes 2.2. Manejadores de eventos 2.3. Componentes visuales avanzados Diseño de páginas enlazadas a datos 3.1. Componentes enlazados a datos 3.2. Actualizaciones y gestión de errores Componentes avanzados 4.1. Componentes del lado cliente 4.2. Componentes de control Arquitectura de una aplicación IntraWeb 5.1. El objeto WebApplication 5.2. Cómo gestiona IntraWeb un proyecto 5.3. IntraWeb como servidor Web Integración con WebBroker y WebSnap 6.1. Creación de páginas Web 6.2. Invocación de páginas Web Para +información o conocer las próximas fechas en las que se impartirá, visite http://www.danyform.com o remita un email a formació[email protected]