ASP.NET 4.0 Mejoras en el ScriptManager : ScriptResourceDefinition y AjaxFrameworkMode

Hola que tal? quiero compartir una nueva característica del ScriptManager, que nos va a facilitar la selección y filtro de los scriopt que deseamos incluir en nuestra página, primero que nada veamos el ScriptResourceDefinition, el cual define la ubicación de un recurso script, permitiendo especificar, ruta en modo debug, ruta en modo CDN, combinación de ambos y soporte SSL

La lista de propiedades puedes revisarla acá:
http://msdn.microsoft.com/es-es/library/system.web.ui.scriptresourcedefinition.aspx

image

Veamos un ejemplo práctico, vamos a incluir la librería más conocida y querida por nosotros, obviamente, jQuery. Para esto vamos al Global.asax y escribimos en el método Application_Star el siguiente código (la línea del BundleConfig ya viene en el visual studio 2012)

void Application_Start(object sender, EventArgs e)

{

// Code that runs on application startup

  BundleConfig.RegisterBundles(BundleTable.Bundles);

  ScriptManager.ScriptResourceMapping.AddDefinition(“jquery”, new  
               ScriptResourceDefinition

  {

    Path = “~/scripts/jquery-1.6.2.min.js”,

    DebugPath = “~/scripts/jquery-1.6.2.js”,

    CdnPath = “http://ajax.microsoft.com/ajax/jQuery/jquery-1.6.2.min.js”,

    CdnDebugPath = “http://ajax.microsoft.com/ajax/jQuery/jquery-1.6.2.js”,

    CdnSupportsSecureConnection =true

    });

}

Como se puede apreciar estamos mapeando a un nuevo recurso llamado “jquery”, en donde especificamos la ruta a nivel local para modo release(path) y modo debug, pero tambien si queremos utilizar un CDN de la misma manera, CdnPath para modo release y CdnDebugPath para modo debug, ademas indicamos que se permiten conexiones seguras.

Ahora debemos configurar el ScriptManager en el código declarativo:

<asp:ScriptManager runat=”server” EnableCdn=”false” AjaxFrameworkMode=”Enabled”>
   <Scripts>
       <asp:ScriptReference Name=”jquery” />
   </Scripts>
</asp:ScriptManager>

Acá ya se introduce tambien la nueva característica AjaxFrameworkMode que añade dos nuevos modos de comportamiento del ScriptManager. Enabled , el cual es el valor predeterminado y tiene el mismo comportamiento que versiones anteriores, Explicit, no incluye todos los script, pero asume que se utilizará el Microsoft Ajax, Disabled que no incluye las secuencias de comandos por defecto y asume  que  Microsot Ajax no será utilizado, es decir, no va a cargar ninguna script por defecto.

Si ejecutamos el ejemplo podemos ver los script que se están cargando:

image

Podemos apreciar que estamos cargando la librería jquery y el Microsoft Ajax.

Ahora voy a probar con las siguientes opciones ScriptMode en Release y AjaxFrameworkMode en Disabled

<asp:ScriptManager runat=”server” ScriptMode=”Release” EnableCdn=”false” AjaxFrameworkMode=”Disabled”>
       <Scripts>
           <asp:ScriptReference Name=”jquery” />
       </Scripts>
   </asp:ScriptManager>

image

En este caso solo estamos cargando la libería jquery minimizada ya que es lo que especificamos para modo release.

Y por ultimo, si queremos cargar la librería mediante un CDN solo especificamos true en EnableCDN:

image

Y vemos que efectivamente lo está cargando desde ajax.microsoft.com.
Bastante útiles las nuevas mejoras Smile

Saludos!
@chalalo

Un comentario en “ASP.NET 4.0 Mejoras en el ScriptManager : ScriptResourceDefinition y AjaxFrameworkMode”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *