<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Chalalo Land : javascript, AJAX</title><link>http://geeks.ms/blogs/gperez/archive/tags/javascript/AJAX/default.aspx</link><description>Etiquetas: javascript, AJAX</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>[Tutorial] Google Maps, JQuery y ASP.NET ejemplo práctico de este Mix</title><link>http://geeks.ms/blogs/gperez/archive/2010/09/12/tutorial-google-maps-jquery-y-asp-net-ejemplo-pr-225-ctico-de-este-mix.aspx</link><pubDate>Sun, 12 Sep 2010 21:00:21 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:181790</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>43</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=181790</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=181790</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2010/09/12/tutorial-google-maps-jquery-y-asp-net-ejemplo-pr-225-ctico-de-este-mix.aspx#comments</comments><description>&lt;p align="justify"&gt;Hola!, ha pasado un tiempo sin postear, lamentablemente he estado súper corto de tiempo, pero sin embargo quiero compartir algo con ustedes.&lt;/p&gt;  &lt;p align="justify"&gt;Hace un tiempo un buen amigo mío me comentó la inquietud de hacer algo con google maps, para distintos dispositivos, lo que me pareció bastante interesante. El tema es que me desperté con ese bicho de programar y leer documentación así que , antes que te aburras leyendo esto, te muestro el ejemplo final en un video para que te entusiasmes.&lt;/p&gt; &lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube-nocookie.com/v/kGnZyPwYt68?fs=1&amp;amp;hl=es_ES&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube-nocookie.com/v/kGnZyPwYt68?fs=1&amp;amp;hl=es_ES&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Como vez, vamos a mostrar las panaderías cercanas, pero con nuestra información, la que esta almacenada en una Base de Datos y mediante un WS vamos a obtener estos datos para mostrarlos en el mapa y además, vamos a agregar una leyenda para cada uno de estos puntos&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Revisemos los pasos a seguir para obtener este resultado…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Paso 1: Obtener el Key desde google Map&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Debes obtenerlo desde la siguiente URL:&amp;#160; &lt;/strong&gt;&lt;a title="API key for Google Maps" href="http://code.google.com/apis/maps/signup.html"&gt;API key for Google Maps&lt;/a&gt; , debes contar con una cuenta en gmail, y registrar de que servidor vas a utilizar esta API (no necesario para probar en Localhost).&amp;#160; Luego vas a obtener la key , que con la cual tienes que hacer referencia a la API.    &lt;br /&gt;En mi caso:&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;src&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;sensor=true&amp;amp;amp;key=ABQIAAAA3e9bpW5mHEGS7LVaB4R-3BQx6TWrfC8bNfnC-vtzzHJYkwhD6xTwJS9V3UI-UBnyi98SwuzCxumFSw&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&lt;font color="#000000"&gt;           &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;             &lt;br /&gt;&lt;/p&gt; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;src&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;jquery-1.4.1.min.js&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;strong&gt;Paso 2: Crear el div para el mapa&lt;/strong&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;body&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;div&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;map_canvas&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;style&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;width&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;: 580px; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;height&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;: 381px&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;div&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;ul&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;list&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;ul&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;body&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal" align="justify"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;Este va a ser el contenedor de nuestro mapa, además tenemos un tag ul para mostrar los puntos que vamos a marcar.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;strong&gt;Paso 3: Crear el&amp;#160; Código JavaScript&lt;/strong&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal" align="justify"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;Luego viendo la documentación de la Api, vamos a configurar las siguientes características:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;&lt;font style="font-size:9.6pt;"&gt;Icono de Marca Personalizado&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;&lt;font style="font-size:9.6pt;"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;$(document).ready(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; () {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160; if&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; (GBrowserIsCompatible()) {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; map = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GMap2(document.getElementById(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;map_canvas&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;));&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; map.setCenter(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GLatLng(-36.809731, -73.042903), 15);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; map.setUIToDefault();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; baseIcon = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GIcon(G_DEFAULT_ICON);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; baseIcon.shadow = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;http://www.google.com/mapfiles/shadow50.png&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; baseIcon.iconSize = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GSize(20, 34);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; baseIcon.shadowSize = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GSize(37, 34);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; baseIcon.iconAnchor = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GPoint(9, 34);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; baseIcon.infoWindowAnchor = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GPoint(9, 2);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; getMarkersWS(map);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal" align="justify"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size:11pt;"&gt;Esta es la primera parte&amp;#160; con esto instanciamos el mapa y lo asignamos al div que tenemos en el body. También damos las coordenadas para ubicar inicialmente el mapa (-36.809731, -73.042903), que es la ciudad donde vivo, y el zoom ,en este caso 15.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:11pt;" face="Calibri"&gt;&lt;strong&gt;Para buscar tu ubicación, utiliza &lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;a title="http://itouchmap.com/latlong.html" href="http://itouchmap.com/latlong.html"&gt;&lt;strong&gt;http://itouchmap.com/latlong.html&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p style="line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal" align="justify"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:11pt;" face="Calibri"&gt;Luego vamos a modificar el icono partiendo de la base del icono por defecto, cambiamos la sombra y el tamaño,&amp;#160; y como veremos, vamos a modificar&amp;#160; con la función createMarker, que recibe el punto, y el html a imprimir, el icono sobre la marca.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;"&gt; createMarker(point, htmlVentana) {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; Icon = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GIcon(baseIcon);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Icon.image = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;empanadas.png&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; markerOptions = { icon: Icon };&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; marker = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GMarker(point, markerOptions);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GEvent.addListener(marker, &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;click&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; () {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; marker.openInfoWindowHtml(htmlVentana);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; });&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; marker;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal" align="justify"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:11pt;" face="Calibri"&gt;Como comentaba antes, esta función se va a encargar de dibujar la marca, asignar además una ventana de información sobre la misma, asociada al evento click.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal" align="justify"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:11pt;" face="Calibri"&gt;El ícono que elejí es la de una empanada, ya que es una comida típica Chilena y estamos celebrando el Bicentenario de mi Pais &lt;img style="border-bottom-style:none;border-right-style:none;border-top-style:none;border-left-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/wlEmoticonsmile_5F00_7AE90800.png" /&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;strong&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image3_5F00_6C3E5C1B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image[3]" border="0" alt="image[3]" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image3_5F00_thumb_5F00_0244C7AE.png" width="96" height="101" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal"&gt;La ventana a la que le pasamos la variable&amp;#160; (htmlVentana), se va a mostrar sobre el marker:&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_2EED8187.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_7F6EECED.png" width="208" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Obviamente, los datos son obtenidos desde la base de datos.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Paso 4: Crear la Base de Datos.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Creamos una tabla Panaderías, con la siguiente estructura:&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_4E20028D.png"&gt;&lt;strong&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_33DF9969.png" width="351" height="193" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Con los Datos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_4E0FDCC0.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_6CE6509E.png" width="512" height="78" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para hacerla como dice Pablo Campos “Short &amp;amp; Good”, voy a crear un modelo LinqToSql para el manejo de datos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_321EA7C8.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_7C39B2AD.png" width="207" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Agregamos el WebService y codificamos la función GetPanaderias() que devuelve una lista de Objetos PanaderiaItem.&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;WebMethod&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;()&amp;gt; _&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GetPanaderias() &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Of&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;PanaderiaItem&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; Items &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;New&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Of&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;PanaderiaItem&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; modelo &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;New&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;ModeloDataContext&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; lista = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;From&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; p &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;In&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; modelo.Panaderias&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;For&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Each&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; p &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;Panaderia&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;In&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; lista&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;Items.Add(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;New&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;PanaderiaItem&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;With&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; {.nombre = p.nombre, _&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;.direccion = p.direccion, _&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;.precio = p.precio, _&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .descripcion = p.descripcion, _&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;.foto = p.foto, _&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;"&gt;.lng = p.Lng.ToString, _&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;.lat = p.Lat.ToString})&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Next&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Return&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; Items&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Function&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Class&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#2b91af"&gt;PanaderiaItem&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; nombre &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; direccion &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; precio &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Integer&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; descripcion &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; foto &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; lng &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; lat &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Class&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;strong&gt;   &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;     &lt;br /&gt;Paso 5: Obtener los datos del WebService:&lt;/p&gt;    &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;/p&gt; Vamos a crear un WebService que nos permita recuperar los datos mediante JSON:    &lt;br /&gt;&lt;/strong&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;"&gt; getMarkersWS(map) {&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;$.ajax({&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;type: &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;POST&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;url: &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;MiWebService.asmx/GetPanaderias&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;data: &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;{}&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;contentType: &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;application/json; charset=utf-8&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;dataType: &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;json&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;success: &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; (response) {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; panaderias = response.d;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;$.each(panaderias, &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; (index, pan) {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; point = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; GLatLng(pan.lng, pan.lat);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt; htmlVentana = &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&amp;lt;img src=&amp;#39;fotos/&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.foto + &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&amp;#39;&amp;gt;&amp;lt;br&amp;gt; Panadería:&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.nombre + &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;Precio:&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.precio + &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Direccion:&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.direccion;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font style="font-size:9.5pt;"&gt; marker = createMarker(point, htmlVentana);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;map.addOverlay(marker);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;$(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&amp;lt;li /&amp;gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;).html(pan.nombre + &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&lt;/font&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.direccion + &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot; &amp;lt;b&amp;gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.precio + &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;&amp;lt;/b&amp;gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;).click(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; () {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;marker.openInfoWindowHtml(htmlVentana);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;}).appendTo(&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#800000"&gt;&amp;quot;#list&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;});&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;},&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;failure: &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; (msg) {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;alert(msg);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;}); &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#006400"&gt;//fin llamada ajax&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;} &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#006400"&gt;//fin funcion getMarkersWS&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p align="justify"&gt;Como puedes ver el código , obtenemos los datos desde el WebService, mediante JSON, cuando ocurre el ok (success), y vamos recorriendo la colección de Objetos que nos devuelve el WS con la función $.each de &lt;a href="http://jquery.com/" target="_blank"&gt;Jquery&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;$.each(panaderias, &lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; (index, pan)         &lt;br /&gt;&lt;font style="font-size:9.5pt;"&gt;           &lt;br /&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font face="Tahoma"&gt;Luego armamos el punto (var point) y el mensaje HTML para pasarlo a la función createMarker. Luego vamos a dibujar el listado y vamos agregando el handlers click , para que al pinchar cada elemento, se muestre en el mapa el punto y la ventana. Gracias al encadenamiento de Jquery, podemos finalmente agregarlo al list (appendTo).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;$(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;quot;&amp;lt;li /&amp;gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;).html(pan.nombre + &lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#800000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#800000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.direccion + &lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;quot; &amp;lt;b&amp;gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; + pan.precio + &lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;quot;&amp;lt;/b&amp;gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;).click(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;function&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt; () {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;marker.openInfoWindowHtml(htmlVentana);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;}).appendTo(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;quot;#list&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;strong&gt;Paso 6: El Proyecto Web.&lt;/strong&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_2156FD1A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_71B8DE8D.png" width="247" height="349" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Esta es la estructura de nuestro proyecto, como vez es bastante sencillo, y podemos lograr un sistema de seguimiento, por ejemplo refrescando de manera asíncrona los markers.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_4EA86D1D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_5CD6C040.png" width="537" height="410" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Recursos:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Documentación Api de Google:     &lt;br /&gt;&lt;a title="http://code.google.com/intl/es-ES/apis/maps/index.html" href="http://code.google.com/intl/es-ES/apis/maps/index.html"&gt;http://code.google.com/intl/es-ES/apis/maps/index.html&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Búscate en el Mapa     &lt;br /&gt;&lt;/strong&gt;&lt;a title="http://itouchmap.com/latlong.html" href="http://itouchmap.com/latlong.html"&gt;http://itouchmap.com/latlong.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Descarga la aplicación&lt;/strong&gt; &lt;img style="border-bottom-style:none;border-right-style:none;border-top-style:none;border-left-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/wlEmoticonsmile_5F00_7AE90800.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cid-053a660afa3473b3.office.live.com/self.aspx/P%c3%bablico/Mapas.rar"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_13C078AD.png" width="240" height="146" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Como siempre digo, espero que te sirva, y si sigues este blog, sorry que no haya posteado, pero creo que con esto me revindico &lt;img style="border-bottom-style:none;border-right-style:none;border-top-style:none;border-left-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/wlEmoticonsmile_5F00_7AE90800.png" /&gt;. Si no te funciona postea porfa, así nos ayudamos entre todos!    &lt;br /&gt;Saludos,    &lt;br /&gt;Gonzalo&lt;/p&gt;  &lt;p align="justify"&gt;PD: Esta manera es más práctico que marcar de esta manera:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_38DDC319.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_38F9FAB4.png" width="481" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=181790" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tips/default.aspx">Tips</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Linq/default.aspx">Linq</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/jquery/default.aspx">jquery</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tutorial/default.aspx">Tutorial</category></item><item><title>Material Charla Mejores Prácticas en el Desarrollo de Sitios Web &amp; ASP.NET Ajax</title><link>http://geeks.ms/blogs/gperez/archive/2010/07/23/material-charla-mejores-pr-225-cticas-en-el-desarrollo-de-sitios-web-amp-asp-net-ajax.aspx</link><pubDate>Fri, 23 Jul 2010 15:59:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:179752</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=179752</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=179752</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2010/07/23/material-charla-mejores-pr-225-cticas-en-el-desarrollo-de-sitios-web-amp-asp-net-ajax.aspx#comments</comments><description>&lt;p align="justify"&gt;Ayer jueves 22/07 tuve la oportunidad de participar como Orador en la charla Mejores Pr&amp;aacute;cticas en el Desarrollo del Sitios Web &amp;amp; ASP.NET Ajax &amp;amp; Nuevas Funcionalidades en ASP.NET 4 junto a Juan Carlos Olamendy, un t&amp;iacute;tulo Bastante Largo para una agenda tambi&amp;eacute;n extensa. Estoy muy contento ya que recibimos buenos comentarios sobre la charla, las preguntas estuvieron muy buenas, y hubo espacio para discusi&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_70A7FD41.png"&gt;&lt;img height="284" width="378" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_1FC9C30C.png" alt="image" border="0" title="image" class="wlDisabledImage" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AGENDA:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_7DFDEA7A.png"&gt;&lt;img height="288" width="381" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_238767DC.png" alt="image" border="0" title="image" class="wlDisabledImage" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Ya est&amp;aacute;n subiendo al sitio de Comunidades T&amp;eacute;cnicas la grabaci&amp;oacute;n de ayer &lt;a href="http://www.facebook.com/ComunidadesMS" title="http://www.facebook.com/ComunidadesMS"&gt;http://www.facebook.com/ComunidadesMS&lt;/a&gt;&amp;nbsp; (si no est&amp;aacute; ahora, durante el d&amp;iacute;a deber&amp;iacute;a), te recomiendo que te hagas fan de esa manera siempre vas a estar actualizado con los eventos. &lt;br /&gt;&lt;br /&gt;Creo que Juan Carlos va a subir tambi&amp;eacute;n los ejemplos, por mi parte te dejo la PPT&amp;nbsp; y links de mi sitio que est&amp;aacute;n relacionados con lo que vimos ayer:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;PPTX:&lt;/strong&gt; &lt;br /&gt;&lt;a href="http://cid-053a660afa3473b3.office.live.com/view.aspx/P%c3%bablico/Charla22.pptx" title="http://cid-053a660afa3473b3.office.live.com/view.aspx/P%c3%bablico/Charla22.pptx"&gt;http://cid-053a660afa3473b3.office.live.com/view.aspx/P%c3%bablico/Charla22.pptx&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;LINKS:&lt;/strong&gt;&lt;/p&gt;
&lt;li&gt;&lt;a href="http://geeks.ms/blogs/gperez/archive/2010/01/04/optimizando-tu-website-con-css-sprites-caso-pr-225-ctico.aspx"&gt;Optimizando tu Web con CSS SPrites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geeks.ms/blogs/gperez/archive/2010/01/02/microsoft-ajax-cdn-mejoras-de-rendimiento-a-considerar.aspx"&gt;Utilizar Microsoft Ajax CDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geeks.ms/blogs/gperez/archive/2010/01/02/microsoft-ajax-cdn-mejoras-de-rendimiento-a-considerar.aspx"&gt;Minificar los archivos JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geeks.ms/blogs/gperez/archive/2009/06/04/scriptreferenceprofiler-compositescript-y-pensando-por-que-no-lo-ocupe-antes-optimizaci-243-n-de-request-de-javasscripts.aspx"&gt;CompositeScript &amp;ndash; Combinar para optimizar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geeks.ms/blogs/gperez/archive/2009/09/15/asp-net-4-0-mejora-para-los-motores-de-b-250-squeda-meta-tag-y-descripci-243-n.aspx"&gt;Mejora para los motores de B&amp;uacute;squeda (ASP.NET 4)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geeks.ms/blogs/gperez/archive/2009/09/15/asp-net-4-0-mejora-para-los-motores-de-b-250-squeda-meta-tag-y-descripci-243-n.aspx"&gt;Mejorar el rendimiento optimizando los ViewState (ASP.NET 4)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/06/13/asp-net-ajax-library-introducci-243-n-a-las-nuevas-plantillas-client-side.aspx"&gt;Nuevas Plantillas en el Cliente con Jquery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/06/02/tutorial-introducci-243-n-al-nuevo-scriptloader-de-asp-net-ajax-library.aspx"&gt;[Tutorial]Introducci&amp;oacute;n al nuevo ScriptLoader de ASP.NET AJAX Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/04/07/tips-asp-net-4-comprime-las-variables-de-session-para-webfarm.aspx"&gt;[Tips] ASP.NET 4 Comprime las variables de Session (Para WebFarm)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/04/02/tips-asp-net-4-extensible-request-validation-con-ejemplo.aspx"&gt;[Tips] ASP.NET 4 &amp;ndash; Extensible Request Validation, con ejemplo.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/03/14/screencast-asp-net-4-0-clientidmode.aspx"&gt;[ScreenCast] ASP.NET 4.0 &amp;ndash; ClientIDMode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/03/14/screencast-asp-net-4-0-viewstatemode.aspx"&gt;[ScreenCast] ASP.NET 4.0 &amp;ndash; ViewStateMode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/03/14/screencast-asp-net-4-0-routing.aspx"&gt;[ScreenCast] ASP.NET 4.0 &amp;ndash; Routing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2010/03/14/screencast-asp-net-4-0-redirectpermanent.aspx"&gt;[ScreenCast] ASP.NET 4.0 &amp;ndash; RedirectPermanent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="http://geeks.ms/blogs/gperez/archive/2009/09/15/asp-net-4-0-mejora-para-los-motores-de-b-250-squeda-meta-tag-y-descripci-243-n.aspx"&gt;[ASP.NET 4.0] Mejora para los Motores de B&amp;uacute;squeda- Meta Tag y Descripci&amp;oacute;n.&lt;/a&gt;&lt;/li&gt;
&lt;p&gt;Espero que te sirvan los links, nos vemos! &lt;br /&gt;Saludos, &lt;br /&gt;Gonzalo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=179752" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ScreenCast/default.aspx">ScreenCast</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Optimizaci_26002300_243_3B00_n/default.aspx">Optimizaci&amp;#243;n</category></item><item><title>ASP.NET Ajax Library, Introducción a Datalinker Parte 2:  Converters</title><link>http://geeks.ms/blogs/gperez/archive/2010/06/30/asp-net-ajax-library-introducci-243-n-a-datalinker-parte-2-converters.aspx</link><pubDate>Wed, 30 Jun 2010 05:32:13 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:178679</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=178679</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=178679</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2010/06/30/asp-net-ajax-library-introducci-243-n-a-datalinker-parte-2-converters.aspx#comments</comments><description>&lt;p&gt;En el post Anterior (si no lo viste, &lt;a href="http://geeks.ms/blogs/gperez/archive/2010/06/21/asp-net-ajax-library-introducci-243-n-a-datalinker.aspx" target="_blank"&gt;pincha aquí&lt;/a&gt;), hablamos de la nueva característica llamada Datalinker, y teníamos una UI de esta manera:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_6AB8CB4D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" class="wlDisabledImage" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_6D9E0A33.png" width="305" height="268" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;… y todo funciona como es debido, sin embargo no nombre una nueva característica , que tiene que ver con otra propuesta más al team de &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt; , que tiene que ver con los &lt;strong&gt;converters . &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Los &lt;strong&gt;Converters &lt;/strong&gt;nos permiten convertir, como su nombre lo dice, el valor de una propiedad al momento de hacer el data linker.&lt;/p&gt;  &lt;p align="justify"&gt;Si recordamos la función del post anterior, la modificaremos para agregar el LinkFrom, que nos permite remplazar mediante expresiones regulares, todas los números que se ingresen en el campo de nombre (En esta versión deben ir linkBoth y LinkFrom , quizás más adelante, esto cambie).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_723414ED.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" class="wlDisabledImage" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_02CC0FDC.png" width="539" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;br /&gt;Entonces al momento de escribir en el campo de texto y por ejemplo Gonzalo 123 y apretar el botón mostrar:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_6E664A50.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px;display:inline;border-top:0px;border-right:0px;" class="wlDisabledImage" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_6D8DE466.png" width="244" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Los números fueron eliminados exitosamente &lt;img style="border-bottom-style:none;border-right-style:none;border-top-style:none;border-left-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/wlEmoticonsmile_5F00_5757C914.png" /&gt;&lt;/p&gt;  &lt;p&gt;Espero que te sirva!   &lt;br /&gt;Saludos,    &lt;br /&gt;Gonzalo    &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=178679" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/jquery/default.aspx">jquery</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category></item><item><title>ASP.NET Ajax Library , Introducción a las nuevas plantillas Client-Side</title><link>http://geeks.ms/blogs/gperez/archive/2010/06/13/asp-net-ajax-library-introducci-243-n-a-las-nuevas-plantillas-client-side.aspx</link><pubDate>Sat, 12 Jun 2010 23:37:42 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:177990</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=177990</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=177990</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2010/06/13/asp-net-ajax-library-introducci-243-n-a-las-nuevas-plantillas-client-side.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_655C036E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_66907680.png" width="244" height="60" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ya no es noticia que el team de &lt;a href="http://www.asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; esté trabajando a toda máquina junto al equipo de &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt;, y que buenos productos se vienen a partir de esta sociedad. Uno de estos son los templates propuestos por el team de ASP.NET&amp;#160; al team jQuery, que estan todavía en etapa de revisión, hay mucho feedback que se está recibiendo por parte de la comunidad.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Que son los Client Templates (o plantillas del lado del cliente)&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Permiten a los desarrolladores web generar y renderizar HTML UI en el cliente (generalmente esto lo hacemos en el lado del servidor), mediante sintaxis simples permiten programáticamente invocar plantillas en el clienbte y pasar objetos Javascript , como arreglos por ejemplo, a divs específicos enmarcados en los tag propios de la plantilla. Debido a que esto todavía es una propuesta, es posible que la versión final sea diferente de lo que hoy vamos a ver.    &lt;br /&gt;Puedes descargar el prototipo en:&amp;#160;&amp;#160; &lt;br /&gt;&lt;a href="http://github.com/nje/jquery-tmpl"&gt;http://github.com/nje/jquery-tmpl&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Vamos a ver un ejemplo para mostrar los datos de Docentes y sus asignaturas, agregando algunas características de las plantillas.&lt;/p&gt;  &lt;p align="justify"&gt;La idea es obtener el siguiente resultado:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="1" width="552"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_6B92B42F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_6D13D043.png" width="240" height="339" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="350"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p align="justify"&gt; Y como siempre en este Blog…. :)&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;PASO 1 – Importar las liberías&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Debemos importar las librerías &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt; y la librería del template (&lt;a href="http://github.com/nje/jquery-tmpl" target="_blank"&gt;descarga el prototipo aquí&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:maroon;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;script&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://code.jquery.com/jquery.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;/&amp;gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:maroon;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;script&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Scripts/jquery.tmpl.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;strong&gt;PASO 2 – Crear la Colección&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Esta colección puede venir de un servicio Rest por ejemplo que nos devuelva en notación JSON un o una colección de objetos. En este caso usaremos una colección creada en la misma página:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_3FB23A73.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_36E23227.png" width="514" height="428" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Como puedes ver, es una colección simple que contiene&amp;#160; otra colección de Asignaturas, la cual en el ejemplo de Bernardo, está vacía. (Espero que no se enojen los personajes aludidos :P)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PASO 3 – Crear el Contenedor y la Plantilla&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Para esto vamos a crear un contenedor de la Plantilla, pudiendo existir en ella una o más plantillas para renderizar. Ahora viene lo bueno, como ves se utiliza un tag script de tipo texto/html para contener a la plantilla, como se ve n la figura:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_6C977781.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_03E27BF3.png" width="528" height="329" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span style="color:blue;"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/span&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Luego vemos unas marcas de tipo &lt;strong&gt;{{ = atributo_objeto }}&lt;/strong&gt;, que hacen referencia a los atributos de la colección que se va renderizando mediante iteración, en este caso, hago un href al atributo URL de cada objeto de la colección, luego concateno nombre y apellido para mostrar el nombre completo en la UI.     &lt;br /&gt;A continuación vemos unas sentencias que están en el prototipo de la plantilla, existe el IF, y el each (foreach), acá la idea es que si la persona tiene asignaturas, se muestren en una lista, si no, que muestre el mensaje &lt;em&gt;Sin Asignaturas.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_1CFDD62B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_6DCBEA93.png" width="244" height="96" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Otr0 punto es que quiero imprimir la cantidad de Asignaturas, para eso no se imprime {{= asignaturas.length}} directamente, si no que hay que utilizar funciones javascript, en el ejemplo se muestra una llamada a la función getCantidad() , la cual tiene el siguiente código:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_330441BD.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_1210CF16.png" width="310" height="60" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Obteniendo en cada iteración , mediante el contexto de la llamada (this), el largo de la colección de Asignaturas.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PASO 4 – Agregar el CSS     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_7E173C7F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_67E1212D.png" width="270" height="298" /&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PASO 5 (y último) – Agregar la Colección a la Plantilla     &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;Paso indispensable (y esta para el último, ejjeje) que nos permite hacer el binding de la colección y la plantilla:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_1A647EA0.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_647F8985.png" width="508" height="25" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Con esto estamos indicando que se renderize la colección contra plantillaDocente.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;PASO 6 (Opcional) – Descarga el ejemplo     &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;Como te diste cuenta puse imágenes en vez de texto,es bastante más rápido postear de esta manera, pero no se puede copiar el código!, por eso la aplicación la puedes descargar acá&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://cid-053a660afa3473b3.office.live.com/self.aspx/P%c3%bablico/Templates1.rar" target="_blank"&gt;Descarga el ejemplo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Espero que te sirva!, recuerda que esto está sujeto a cambios, pero nos da una buena idea de como van a trabajar las plantillas del lado del Cliente.   &lt;br /&gt;Muy buena la alianza Microsoft &amp;amp; jQuery!!    &lt;br /&gt;    &lt;br /&gt;Saludos!    &lt;br /&gt;Gonzalo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=177990" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tips/default.aspx">Tips</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/jquery/default.aspx">jquery</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tutorial/default.aspx">Tutorial</category></item><item><title>Microsoft AJAX CDN, Mejoras de rendimiento a considerar</title><link>http://geeks.ms/blogs/gperez/archive/2010/01/02/microsoft-ajax-cdn-mejoras-de-rendimiento-a-considerar.aspx</link><pubDate>Sat, 02 Jan 2010 07:05:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:164088</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=164088</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=164088</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2010/01/02/microsoft-ajax-cdn-mejoras-de-rendimiento-a-considerar.aspx#comments</comments><description>&lt;p align="justify"&gt;Al utilizar Microsoft AJAX CDN, podemos mejorar significativamente el rendimiento de nuestras aplicaciones AJAX. Los Script se almacenan en servidores ubicados al rededor de todo el mundo (seg&amp;uacute;n la p&amp;aacute;gina &lt;a href="http://www.asp.net/ajaxlibrary/CDN.ashx" title="http://www.asp.net/ajaxlibrary/CDN.ashx"&gt;http://www.asp.net/ajaxlibrary/CDN.ashx&lt;/a&gt;, garantizando disponibilidad y velocidad. Ademas el CDN de Microsoft AJAX (que incluye JQuery) env&amp;iacute;a los script ya comprimidos, (por si nuestro hosting no tiene configurado esta opci&amp;oacute;n), adem&amp;aacute;s permite a los navegadores la reutilizaci&amp;oacute;n de los archivos Javascript&amp;nbsp; en cache de los sitios web que se encuentren en distintos dominios. Todo lo anterior se suma a que por HTTP, hay un l&amp;iacute;mite de peticiones concurrentes hacia un mismo dominio, esto incluye im&amp;aacute;genes, css, archivos Flash, y por supuesto, los archivos JS.&lt;/p&gt;
&lt;p align="justify"&gt;Vamos a ver&amp;nbsp; una peque&amp;ntilde;a demo, no tiene im&amp;aacute;genes ni css, ni nada, pero vamos a darnos cuenta que los contenidos vienen comprimidos desde el servidor, en este caso voy a utilizar JQuery y FireBug para obtener los tiempos y tama&amp;ntilde;os de descarga.&lt;/p&gt;
&lt;p align="justify"&gt;El C&amp;oacute;digo lo obtuve de la P&amp;aacute;gina &lt;a href="http://www.asp.net/ajaxlibrary/CDN.ashx" title="http://www.asp.net/ajaxlibrary/CDN.ashx"&gt;http://www.asp.net/ajaxlibrary/CDN.ashx&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;lt;!&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;DOCTYPE&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt; &lt;span style="color:red;"&gt;html&lt;/span&gt; &lt;span style="color:red;"&gt;PUBLIC&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;html&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt; &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;head&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;jQuery from Microsoft AJAX CDN&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;strong&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;js/jquery-1.3.2.min.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;$( domReady );&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;function&lt;/span&gt; domReady() { &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;$(&lt;span style="color:#a31515;"&gt;&amp;#39;#btn&amp;#39;&lt;/span&gt;).click( showMessage ); &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;} &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;function&lt;/span&gt; showMessage() { &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;$(&lt;span style="color:#a31515;"&gt;&amp;#39;#message&amp;#39;&lt;/span&gt;).fadeIn(&lt;span style="color:#a31515;"&gt;&amp;#39;slow&amp;#39;&lt;/span&gt;); &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;} &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;head&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;body&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;button&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;btn&amp;quot;&amp;gt;&lt;/span&gt;Show Message&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt; &lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;div&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;message&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;display&lt;/span&gt;:&lt;span style="color:blue;"&gt;none&amp;quot;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;h1&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Hello from jQuery!&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;h1&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;"&gt;div&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;"&gt;body&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;"&gt;html&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Ahora medido con FireBug, &lt;br /&gt;&lt;strong&gt;Sin CDN&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_118C477F.png"&gt;&lt;img height="366" width="550" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_249D4E5E.png" alt="image" border="0" title="image" style="display:inline;border:0px;" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Fij&amp;eacute;monos en los resultados, estoy referenciando a jquery-1.3.2.min.js es decir la versi&amp;oacute;n de producci&amp;oacute;n, en total 55 KB (es lo que pesa, claro esta) y tiempo total de carga 2.05s.&lt;/p&gt;
&lt;p align="left" class="MsoNormal"&gt;&lt;strong&gt;Con CDN &lt;br /&gt;&lt;/strong&gt;Cambiando la l&amp;iacute;nea de c&amp;oacute;digo en donde se hace la referencia a JQuery por: &lt;br /&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;"&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_58551EE2.png"&gt;&lt;img height="369" width="552" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_3F299EDD.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Esta vez, vemos que el tiempo de carga disminuyo, por que? por que la habilitaci&amp;oacute;n de compresi&amp;oacute;n de los archivos JS de los servidores de CDN permiti&amp;oacute; que el mismo archivo, ahora tuviera la mitad del tama&amp;ntilde;o, solo 25KB, y el tiempo de carga 1.38s.&lt;br /&gt;La segunda vez, ya que esta en cache, es menor a&amp;uacute;n el tiempo (1.2 Seg):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_1053C06E.png"&gt;&lt;img height="53" width="551" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_162E6407.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Ahora bien, es bueno comenzar a pensar pensar en distribuir nuestro contenido est&amp;aacute;tico, lo que logra una reducci&amp;oacute;n en los tiempos de respuesta, por lo menos en tema de referencias a archivos JS se hace sencillo con Microsoft Ajax CDN.&lt;br /&gt;Por ahora no vamos a profundizar m&amp;aacute;s (m&amp;aacute;s adelante si) por mientras te dejo la p&amp;aacute;gina para que lo compruebes tu mismo y veas los beneficios de incluir este concepto en tus desarrollos, no solo con JQuery, si no con toda la gama de Script que podemos referenciar (&lt;a href="http://www.asp.net/ajaxlibrary/CDNAjaxLibrary0911.ashx" title="http://www.asp.net/ajaxlibrary/CDNAjaxLibrary0911.ashx"&gt;http://www.asp.net/ajaxlibrary/CDNAjaxLibrary0911.ashx&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ac&amp;aacute; est&amp;aacute; la p&amp;aacute;gina , tiene muchos ejemplos: &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://www.asp.net/ajaxlibrary/cdn.ashx" title="http://www.asp.net/ajaxlibrary/cdn.ashx"&gt;&lt;strong&gt;http://www.asp.net/ajaxlibrary/cdn.ashx&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Saludos, &lt;br /&gt;Gonzalo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=164088" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tips/default.aspx">Tips</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/jquery/default.aspx">jquery</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/_5B00_Link_5D00_/default.aspx">[Link]</category></item><item><title>[Tutorial] Microsoft Ajax Minifier – Optimiza tus archivos Javascript</title><link>http://geeks.ms/blogs/gperez/archive/2009/11/17/tutoturial-microsoft-ajax-minifier-optimiza-tus-archivos-javascript.aspx</link><pubDate>Mon, 16 Nov 2009 23:31:55 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:160646</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=160646</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=160646</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2009/11/17/tutoturial-microsoft-ajax-minifier-optimiza-tus-archivos-javascript.aspx#comments</comments><description>&lt;p align="justify"&gt;Hola, que tal, comienzo una serie de post y screencast sobre como mejorar la performance de nuestras aplicaciones Web, en especial (obviamente) ASP.NET, hay algunos datos que van a servir para PHP, estoy leyendo un libro buenísimo sobre ….&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#808000"&gt;Microsoft Ajax Minifier&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Es una herramienta que nos va a permitir mejorar el rendimiento de nuestras aplicaciones que utilizan Javascript, como las ajax (que como ya saben , utilizan bastante), ya que reduce el tamaño de los mismos, admitiendo dos niveles de minificación (diferenciando de compresión).&lt;/p&gt;  &lt;p align="justify"&gt;&lt;u&gt;&lt;strong&gt;Normal Crunching&lt;/strong&gt;       &lt;br /&gt;&lt;/u&gt;Se realiza el proceso de minificación del js, eliminando los espacios en blanco, puntos y comas y llaves innecesarias, como así también los comentarios (que son necesarios en tiempo de desarrollo, pero en explotación no)&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="510"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="508"&gt;         &lt;p align="left"&gt;&lt;strong&gt;Código Normal&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="508"&gt;         &lt;pre&gt;if ( a == 0 )
{
    a = 10;
}&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="508"&gt;
        &lt;p align="left"&gt;&lt;strong&gt;Normal Crunching&lt;/strong&gt;&lt;/p&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="508"&gt;if(a==0)a=10;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p align="justify"&gt;&lt;strong&gt;&lt;u&gt;Hyper Crunching&lt;/u&gt; 

    &lt;br /&gt;&lt;/strong&gt;Se realiza el proceso de minificación, además acortando los nombres de las variables locales , nombres de funciones y eliminando lo innecesario.&lt;/p&gt;

