Microsoft Gadget + AJAX
Los Gadget para Sidebar de Vista son pequeñas aplicaciones para aumentar la productividad, o por lo menos hacen el intento de esto. Si bien los gadget que vienen por defecto no son herramientas muy muy productivas que digamos, podemos crear nuestros propios gadget que si nos ayuden a visualizar información relevante. Esta información relevante no solo de la propia maquina( en el caso que queramos utilizar la API)
Desarrollar un gadget es bastante sencillo, hace un tiempo subí un screencast indicando como se hace :).
Vemos ahora como crear un gadget para que se comunique con una pagina web mediante Ajax, este ejemplo es básico, pero ustedes extenderlo y crear sus propios gadget.
Esto surgio por la necesidad de crear un gadget que se comunicara con una pagina web, la cual se conectaba a su vez, con un ftp server y devolvía un listado de archivos, la cual era comparada por el gadget con una carpeta local y luego mostraba al usuario si su aplicación estaba actualizada o no.(que enredo!).En este caso , veremos algo mas sencillo.
Supongamos que tenemos una página web que nos devuelve:
<?xml version="1.0" encoding="utf-8" ?>
<Informaciones>
<Noticia>HOLAAAA</Noticia>
</Informaciones>
Paso 1 - Creacion de la funcion en el HTML base del gadget que se conectará con la webpage.
function obtNoticia(){
mensaje.innerHTML = "Conectando";
imagen.innerHTML = "<IMG src='loading2.gif'>";
noticiaObj = new ActiveXObject("Msxml2.XMLHTTP");
noticiaObj.open("GET", "http://localhost:51669/aspipvg/Default.aspx", true);
noticiaObj.onreadystatechange = function() {if (noticiaObj.readyState === 2) {
if (noticiaObj.status === 200) { imagen.innerHTML = ""; mensaje.innerText = "";
rssXML = rssObj.responseXML;
// leer el XML
Noticia = rssXML.getElementsByTagName("Noticia");
mensaje.innerText= Noticia[0].firstChild.text;
} else {
imagen.innerHTML = "<IMG src='del.gif'>";
mensaje.innerText = "Error...";
} else {
mensaje.innerText = "Cargando...";
}
}
noticiaObj.send(null);
}
Esta claro que mensaje e imagen son etiquetas span, por lo que se pueden modificar con innerHTML o innerText dependiendo del caso.Por ejemplo la imagen cargando.gif es un gif animado ( los típicos loading.gif que se usan cuando desarrollas usando ajax).
rssXML = rssObj.responseXML : Lo utilizamos para capturar el XML de la página que se llamó asincronamente.
Luego leemos la noticia y asignamos al span:
Noticia = rssXML.getElementsByTagName("Noticia");
mensaje.innerText= Noticia[0].firstChild.text;
Esta función la puedes llamar desde el onLoad del tag body
<
body style="color: white; font-weight: bold; margin-left: 15px;" onload="obtNoticia();">
Interesante también es habilitar al gadget para que cada cierto tiempo busque actualizaciones en la webpage. Una manera fácil de hacerlo es utilizando la función de BLOCKED SCRIPT
setInterval(obtNoticia,1000 * 10);
Con esta función decimos que obtNoticia sea llamada cada 10 segundos. También puede hacer un link dentro de tu gadget que llame a la función obtNoticia de tal manera de dar al usuario la posibilidad de hacer el refresh.

No queda nada de mal 
Espero que les sirva,
Saludos,
Gonzalo