<?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>h@nz ...el Geek &#187; AJAX</title>
	<atom:link href="http://hanzcocchi.net/category/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://hanzcocchi.net</link>
	<description>.Net, Internet, Tecnología, algo personal.</description>
	<lastBuildDate>Wed, 23 Mar 2011 15:02:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Jquery y Ajax &#8211; Invocar métodos compilados de la página .Net</title>
		<link>http://hanzcocchi.net/jquery-y-ajax-invocar-metodos-compilados-de-la-pagina-net/</link>
		<comments>http://hanzcocchi.net/jquery-y-ajax-invocar-metodos-compilados-de-la-pagina-net/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 21:19:26 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP .Net]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=738</guid>
		<description><![CDATA[Hace poco había yo publicado un artículo en el que explicaba como utilizar Ajax con JQuery y en aquel artículo había dado como ejemplo llamadas hacia controladores HTTP de ASP .Net, que son documentos con extensión *.ashx. En uno de los comentarios de dicho artículo me hicieron una pregunta, que por cierto creo que es [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco había yo publicado un artículo en el que explicaba <a href="http://hanzcocchi.net/utilizar-ajax-con-jquery-en-asp-net/">como utilizar Ajax con JQuery</a> y en aquel artículo había dado como ejemplo llamadas hacia <a href="http://msdn.microsoft.com/es-es/library/ms227675(VS.80).aspx">controladores HTTP de ASP .Net</a>, que son documentos con extensión <em><strong>*.ashx</strong></em>. En uno de los comentarios de dicho artículo me hicieron una pregunta, que por cierto creo que es una pregunta típica:</p>
<p><strong>¿Hay forma de NO utilizar ASHX y utilizar WebServices de página?</strong></p>
<p>Sí, la hay, y se hace <a href="http://hanzcocchi.net/introduccion-a-json-en-javascript-y-net/">utilizando JSON</a> para el intercambio de información; y para demostrarlo, en este artículo voy a publicar el mismo ejemplo pero utilizando métodos de la página .Net. Como será el mismo ejemplo, el resultado será el mismo:</p>
<p style="text-align: center;"><img src="http://gpna3w.blu.livefilestore.com/y1pU_15pqaO8OIRBYFApD0cauGS4X42h-qZclPPbhxmXOENrerN464gcNIc12h7VSrNGfarN0dpOi_5e0ybTbsruA/ejemploJqueryAjax.png" alt="Utilizando JQuery AJAX" width="378" height="254" /></p>
<p>Para empezar, debemos crear un nuevo <em><strong>ASP .NET AJAX-Enabled Web Site</strong></em>, que es en realidad un sitio web con el archivo Web.Config modificado para trabajar con <a href="http://www.asp.net/ajax/">ASP .Net AJAX</a>. (obviamente debemos instalarlo antes).  Una vez hecho esto. ya podemos empezar a escribir nuestra aplicación.<span id="more-738"></span></p>
<p>Ahora crearé el método en la página que será invocado desde <em><strong>JavaScript</strong></em>, para hacerlo, simplemente se define un método como cualquier otro, con la diferencia de que <em><strong>dicho método debe ser público y estático</strong></em>, además, este método debe tener de forma obligatoria el atributo <a href="http://msdn.microsoft.com/es-es/library/byxd99hx(VS.80).aspx">WebMethod()</a> (disponible en el namespace <a href="http://msdn.microsoft.com/es-es/library/system.web.services.aspx">System.Web.WebService</a>), el cual permitirá que dicho método sea accesible por un solicitud HTTP. En resúmen, debe quedar como se muestra en la siguiente imágen:</p>
<p style="text-align: center;"><img src="http://gpna3w.blu.livefilestore.com/y1pV7IX2Cn74HvZfqtpR9uvpCqrvwWXFvgMu_sfzeb9cp7eintbShLrvYeWrfvrob467ikjZ7-nBKiin76bC54Hbw/WebMethodPage.png" alt="ASP .Net - Método accesible por código JavaScript" width="504" height="321" /></p>
<p>Ahora que ya tenemos creado un método accesible desde el lado del cliente, vamos a crear el método JavaScript para invocar a dicho método. Esto lo haremos de la siguiente manera:</p>
<p style="text-align: center;"><img src="http://gpna3w.blu.livefilestore.com/y1pZpvO6DM5fryxKot-t0hf_zuZkUUDg0fDYtX7tF804nxiPuG2bd5aYB9DsJf8gP0F-qsEyhj90zKvK9qoSIVdpg/InvocarWebMethodPage.png" alt="Invocar WebMethods de página" width="500" height="446" /></p>
<p>Como se ve en la imágen,  los atributos de ajax en jquery deben ser definidos de la siguiente manera:</p>
<ul>
<li><strong>type</strong>: Indica que los datos viajarán como parte del cuerpo de la solicitud y no serán visibles en la url.</li>
<li><strong>dataType</strong>: El tipo de dato que Jquery espera como respuesta del servidor.</li>
<li><strong>contentType</strong>:  Se usa cuando se desean enviar datos al servidor.</li>
<li><strong>url</strong>: La url hacia donde se van a enviar los datos. En este caso estamos indicando el nombre de la página y seguido del slash (&#8220;/&#8221;) el nombre del método que queremos invocar. Incluso con este método podremos invocar métodos de otras páginas sin necesidad de cargar toda la página, aunque no recomiendo esto último.</li>
<li><strong>data</strong>: Los datos enviados al servidor. Y como estamos usando json, el formato debe ser <em><strong>{clave:valor, clave:valor}</strong></em>.</li>
<li><strong>success</strong>: Invoca al método que se ejecutará cuando finalice de forma exitosa una llamada a Ajax.</li>
<li><strong>error</strong>: Se desencadena cuando se produce un error en el llamado a ajax.</li>
</ul>
<p>Bien, espero que me disculpen la demora en escribir este artículo pero estaba un poco ocupado <span style="text-decoration: line-through;">jugando Counter Strike</span> en el trabajo.Yo lo he confesado, <a href="http://hanzcocchi.net/invocar-codigo-net-desde-javascript/">antes era fanático de utilizar AjaxPro</a> para mis desarrollos, pero desde que conozco a Jquery Ajax y he aprendido a usarlo, lo utilizo bastante, ya que es más rápido en su desempeño y me permite un mejor control sobre mi código, que es algo que siempre se debe cuidar, además que <a href="http://hanzcocchi.net/tutorial-ajax-para-principiantes/">AjaxPro me generaba algunos archivos adicionales</a> y eso era algo que no me caía bien =P</p>
<p>El código completo y funcionando se encuentra en el archivo a continuación.</p>
<p style="text-align: right;"><a href="http://cid-74bbd3caaf789965.skydrive.live.com/self.aspx/Public/JQuery%20AJAX%20-%20WebMethodPages.zip"><strong>Descargar el ejemplo Jquery Ajax WebMethods</strong></a></p>
<p>Espero que les sea de utilidad.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/jquery-y-ajax-invocar-metodos-compilados-de-la-pagina-net/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tutorial Ajax para principiantes</title>
		<link>http://hanzcocchi.net/tutorial-ajax-para-principiantes/</link>
		<comments>http://hanzcocchi.net/tutorial-ajax-para-principiantes/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 17:54:44 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP .Net]]></category>
		<category><![CDATA[e-Learning]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=730</guid>
		<description><![CDATA[Ajax es un tecnología que realmente mejora las características de las aplicaciones web, haciendolas más dinámicas, rápidas, ligeras y agradables a la vista del usuario. Si eres desarrollador ASP .Net y no conoces bien esta tecnología de seguro te interesará saber que esta forma de trabajar, aunque te haga escribir más código y parezca medio [...]]]></description>
			<content:encoded><![CDATA[<p>Ajax es un tecnología que realmente mejora las características de las aplicaciones web, haciendolas más dinámicas, rápidas, ligeras y agradables a la vista del usuario.</p>
<p>Si eres desarrollador ASP .Net y no conoces bien esta tecnología de seguro te interesará saber que esta forma de trabajar, aunque te haga escribir más código y parezca medio complicada al inicio resulta incluso mejor (según mi punto de vista) que usar el famoso Ajax.Pro que carga algunas librerías en tiempo de ejecución como por ejemplo:</p>
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/ajaxpro/prototype.ashx&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/ajaxpro/core.ashx&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/ajaxpro/converter.ashx&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/ajaxpro/[pagina],App_Web_ewvldvwe.ashx&#8221;&gt;&lt;/script&gt;</p></blockquote>
<p>¿Aún no sabes como utilizar esta tecnología? No hay problema, puedes darle un ojo a este interesante artículo que David Andres ha desarrollado y que muestra bastante bien la forma en la que se puede empezar con este tema.</p>
<p><strong>URL:</strong> <a href="http://www.devjoker.com/contenidos/Articulos/387/Aprende-Ajax-desde-cero.aspx">DevJoker &#8211; Aprende Ajax desde cero</a></p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/tutorial-ajax-para-principiantes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizar AJAX con JQuery en ASP .Net</title>
		<link>http://hanzcocchi.net/utilizar-ajax-con-jquery-en-asp-net/</link>
		<comments>http://hanzcocchi.net/utilizar-ajax-con-jquery-en-asp-net/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 20:31:23 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP .Net]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=716</guid>
		<description><![CDATA[Jquery es un framework javascript bastante bueno, nadie lo puede dudar, y Ajax, es una tecnología que permite crear aplicaciones bastante mas robustas y dinámicas que le dan al usuario una mejor experiencia; al trabajar con una página web será necesario en algún momento combinar ambas tecnologías para conseguir una aplicación al estilo Web 2.0. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jquery.com">Jquery</a> es un framework javascript bastante bueno, nadie lo puede dudar, y <a href="http://hanzcocchi.net/category/ajax/">Ajax</a>, es una tecnología que permite crear aplicaciones bastante mas robustas y dinámicas que le dan al usuario una mejor experiencia; al trabajar con una página web será necesario en algún momento combinar ambas tecnologías para conseguir una aplicación al estilo Web 2.0.</p>
<p><img class="alignleft" style="float: left;" src="http://gpna3w.blu.livefilestore.com/y1pU_15pqaO8OIRBYFApD0cauGS4X42h-qZclPPbhxmXOENrerN464gcNIc12h7VSrNGfarN0dpOi_5e0ybTbsruA/ejemploJqueryAjax.png" alt="" width="378" height="254" />Voy a poner a continuación un ejemplo de como utilizar <a href="http://hanzcocchi.net/category/jquery/">JQuery</a> para hacer invocaciones Ajax en una aplicación <a href="http://hanzcocchi.net/category/asp-net/">ASP .Net</a>. La idea de este ejemplo es simple, cargo un <a href="http://msdn.microsoft.com/es-es/library/dtx91y0z(VS.80).aspx">DropDownList de ASP .Net</a> con algunos elementos, en este caso carreras de estudio, además se tiene un segundo DropDownList pero vacío, al seleccionar una carrera, se debe llenar el segundo DropDownList con los cursos que se dicten en la carrera. El resultado debe ser mas o menos como la imágen de la izquierda y el proceso obviamente se debe realizar sin postback. Como siempre, el archivo con el código completo lo pueden conseguir al final del artículo.</p>
<p>La definición de mi primer DropDownList la haré de la siguiente manera:</p>
<blockquote><p><span style="color: #0000ff;">&lt;</span>asp<span style="color: #0000ff;">:</span>DropDownList <span style="color: #ff0000;">ID</span><span style="color: #0000ff;">=&#8221;ddlCarreras&#8221;</span> <span style="color: #ff0000;">runat</span><span style="color: #0000ff;">=&#8221;server&#8221;</span> <span style="color: #ff0000;">AppendDataBoundItems</span><span style="color: #0000ff;">=&#8221;True&#8221;</span> <span style="color: #ff0000;">onChange</span><span style="color: #0000ff;">=&#8221;listarCursos(this.value);&#8221; /&gt;</span></p></blockquote>
<p>y llenaré dicho DropDownList en el evento Load de la página como normalmente lo haría. En esta definición del control hay un evento de javascript, cuando del lado del cliente yo seleccione un elemento se ejecutará la función listarCursos de javascript, la cual recibe el valor seleccionado.</p>
<p><span id="more-716"></span>Ahora, analizaremos lo que hace la función <strong><em>listarCursos</em></strong> de javascript:</p>
<blockquote><p>        <span style="color: #0000ff;">function</span> listarCursos(idCarrera){<br />
            $.ajax({<br />
                type:<span style="color: #800000;">&#8220;POST&#8221;</span>,<br />
                url:<span style="color: #800000;">&#8220;Controladores/DevolverDatos.ashx&#8221;</span>,<br />
                data<span style="color: #800000;">:&#8221;carrera=&#8221;</span> + idCarrera,<br />
                success: mostrarCursos<br />
            });<br />
        }<br />
       <br />
        <span style="color: #0000ff;">function</span> mostrarCursos(html){<br />
            $(<span style="color: #800000;">&#8216;#&lt;%=ddlCursos.ClientID %&gt;&#8217;</span>).html(html);<br />
        }</p></blockquote>
<p>La función <strong><em>listarCursos</em></strong> hace un llamado a través de ajax controlado por jquery indicándole que enviará datos a usando el método <strong>POST</strong> hacia el archivo <strong><em>DevolverDatos.ashx</em></strong>, que es un <a href="http://msdn.microsoft.com/es-es/library/ms227675(VS.80).aspx">controlador HTTP de ASP .Net</a>, luego le indicamos, los datos que queremos enviarles como un par clave=valor separado por el signo igual (=); finalmente le indicaremos a nuestro método ajax que función debe realizar cuando termine de ejecutarse la invocación al controlador <strong><em>ashx</em></strong>, en este caso, se ejecutará el método <strong><em>mostrarCursos</em></strong>, el cual recibe el código html que devuelve el controlador. Esta función lo único que hace es agregar el html que contiene las opciones de un select de html en el DropDownList para cursos.</p>
<p>La estructura de un controlador <strong><em>ASHX</em></strong> es la siguiente:</p>
<p style="text-align: center;"> <img src="http://gpna3w.blu.livefilestore.com/y1pTT5pWIoqo5ph3lHkvzk0_OHJ-4nZHjoIIsXzI5PT-iponJTMxws66GJyyDRgJN9dLxneqUc-9ZdZdoOarQBa3g/estructuraManejadorHTTP.png" alt="Estructura de un manejador HTTP de ASP .Net" width="455" height="344" /></p>
<p>y el código que se quiera utilizar para la funcionalidad a realizar se colocará en el método <strong>ProcessRequest</strong>, y para devolver el html que necesitamos utilizamos <em>context.Response.Write(<span style="color: #800000;">&#8220;Aqui mi texto&#8221;</span>)</em>;</p>
<p>En el archivo que pueden descargar a continuaciòn esta el ejemplo y ya ustedes podrán personalizarlo a su antojo. Solo es cuestión de ir leyendolo de a pocos.</p>
<p style="text-align: right;"><strong><a href="http://cid-74bbd3caaf789965.skydrive.live.com/self.aspx/Public/JQuery%20y%20AJAX.zip">Descargar Ejemplo JQuery y Ajax</a></strong></p>
<p>Espero que les sea de utilidad.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/utilizar-ajax-con-jquery-en-asp-net/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Invocar código .Net desde JavaScript</title>
		<link>http://hanzcocchi.net/invocar-codigo-net-desde-javascript/</link>
		<comments>http://hanzcocchi.net/invocar-codigo-net-desde-javascript/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 22:39:30 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP .Net]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=707</guid>
		<description><![CDATA[Aunque este debería ser un tema ya conocido, aún existen quienes no conocen la forma de hacer invocaciones al código compilado de .Net (sea VB .Net o C#) desde el código cliente utilizando JavaScript. Para quienes desarrollamos aplicaciones web con ASP .Net suele ser frecuente la necesidad de ejecutar alguna acción o recuperar algún dato sin recargar la página [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque este debería ser un tema ya conocido, aún existen quienes no conocen la forma de hacer invocaciones al código compilado de .Net (sea VB .Net o C#) desde el código cliente utilizando JavaScript. Para quienes desarrollamos aplicaciones web con ASP .Net suele ser frecuente la necesidad de ejecutar alguna acción o recuperar algún dato sin recargar la página completa; de eso se trata este artículo.</p>
<p>Para empezar con este ejemplo, deben <a href="http://www.ajaxpro.info/">descargar la DLL Ajax Pro.2</a>, que es la Librería que permite hacer este trabajo. Sin embargo, no deben utilizar la última versión (7.7.31.1), sino la <a href="http://www.codeplex.com/AjaxPro/Release/ProjectReleases.aspx?ReleaseId=713">versión anterior (6.10.6.2)</a>, ya que la última versión de esta libreria contiene un <a href="http://es.wikipedia.org/wiki/Error_de_software">BUG</a> del cual <a href="http://hanzcocchi.net/ajaxpro2-microsoft-jscript-runtime-error-object-expected/">ya he comentado antes</a>.</p>
<p>Para empezar, una vez descargada la DLL, solo hay que copiarla dentro de la carpeta <strong>Bin</strong> en el Sitio Web, y luego configurar el archivo <strong>Web.Config</strong> con información que permita registrar la DLL, mas o menos como muestra la siguiente imágen:</p>
<p style="TEXT-ALIGN: center"><img src="http://gpna3w.blu.livefilestore.com/y1pMf24dNOkyyOZvtPYOjy3dCdxaIPJkyiaChJywk_XtwlFp6QM9fVGjpDqbn5CnszN7SrZy2L78WY/web-Config-AjaxPro2.png" alt="Configuración de Ajax Pro 2" width="548" height="290" /></p>
<p><span id="more-707"></span>Como se puede apreciar la parte importante se encuentra en la sección location de la imágen, de modo que no resulta muy complicado de entender. Luego se debe registrar esta DLL dentro de la página en la que se desea invocar, como se muestra en la siguiente imágen:</p>
<p style="TEXT-ALIGN: center"><img src="http://gpna3w.blu.livefilestore.com/y1pRN6HuSpOoBLBTmnrU2RydfytxWW1PZ9FthuOiDLLPEnyWmlRAePyyR88rI4yAjzLySZMAVVXhDs/registrarAjaxPro.png" alt="Registrar AJax Pro 2 en una página ASp .Net" width="533" height="219" /></p>
<p>Una vez, que se ha registrado la DLL en la página, pues solo queda utilizarlo en el cliente, para hacerlo, dentro de una función de JavaScript llamamos a la función anteponiendo el nombre del Namespace que hemos definido, por ejemplo: <strong><em>var resultado = DemoAjaxPro.RecuperarSaludo().value</em></strong> si el método es invocado síncronamente o <strong><em>DemoAjaxPro.RecuperarSaludo(evento_CallBack)</em></strong> si es una invocación asíncrona, en cuyo caso <strong><em>evento_CallBack</em></strong> es una función de JavaScript que se ejecutará cuando el método se haya completado.</p>
<p>En realidad se trata de una muy útil forma de comunicar código de cliente con código de .Net y como se ve es bastante sencillo de utilizar. Como ya se imaginarán, pueden descargar la aplicación de ejemplo sin ningún problema para probarlo y modificarlo a su antojo.</p>
<p style="text-align: right;"><strong><a href="http://cid-74bbd3caaf789965.skydrive.live.com/self.aspx/Public/AJAX%20Pro.zip">Descargar Ejemplo Ajax Pro</a></strong></p>
<p>Espero que les sea de utilidad.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/invocar-codigo-net-desde-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Conferencia: Primeros pasos con ASP .Net AJAX y JQuery</title>
		<link>http://hanzcocchi.net/conferencia-primeros-pasos-con-asp-net-ajax-y-jquery/</link>
		<comments>http://hanzcocchi.net/conferencia-primeros-pasos-con-asp-net-ajax-y-jquery/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 20:08:02 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP .Net]]></category>
		<category><![CDATA[e-Learning]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=698</guid>
		<description><![CDATA[El día de mañana se llevará a cabo la conferencia on line &#8220;Primeros pasos con ASP .Net AJAX y JQuery&#8221; que se realizará por cortesía de SecondNug. Incluso para aquellos que ya conocen algo al respecto, siempre es productivo conocer los puntos de vista de otras personas y este tipo de eventos nos puede resultar [...]]]></description>
			<content:encoded><![CDATA[<p>El día de mañana se llevará a cabo la conferencia on line <strong><em>&#8220;Primeros pasos con ASP .Net AJAX y JQuery&#8221;</em></strong> que se realizará por cortesía de <a href="http://www.secondnug.com/">SecondNug</a>.</p>
<p style="text-align: center;"><img src="http://gpna3w.blu.livefilestore.com/y1p31GUgLWGQ0HZGxJppoWcJPAY7PJpvpsMgbWYv2SuThzDjdAWHPoo97fGZuKVCkyx7HoMPUIKtng/Evento-AjaxJquery.jpg" alt="Conferencia" width="450" height="333" /></p>
<p>Incluso para aquellos que ya conocen algo al respecto, siempre es productivo conocer los puntos de vista de otras personas y este tipo de eventos nos puede resultar por demás interesante.</p>
<p><span id="more-698"></span>Si deseas participar, solo debes registrarte en <a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032393363&amp;Culture=es-ES">la web de eventos de Microsoft</a>.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/conferencia-primeros-pasos-con-asp-net-ajax-y-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AjaxPro.2 &#8220;Microsoft JScript runtime error: Object expected&#8221;</title>
		<link>http://hanzcocchi.net/ajaxpro2-microsoft-jscript-runtime-error-object-expected/</link>
		<comments>http://hanzcocchi.net/ajaxpro2-microsoft-jscript-runtime-error-object-expected/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 23:57:09 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP .Net]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=691</guid>
		<description><![CDATA[Para empezar, si no entiendes el título es porque no te ha pasado, pero te puede pasar. Ajax Pro, es una DLL que te permite invocar código .Net desde JavaScript; de esta manera puedes ejecutar métodos del .Net ya sea de forma síncrona o asíncrona. Hace poco mientras utilizaba esta librería en un proyecto obtuve [...]]]></description>
			<content:encoded><![CDATA[<p>Para empezar, si no entiendes el título es porque no te ha pasado, pero te puede pasar. <a href="http://www.ajaxpro.info/">Ajax Pro</a>, es una DLL que te permite <a href="http://www.webprogramacion.com/registro.aspx?id=66">invocar código .Net desde JavaScript</a>; de esta manera puedes ejecutar métodos del .Net ya sea de forma síncrona o asíncrona. Hace poco mientras utilizaba esta librería en un proyecto obtuve el siguiente mensaje de error:</p>
<p style="text-align: center;"><img src="http://gpna3w.blu.livefilestore.com/y1pa0izyx05h25wAOpCnJZCeHkoMiXVS3rNkxakghL0VRmGoMx22R2D0pSRMaCBrBZvqRWQoKq4qBM/AjaxPro2BugVersion.png" alt="" width="569" height="282" /></p>
<p><span id="more-691"></span>Este error se produce cuando ejecutabas un método síncrono, mas o menos 20 segundos después, exactamente en la función <strong>timeout</strong>&#8230; después de buscar el error e indagar por internet sobre este caso (no hay mucho de ello en castellano por cierto) me di con la sorpresa de que se trata de un Bug de la versión, de manera que si obtienes este error de seguro estas usando la versión 7.7.31.1 (que a la fecha es la última). <em><strong>Solución:</strong></em> <a href="http://www.codeplex.com/AjaxPro/Release/ProjectReleases.aspx?ReleaseId=713">descárgate una versión anterior (6.10.6.2)</a> y problema resuelto.</p>
<p>Como esta DLL es &#8220;libre&#8221;, no puedes quejarte&#8230; en fin, lo principal era resolver el problema no?</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/ajaxpro2-microsoft-jscript-runtime-error-object-expected/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aprendiendo a usar JQuery</title>
		<link>http://hanzcocchi.net/aprendiendo-a-usar-jquery/</link>
		<comments>http://hanzcocchi.net/aprendiendo-a-usar-jquery/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 19:11:38 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=476</guid>
		<description><![CDATA[El actual proyecto en el que estoy participando tiene una característica bien definida, se utiliza básicamente efectos de Drag &#38; Drop (osea, arrastar y soltar) para manipular los datos. La gracia de todo esto es que los paneles en los cuales se deben producir estos efectos deben ser cargados dinámicamente y ahí entra a tallar [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jquery.com/" target="_blank"><img src="http://hanzcocchi.net/wp-content/uploads/jquery.png" alt="JQuery" title="JQuery" align="left" border="0" height="46" width="136" /></a>El actual proyecto en el que estoy participando tiene una característica bien definida, se utiliza básicamente efectos de <strong><em>Drag &amp; Drop</em></strong> (osea, arrastar y soltar) para manipular los datos. La gracia de todo esto es que los paneles en los cuales se deben producir estos efectos deben ser cargados dinámicamente y ahí entra a tallar la creatividad humana.</p>
<p>En fin, ese es un tema aparte, el punto principal de este post es el hablar de <a href="http://es.wikipedia.org/wiki/JQuery">JQuery</a>, esta librería de <a href="http://es.wikipedia.org/wiki/Javascript">JavaScript</a> ayuda mucho en la construcción de efectos visuales y manipulación de objetos en la página web. Aunque antes ya había comentado sobre <a href="http://hanzcocchi.net/240-plugins-jquery-listos-para-usar/">240 plugins de jquery listos para usar</a> y había dado un <a href="http://hanzcocchi.net/ejemplo-drag-drop-con-jquery/">ejemplo de Drag and Drop usando JQuery</a> <em>(si lo haz revisado te darás cuenta que en realidad se trata de listas ordenables con la misma funcionalidad que la ventana de configuración de <a href="http://es.wikipedia.org/wiki/Widgets">Widgets </a>de <a href="http://hanzcocchi.net/category/wordpress/">WordPress</a>),</em> creo que no solo basta con esos datos para prender sobre el tema, por ello ahora les dejaré unas direcciones web para que se introduzcan un poco más en el tema:<span id="more-476"></span></p>
<ol>
<li><a href="http://www.maestrosdelweb.com/editorial/javascript-facil-y-rapido-con-jquery/">http://www.maestrosdelweb.com/editorial/javascript-facil-y-rapido-con-jquery/</a></li>
<li><a href="http://www.cristalab.com/tutoriales/214/tutorial-de-jquery">http://www.cristalab.com/tutoriales/214/tutorial-de-jquery</a></li>
<li><a href="http://www.javascriptya.com.ar/jquery/index.php">http://www.javascriptya.com.ar/jquery/index.php</a></li>
<li><a href="http://docs.jquery.com/Main_Page">http://docs.jquery.com/Main_Page</a></li>
<li><a href="http://interface.eyecon.ro/">http://interface.eyecon.ro</a></li>
</ol>
<p>Las dos primeras direcciones contienen los aspectos básicos de <em><strong>JQuery</strong></em> y que te ayudarán a entender <em>qué e</em>s y <em>para qué sirve</em> esta librería. El tercero es una web bastante interesante que toca temas un poco más profundos, sobre métodos, elementos y como utilizarlos dando varios ejemplos, realmente útil.</p>
<p>Luego tenemos la documentación oficial de <strong><em>JQuery</em></strong> desde su propia página, en la que se encuentra la descripción de la libreria e incluye varios ejemplo que son de mucha utilidad. El último enlace es también una librería que se complementa con <strong><em>JQuery</em></strong> para crear aplicaciones interactivas que le ofrecerán a los usuarios una mejora en el uso de las aplicaciones web.</p>
<p>Yo por lo pronto tengo otro ejemplo de <strong><em>Drag and Drop con JQuery</em></strong> y la librería <strong><em>Interface</em></strong> que de hecho publicaré en cuanto baje un poco mi carga laboral. Espero que las direcciones les sean de utilidad, ya que a mi son las que más me han servido.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/aprendiendo-a-usar-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Libros gratuitos sobre tecnología web</title>
		<link>http://hanzcocchi.net/libros-gratuitos-sobre-tecnologia-web/</link>
		<comments>http://hanzcocchi.net/libros-gratuitos-sobre-tecnologia-web/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 21:37:27 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP .Net]]></category>
		<category><![CDATA[e-Learning]]></category>
		<category><![CDATA[Estándares Web]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=459</guid>
		<description><![CDATA[Juraría que ya he publicado esto pero luego de buscarlo entre los antiguos posts no lo he encontrado, siendo así, procederé a comentarlo. Si te interesa el desarrollo de páginas web entonces debes mantenerte al día con la lectura de alguno de estos interesantes libros: Referencia completa de CSS 2.1 Sympony, la guía interactiva Introducción [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.librosweb.es/" target="_blank"><img src="http://hanzcocchi.net/wp-content/uploads/librosweb.png" alt="Libros gratuitos en la red" title="Libros gratuitos en la red" align="left" border="0" height="55" width="267" /></a>Juraría que ya he publicado esto pero luego de buscarlo entre los antiguos posts no lo he encontrado, siendo así, procederé a comentarlo.</p>
<p>Si te interesa el desarrollo de páginas web entonces debes mantenerte al día con la lectura de alguno de estos interesantes libros:</p>
<ol>
<li>Referencia completa de CSS 2.1</li>
<li>Sympony, la guía interactiva</li>
<li>Introducción a AJAX</li>
<li>Introducción a JavaScript</li>
<li>Introducción a CSS</li>
<li>Introducción a XHTML</li>
</ol>
<p>Yo ya me he descargado algunos y debo confesar que son bastante buenos, completamente gratis y bastante completos.</p>
<p><strong>URL:</strong> <a href="http://www.librosweb.es/">http://www.librosweb.es/</a></p>
<p>Espero que les sea de utilidad.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/libros-gratuitos-sobre-tecnologia-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Algoritmo CRC32 en C#</title>
		<link>http://hanzcocchi.net/algoritmo-crc32-en-csharp/</link>
		<comments>http://hanzcocchi.net/algoritmo-crc32-en-csharp/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 19:29:04 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=410</guid>
		<description><![CDATA[Hace un tiempo tuve que hacer un trabajo con este algoritmo y no lo conseguía, depués de buscar un poco lo encontré casi listo para utilizar. Pero a ver, que es el algoritmo CRC32 y para que me puede servir? El algoritmo CRC32 (Código de Redundancia Cíclica) se utiliza para porteger la integridad de los [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo tuve que hacer un trabajo con este algoritmo y no lo conseguía, depués de buscar un poco lo encontré casi listo para utilizar. Pero a ver, que es el algoritmo <strong>CRC32</strong> y para que me puede servir?</p>
<blockquote><p>El algoritmo <strong>CRC32</strong> (<strong>C</strong>ódigo de <strong>R</strong>edundancia <strong>C</strong>íclica) se utiliza para porteger la integridad de los datos al verificar que dichos datos no han sido alterados, comparando el <strong>CRC32</strong> de los datos enviados con el <strong>CRC32</strong> de los datos recibidos. Lo que ocurre aquí es que si se modifica aunque sea un punto de los datos iniciales, el resultado del <strong>CRC32</strong> es completamente diferente.</p></blockquote>
<p>Pues bien, hice una clase adicional para poder invocarlo de forma más fácil ya que la versión original me pareció algo rebuscado y yo necesitaba dicho algoritmo pero con un resultado en decimal y no en hexadecimal como devuelve el algoritmo inicial.</p>
<p>La forma de invocar el resultado desde cualquier punto de la aplicación es la siguiente:</p>
<p class="SegmentoDeCodigo">
<pre>Algoritmos.<span style="color: #008080;">AlgoritmoCRC32</span> al = <span style="color: #0000ff;">new</span> Algoritmos.<span style="color: #008080;">AlgoritmoCRC32</span>();
textBox1.Text = al.CRC32Hexa("<span style="color: #8b0000;">Hola mundo</span>");
textBox2.Text = al.CRC32Decimal("<span style="color: #8b0000;">Hola mundo</span>");</pre>
<p>El resultado <strong>CRC32</strong> de ambos casos es: <strong>F9EC15CE</strong> y <strong>4192998862</strong> respectivamente, si se modifica algo de la cadena, los resultados serían completamente diferentes.</p>
<p><span id="more-410"></span></p>
<p>Ahora, en el Zip que contiene las clases, encontrarán 3 archivos, <strong>Algorithm.cs</strong> y <strong>CRC32.cs</strong> son las clases iniciales que obtuve, la clase <strong>AlgoritmoCRC32.cs</strong> es la clase que implementé para hacer un poco más accesible el código, tal como ven en el siguiente código:</p>
<p class="SegmentoDeCodigo">
<pre><span style="color: #0000ff;">using</span> System;
<span style="color: #0000ff;">using</span> System.Collections.Generic;
<span style="color: #0000ff;">using</span> System.Text;

<span style="color: #0000ff;">namespace</span> Algoritmos
{
<span style="color: #0000ff;">class</span> <span style="color: #008080;">AlgoritmoCRC32</span>
{
<span style="color: #0000ff;">public</span> AlgoritmoCRC32()
{ }

<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> CRC32Hexa(<span style="color: #0000ff;">string</span> cadena)
{
<span style="color: #0000ff;">return</span> ChkSumCRC32(cadena);
}

<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> CRC32Decimal(<span style="color: #0000ff;">string</span> cadena)
{
<span style="color: #0000ff;">return</span> <span style="color: #008080;">Convert</span>.ToInt64(ChkSumCRC32(cadena), 16).ToString();
}

<span style="color: #0000ff;">private</span> <span style="color: #0000ff;">string</span> ChkSumCRC32(<span style="color: #0000ff;">string</span> cadena)
{
<span style="color: #008080;">Algorithm</span> alg = <span style="color: #0000ff;">new</span> <span style="color: #008080;">Algorithm</span>("<span style="color: #8b0000;">CRC32</span>", <span style="color: #0000ff;">new</span> <span style="color: #008080;">CRC32</span>());
alg.hash.Initialize();

<span style="color: #0000ff;">byte</span>[] rawBytes = System.Text.<span style="color: #008080;">ASCIIEncoding</span>.ASCII.GetBytes(cadena);
<span style="color: #0000ff;">byte</span>[] hash = alg.hash.ComputeHash(rawBytes);

<span style="color: #008080;">StringBuilder</span> sb = <span style="color: #0000ff;">new</span> <span style="color: #008080;">StringBuilder</span>(hash.Length * 2 + (hash.Length / 8));
<span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = 0; i &lt; hash.Length; i++)
sb.Append(<span style="color: #008080;">BitConverter</span>.ToString(hash, i, 1));

<span style="color: #0000ff;">return</span> sb.ToString().TrimEnd(<span style="color: #0000ff;">new</span> <span style="color: #0000ff;">char</span>[] { ' ' });
}
}
}</pre>
<p align="right"><a href="http://cid-74bbd3caaf789965.skydrive.live.com/self.aspx/Public/Algoritmos.zip"><strong>Descargar Algoritmo CRC32 para C#</strong></a></p>
<p><strong>Url donde obtuve el código</strong>: <a title="http://www.codeproject.com/cs/algorithms/crc32_dotnet.asp" href="http://www.codeproject.com/cs/algorithms/crc32_dotnet.asp">http://www.codeproject.com/cs/algorithms/crc32_dotnet.asp</a><br />
Espero que les sea de utilidad.<br />
Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/algoritmo-crc32-en-csharp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Funci&#243;n isNumeric en C#</title>
		<link>http://hanzcocchi.net/funcin-isnumeric-en-c/</link>
		<comments>http://hanzcocchi.net/funcin-isnumeric-en-c/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 16:46:02 +0000</pubDate>
		<dc:creator>h@nz</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://hanzcocchi.net/?p=15</guid>
		<description><![CDATA[Cuando trabajabamos en Visual Basic 6.0 (tiempos aquellos!) contabamos con una función que permitía saber si un dato era de tipo numérico o no. Esta función no esta presente en C# (o al menos no la he encontrado) y yo como otras personas la extrañamos, así que en una de mis múltiples odiseas por el [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando trabajabamos en Visual Basic 6.0 (tiempos aquellos!) contabamos con una función que permitía saber si un dato era de tipo numérico o no. Esta función no esta presente en C# (o al menos no la he encontrado) y yo como otras personas la extrañamos, así que en una de mis múltiples odiseas por el cyberespacio encontré por ahí un recurso que comentaba como crear una función muy similar. Ahí se las paso:</p>
<blockquote><p><font color="#0000ff">public static bool</font> isNumeric(<font color="#0000ff">object</font> value)<br />{<br />&nbsp;&nbsp;&nbsp; <font color="#0000ff">try</font><br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">double</font> d = System.<font color="#008080">Double</font>.Parse(value.ToString(), System.Globalization.<font color="#008080">NumberStyles</font>.Any);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">return true</font>;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <font color="#0000ff">catch</font> (System.<font color="#008080">FormatException</font>)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">return false</font>;<br />&nbsp;&nbsp;&nbsp; }<br />}</p>
</blockquote>
<p>Este tipo de funciones deberían colocarse en una clase absracta de manera que se pueda invocar desde cualquier punto de la aplicación. Espero que les sea de utilidad.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://hanzcocchi.net/funcin-isnumeric-en-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