&lt;table border="0" cellspacing="0" cellpadding="2" width="507"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="505"&gt;&lt;strong&gt;Código Normal&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="505"&gt;
        &lt;pre&gt;function DivideTwoNumbers(numerator, denominator, unsedparameter )
{
    return numerator / denominator;
}&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="505"&gt;&lt;strong&gt;Hyper Crunching&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="505"&gt;function a(a,b){return a/b}&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;El Microsoft Ajax Minifier incluye los siguientes componentes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Herramienta de Línea de Comandos:&lt;/strong&gt; Nos permite minimizar los archivos JavaScript mediante la línea de comandos. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;MSBuild Task:&lt;/strong&gt; Permite minificar el archivo Javascript en Visual Studio, automáticamente cuando generas tu proyecto. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Componente&lt;/strong&gt;: Permite usar el Microsoft Ajax Minifier programáticamente. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#808000"&gt;Ejemplo 1- Pequeña Sección de Código&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vamos a tener un archivo llamado funcion.js el que tiene el siguiente contenido (tomado prestado por ahi…)&lt;/p&gt;

&lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;function&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; borra(opt) { 
    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; temp = opt.options.length; 

    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;for&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; x = 0; x &amp;lt; temp; x++) { 

    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;opt.options[temp - x] = &lt;span style="color:blue;"&gt;null&lt;/span&gt;; 

    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} 

    &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;Al aplicar MAM con &lt;strong&gt;Normal Crunching&lt;/strong&gt;, por línea de comandos:&lt;/p&gt;

