Microsoft Web Express Developer 2005 con Crystal Report .Net
 

Fecha: 06/Mar/2005 (05/03/05)
Autor: Lic. Giovanni Cuadra Reyes ([email protected])

 


Tecnología de la programación!!!

Introducción

 

El propósito de este articulo es tratar el desarrollo de aplicaciones Web con Microsoft Visual Studio 2005, Microsoft SQL Server 2000 como motor de bases de datos y Crystal Report .Net. Dada la amplitud del tema, este articulo solo examina el desarrollo de una aplicación Web, exponiendo distintas tecnologías desde el punto de vista de alto nivel. Basándome en mi experiencia como desarrollador y consultor, analizo algunos aspectos de gran importancia, como los conceptos acerca de HTML, Web, Internet, Internet Information Server, Objetos ActiveX, ASP etc.

 

Dado que este tema abarca muchos otros temas, puede resultar muy útil un diagrama de lo que realmente se debe saber para poder crear aplicaciones Web. Si se examina la figura 1.0, se verán las áreas principales y una cierta orientación sobre el orden en que se deben aprender. En primer lugar, se observará que HTML se encuentra al principio de la lista. La verdad es que HTML es el lenguaje de Internet. Aparte de lo que se escucha de XML, tovía se sigue necesitando conocer HTML para poder mostrar páginas al usuario final.

 

 

 

 

Figura 1.0 Diagrama para el desarrollo de aplicaciones Web.

 

 

XML también se puede utilizar para mostrar información. Sin embargo XML, al igual que HTML, es todo texto, pero requiere al menos un paso adicional para mostrarlo al usuario en la forma que lo hace HTML. Por esto, en este articulo se considera HTML como el formato utilizado para visualización de texto, mientras que XML se puede utilizar para pasar, y quizás mostrar datos.

 

Tras aprender HTML, se hace necesario aprender un lenguaje de guiones. Habitualmente se trata de VBScript, JavaScript o ECMAScript. Muchos desarrolladores de sitios Web programan tanto en VBScript como en JavaScript. Con los lenguajes de guiones se pueden hacer muchas cosas importantes. En primer lugar, permiten hacer uso de la programación del lado del cliente y de DHTML (HTML dinámico, en cierto sentido una forma avanzada de programación al lado del cliente). Esto permite ejecutar código en la máquina cliente. Esto añade alguna potente funcionalidad, pero puede limitar el alcance de la aplicación a determinados exploradores de internet.

 

Un lenguaje de aguiones también permite crear páginas con programación en el lado del servidor. Los guiones del lado del servidor proporcionan una gran potencia porque se ejecutan en el servidor y no se ven afectados por ninguna de las capacidades del explorador cliente. Son métodos más potentes y con mayor alcance que el que proporciona una aplicación DHTML.

 

La utilización de lenguajes de guiones también proporcionan una mayor potencia al uso de controles, Applets de Java. En el cliente se pueden usar controles sin necesidad de programación en el lado del cliente, pero para interactuar con esos controles o complementos normalmente se precisa algo de programación en el lado del cliente.

 

Una vez que se domina HTML y un lenguaje de guiones, se pueden crear páginas que hagan uso de programación en el lado del cliente y programación en el lado del servidor. Entonces, llega el momento de mejorar las capacidades incorporadas, potentes características, tales como el acceso a base de datos, la comunicación con componentes y por el cual se podrían crear componentes propios y usar lenguajes completos para crear controles o servicios Web.

 

 

Qué son las aplicaciones Web

 

Cuando se habla de aplicaciones Web, a lo que nos referimos es a la construcción de sitios que hagan algo. Sitios que permitan introducir información y que respondan inteligentemente a las solicitudes. Entre las aplicaciones Web se encuentran los sitios de comercio electrónico, que se están expandiendo a un ritmo vertiginoso. Esos sitios también permiten examinar un catálogo, pero en ellos además se pueden colocar artículos en el carrito de la compra, elegir las opciones de envió y finalmente pagar los artículos, todo ello sin tener que hacerse por teléfono.

 

Otros tipos de aplicaciones son aquellas que de muy distintas formas mantienen las relaciones entre empresas. Por ejemplo, una empresa A podría dedicarse a la recopilación de datos demográficos específicos. Esto significa que ese tipo de sitio requiere un acceso en tiempo real a las bases de datos, y la capacidad no sólo de leer los datos, sino también de generar sobre la marcha una página que refleje los valores obtenidos de la misma.

 

   

Servidores Web y HTML

 

Los servidores Web pueden estar compuestos por un software muy sencillo. Una computadora cliente conectada a una red, solicita una página concreta de un determinado servidor Web. En un servidor Web una página es simplemente un archivo en una unidad de disco fijo. El servidor localiza la página en alguna computadora y envía una copia de la página (archivo) a la computadora cliente solicitante, tal y como se puede observar en la figura 2.0.

 

 

 

 

