<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET A new try... : ASP.NET</title><link>http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx</link><description>Tags: ASP.NET</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Silverlight... </title><link>http://msmvps.com/blogs/otelis/archive/2007/09/11/silverlight.aspx</link><pubDate>Tue, 11 Sep 2007 15:51:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1186005</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=1186005</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/09/11/silverlight.aspx#comments</comments><description>Hola ¿Qué tal? Pues bien, Microsoft ha anunciado el lanzamiento de Silverlight este 5 de Septiembre, esto marca el inicio de una nueva era en el desarrollo de aplicaciones basadas en navegadores de internet, esto es, la nueva generación de aplicaciones...(&lt;a href="http://msmvps.com/blogs/otelis/archive/2007/09/11/silverlight.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1186005" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/VB.NET/default.aspx">VB.NET</category></item><item><title>Control basado en CardSpace para ASP.NET</title><link>http://msmvps.com/blogs/otelis/archive/2007/07/11/control-basado-en-cardspace-para-asp-net.aspx</link><pubDate>Wed, 11 Jul 2007 09:51:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1014993</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=1014993</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/07/11/control-basado-en-cardspace-para-asp-net.aspx#comments</comments><description>Hola ¿Qué tal? En esta ocasión quiero comentarles que el equipo de .NET Framework acaba de liberar un nuevo control de CardSpace para ASP.NET. Este control se utiliza con una sintaxis simple para integrar la funcionalidad de CardSpace en aplicaciones...(&lt;a href="http://msmvps.com/blogs/otelis/archive/2007/07/11/control-basado-en-cardspace-para-asp-net.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1014993" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/VB.NET/default.aspx">VB.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/CardSpace/default.aspx">CardSpace</category></item><item><title>Y cómo construyes tú tus páginas Web de ASP.NET 2.0</title><link>http://msmvps.com/blogs/otelis/archive/2007/05/09/y-c-243-mo-construyes-t-250-tus-p-225-ginas-web-de-asp-net-2-0.aspx</link><pubDate>Wed, 09 May 2007 21:45:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:896303</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=896303</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/05/09/y-c-243-mo-construyes-t-250-tus-p-225-ginas-web-de-asp-net-2-0.aspx#comments</comments><description>Hola ¿Qué tal?... Hace poco en un foro de internet me encontré con una pregunta que no supe responder, la pregunta era acerca de la manera en que se configura el IDE de Visual Studio 2005, en especial el Web Designer para poder colocar los controles de...(&lt;a href="http://msmvps.com/blogs/otelis/archive/2007/05/09/y-c-243-mo-construyes-t-250-tus-p-225-ginas-web-de-asp-net-2-0.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=896303" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/CSS/default.aspx">CSS</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Liberan últimas versiones de Expression Blend y Orcas</title><link>http://msmvps.com/blogs/otelis/archive/2007/04/19/liberan-ltimas-versiones-de-expression-blend-y-orcas.aspx</link><pubDate>Fri, 20 Apr 2007 04:10:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:842057</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=842057</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/04/19/liberan-ltimas-versiones-de-expression-blend-y-orcas.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Hola ¿Qué tal?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Bien, solo para comentar la liberación de lo que formalmente es el Beta 1 de ORCAS, es de esperar que esta versión sea más robusta que los anteriores CTPs, de esta versión lo interesante será probar los conceptos de LINQ en todos sus sabores, además de ver la manera en que se integran WPF y WCF a la vida del nuevo .NET Framework, que también ha sido liberado en versión 3.5 Beta 1, &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;además veremos cómo se integra AJAX a los proyectos web y por último y no menos importante, las nuevas extensiones a los lenguajes .NET, tanto C# como VB.NET, de los cuales veremos cosas interesantes, en lo personal me apasiona el tema de delegados con expresiones Lambda, algo que seguramente evolucionará la manera de definir código de manera simple.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Cabe mencionar que existirán todavía las versiones Express de visual studio, sin duda un buen recurso para los entusiastas y novatos que desean aprender esta tecnología sin invertir más que un tiempo para descargar las versiones, en las referencias incluyo la liga hacia las versiones express de orcas beta 1.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;No se lo pierdan, se liberó hoy en la mañana, pruébenlo y disfrútenlo.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Por cierto, el sitio al que hago referencia es lo máximo, mantenido por gente muy ligada al visual studio.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Las ligas:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Orcas Beta 1:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx"&gt;&lt;FONT face=Calibri size=3&gt;http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Versiones Express:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://msdn.microsoft.com/vstudio/express/future/default.aspx"&gt;&lt;FONT face=Calibri size=3&gt;http://msdn.microsoft.com/vstudio/express/future/default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.NET Framework 3.5 Beta 1:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=36B6609E-6F3D-40F4-8C7D-AD111679D8DC&amp;amp;displaylang=en"&gt;&lt;FONT face=Calibri size=3&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=36B6609E-6F3D-40F4-8C7D-AD111679D8DC&amp;amp;displaylang=en&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Más Referencias:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://www.netfx3.com/blogs/news_and_announcements/archive/2007/04/19/visual-studio-orcas-beta-1-now-available.aspx"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://www.netfx3.com/blogs/news_and_announcements/archive/2007/04/19/visual-studio-orcas-beta-1-now-available.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://wcf.netfx3.com/blogs/news_and_announcements/archive/2007/04/19/net-framework-3-5-beta-1-available-for-download.aspx"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://wcf.netfx3.com/blogs/news_and_announcements/archive/2007/04/19/net-framework-3-5-beta-1-available-for-download.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Por otra parte, qué sería el diseño de interfaz de usuario en XAML sin un diseñador que simplifique la tarea de escribir todo ese XML, pues bien, es importante si se quiere empezar a diseñar utilizando WPF, más ahora que se están liberando estas versiones de Orcas, o bien, si deseas hacer el intento con VS2005 y .NET Framework 3.0. Para esta tarea se está terminando el desarrollo de Expression Blend, el cual es un diseñador de interfaz gráfica que genera XAML para WPF, ahora también se libera el Release Candidate 1, aprovecha y bájalo ya.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Las ligas:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Expression Blend Release Candidate 1&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://www.microsoft.com/products/expression/en/Expression-Blend/try.mspx"&gt;&lt;FONT face=Calibri size=3&gt;http://www.microsoft.com/products/expression/en/Expression-Blend/try.mspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Más referencias:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://wpf.netfx3.com/blogs/news_and_announcements/archive/2007/03/15/expression-blend-release-candidate-1.aspx"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://wpf.netfx3.com/blogs/news_and_announcements/archive/2007/03/15/expression-blend-release-candidate-1.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Pues bien, esto es todo por hoy, obligado por la emoción de disponer la última versión de estas herramientas que no tardarán mucho en estar liberadas.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;No dejen de visitar este sitio:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://www.netfx3.com/"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://www.netfx3.com/&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Sin duda la neta de .net.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Espero que les sea de utilidad.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Saludos…&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Octavio Telis&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;(NETA.- Adj. Mex. Expresión coloquial utilizada para denotar contenido u información que es considerada como la verdad completa o la mejor versión de la verdad)&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=842057" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/VB.NET/default.aspx">VB.NET</category></item><item><title>Uso de ViewState en lugar de QueryString</title><link>http://msmvps.com/blogs/otelis/archive/2007/04/09/uso-de-viewstate-en-lugar-de-querystring.aspx</link><pubDate>Mon, 09 Apr 2007 07:28:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:772468</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=772468</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/04/09/uso-de-viewstate-en-lugar-de-querystring.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Hola ¿Qué tal?...&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Al andar en esto del desarrollo de aplicaciones web siempre me he obligado a utilizar lo menos posible el llamado query string, porque al utilizar ASP.NET me he dado cuenta que ya se puede evitar sin problemas en muchos de los casos.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Primeramente, para aquellos que se inician en la programación de ASP.NET quiero explicar un poco lo que es un query string. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Un query string es una manera utilizada desde versiones anteriores de ASP en la que se manda información a la página mediante una cadena adicional en la ruta de la página, se concatena a la ruta con un signo de interrogación “?” y se separan los elementos con un signo de ampersand “&amp;amp;”, un ejemplo sería:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;TEXT-INDENT:35.4pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;http://www.miserver.com/mipagina.aspx?Id=20&amp;amp;user=10&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Dentro del código de la página es posible recuperar los valores del query string (que es la parte agregada después del signo de interrogación) mediante métodos incluidos en el objeto Request de la siguiente manera:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt; id = &lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt;.Parse(&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.Request.QueryString.Get(0));&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;En este caso se estaría obteniendo el valor del primer parámetro, según el orden del query string del ejemplo sería “20” que corresponde al parámetro “Id”.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Bien, pues está práctica se me ha hecho un poco insegura por exponer la información al usuario, aunque podría mandarse de manera encriptada, bueno, ahí empieza el trabajo de más, porque al encriptar el parámetro habrá que desencriptarlo, lo cual ya representa un gasto extra para la aplicación, además, se deben validar las longitudes, tipos de datos y valores coherentes que se esperan en el parámetro y es porque los valores se reciben como cadenas de caracteres, es decir, del tipo string. Imaginemos que en el query string del ejemplo, un usuario mal intencionado sustituye el 20 por Hola, esto causaría un error en la línea de código del ejemplo por tratar de convertir una palabra en número por medio del método Parse de int. Es por eso que además habría que validarlo antes de ocuparlo, y además, cuando hablamos de encriptar los valores también debemos validar que el valor encriptado sea lo que esperamos. Esto sin duda tiene un costo en rendimiento, aunque no es muy alto, pero sí son más líneas de código y más susceptibilidad a errores.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;A mi sentir, el query string es un recurso que existe en ASP.NET por compatibilidad con la versión anterior, según mi percepción. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;En Asp.NET tenemos muchos recursos para manejar la información de las páginas, esa información que podría se candidata a un query string podría ser bien manejada por varios recursos de ASP.NET, uno es Page.Application, aunque utilizarlo expone los elementos a toda la aplicación con lo cual se corre el riesgo de sobrescribir los valores agregados en una sesión diferente por otro usuario, otro es Page.Sessioin, está mejor que Page.Application, ya que los valores utilizados en Page.Session son exclusivos de la sesión, sin embargo, utilizar Page.Session para almacenar valores es riesgoso pues hay que pensar en la cantidad de sesiones que utilizaran la aplicación, ya que estos valores se almacenan en el servidor y podrían poner en riesgo la escalabilidad, &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;por otra parte, tenemos ViewState, que es el mecanismo que mantiene el estado de la página, ViewState almacena el valor en el código de la página, lo que implica que no utiliza los recursos de memoria del servidor para almacenar los valores. Para almacenar valores es idéntico que con los otros dos pero más conveniente por lo que les mencioné, sin embargo también tiene sus desventajas, por ejemplo, los valores almacenados en ViewState solo están disponibles para la página en cuestión, o sea, si cambiamos de página, los valores se pierden.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;En específico me quiero enfocara al uso de ViewState en sustitución del query string al trabajar con una página y no para sustituir Session o Application que tienen su razón de ser y que en ciertas circunstancias son también útiles para sustituir el query string.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Las ventajas del uso de ViewState que me ha sido de mucha utilidad es al construir páginas basadas en usercontrols, en donde requiero pasar información de un usercontrol a otro, dado que los usercontrols se programan en archivos y clases diferentes, puede obtener el dato proporcionado por un user control en otro a través del ViewState sin la necesidad de extender propiedades en muchos de los casos. Claro, puede ser útil en más escenarios y tal vez ahora estés viendo una oportunidad para darle uso o quizás más adelante en tus desarrollos. El uso de del ViewState es simple, aquí muestro un ejemplo:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;ViewState.Add(&lt;SPAN style="COLOR:maroon;"&gt;"Id"&lt;/SPAN&gt;, 20);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;En la línea anterior estoy agregando el valor 20, el cual es agregado como un objeto&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;al elemento del ViewState “Id”, el cual es creado por medio el método Add. Para recuperar el valor del elemento “Id” solo ocupo la siguiente línea de código:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt; Id = (&lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt;)ViewState[&lt;SPAN style="COLOR:maroon;"&gt;"Id"&lt;/SPAN&gt;];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Ahora bien, siempre es importante que al recuperar el elemento se tenga presente que si no existe en la colección de ViewState entonces ViewState devolverá null, por lo que no está de más verificar que no sea null antes de tomarlo, quedando así:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt; Id;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; (ViewState[&lt;SPAN style="COLOR:maroon;"&gt;"Id"&lt;/SPAN&gt;] != &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Id = (&lt;SPAN style="COLOR:blue;"&gt;int&lt;/SPAN&gt;)ViewState[&lt;SPAN style="COLOR:maroon;"&gt;"Id"&lt;/SPAN&gt;];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;BR&gt;&lt;FONT face=Calibri size=3&gt;Bien, pues este es un ejemplo muy simple para ilustrar el uso de ViewState, lo que pretendo con esto es motivar al desarrollador a sustituir un query string por ViewState cuando se trabaja con valores dentro de una página en específico, verán que ustedes encontrarán un uso útil para ViewState.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Por último, no les recomiendo el uso de ViewState para almacenar objetos, que aunque es posible siempre y cuando sean objetos serializables, no es muy bueno pues puede incrementar el peso de la página al regresar del servidor dado que se escribirá en la sección codificada de ViewState de la página.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Pues bien, espero que les sea de utilidad y no duden en dejar sus comentarios o dudas al respecto.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Saludos…&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Octavio Telis&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=772468" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ViewState/default.aspx">ViewState</category></item><item><title>Depurar Javascript de páginas ASP.NET con Visual Studio 2005</title><link>http://msmvps.com/blogs/otelis/archive/2007/03/27/depurar-javascript-de-p-ginas-asp-net-con-visual-studio-2005.aspx</link><pubDate>Tue, 27 Mar 2007 15:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:716029</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=716029</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/03/27/depurar-javascript-de-p-ginas-asp-net-con-visual-studio-2005.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Hola… ¿Qué tal?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Alguna vez, platicando con Eric Rudder, hace ya algunos años cuando vino al lanzamiento de Visual Studio .NET 2003, le preguntaba si Microsoft tenía pensado incluir la depuración de javascript dentro de Visual Studio… bueno, la respuesta fue simple, que no habría algo como tal y que podría ser o no. Aún hoy, parecía que la depuración de javascript no es posible en Visual Studio 2005, o mejor dicho, no es posible de forma directa, como colocar puntos de interrupción en un segmento de nuestro código javascript en alguna página aspx, bueno, como les decía no es posible de forma directa, lo que deja suponer que es posible de forma indirecta… ¿es eso cierto?, pues sí, es posible de forma indirecta, con puntos de interrupción y depuración paso a paso, con salto de instrucciones y la vista rápida de los valores de una variable al mismo estilo de visual studio.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Comúnmente es un poco frustrante ver que nuestras páginas tienen errores de javascript, esto se nota con el pequeño indicador de advertencia que se muestra en la esquina inferior izquierda del explorador, en la barra de estado. Al dar doble click en este indicador siempre se despliega una venta con la lista de errores de ejecución de javascript detectados por el explorador con descripción y línea de error… he ahí la primera frustración, el número de línea no corresponde con la línea de nuestra página en desarrollo… sino con la línea de la página descargada, lo que obliga a la tarea de ver el código de la página ejecutada, crear un archivo HTML en Visual Studio y luego entonces localizar la línea en cuestión con el posicionador de línea que se muestra al dar doble click en el indicador de línea del IDE, ese que se muestra en la barra de estado. Además, el mensaje de error no nos dice mucho cuando no sabemos cómo están pasando los datos en el código de javascript, lo cual nos da la segunda frustración, bueno, entonces procedemos a poner un alert o un confirm para de alguna manera dar visibilidad al valor que entra dentro de una función de javascript o los valores que resultan.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Pues bueno, con el depurador de Visual Studio esto sería más simple, interrumpir o saltar la línea de ejecución cuando falla, ver el valor de las variables de igual manera que se ven en al depurar código de Visual Studio. Pues bien, esto es posible con el código de javascript y aquí les quiero mostrar la manera de hacer y sacar provecho de las capacidades de Visual Studio&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;2005.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Comencemos pues.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Primeramente, tendrás que desmarcar la casilla que dice “deshabilitar depuración de script (internet explorer)”, esto es en las opciones avanzadas de internet explorer, entrando al menú de herramientas en opciones de internet, selecciona la pestaña opciones avanzadas y en la sección de Examinar dentro del árbol de opciones desmarcamos la casilla que dice “Deshabilitar depuración de script (internet explorer)”, ahora bien, procedemos a ejecutar nuestro proyecto de ASP.NET, el que supuestamente tenemos con problemas de javascript, en la parte donde se suscite un error de javascript, se detendrá el programa y se irá hacia el visual studio mostrando la página de ejecución indicando la línea de error, ahí podemos ya colocar puntos de interrupción y saltar la ejecución para que vuelva a pasar la ejecución pero esta vez se detendrá en el punto de interrupción.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Les comentaba que no es directa la manera de hacerlo, con lo que quiero decirles que no se pueden poner puntos de interrupción en la ejecución normal desde el inicio. El ambiente de depuración de javascript solo se presentará si la página tiene errores en el código javascript de otra manera la depuración no se presenta, y bueno, es para lo único que interesa que se presente, pera corregir errores. La modificación de errores debe ser en la página original en visual studio y no la página de ejecución pues no se actualiza hacia el archivo original. Les recomiendo que después de depurar sus páginas, marquen nuevamente la opción que mencioné anteriormente, ya que en ocasiones sí es molesto que esté preguntando si desean depurar. Cuando se está ejecutando en modo de depuración un sitio con la opción de depurar scripts, si navegan a una página con errores de script en ese momento se mandará a visual studio la depuración de la página con errores aunque no sea de nuestro proyecto.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Bueno, eso es todo por ahora, los dejo y espero que les sea de gran utilidad.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Saludos…&lt;/FONT&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-bidi-theme-font:minor-bidi;mso-ansi-language:ES-MX;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Octavio Telis&lt;/SPAN&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=716029" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/javascript/default.aspx">javascript</category></item><item><title>Hablando de ASP.NET AJAX... el ASP.NET AJAX Control Toolkit.</title><link>http://msmvps.com/blogs/otelis/archive/2007/03/13/hablando-de-asp-net-ajax-el-asp-net-ajax-control-toolkit.aspx</link><pubDate>Tue, 13 Mar 2007 07:19:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:674568</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=674568</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/03/13/hablando-de-asp-net-ajax-el-asp-net-ajax-control-toolkit.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Hablando de lo que encontramos alrededor de lo nuevo para las herramientas de desarrollo, me he descargado el ASP.NET AJAX y el AJAX Toolkit del mismo sitio. Ya he utilizado algunas de las cosas que ofrece este Toolkit combinado con las extensiones de ASP.NET &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;AJAX, bastante bueno, sin embargo, hay que tener un poco de cuidado en cuanto a los estilo en algunos casos.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Este toolkit al descargarlo viene con tres proyectos, uno que es el código completo de todos las extensiones para los controles utilizando AJAX, variados, son muchos y con funcionalidad interesante que hacen que tu sitio realmente tome vida. Se implementan extensiones para controles como las cajas de texto, para los efectos con paneles, también algunos otros para trabajar con listas desplegables de manera jerárquica con una experiencia de usuario sensacional. El otro proyecto es un sitio de demostración, donde se muestra el uso de cada uno de los controles con su funcionalidad y todo, hasta hace mención de las propiedades. El tercero es la implementación de un tipo lab de donde pueden basarse para construir y probar sus propios componentes utilizando AJAX.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Se los recomiendo ampliamente y bueno, como que estaré dando algunos screencasts del uso de estos controles para que empiecen a usarlos ya…&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Pueden realizar la descarga en el sitio de ASP.NET (&lt;/FONT&gt;&lt;A href="http://www.asp.net/"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;www.asp.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;)&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;o directamente en:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;A href="http://ajax.asp.net/about/default.aspx?tabid=47"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://ajax.asp.net/about/default.aspx?tabid=47&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;En este sitio podrán encontrar videos sobre el uso y cosas de esas, por mi parte estaré liberando algunos videos en español para que sea un poco más cómodo entender la tecnología en tú idioma. Los videos que estaré presentando serán considerando que ya han instalado ASP.NET AJAX 1.0 y el AJAX Control Toolkit.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Espero que les sea de utilidad.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Saludos…&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Octavio Telis&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=674568" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>Adaptadores CSS en .NET para sitios ASP.NET 2.0</title><link>http://msmvps.com/blogs/otelis/archive/2007/03/03/adaptadores-css-no-solo-de-ajax-vive-el-sitio-en-net.aspx</link><pubDate>Sat, 03 Mar 2007 07:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:636203</guid><dc:creator>Octavio Telis Aynés</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/otelis/rsscomments.aspx?PostID=636203</wfw:commentRss><comments>http://msmvps.com/blogs/otelis/archive/2007/03/03/adaptadores-css-no-solo-de-ajax-vive-el-sitio-en-net.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Hola…&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Ahora que AJAX ha sido liberado todos nos maravillamos de la funcionalidad que presta a nuestros sitios con ASP.NET 2.0 sin embargo en nuestros sitios no todo puede ser &lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;AJAX, y es que también encontramos algunos instrumentos útiles para la presentación, uno de ellos es la extensión de los Web Controls que acompañan al .NET framework, en específico lo que es ASP.NET 2.0. Y es que andando por la típica merodeada en el sitio de ASP.NET (&lt;/FONT&gt;&lt;A href="http://www.asp.net/"&gt;&lt;FONT face=Calibri size=3&gt;www.asp.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;) me he encontrado algo más que la descarga obligada de AJAX 1.0 y no me refiero a AJAX futures, es simplemente una plantilla con algo de contenido basado en extensiones de CSS, y bien, que bien está, porque no solo de AJAX vive el sitio, también es vital el uso de CSS que en lo particular me es muy agradable y bastante flexible.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Bueno, el detalle sobre la susodicha plantilla, denominada ASP.NET 2.0 CSS Friendly Control Adapters 1.0, que son más que nada modificaciones a la manera en que cierto conjunto de controles se dibuja, y no es porque haya algo extraordinario atrás de todo, solo es que se cambian los aspectos de imagen por la sustitución de etiquetas. Por ejemplo, en el caso del TreeView, los adaptadores sobrescriben algunos métodos de “rendering” para sustituir los tags HTML de Table a listas UL que se prestan más para el manejo de estilo con CSS.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;El conjunto de adaptadores está bastante confeso, esto es, revela mucho de la funcionalidad poco explotada de la manera de trabajar la apariencia de los controles, es un buen ejemplo y hasta motiva al intelecto para hacer y deshacer con el código que se tiene. Esta plantilla viene full, contiene los adaptadores, las clases y hasta documentación completa sobre la manera en que se realizaron los adaptadores para cada uno de los controles que muestran.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Bueno, los invito a descargar este conjunto de valiosos adaptadores, están muy bien y bueno, no está peleado para nada con AJAX.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;La liga: &lt;/FONT&gt;&lt;A href="http://www.asp.net/CSSAdapters/Default.aspx"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://www.asp.net/CSSAdapters/Default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Espero que les sea de utilidad y también que les sea divertido como lo ha sido para mi.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Saludos…&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Octavio Telis&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Visita mi índice de WebCast's en:&lt;BR&gt;&lt;A class="" href="http://msmvps.com/blogs/otelis/pages/webcast-as-is.aspx"&gt;WebCasts AS-IS&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=636203" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/otelis/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/otelis/archive/tags/CSS/default.aspx">CSS</category></item></channel></rss>