&lt;p&gt;C:\Program Files\Microsoft\Microsoft Ajax Minifier&amp;gt;ajaxmin prueba.js -o prueba.m 
  &lt;br /&gt;in.js.&lt;/p&gt;

&lt;p&gt;Veamos los resultados:&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_797AB055.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_0F14E8F3.png" width="527" height="49" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;El archivo pesa ahora 92 bytes, en comparación con los 123bytes del archivo normal, si vemos el contenido del archivo veremos: 
  &lt;br /&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;
    &lt;br /&gt;function&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; borra(opt) { &lt;span style="color:blue;"&gt;for&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; temp = opt.options.length, x = 0; x &amp;lt; temp; x++) opt.options[temp - x] = &lt;span style="color:blue;"&gt;null&lt;/span&gt; }&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;u&gt;Es decir el archivo final es aprox 25% más pequeño que el original&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Ahora a aplicar &lt;strong&gt;Hyper Crunching&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;C:\Program Files\Microsoft\Microsoft Ajax Minifier&amp;gt;ajaxmin -hc prueba.js -o prue 
  &lt;br /&gt;ba.min.hc.js&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image5_5F00_6D491061.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image5_5F00_thumb_5F00_7323B3FA.png" width="530" height="72" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;u&gt;El archivo pesa 77 bytes, por lo que es 37% menor al archivo original, si vemos el contenido del archivo veremos:&lt;/u&gt; 

  &lt;br /&gt;

  &lt;br /&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;function&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; borra(c) { &lt;span style="color:blue;"&gt;for&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; b = c.options.length, a = 0; a &amp;lt; b; a++) c.options[b - a] = &lt;span style="color:blue;"&gt;null&lt;/span&gt; }&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#808000"&gt;Ejemplo 2 – Archivo Real tomado de un Website&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Para este ejemplo “tome prestado” un archivo JS de un Website de una Universidad, el archivo pesa 29.778 Bytes. No vamos a detallar nuevamente el proceso, en lugar de eso , quiero que veamos una tabla comparativa de los resultados:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_5562293B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_5AD099DF.png" width="510" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Utilizar Microsoft Ajax Minifier desde Visual Studio&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cuando terminamos la instalación vemos que se crea un nuevo MSBuild en C:\program Files\MSBuild\Microsoft\MicrosoftAjax&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_466AD454.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_5552036E.png" width="513" height="119" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Lo que debemos hacer ahora, es modificar el archivo del proyecto (.vbproj) , para esto lo puedes hacer con notepad o también puedes descargar el proyecto mediante visual studio y luego modificar el archivo, dentro del tag &amp;lt;Proyect&amp;gt; vamos a incluir lo siguiente:&lt;/p&gt;

