taller asp net

16
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com Taller de ASP.NET Autores del manual Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com: Pol Salvat http://www.mistrucos.net  (6 capítulos) Miguel Angel Alvarez Director de DesarrolloWeb.com http://www.desarrolloweb.com  (2 capítulos) Clikear.com http://www.clikear.com (1 capítulo) Taller de ASP.NET: www.desarr olloweb.com/ma nuales/taller-asp-net.html  © Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorización. 1

Upload: luiscalvar

Post on 12-Oct-2015

47 views

Category:

Documents


0 download

TRANSCRIPT

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Taller de ASP.NET

    Autores del manual

    Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com: Pol Salvathttp://www.mistrucos.net (6 captulos)

    Miguel Angel AlvarezDirector de DesarrolloWeb.comhttp://www.desarrolloweb.com (2 captulos)

    Clikear.comhttp://www.clikear.com (1 captulo)

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    1

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Introduccin al taller de ASP.NET

    Comenzamos un nuevo taller, donde vamos a publicar artculos prcticos sobre ASP.NET, es decir, sobre la plataforma .NET enfocada a la creacin de pginas dinmicas de servidor.

    Como otros talleres de DesarrolloWeb.com, este manual no sigue un guin estricto ni sus captulos tienen porque leerse en orden. Al revs, cada artculo es independiente de los otros y pueden leerse por separado. Salvo posibles excepciones debidas a que podamos partir un taller complicado en varios artculos para su mejor comprensin.

    En este taller no se ofrecen los conceptos bsicos de .NET, sino que se publicarn artculos para los cuales se supone que el lector debe conocer de antemano la plataforma .NET, sus usos y modos de trabajo propios. Tenemos en DesarrolloWeb.com otras referencias a ASP.NET que sern muy interesantes de cara a conseguir la base necesaria para acceder a este manual.

    Categora .NET dentro de nuestro directorio: en este lugar encontraremos todos los contenidos de DesarrolloWeb.com que tienen relacin con .NET, as como enlaces a pginas externas en las que se trata exclusivamente esta plataforma.

    Manual de .NET: Introduccin a la plataforma .NET, con los conceptos ms bsicos para empezar a entender esta tecnologa para el desarrollo de aplicaciones web dinmicas.

    Servicios Web en .NET: Un manual que trata sobre la creacin de servicios web (web services) utilizando ASP.NET.

    Diferencias entre ASP y .NET: Un pequeo manual que sirve para las personas que conocen ASP y quieren saber en qu se diferencia de su evolucin ASP.NET.

    Tambin queremos recordar que tenemos una seccin de Scripts ASP.NET listos para usar, donde se puede acceder a una clasificacin de aplicaciones web ordenadas por distintas temticas.

    Tambin tenemos algunas FAQ sobre .NET que pueden ser de inters.

    Pues nada ms, sin ms introducciones os dejamos con el Taller de ASP.NET.

    Artculo por Miguel Angel Alvarez

    Implementar cdigo de Seguridad anti robots en ASP.NET

    Para crear un cdigo de seguridad seguiremos los siguientes pasos:

    Tenemos que agregar en el formulario que deseamos insertar el cdigo de seguridad los siguientes controles:

    Una imagen (dnde su scr ser /AntiRobots.aspx) Un input de tipo texto, con un id= type= frm_Codigo_Seguridad

    En el cdigo VB de la pgina del registro declararemos una variable llamada bAntiBots

    #Region "Members" Dim bAntiBots As Boolean = False #End Region

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    2

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    En el Page_Load:

    If Not IsPostBack Then Session("AntiBots") = GenerateRandomCode() Else 'Comprobamos el cdigo antibots If frm_Codigo_Seguridad.Value = Session("AntiBots").ToString() Then bAntiBots = True Else bAntiBots = False Me.Session("AntiBots") = GenerateRandomCode() End If End If

    Tenemos que crear la funcin GenerateRandomCode para generar un cdigo de seguridad al azar

    #Region "GenerateRandomCode"

    Private Function GenerateRandomCode() As String Dim random As New Random Dim s As String = "" Dim i As Int32 = 0 Dim iChr As Int32

    While (i ; 57 And iChr

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Get Return m_width End Get End Property

    Public ReadOnly Property Height() As Int32 Get Return m_height End Get End Property

    Public ReadOnly Property Image() As Bitmap Get Return m_image End Get End Property

    #End Region

    Public Sub New(ByVal s As String, ByVal width As Int32, ByVal height As Int32) Me.m_text = s Me.SetDimensions(width, height) Me.GenerateImage() End Sub

    Public Sub New(ByVal s As String, ByVal width As Int32, ByVal height As Int32, ByVal familyName As String)

    Me.m_text = s Me.SetDimensions(width, height) Me.SetFamilyName(familyName) Me.GenerateImage() End Sub

    Private Sub SetDimensions(ByVal width As Int32, ByVal height As Int32) If width

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    'Rellenamos el fondo Dim hatchBrush As New HatchBrush(HatchStyle.SmallConfetti, Color.LightGray, Color.White) g.FillRectangle(hatchBrush, rect)

    'Establecemos la fuente Dim size As SizeF Dim fontSize As Single = rect.Height + 1 Dim font As Font 'Ajusta el tamao de la fuente

    Do fontSize = fontSize - 1 font = New Font(Me.m_familyName, fontSize, FontStyle.Bold) size = g.MeasureString(Me.m_text, font) Loop While (size.Width >; rect.Width)

    'Establece el formato de texto Dim format As New StringFormat format.Alignment = StringAlignment.Center format.LineAlignment = StringAlignment.Center

    Dim path As New GraphicsPath path.AddString(Me.m_text, font.FontFamily, CType(font.Style, Int32), font.Size, rect, format) Dim v As Single = 4.0F

    Dim points As System.Drawing.PointF() = { _ New System.Drawing.PointF(m_random.Next(CType(rect.Width, Integer)) / v, m_random.Next(CType(rect.Height, Integer)) / v), _ New System.Drawing.PointF(rect.Width - m_random.Next(CType(rect.Width, Integer)) / v, m_random.Next(CType(rect.Height, Integer)) / v), _ New System.Drawing.PointF(m_random.Next(CType(rect.Width, Integer)) / v, rect.Height - m_random.Next(CType(rect.Height, Integer)) / v), _ New System.Drawing.PointF(rect.Width - m_random.Next(CType(rect.Width, Integer)) / v, rect.Height - m_random.Next(CType(rect.Height, Integer)) / v)}

    Dim matrix As New Matrix matrix.Translate(1, 3)

    'Deformamos la imagen path.Warp(points, rect, matrix, 0)

    'Dibuja el texto hatchBrush = New HatchBrush(HatchStyle.OutlinedDiamond, Color.Orange, Color.BlueViolet) g.FillPath(hatchBrush, path) 'Aade efectos Dim m As Int32 = Math.Max(CType(rect.Width, Integer), CType(rect.Height, Integer)) Dim i As Int32 = 0 While i

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    End Class

    Ahora en el proyecto crearemos la pgina que apunta nuestra imagen (el primer control que hemos agregado en el proyecto, y en el Page_Load pondremos este cdigo:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Creamos una imagen creando el texto guardado en la sesion Dim ab As New ImagenAntiBots(Session("AntiBots").ToString(), 200, 50, "Arial")

    'Cambiamos la respuesta al cliente a tipo "imagen/jpeg" Me.Response.Clear() Me.Response.ContentType = "image/jpeg"

    'Salvamos la imagen en el Response ab.Image.Save(Me.Response.OutputStream, ImageFormat.Jpeg) End Sub

    Y para terminar, en el formulario del registro, dnde hemos agregado los controles, en el botn del submit, utilizar esta condicin:

    If bAntiBots Then ' Creamos el registro Else ' El cdigo de seguridad no est bien colocado End if

    Puedes descargarte todo el cdigo fuente de pulsando aqu.

    Artculo por Pol Salvat

    Modificar la ubicacin del Viewstate en las pginas ASP .NET

    Gracias a esta funcin podremos ubicar el viewstate al final de las pginas. Colocar el viewstate al final de una pgina asp.net puede ser til para optimizaciones para buscadores (para poner al final el viewstate que su contenido para un buscador no tiene sentido), agilizar la carga de la pgina...

    Cdigo en Visual Basic.Net

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)

    Dim stringWriter As System.IO.StringWriter = New System.IO.StringWriter

    Dim htmlWriter As HtmlTextWriter = New HtmlTextWriter(stringWriter)

    MyBase.Render(htmlWriter)

    Dim html As String = stringWriter.toString()

    Dim StartPoint As Integer = html.IndexOf("

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Dim EndPoint As Integer = html.IndexOf("/>;", StartPoint) + 2

    Dim viewstateInput As String = html.Substring(StartPoint, EndPoint - StartPoint)

    html = html.Remove(StartPoint, EndPoint - StartPoint)

    Dim FormEndStart As Integer = html.IndexOf(";") - 1

    If FormEndStart >;= 0 Then

    html = html.Insert(FormEndStart, viewstateInput)

    End If

    End If

    writer.Write(html)

    End Sub

    Cdigo en C#

    protected override void Render(System.Web.UI.HtmlTextWriter writer) {

    System.IO.StringWriter stringWriter = new System.IO.StringWriter();

    HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);

    base.Render(htmlWriter);

    string html = stringWriter.ToString();

    int startPoint = html.IndexOf(";", startPoint) + 2;

    string viewstateInput = html.Substring(startPoint, endPoint - startPoint);

    html = html.Remove(etartPoint, endPoint - startPoint);

    int formEndStart = html.IndexOf(";");

    if (formEndStart >;= 0){

    html = html.Insert(formEndStart, "\n" + viewstateInput);}}

    writer.Write(html);}

    Artculo por Pol Salvat

    Dar formato a un datagrid en el ItemDataBound ASP.NET

    Para poder formatear una grid mientras se carga accedemos con el ItemDataBound.

    Lo primero que realizaremos es aadir un handles cuando el grid se haya cargado:

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    7

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    AddHandler NombreGrid.Grid.ItemDataBound, AddressOf ItemDataBound

    Crearemos una funcin:

    Private Sub ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)

    End Sub

    Dentro de la funcin, para acceder a cada celda podremos utilizar el e.Item.Cells(NumeroDeCelda).Text= "Lo que queramos"

    Como ejemplos que podemos formatar:

    e.item.Cells(0).Text = strImg.ToString e.item.Cells(0).HorizontalAlign = HorizontalAlign.Center e.item.Cells(0).VerticalAlign = VerticalAlign.Top e.item.Cells(0).Width = Unit.Pixel(30) e.item.Cells(0).visible=False

    Podemos utilizar el with para no tener que escribir todo el rato e.item:

    With e.Item .Cells(0).Text = strImg.ToString .Cells(0).HorizontalAlign = HorizontalAlign.Center .Cells(0).VerticalAlign = VerticalAlign.Top .Cells(0).Width = Unit.Pixel(30) .Cells(0).visible=False

    End with

    Para acabar, hay que comentar que una fila de un grid puede ser de la cabecera o no.

    Si es cabecera: If e.Item.ItemType = ListItemType.Header Then

    Si es un elemento normal: If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then

    Artculo por Pol Salvat

    Dot Net Nuke, sistema portal en ASP.NET

    Mucha gente conocer PHP Nuke, un sistema para crear un portal fcilmente en PHP y con base de datos MySQL. Vamos a presentar ahora un sistema para hacer un portal en ASP.NET un poco ms desconocido, aunque la potencia y desarrollo del programa indican que es totalmente vlido y muy interesante para lanzarse rpidamente al mundo editorial en la web.

    DotNetNuke es un sistema para hacer pginas web de tipo portal. Incluye un parte pblica, a la que acceden los visitantes -el propio portal- y una privada, a la que acceden los administradores de la pgina, para editar los contenidos de la parte pblica.

    Caractersticas del programa

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    8

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Ante todo es importante hablar de la gratuidad del software. En contra de lo que muchas veces ocurre con los sistemas Microsoft, podemos utilizar libremente este programa para cualquier propsito. Podemos modificarlo, redistribuirlo o, incluso, venderlo o prestar soporte tcnico. La nica condicin es que debemos mencionar la procedencia del software, en la pgina o el cdigo HTML.

    DotNetNuke tiene muchas posibilidades, algunas de ellas autnticamente interesantes. Entre ellas podemos encontrar:

    Creacin de mltiples portales utilizando un mismo cdigo y base de datos, lo que significa que se pueden crear varios sitios utilizando un mismo alojamiento que soporte ASP.NET.

    Registro de usuarios y completa personalizacin del portal dependiendo del tipo de usuario.

    Posibilidad de crear servicios o contenidos de acceso restringido, con enlace directo a mtodos de pago para los usuarios que deseen acceder a esos servicios.

    Acceso de administrador para gestionar los contenidos y servicios. Acceso a estadsticas completas del uso del sitio.

    Sistema de gestin de banners integrado. Acceso de superusuario para crear nuevos portales. Posibilidad de crear skins (apariencias) por el administrador para dotar de un aspecto al

    portal totalmente personalizado. Permite trabajar con varias bases de datos distintas, aunque para algunas hace falta

    algn mdulo adicional de soporte. Mltiples tipos de contenidos que se pueden administrar. Entre ellos Noticias, contacto,

    foros de discusin, documentos, eventos, etc. Una larga lista que se puede ampliar con una serie de mdulos disponibles.

    Mdulos de DotNetNuke

    Los mdulos son piezas del programa que ofrecen soporte a funcionalidades especficas para los usuarios del portal. La versin actual de DotNetNuke dispone de 24 mdulos para realizar tareas diversas como gestin de usuarios, calendario de eventos, banners, noticias, etc. Adems, existen otros mdulos gratuitos, ofrecidos por portales que tratan sobre DotNetNuke y tambin algunos de pago que ofrecen ciertas empresas y desarrolladores.

    Los mdulos pueden instalarse, desinstalarse y configurarse siempre que se quiera, para dotar al portal de las funcionalidades que necesitamos en cada momento. Entre los mdulos disponibles en la versin inicial se encuentran los siguientes:

    Gestin de cuentas Noticias o novedades Gestin de banners Contacto, que ofrece la posibilidad de enviar correo a personas o grupos de personas Foros de discusin, con temas configurables Gestin de documentos, con opcin a descarga o visualizacin Calendario de eventos FAQs Links Bsquedas Encuestas

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    9

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    La lista todava contina con otros mdulos para temas ms especficos o tan especiales como servicio de informacin del tiempo o un servicio Whois, para hacer bsquedas de registro de nombres de dominios.

    Algunos ejemplos de pginas realizadas con DotNetNuke

    Existen ya bastantes ejemplos de buenos trabajos realizados con DotNetNuke. Entre los mejores hay algunos contribuidores de desarrollo de la plataforma.

    4Birckhead http://www.4birckhead.com En esta pgina, aparte de un agradable diseo, podremos encontrar nuevos mdulos gratuitos para extender DotNetNuke, como lbum de fotos o Tikers de ndices burstiles.

    ByDesignWebsights http://www.bydesignwebsights.com/ Ofrecen soporte y recursos sobre DotNetNuke. En el momento en el que se escribi este artculo ofrecan alojamiento gratuito sobre la plataforma.

    Ciber Huis http://www.cyberhuis.com/ Otro sitio de recursos con posibilidad de descargar nuevos mdulos gratuitos.

    DotNetNuke Skins http://www.dnnskins.comUn sitio para encontrar nuevas apariencias para DotNetNuke. Hay que registrarse para acceder a los skins, pero puede merecer la pena porque tienen disponibles decenas de diseos distintos.

    DotNetNuked http://www.dotnetnuked.com Otro ejemplo de sitio realizado con DotNetNuke que ofrece tambin recursos de utilidad.

    Snowcovered http://www.snowcovered.com Una pgina ms comercial sobre DotNetNuke, en la que se ofrecen recursos tiles, aunque la mayora de las veces de pago.

    Cmo obtener DotNetNuke

    En la pgina de inicio de DotNetNuke (http://dotnetnuke.com) podemos encontrar mucha ms informacin e instrucciones para instalar DotNetNuke.

    Para empezar hay disponible una gua de instalacin del software que explica paso a paso el proceso de instalacin. Tambin disponen de guas de usuario y de administrador del portal, as como diversa documentacin y FAQs.

    Para descargar DotNetNuke hay que registrarse en la pgina y hacer el inicio de sesin. Podremos encontrar varios ficheros de descarga con distintas versiones del programa.

    Conclusin

    Dot Net Nuke es una buena muestra de lo que se puede hacer con .NET y del empeo de ciertas comunidades, junto con Microsoft, de popularizar el uso de software libre en esta nueva plataforma de desarrollo. Efectivamente, se trata de un software gratuito desarrollado por una comunidad de personas a que se sienten a gusto trabajando con sistemas Microsoft y que desean popularizar sus herramientas. El producto del trabajo lo podemos ver en dotnetnuke.com (http://dotnetnuke.com) y en un primer vistazo parece que han conseguido una buena herramienta.

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    10

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Artculo por Miguel Angel Alvarez

    Multicultura en ASP.NETCrditos

    Este artculo nos lo ofrece Clikear.com, una web dedicada por completo a .NET, que ofrece alojar tus pginas ASP.NET gratuitamente.

    En este articulo presentamos un ejemplo de una pagina ASP .NET para conocer las clases que sirven para hacer una web multicultura, una de las nuevas e interesantes caractersticas de la plataforma .NET.

    Presentamos una pagina en la que se nos muestra los diferentes formatos de hora, fecha, y numeros en distintos tipos de configuraciones para distintas culturas.

    Estudiando este ejemplo el lector podr conocer algunos de los metodos mas usados de la clase System.Globalization, que se utiliza para crear webs multiculturales.

    Se puede descargar el archivo comprimido con el ejemplo.

    Artculo por Clikear.com

    Deshabilitar la expiracin de la cache

    Los servidores ASP.NET disponen de una cach de salida que sirve para aumentar el rendimiento de las aplicaciones web. La cach guarda por un proceso interno datos de la salida de la aplicacin web y si se realiza de nuevo la misma consulta sobre el servidor, ste puede utilizar la cach para devolver los resultados ms rpido, sin tener que generarlos otra vez.

    No todos los datos se pueden o deben guardar en cach. Algunos no merece la pena guardarlos porque puedan depender del usuario que est consultando la pgina. Pero hay muchos datos que se pueden guardar porque van a ser los mismos para todos los usuarios que visitan la pgina, como la portada de un portal, noticias, productos de una empresa, etc.

    Los datos que hay en la cach generalmente tienen una fecha de expiracin determinada, a partir de la cual se tienen que volver a generar porque no se consideran vlidos. Esa fecha de expiracin la tenemos que configurar nosotros. Tambin podemos eliminar esa expiracin si lo deseamos, lo que veremos en este artculo.

    Podemos deshabilitar la expiracin de la cache en los web servers para ASP.NET 2.0 (que no expire los elementos puestos en la cache si no tiene espacio) poniendo el siguiente cdigo en el web.config:

    Dentro del tag ; ; ;disableExpiration = "false"

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    11

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    privateBytesLimit = "0" percentagePhysicalMemoryUsedLimit = "60" privateBytesPollTime = "00:02:00"/>; ;

    Artculo por Pol Salvat

    Error Server Application Unavailable en ASP.NET 2.0 y ASP.NET 1.x

    Esto significa que necesitamos crear dos procesos para ejecutar las distintas versiones de ASP.Net. Esta opcin la podemos configurar por cada website que tengamos, podramos incluso tener n grupos distintos.

    Hay que aadir que cada grupo correr en una nueva instancia de w3wp.exe, y que esto implica el consumo de recursos de RAM (entre 20 a 40 megas) para cada grupo como mnimo, y que subir en relacin del uso de la web.

    Para crear un grupo de aplicaciones, apretaremos botn derecho sobre MI PC y seleccionaremos Administrar

    En el men de la izquierda, localizaremos Administrador de Internet Information Services (IIS) y desplegaremos la carpeta "Gupos de aplicaciones"

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    12

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Encima de "Grupo de aplicaciones" apretaremos botn derecho del ratn, seleccionaremos "Nuevo", Grupo de aplicaciones.

    En el Id. De grupo de aplicaciones le pondremos el nombre que queramos (en este ejemplo, ASP_NET_2_0)

    Ahora en la carpeta de "Grupo de aplicaciones" podemos observar el nuevo grupo de aplicaciones que acabamos de crear ASP_NET_2_0

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    13

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Para asignar el website a nuestro nuevo grupo de aplicaciones, pulsaremos encima del sitio web botn derecho del ratn, propiedades, y en la pestaa "Directorio particular", en la parte de abajo, donde pone "Grupo de aplicaciones" seleccionaremos nuestro nuevo grupo de aplicaciones

    Aplicaremos y nuestra web en ASP.NET 2.0 funcionar a la perfeccin.

    Artculo por Pol Salvat

    Generar grficos dinmicamente

    Este grfico est basado en un array de valores. En este array se almacenan los valores y las fechas, para poder sacar un grfico en condiciones en 2D parecido al siguiente:

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    14

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    El cdigo fuente para generar el grfico es el siguiente:

    Imports System.Drawing System.Drawing Imports System.Drawing.Imaging System.Drawing.Imaging Public Class graph Class graph Inherits System.Web.UI.Page Region " Cdigo generado por el Diseador de Web Forms " 'El Diseador de Web Forms requiere esta llamada. ; Private Sub InitializeComponent() Private Sub InitializeComponent() End Sub 'NOTA: el Diseador de Web Forms necesita la siguiente declaracin del marcador de posicin. 'No se debe eliminar o mover. Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: el Diseador de Web Forms requiere esta llamada de mtodo 'No la modifique con el editor de cdigo. InitializeComponent()

    End Sub End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim objBitmap As New Bitmap(700, 200) Dim objGraphic As Graphics = Graphics.FromImage(objBitmap) Dim orange As New SolidBrush(Color.Orange) Dim whiteBrush As New SolidBrush(Color.White) Dim lineColor As New Pen(Color.Blue, 2) objGraphic.FillRectangle(whiteBrush, 0, 0, 700, 200)

    objGraphic.DrawLine(lineColor, New Point(0, 190), New Point(700, 190)) New Point(0, 190), New Point(700, 190)) objGraphic.DrawLine(lineColor, New Point(5, 5), New Point(5, 195)) New Point(5, 5), New Point(5, 195)) Dim l_arr As New ArrayList 'insercin en el array de valores para el ejemplo l_arr.Add("800") l_arr.Add("01/01/07") l_arr.Add("500") l_arr.Add("02/01/07") l_arr.Add("1000") l_arr.Add("03/01/07") l_arr.Add("200") l_arr.Add("03/01/07") l_arr.Add("1000") l_arr.Add("03/01/07") l_arr.Add("1300") l_arr.Add("03/01/07") l_arr.Add("1000") l_arr.Add("03/01/07") l_arr.Add("1000") l_arr.Add("03/01/07") l_arr.Add("1000") l_arr.Add("03/01/07") l_arr.Add("1000") l_arr.Add("03/01/07") Dim i As Int32 = 0 Dim pos As Int32 = 0 Dim PointValue As New PointF(-30, 0) Dim PointDate As New PointF(-30, 190) Dim objFont As New Font("Verdana", 10)

    Taller de ASP.NET: www.desarrolloweb.com/manuales/taller-asp-net.html Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    15

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Dim FontDate As New Font("Verdana", 7) Dim wb2 As New SolidBrush(Color.Black) Dim x As Int32 = -50 Dim maxValue As Int32 = 0 'calculo del mximo valor de la grfica i = 0

    While i ; maxValue Then maxValue = l_arr(i)

    End If i += 2

    End While 'creacin de todos los rectngulos de la grfica i = 0

    While i