[Tips] Medidor de ViewState, mi (in)utilidad gratuita
Bueno, me preguntaron que podría hacer uno con el ejemplo del articulo anterior http://geeks.ms/blogs/gperez/archive/2010/02/09/tips-como-leer-el-html-de-una-pagina-desde-asp-net.aspx , entonces se me ocurrió hacer rápidamente un Medidor de ViewState, que muestre el tamaño del mismo y la relación, en peso, con el total de la pagina.
Hay muy poco código pero lo que quiero mostrar es la facilidad para ocupar gráficos en nuestras páginas ASP.NET. Visual Studio 2010 RC1, que ya esta disponible, incluye dentro de la suite de controles al componente Chart. Simplemente es arrastrar a nuestro formulario y usar.
Código del Botón [Ver]
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Resultado As String
Dim MyWebClient As New WebClient
Dim ArregloBytes() As Byte
Dim total As Double
Dim vs As Double
Dim oUTF8 As New UTF8Encoding
ArregloBytes = MyWebClient.DownloadData(tx_url.Text)
Try
Resultado = oUTF8.GetString(ArregloBytes)
If Resultado.Contains("__VIEWSTATE") Then
Dim inicio As Integer = Resultado.IndexOf("id=""__VIEWSTATE"" value=")
Dim subresultado = Resultado.Remove(0, inicio + 24)
total = ArregloBytes.Length
vs = subresultado.Substring(0, subresultado.IndexOf("""")).Length
lb_total.Text = Format(total / 1000, "##,##0.00") & " KB"
lb_viewstate.Text = Format(vs / 1000, "##,##0.00") & "KB" 'Armar gráfico
Dim yValues As Double() = {total, vs}
Dim xValues As String() = {"Total", "ViewState"}
Grafico.Series(0).Points.DataBindXY(xValues, yValues)
Else
lb_mensaje.Text = "No se encuentra ViewState"
End If
Catch ex As Exception
lb_mensaje.Text = "Error"
End Try
End Sub
Como vez, son solo 3 líneas para armar el gráfico, la definición de X e Y y agregar a la serie los puntos.
Pruébalo tu mismo, lo hice con Visual Studio 2010 RC1, y el código lo puedes descargar acá
Saludos,
Gonzalo