Professional Documents
Culture Documents
0
(Saltando desde la versión 2.0)
Krasis Consulting, S. L.
www.Krasis.com
ISBN: 978-48-936696-1-4
Depósito Legal: VG 961-2009
gran utilidad para trabajar con enlazado a datos en el navegador y para conocer el
futuro de las bibliotecas de lado cliente de ASP.NET AJAX.
Durante el evento SIMO Network 2009, a finales de septiembre de 2009, se
regalaron miles de ejemplares de este libro a los programadores que visitaron al
pabellón Microsoft. En varios eventos posteriores por toda España se entregaron a los
existentes más copias físicas de la obra. Además ha estado disponible para su lectura en
Internet (www.scribd.com/krasispress) recibiendo decenas de miles de lecturas.
Muchas personas la han adquirido también en formato impreso en nuestra tienda on-
line (shop.campusmvp.com).
Todo ello hace que este documento interese a miles de personas, y por eso, poco
después de la versión definitiva del producto lo ponemos a disposición pública.
Hay que añadir también que la característica de plantillas AJAX en ASP.NET
apenas está documentada por Microsoft. Por ello, cuando se escribió la primera
versión del libro fue resultado directo de investigación personal del autor, examinando
miles de líneas de código JavaScript y haciendo muchas pruebas. La versión definitiva
no está mucho más documentada, limitándose a incluir unos pocos ejemplos prácticos
en el código fuente del Microsoft AJAX Control Toolkit. Por ello, el documento
original junto con este anexo constituyen prácticamente la única documentación que
existe sobre esta funcionalidad, y desde luego la única existente en castellano a la hora
de escribir esto (Mayo de 2010).
Si optamos por la versión binaria lo único que tendremos que hacer para habilitar la
funcionalidad en nuestro proyecto es agregar una referencia a la librería. Así que
descomprimiremos el ZIP en cualquier carpeta de nuestro disco duro. Luego en Visual
Studio abriremos el proyecto Web con el que queremos usar la funcionalidad de
Enlazado a datos AJAX. Modificaciones en la versión final de .NET 4.0 5
Figura 3.- Archivos incluidos en la descarga binaria del Ajax Control Toolkit
“SampleWebSites\AjaxClientWebSite\Scripts\MicrosoftAjax”
<script src="MicrosoftAjax/MicrosoftAjaxTemplates.js"
type="text/javascript" />
Nota: Si te fijas, dentro del código fuente están incluidos diversos archivos
que incluyen el nombre jQuery. Esto es así porque la ASP.NET Ajax Library es
compatible con jQuery y todos los controles del Control Toolkit funcionan
también como plugins de jQuery. No obstante si no le vas a sacar partido puedes
eliminarlos de la carpeta de tu aplicación. Para más información sobre jQuery
visita: http://jquery.org/
Junto con la versión definitiva de .NET 4.0 Microsoft habilitó la posibilidad de utilizar
las bibliotecas de ASP.NET Ajax Library directamente desde su red de distribución de
contenidos (CDN, de sus siglas en inglés).
Una CDN (http://en.wikipedia.org/wiki/Content_delivery_network) es una red
mundial de distribución de archivos que utiliza múltiples servidores sincronizados,
repartidos por todo el mundo, para dotar de contenidos y archivos a una aplicación
Web. Su uso permite obtener varias ventajas:
1. Cada usuario se descarga los archivos desde el servidor que tenga más
cerca, pudiendo ahorrar mucho tiempo. Puede que incluso el servidor más
cercano esté en tu propia ciudad, ya que Microsoft tiene servidores en las
ciudades más importantes del mundo. Además, con toda probabilidad
tienen más ancho de banda que tus propios servidores.
Podemos utilizar los archivos desde la CDN en una página ASPX si establecemos la
propiedad EnableCdn a True en un ScriptManager:
Esto hará que, al ejecutar la aplicación, los Scripts en lugar de descargarse desde
nuestro servidor, lo hagan directamente desde la CDN de Microsoft. Es muy fácil
comprobarlo habilitando y deshabilitando la característica y viendo el código fuente de
la página resultante.
Por otro lado se pueden referenciar desde cualquier página sin necesidad de usar el
control ScriptManager simplemente apuntando referencias de scripts a la misma, por
ejemplo así:
<script src=”http://ajax.microsoft.com/ajax/4.0/1/MicrosoftAjax.js”
type="text/javascript" />
Como vemos es idéntico a referenciarlas en local (los archivos se llaman igual) pero
se incluye la ruta correcta a la CDN de Microsoft delante.
En http://www.asp.net/ajaxlibrary/CDN.ashx se listan las bibliotecas Ajax
soportadas actualmente por la CDN, entre las que están jQuery en sus diversas
versiones, la ASP.NET Ajax Library en sus versiones 3.5 y 4.0, y el Ajax Control
Toolkit completo.
No obstante existen algunos detalles que se han modificado y que vamos a aclarar
en los siguientes sub-epígrafes.
<body
xmlns:sys="javascript:Sys"
xmlns:dataview="javascript:Sys.UI.DataView"
sys:activate="*"
>
<body
xmlns:sys="javascript:Sys"
xmlns:dataview="javascript:Sys.UI.DataView"
>
xmlns:class=”http://schemas.microsoft.com/aspnet/class”
Esta sintaxis es más escueta que la anterior, que implicaba usar dos atributos class,
uno para decorar las filas pares y otro para las impares. Ahora simplemente
devolvemos el nombre de la clase como resultado de una comprobación, siendo ésta
asignada automáticamente como nombre de clase CSS en el elemento en el que la
10 Tecnologías ASP.NET 4.0 (Saltando desde la versión 2.0)
Al igual que los atributos class, los atributos code se han asimilado dentro del espacio
de nombres sys. Por ello, los atributos indicados en la página 101, code:if, code:before
y code:after pasan a ser ahora simplemente: sys:if, sys:before y sys:after.
Por ello no es necesario tampoco incluir en <body> el espacio de nombres
xmlns:code que se indicaba en la página 102.
Así, en el ejemplo incluido, para visualizar una imagen determinada si el stock es
mayor a 20 unidades el código necesario sería este:
En el apartado 9 del capítulo 5 del libro se habla sobre crear vistas maestro-detalle de
datos en el lado cliente. Se mencionan los atributos sys:command ,
sys:commandargument y dataview:selecteditemclass, que siguen siendo plenamente
válidos y se usan de la misma manera descrita.
Sin embargo, al final de ese epígrafe (página 106), se menciona el atributo
dataview:sys-key como forma de identificar de manera única un control DataView
usado con una plantilla, de manera que a la hora de enlazar los detalles del mismo
podíamos usar dicho identificador para hacer referencia a los datos.
Esta técnica era sencilla pero aun así un tanto liosa e innecesaria: ¿para qué
complicarnos la vida identificando el DataView de un elemento si ya tenemos
directamente identificado en el DOM de la página a todos los elementos HTML que
entran en juego?
Por ello en la versión definitiva esto se ha simplificado también y ahora ya no es
necesario usar este atributo especial, el cual ha desaparecido. Ahora es más fácil que
todo eso, ya que simplemente tendremos que indicar en la plantilla de detalles el
identificador de la plantilla maestro.
En el ejemplo del libro, tenemos una plantilla para visualizar la lista de productos,
en la cual se usa el atributo dataview:sys-key. Ya no es necesario y simplemente le
asignamos un identificador de HTML normal, en este caso “Productos.template”, así:
Es decir, se indica que queremos usar como datos para la plantilla de los detalles la
propiedad selectedData del DataView utilizado en el control con el identificador
“Productos-template”. No hace falta hacer nada más y todo queda mucho más sencillo,
si necesidad de duplicar la forma de identificar a los controles. Se trata de un pequeño
cambio pero una gran mejora arquitectural de la característica.
3.- EN RESUMEN
Como hemos visto en este documento, pocas cosas han cambiado en la característica de
plantillas de lado cliente de ASP.NET Ajax Library. El principal cambio es que ahora
no se incluye directamente con .NET 4.0 sino que forma parte del Microsoft Ajax
Control Toolkit.
La mayor parte de este documento explica cómo obtener el Toolkit e instalarlo para
poder utilizar la característica de plantillas, ya que disponemos de varias opciones para
hacerlo.
La parte final explica los pequeños cambios que se han producido en algunas
características para que el lector interesado pueda usarlas sin problema, si bien, como
se ha podido comprobar, los cambios son mínimos.
Te recomendamos que descargues los ejemplos de código desde
http://bit.ly/ASPNET4KP. Éstos muestran en la práctica cómo usar todas estas
características, y te resultará mucho más fácil seguirle la pista a las explicaciones del
libro.
13