Figura 2.0 Un sencillo servidor Web que remite una página en respuesta a una solicitud de un cliente.

 

 

 

Por lo tanto, los servidores Web, en su funcionalidad básica, simplemente envían archivos al explorador solicitante. Y ésta es una de las cosas importantes que se deben comprender sobre las páginas estáticas en HTML, por el cual el servidor Web no las procesa de ninguna forma. Dicho de otra forma, los servidores Web son 'mudos' por lo que las páginas Web estáticas se refiere. Sin embargo la mayoría de los servidores disponen de la capacidad para realizar procesamiento antes de enviar las páginas al cliente. Ese procesamiento de las páginas requiere alguna forma de inteligencia en el servidor Web, y es de esto que este artículo trata.

 

Programación en lado del cliente

Con la programación del lado del cliente se pueden validar algunos de los datos en la máquina cliente antes de enviarlos al servidor. Esto proporciona a los usuarios informes de error inmediatos, mientras siguen en esa página de formulario y sin necesidad de volver atrás tras recibir un mensaje de error. Puede resultar necesario acceder a una base de datos para validar determinados valores, mientras que no suele disponer de un acceso directo a la base de datos en la máquina del cliente, aunque ese acceso a la base de datos es factible.

Los clientes también se pueden mejorar con otras técnicas. Por ejemplo, podemos usar controles ActiveX y Applets de Java. Aunque estas tecnologías son bastantes diferentes, el resultado final es similar: la interfaz del cliente puede hacer cosas que no puede hacer normalmente con HTML. De momento, la diferencia principal entre ambas es que los controles ActiveX sólo funcionan en IE. Las Applets de Java funcionan tanto en IE como en Navigator, aunque no todos los Applets funcionan igual de bien en ambos exploradores.

 

Programación en el lado del servidor

 

La programación del lado del servidor es un elemento agregado muy importante en el diseño o construcción de sitios Web, ya que permite de una u otra forma el manejo de datos de forma dinámica. Los primeros servidores Web que permitían construir páginas dinámicas utilizaban CGI. CGI es aun muy común en la actualidad y los servicios de IIS de Microsoft pueden usar CGI al igual que las páginas ASP. CGI es una tecnología que nos permite invocar programas compilados o guiones en el servidor Web. CGI se ve a menudo en los servidores Web de sistemas UNIX, y muchos de los programas CGI son guiones Perl.

 

ASP nos permite disponer de un entorno de aplicación mucho más complejo del que podríamos conseguir solamente con HTML y la programación en el lado del cliente. Por ejemplo, podríamos necesitar acceder algunos datos, o incluso programas de un gran sistema. Esos programas podrían trabajar sobre una cantidad considerable de datos y enviarnos los resultados. Pondríamos entonces poner los datos resultantes en una base de datos para una posterior manipulación, antes de producir la página final que se enviará al cliente.

 

La figura 3.0 muestra la posibilidad de ejecutar programas en un gran sistema, añadir y recuperar datos de una base de datos, y construir una página con los resultados queda fuera de las posibilidades de HTML estandar y programación del lado del cliente. A continuación se muestra un grafico que detalle de forma básica como se podría diseñar un esquema de esta categoría.

 

 

 

 Figura 3.0 Una aplicación Web compleja

 

 

Para tener más claro todo lo anteriormente descrito y adentrarnos en la oferta de Microsoft para esta área, necesitamos tener presente algunas cosas como las siguientes:

 

 

 

IIS y ASP de Microsoft

 

El servidor Web de Microsoft se denomina Internet Information Server (IIS). IIS se encuentra incorporado en los sistemas operativos de Windows NT o superior. Un subconjunto de IIS, denominado servidor personal de Web, está disponible para Windows 95, Windows 98. IIS puede actuar como un sencillo servidor Web, sirviendo páginas HTML estáticas como cualquier otro servidor Web. Sin embargo, IIS tiene muchas otras características que lo convierten en una plataforma popular en la que desarrollar potentes aplicaciones Web. IIS incorpora objetos que facilitan la creación de aplicaciones Web y la programación en lado del servidor con las Páginas de servidor activo.

 

Por lo que se refiere a las páginas de servidor activo, el motor ASP puede manejar lenguajes de guiones. ASP a menudo de clasifica como tecnología libre de compilación, esto es, Las ASP no son compiladas por el desarrollador. En cambio, simplemente se colocan los archivos en el directorio adecuado del servidor Web. Cuando el cliente solicita una ASP, es entonces cuando se interpreta con el motor ASP y se guarda en memoria en un estado compilado.

 