&lt;p&gt;&amp;lt;Import Project=&amp;quot;$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks&amp;quot; /&amp;gt;
  &lt;br /&gt; &amp;lt;Target Name=&amp;quot;AfterBuild&amp;quot;&amp;gt;

  &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;ItemGroup&amp;gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;JS Include=&amp;quot;**\*.js&amp;quot; Exclude=&amp;quot;**\*.min.js;Scripts\*.js&amp;quot; /&amp;gt;

  &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/ItemGroup&amp;gt;

  &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;AjaxMin SourceFiles=&amp;quot;@(JS)&amp;quot; SourceExtensionPattern=&amp;quot;\.js$&amp;quot; TargetExtension=&amp;quot;.min.js&amp;quot; /&amp;gt;

  &lt;br /&gt; &amp;lt;/Target&amp;gt;&lt;/p&gt;

&lt;p&gt;Luego guardar y al recargar el proyecto elije la opción cargar normalmente del cuadro de diálogo:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_0BDFAEB3.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_6B484933.png" width="522" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Ahora al presionar F5(Build) , vamos ver que se genera automáticamente el archivo js min.Si no lo notamos de inmediato, es por que no hemos puesto la opción de ver todos los archivos:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_6C108950.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_6A5FBD7C.png" width="201" height="225" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Ahora puedes ver el archivo generado funciones.min.js ya en tu proyecto, todo archivo JS va a ser minificado :).&lt;/p&gt;

