Combinando scripts para mejorar el rendimiento de nuestras aplicaciones web gracias a la característica CompositeScript del ScriptManager.

Con el Service Pack 1 de Visual Studio 2008, se han incluido muchas novedades como ya vimos, pero para trabajar con Ajax, este Service Pack incluía dos mejoras bastante interesantes:

  • Historial con ASP.NET Ajax.
  • Soporte para combinar ASP.NET Ajax Scripts.

Hoy veremos cómo combinar scripts y que ganamos al hacerlo.

¿Qué ganamos combinando varios archivos Javascript en uno?

Por razones muy diversas, puede ser recomendable que tengamos nuestra funcionalidad cliente en varios archivos de Javascript. Eso si esta practica también tiene consecuencias de cara al rendimiento de nuestra aplicación.

Actualmente cuando un navegador Web comienza a realizar peticiones para servir el contenido de una página, estas peticiones se van procesando de manera que nunca se estén sirviendo más de 4 peticiones simultaneas, que sucede que cuantas más peticiones, más lento es el proceso de carga de una página.

Así pues, como podemos deducir, hay veces que es preferible tener menos peticiones web y archivos más grandes que muchísimos pequeños y muchas peticiones web.

Como combinar scripts.

Gracias a CompositeScript, nueva funcionalidad del ScriptManager que viene con el Service Pack 1 de Visual Studio 2008 y del Framework 3.5 esto, es sumamente sencillo. Sigue leyendo

Anuncios

El Control ScriptReferenceProfiler.

Como ya hemos vistos en algunos post anteriores el control ScriptManager de Microsoft se traduce en una serie de archivos javascript que son necesarios para trabajar con Ajax, de forma similar, los controles “extender” (como por ejemplo los del AjaxControlToolKit) que nos permiten añadir funcionalidad Ajax a algunos controles de servidor también añaden algunos archivos javascript.

El control ScriptReferenceProfiler, nos va a mostrar en todo momento que archivos javascript (de “sistema”) se están añadiendo a nuestra página. Esto nos puede resultar muy útil a la hora de “afinar” nuestras aplicaciones web.

Este control se puede descargar de forma gratuita desde el sitio de codeplex.

Para usarlo, tan simple como esto: Sigue leyendo

Mejorando el rendimiento de nuestras aplicaciones web de forma sencilla con la directiva OutputCache.

A lo largo de los años que llevo trabajando, he aprendido que para que los clientes/usuarios queden satisfechos, toda aplicación debe cumplir los siguientes requisitos:

  1. Que haga lo que tiene que hacer, es decir, que haga las funciones para las que ha sido pensada.
  2. Que sea rápida.
  3. Que sea bonita y usable.

Si una aplicación cumple estos tres requisitos, habremos hecho bien nuestro trabajo y el cliente/usuario seguro que va a estar contento.

Hoy vamos a centrarnos en el requisito 2, es decir, en el performance o rendimiento de las aplicaciones y como mejorarlo.

Mejorando el performance o rendimiento de nuestras aplicaciones Web.

Uno de los factores más importantes para que el performance o rendimiento de la aplicación sea bueno, es la capacidad para almacenar elementos en memoria en el momento que se solicitan.

Estos elementos, se pueden almacenar en varios sitios (cache de hardware y software, en un navegador web, en un proxy etc…), pero hoy nos vamos a centrar en la cache.

ASP.NET, nos permite dos tipos de almacenamiento en cache: Sigue leyendo

El patron de diseño Lazy Loading

El Lazy Loading es un patron de diseño util y simple que se basa en ir cargando los distintos componentes de una clase cuando los vamos usando.

Por ejemplo, supongamos que tenemos una clase que nos gestiona una lista e links, y esta tiene este aspecto:

public class Links
{
#region members
private string _title;
private int _quantity;
private
LinkCollection _linkList;
#endregion
#region properties
public string Title
{
get { return _title; }
set { _title = value; }
}
public int Quantity
{
get { return _quantity; }
set { _quantity = value; }
}
public LinkCollection LinkList
{
get { return _linkList; }
set { _linkList = value; }
}
#endregion
}

Si implementamos el lazy loading, el valor de la colección de links inicialmente sería nulo, y en el momento a que usamos la propiedad con la que lo exponemos, sería cuando cargamos la susodicha colección.
Esta implementación, tendría este aspecto:

public LinkCollection LinkList
{
get
{
if(_linkList == null)
{
_linkList = new LinkList();
}
return _linkList;
}
set { _linkList = value; }
}

Como veis es un patron simple, util y facil de implementar y con el ganareis un poquito en el performace de vuestras aplicaciones.

Enlaces relacionados

Otros patrones de diseño en A deshoras

Si os surge alguna duda, no dudeis en dejar comentarios que respondere gratamente.