Sunteți pe pagina 1din 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 Miguel Angel Alvarez Clikear.com
http://www.mistrucos.net (6 captulos) Director de DesarrolloWeb.com http://www.desarrolloweb.com (2 captulos) http://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.

Tu mejor ayuda para aprender a hacer webs www.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.

Tu mejor ayuda para aprender a hacer webs www.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 <; 6) iChr = random.Next(48, 90) While iChr >; 57 And iChr <; 65 iChr = random.Next(48, 90) End While s = String.Concat(s, Chr(iChr).ToString()) i=i+1 End While Return s End Function #End Region

Para seguir, nos faltar crear la clase encargada de crear, manipular y deformar el cdigo de seguridad generado en imagen
Imports Imports Imports Imports Imports System System.Drawing System.Drawing.Drawing2D System.Drawing.Imaging System.Drawing.Text

Public Class ImagenAntiBots Dim m_text As String Dim m_width As Int32 Dim m_height As Int32 Dim m_familyName As String Dim m_image As Bitmap Dim m_random As New Random #Region "Propiedades de lectura" Public ReadOnly Property Text() As String Get Return m_text End Get End Property Public ReadOnly Property Width() As Int32 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. 3

Tu mejor ayuda para aprender a hacer webs www.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 <;= 0 Then Throw New ArgumentOutOfRangeException("width", width, "Argument out of range, must be greater than zero.") End If If (height <;= 0) Then Throw New ArgumentOutOfRangeException("height", height, "Argument out of range, must be greater than zero.") End If Me.m_width = width Me.m_height = height End Sub Private Sub SetFamilyName(ByVal familyName As String) Try Dim font As Font = New Font(familyName, 12.0F) Me.m_familyName = familyName font.Dispose() Catch ex As Exception Me.m_familyName = System.Drawing.FontFamily.GenericSerif.Name End Try End Sub Private Sub GenerateImage() Dim bitmap As New Bitmap(Me.m_width, Me.m_height, PixelFormat.Format32bppArgb) 'Creamos objeto grafico Dim g As Graphics = Graphics.FromImage(bitmap) g.SmoothingMode = SmoothingMode.AntiAlias Dim rect As New RectangleF(0, 0, Me.m_width, Me.m_height)

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.

Tu mejor ayuda para aprender a hacer webs www.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 <; CType((rect.Width * rect.Height / 30.0F), Int32) Dim x As Int32 = m_random.Next(CType(rect.Width, Integer)) Dim y As Int32 = m_random.Next(CType(rect.Height, Integer)) Dim w As Int32 = m_random.Next(CType(m / 50, Integer)) Dim h As Int32 = m_random.Next(CType(m / 50, Integer)) g.FillEllipse(hatchBrush, x, y, w, h) i=i+1 End While font.Dispose() hatchBrush.Dispose() g.Dispose() 'Establece la imagen Me.m_image = bitmap End Sub

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.

Tu mejor ayuda para aprender a hacer webs www.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("<;input type=""hidden"" name=""__VIEWSTATE""") If StartPoint >;= 0 Then 'does __viewstate exist?

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.

Tu mejor ayuda para aprender a hacer webs www.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("<;/form>;") - 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("<;input type=\"hidden\" name=\"__VIEWSTATE\""); if (startPoint >;= 0){ int endPoint = html.IndexOf("/>;", startPoint) + 2; string viewstateInput = html.Substring(startPoint, endPoint - startPoint); html = html.Remove(etartPoint, endPoint - startPoint); int formEndStart = html.IndexOf("<;/form>;"); 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.

Tu mejor ayuda para aprender a hacer webs www.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 webs www.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.

Tu mejor ayuda para aprender a hacer webs www.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 webs www.desarrolloweb.com

Artculo por Miguel Angel Alvarez

Multicultura en ASP.NET
Crditos 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 <;system.web>; <;caching>; <; cache disablememorycollection="true">;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 webs www.desarrolloweb.com

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

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 webs www.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 webs www.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 webs www.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. <;System.Diagnostics.DebuggerStepThrough()>; 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 webs www.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 <; l_arr.Count If l_arr(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 <; l_arr.Count x += 70 Dim aux As Int32 aux = (l_arr(i) * 189) / (maxValue + 200) objGraphic.FillRectangle(orange, x, 189 - aux, 40, aux) PointValue.X = x PointDate.X = x - 10 objGraphic.DrawString(l_arr(i).ToString, objFont, wb2, PointValue) objGraphic.DrawString(l_arr(i + 1).ToString, FontDate, wb2, PointDate) i += 2 End While Response.ContentType = "image/gif" objBitmap.Save(Response.OutputStream, ImageFormat.Gif) End Sub End Class

Puedes descargarte todo el ejemplo desde aqu Artculo por Pol Salvat

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.

16

S-ar putea să vă placă și