&lt;p align="justify"&gt;Una aclaración, esto no es compresión, sino minificación, la compresión la podemos hacer con gzip y obtenemos aún mejores resultados (a costa de tiempo de cpu).&lt;/p&gt;

&lt;p&gt;Espero que te sirva!
  &lt;br /&gt;Gonzalo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=160646" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tips/default.aspx">Tips</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category></item><item><title>Microsoft Ajax CDN, nunca esta demás saberlo.</title><link>http://geeks.ms/blogs/gperez/archive/2009/09/22/microsoft-ajax-cdn-nunca-esta-dem-225-s-saberlo.aspx</link><pubDate>Tue, 22 Sep 2009 13:15:14 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:156378</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=156378</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=156378</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2009/09/22/microsoft-ajax-cdn-nunca-esta-dem-225-s-saberlo.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_753ACDFB.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_738A0227.png" width="201" height="75" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una buena noticia, desde el team de ASP.NET, está&amp;#160; disponible Microsoft Ajax CDN, el cual facilita el tema de agregar las librerias de Microsoft Ajax y jQuery a nuestras aplicaciones Web. La idea es que podemos agregar las referencias apuntando al sitio Ajax.Microsoft.com.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Usando Microsoft Ajax mediante CDN&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjax.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjaxAdoNet.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjaxDataContext.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjaxTemplates.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;También están disponibles las versiones al debug&lt;/strong&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjax.&lt;strong&gt;debug&lt;/strong&gt;.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjaxAdoNet.&lt;strong&gt;debug&lt;/strong&gt;.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjaxDataContext.&lt;strong&gt;debug&lt;/strong&gt;.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/beta/0909/MicrosoftAjaxTemplates.debug.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;strong&gt;Y para nuestra librería preferida jQuery también en ambas modalidades:&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;script&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/jquery-1.3.2.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;Debug:&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt;script&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-no-proof:yes;" lang="EN-US"&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/jquery/jquery-1.3.2.min.js&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Esto nos va a ayudar mucho para utilizar estas liberías en algunos sitios que no se nos permite subir archivos js, ya que los podemos referenciar a ajax.Microsoft.com.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;Más información en:     &lt;br /&gt;&lt;/strong&gt;&lt;a title="http://www.asp.net/ajax/CDN/Default.aspx" href="http://www.asp.net/ajax/CDN/Default.aspx"&gt;&lt;strong&gt;http://www.asp.net/ajax/CDN/Default.aspx&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Saludos,   &lt;br /&gt;Gonzalo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=156378" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tips/default.aspx">Tips</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/jquery/default.aspx">jquery</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category></item><item><title>[Tips] FireAtlas, Extensión para FireBug para traceo ASP.NET AJAX Now!</title><link>http://geeks.ms/blogs/gperez/archive/2009/05/20/tips-fireatlas-extensi-243-n-para-firebug-para-traceo-asp-net-ajax-now.aspx</link><pubDate>Wed, 20 May 2009 16:37:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:148970</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/rsscomments.aspx?PostID=148970</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/gperez/commentapi.aspx?PostID=148970</wfw:comment><comments>http://geeks.ms/blogs/gperez/archive/2009/05/20/tips-fireatlas-extensi-243-n-para-firebug-para-traceo-asp-net-ajax-now.aspx#comments</comments><description>&lt;p&gt;Hola, excelente noticia, se ha liberado esta excelente herramienta basada en FireBug (Herramienta imprescindible para los que desarrollamos bastante c&amp;oacute;digo javascript). &lt;br /&gt;&lt;strong&gt;El asunto es que ahora podemos hacer debug dedicado a Microsoft ASP.NET Ajax&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si no quieres llegar al fina y descargarlo Right now!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Descarga de FireAtlas &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://fireatlas.chesnaistechnologies.com/Default.aspx" title="http://fireatlas.chesnaistechnologies.com/Default.aspx"&gt;&lt;strong&gt;http://fireatlas.chesnaistechnologies.com/Default.aspx&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Descarga de FireBug &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://getfirebug.com/" title="http://getfirebug.com/"&gt;&lt;strong&gt;http://getfirebug.com/&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Algunas caracter&amp;iacute;sticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PageRequestManager events tracing&lt;/li&gt;