Las ASP son parte del entorno IIS. Sin embargo, un producto de terceros denominado Chili!Soft ASP (http://www.chilisoft.com) permite ejecutar ASP en servidores distintos de IIS. Por ejemplo, aunque se use Lotus Domino o Netscape Enterprise Server como servidor Web, se podrán ejecutar ASP en ellos. Incluso existe una versión para el popular servidor Web Apache de sistemas UNIX. El producto permite llevar las ASP fuera de las plaraformas de Microsoft, haciendo que sea una solución viable para entornos mixtos.

 

 

Microsoft Web Express Developer 2005

 

Tras la liberación de Visual Studio WHIDBEY 2005 Beta 1. Microsoft incorpora nuevas características a la plataforma de desarrollo ASP .NET con una nueva y mejorada herramienta denominada Web Express Developer 2005, que incorpora todas las características de la versión anterior para .net framework 1.1 y las nuevas para .net framework 2.0. A continuación mencionare algunas de las nuevas y mejoradas ideas que Microsoft incluye en esta primera entrega Beta 1 de Visual Studio WHIDBEY:

 

  

 

Implementando una solución Web

 

A continuación para demostrar un sencillo ejemplo, exploraremos una solución utilizando la nueva herramienta de diseño Web Express de Microsoft Visual Studio 2005 Beta 1. Dicho proyecto incluirá los siguientes requerimientos:

  

 

 

A continuación para construir un sitio Web utilizando Web Express Developer 2005, explico paso a paso las instrucciones básicas que se deben de ejecutar, una vez que se esta dentro de Visual Studio 2005.

 

 

Paso #1:

 

 

Seleccionar del menú archivo la opción nuevo sitio Web.

 

 

 

Paso #2:

 

 

El Asistente muestra una serie de plantillas que pueden ser utilizadas para fines iguales o diferentes, esto es, dependiendo de las características que se quieran desarrollar en el sitio.

La opción seleccionada en este caso es la que aparece en el recuadro y es con la que se trabajara.

 

Para la recuperación del contenido de un sitio Web a continuación expongo los siguientes formularios y opciones con algunos comentarios básicos acerca de estos:

Paso #1:

Primeramente se debe seleccionar del menú archivo la opción abrir sitio Web.

 

Paso #2:

 

Con esta primera opción se recupera la solución Web directamente desde la carpeta del proyecto, tal y como se recupera un proyecto Win32 EXE local.

 

Con la opción IIS Local, se recupera el proyecto utilizando el directorio o carpeta virtual desde Internet Information Server.

 

Sitios FTP requiere el nombre del servidor donde se encuentra el proyecto y su ubicación o directorio.

 

Con la opción sitios remotos, se requiere la dirección Web donde se encuentra localizada la solución.

 

 

A continuación muestro un diseño preliminar para un sitio Web utilizando una página ASP, mezclando objetos de Crystal Report .Net y en la cual detallo algunos de los objetos utilizados en dicho proyecto.

 

 

Como se observa las páginas se dividen en dos partes. La primera posee la extensión aspx, la cual permite visualizar los objetos que se insertan en la misma. La segunda con extensión aspx.vb, es la que contiene o contendrá el código fuente o comúnmente dicho la programación, la cual puede involucrar acceso a una base de datos, presentación estática de datos e imágenes etc.

A continuación muestro la página en tiempo de ejecución utilizando Internet Explorer 6.0 y ejecutándose localmente.

 

 

Como se observa en la página se muestra registros de datos relacionados al catálogo de productos de la base de datos NorhtWind de SQL Server 2000, dicha página esta conectada a un reporte diseñado en Crystal Report 10, el cual crea el vínculo entre la página y la base de datos mediante un archivo ODBC diseñado para este propósito en Windows.

 

 

El control de lista, muestra las categorías de la base de datos, el cual tiene como objetivo crear un criterio de búsqueda dentro del reporte. Una vez que fue seleccionada una categoría se hace clic en el botón buscar el cual dispara un procedimiento que permite ir a consultar a la base de datos el registro correspondiente y mostrarlo en pantalla.

A continuación muestro el código fuente que se ejecuta en la página:

'--Espacio de nombres de Crystal Report .Net
imports CrystalDecisions.Web
imports CrystalDecisions.ReportSource
imports CrystalDecisions.Shared
imports CrystalDecisions.CrystalReports.Engine

'--Espacio de nombres Nicasoft.Net.v1.0.2005.dll
Imports ns = Nicasoft

'--Espacio de nombres de System.Data.dll
Imports System.Data.SqlClient
Imports System.Data

Partial class default_aspx 

   private sub SelectElements()

      '--Se crea una búsqueda mediante la propiedad SelectionFormula
      '--Aqui se busca la catégoria del producto, mediante el ID de la lista
      '--del elemento seleccionado.
      with me.crystalreportviewer1 
         .SelectionFormula = "{Categories.CategoryID}=" & me.cbob_cat.selectedvalue 
      End with 

   end sub 

   '--instancia a la clase acceso a bases de datos. 
   Dim DataSource as new ns.AccessDatabase
   sub page_load(byval sender as object , byval e as System.EventArgs) handles me.load 

      dim crwebreport as new reportdocument 


      if not me.ispostback then 
  
         '--Inicializar algunas propiedades de conexión.
         with me.datasource 
            '--nombre del servidor. 
            .GetServerName = "GIOVANNI"
            '--nombre de la base de datos. 
            .GetDatabaseName = "NorthWind"
         end with 

         '--inicializar la información de conexión. 
         dim ADONetConnection as String = me.datasource.getinfoconnection 

         '--ado.net no tipado inicializado. 
         dim cnt as new sqlconnection(adonetconnection) 
         dim sql as string = "select * from categories" 
         dim sqlDA_CatProducts As new sqldataadapter(sql, cnt) 
         dim datcatproducts as new dataset 

         '--llenar el dataset. 
         me .DataSource.FillDataSet(cnt, datCatproducts, sqlDA_CatProducts)

         '--Llenar el ComboBox con todas las categorias de los productos.
         with me.cbob_cat 
            .DataSource = datCatproducts
            .DataTextField = "CategoryName"
            .DataValueField = "CategoryID"
            .DataBind()
         end with 
  
  
      end if 
  
      '--asignar la ruta del reporte. 
      crWebReport.Load("C:\VS2005\CRWebApp_FindProducts\crNorthWind_CatProducts.rpt")

      '--Conectar el reporte en tiempo de ejecución.
      '--Aquí se pueden utilizar dos formas la primera es ubicando el archivo con el método
      '--load de la instancia de clase crwebreport. 

      '--La segunda forma presentada en forma de comentarios es utilizando la propiedad
      '--ReportSourceID. La cual debe de estar previamente configurada en el objeto
      '--ReportSource1, parte de los nuevos componentes de Crystal Report .Net para
      '--Visual Studio 2005.
      with me.crystalreportviewer1 
         .ReportSource = crWebReport
         '.reportsourceid = "reportsource1" 
         .DataBind()
      end with 
  
  
   end sub 
  
   sub btnb_cat_click(byval sender as object , byval e as System.EventArgs)

      '--Llamar al procedimiento que permite hacer el filtro.
      SelectElements()


   end sub 
  
   private sub CrystalReportViewer1_ReportRefresh(byval source as object , byval e as CrystalDecisions.Web.ViewerEventArgs) handles CrystalReportViewer1.ReportRefresh

   end sub 
end class

La tecnología de formularios Web es algo nuevo en .net framework, el cual proporciona una herramienta de diseño visual para construir aplicaciones ASP.NET dentro de Visual Studio. ASP.NET esta integrado a una parte de .net framework el cual tiene acceso a todas las características del mismo, como por ejemplo: En el diseño o construcción de un sitio Web, se puede utilizar cualquier lenguaje de programación de .NET, utilizando las facilidades de depuración, acceso a ADO.NET, acceso al entorno operativo y otros servicios utilizados en las clases de .net framework.

 

 

Conclusiones

 

Indudablemente el Internet a venido de manera vertiginosa creciendo y cambiando la forma de vida del mundo actual. Pues gracias al Internet nacieron ideas como los e-commerce, sitios o portales que compran y venden productos, mediante el uso de un teclado, un clic de un ratón y unos cuantos dígitos de una tarjeta de crédito a miles de millas de nuestros hogares. Pero el Internet actual no se limita nada más a este tipo de servicios, ya que permite compartir información entre millones y millones de personas desde diferentes sitios del planeta. Pero desde las incontables ventajas que ofrece el Internet, también podemos observar su parte oscura, tales como sitios con contenido muy crudo no actos para menores, ataques de virus a grandes servidores de información a sitios de comercio electrónico.

 

"Internet ha desarrollado nuevas oportunidades para creadores de música, literatura, cine y software para que puedan hacer su trabajo más accesible los usuarios en todo el mundo. Para lograr este potencial, una protección rigurosa de la Propiedad Intelectual será aún más importante que antes".
Bill Gates

 


Espacios de nombres usados en el código de este artículo:

CrystalDecisions.Web
CrystalDecisions.ReportSource
CrystalDecisions.Shared
CrystalDecisions.CrystalReports.Engine
Nicasoft.Net.v1.0.2005 (Haga clic aquí para descargar el espacio de nombres)
System.Data.SqlClient
System.Data
 


Fichero con el código de ejemplo: gcuadra_CRWebApp.zip - 137,10 KB


ir al índice