&lt;li&gt;Tracing de Llamadas a WebServices&lt;/li&gt;
&lt;li&gt;Inspecci&amp;oacute;n de Updates parciales en la p&amp;aacute;gina a trav&amp;eacute;s del Panel de Firebug Net Panel&lt;/li&gt;
&lt;li&gt;y viene mucho m&amp;aacute;s (seg&amp;uacute;n el website)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://fireatlas.chesnaistechnologies.com/Images/PartialUpdateLog_part.PNG" alt="FireAtlas Screenshot" /&gt;&lt;/p&gt;
&lt;p&gt;Recuerda que primero debes tener instalado FireBug, y luego bajar e instalar el FireAtlas, si no sabes como instalaci&amp;oacute;n una extensi&amp;oacute;n xpi, has lo siguiente:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1 - Abrir Firefox. &lt;br /&gt;2 - Ir a Archivo : Luego en Abrir archivo... y seleccionas el xpi, luego te va a pedir reiniciar Firefox.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Vas a quedar con algo parecido a la siguiente Imagen:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_7F273794.png"&gt;&lt;img height="210" width="341" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_445F8EBE.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Ahora bien, probando en la p&amp;aacute;gina de prueba que te da FireAtlas :&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fireatlas.chesnaistechnologies.com/TestZone/UpdatePanelSample.aspx" title="http://fireatlas.chesnaistechnologies.com/TestZone/UpdatePanelSample.aspx"&gt;http://fireatlas.chesnaistechnologies.com/TestZone/UpdatePanelSample.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_4B4F1B76.png"&gt;&lt;img height="402" width="521" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_055DE856.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Puedes hacer un tracert e ir directamente al c&amp;oacute;digo Javascript generado din&amp;aacute;micamente por el ScriptManager:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_7C8DE009.png"&gt;&lt;img height="189" width="527" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_68D0D0A8.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ahora, la pregunta, donde bajo estas maravillas:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Descarga de FireAtlas &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://fireatlas.chesnaistechnologies.com/Default.aspx" title="http://fireatlas.chesnaistechnologies.com/Default.aspx"&gt;&lt;strong&gt;http://fireatlas.chesnaistechnologies.com/Default.aspx&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Descarga de FireBug &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://getfirebug.com/" title="http://getfirebug.com/"&gt;&lt;strong&gt;http://getfirebug.com/&lt;/strong&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Tambi&amp;eacute;n puedes revisar este post de como realizar pruebas unitarias con extensiones de firefox a tu javascript, esta muy bueno , es de Stephen Walther:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/05/18/unit-testing-javascript-with-fireunit.aspx" title="http://stephenwalther.com/blog/archive/2009/05/18/unit-testing-javascript-with-fireunit.aspx"&gt;http://stephenwalther.com/blog/archive/2009/05/18/unit-testing-javascript-with-fireunit.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Espero que les sea de Ayuda. &lt;br /&gt;Saludos, &lt;br /&gt;Gonzalo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=148970" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/Tips/default.aspx">Tips</category><category domain="http://geeks.ms/blogs/gperez/archive/tags/javascript/default.aspx">javascript</category></item></channel></rss>