<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10spanishfull.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-22529781</id><updated>2008-08-01T17:00:10.052-06:00</updated><title type="text">Diario de un Dotnetero</title><link rel="alternate" type="text/html" href="http://www.dotnetero.com/" /><link rel="next" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full?start-index=26&amp;max-results=25" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>113</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><geo:lat>31.782408</geo:lat><geo:long>-106.36353</geo:long><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><link rel="self" href="http://feeds.feedburner.com/ElOtroLado" type="application/atom+xml" /><feedburner:emailServiceId>308076</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FElOtroLado" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ElOtroLado" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FElOtroLado" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FElOtroLado" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FElOtroLado" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=es&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FElOtroLado" src="http://eur.i1.yimg.com/eur.yimg.com/i/es/my/addto1.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.addtoany.com/?linkname=Diario%20de%20un%20Dotnetero&amp;linkurl=http%3A%2F%2Ffeeds.feedburner.com%2FElOtroLado&amp;type=feed" src="http://www.addtoany.com/addfr-b.gif">Add to Any Feed Reader</feedburner:feedFlare><entry><id>tag:blogger.com,1999:blog-22529781.post-1501319756429352932</id><published>2008-06-10T19:45:00.001-06:00</published><updated>2008-06-10T19:45:31.669-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comunidad" /><category scheme="http://www.blogger.com/atom/ns#" term="cotorreo" /><title type="text">Reseña del Lanzamiento de Visual Studio 2008</title><content type="html">&lt;p&gt;Alex Briseño puso una muy buena &lt;a href="http://alexbriseno.blogspot.com/2008/06/ahora-si-llego-el-dia.html"&gt;reseña del evento que tuvimos el pasado martes 27 de mayo&lt;/a&gt;, repleto de fotografías, pa’ que vayan a leerla.&amp;#160; &lt;/p&gt;  &lt;p&gt;La verdad yo me divertí un chorro, a pesar de que quedé exhausto porque me tocó dar 3 pláticas—lo cual implica hablar casi tres horas—me dió mucho gusto ver tanta gente.&amp;#160; También se sintió bien padre que que ahora sí tuvimos bastantes cosas que regalar como todos esos paquetes de desarrollador con Visual Studio 2008, SQL Server 2008 y Windows Server 2008, así como los discos de Windows Vista y las suscripciones de TechNet. &lt;/p&gt;  &lt;p&gt;Pero lo más chido creo que fue definitivamente el final, cuando nos pusimos a jugar—o a hacer el intento de jugar—boliche y a echarnos unas chelas con toda la raza &lt;em&gt;hardcore &lt;/em&gt;que se quedó hasta esa hora.&amp;#160; &lt;/p&gt;  &lt;p&gt;El momento &lt;i&gt;priceless&lt;/i&gt; se lo llevó Sergio, después de ganarle a Alex: “No pos si es la primera vez que juego”... ajá... sí cómo no... jejeje&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=Br4R5I"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=Br4R5I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=0SZ1Ui"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=0SZ1Ui" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=1RVsTI"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=1RVsTI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/309266759" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/309266759/resea-del-lanzamiento-de-visual-studio.html" title="Reseña del Lanzamiento de Visual Studio 2008" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=1501319756429352932" title="0 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/1501319756429352932/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/1501319756429352932" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/1501319756429352932" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/06/resea-del-lanzamiento-de-visual-studio.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-8249054782891912753</id><published>2008-06-03T13:07:00.001-06:00</published><updated>2008-06-03T13:13:37.097-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><title type="text">Cómo acceder a controles dentro de un GridView</title><content type="html">&lt;p&gt;Esta entrada sali&amp;#243; como resultado de &lt;a href="http://comunidadnetjuarez.org/forums/thread/1436.aspx"&gt;una pregunta que hicieron en el Foro de la Comunidad .NET&lt;/a&gt;.&amp;#160; La pregunta, esencialmente, es: &lt;em&gt;&amp;#191;C&amp;#243;mo accedo a un control que tengo en una columna templeteada &lt;/em&gt;&lt;em&gt;dentro de un &lt;/em&gt;&lt;strong&gt;GridView&lt;/strong&gt; &lt;em&gt;de ASP.NET?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Me pareci&amp;#243; buena la pregunta, as&amp;#237; que hice un peque&amp;#241;o ejemplo para ilustrarlo.&amp;#160;&amp;#160; Una columna templeteada (&lt;strong&gt;TemplateField&lt;/strong&gt;) es distinta a una normal (&lt;strong&gt;BoundField&lt;/strong&gt;) en que tienes m&amp;#225;s control sobre los controles que aparecen en la columna.&amp;#160; En otras palabras, t&amp;#250; especificas qu&amp;#233; quieres que se muestre cuando el rengl&amp;#243;n est&amp;#225; en modo &amp;quot;normal&amp;quot; (&lt;strong&gt;ItemTemplate&lt;/strong&gt;) o cuando est&amp;#225; en modo &amp;quot;edici&amp;#243;n&amp;quot; (&lt;strong&gt;EditItemTemplate&lt;/strong&gt;).&amp;#160; Puedes tener m&amp;#250;ltiples controles dentro de la columna, en lugar de solo uno que represente el dato.&lt;/p&gt;  &lt;p&gt;La siguiente p&amp;#225;gina contiene un GridView con tres columnas que vienen de un SqlDataSource.&amp;#160; Los datos provienen de la cl&amp;#225;sica base de datos Northwind.&amp;#160;&amp;#160; En este caso estoy recuperando datos de la tabla de productos:&lt;/p&gt;  &lt;div style="border-right: #cccccc 1pt dashed; padding-right: 5pt; border-top: #cccccc 1pt dashed; padding-left: 5pt; font-size: 10pt; background: #f5f5f5; padding-bottom: 5pt; overflow: auto; border-left: #cccccc 1pt dashed; width: 95%; color: black; max-height: 400px; padding-top: 5pt; border-bottom: #cccccc 1pt dashed; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;   &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;@&lt;/span&gt; &lt;span style="color: #a31515"&gt;Page&lt;/span&gt; &lt;span style="color: red"&gt;Language&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;VB&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;CodeFile&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Default.aspx.vb&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: red"&gt;Inherits&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;_Default&amp;quot;&lt;/span&gt; &lt;span style="background: #ffee62"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #a31515"&gt;DOCTYPE&lt;/span&gt; &lt;span style="color: red"&gt;html&lt;/span&gt; &lt;span style="color: red"&gt;PUBLIC&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;html&lt;/span&gt; &lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;head&lt;/span&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Head1&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Accediendo a Elementos en un GridView&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;style&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;#miGrid&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;width&lt;/span&gt;: &lt;span style="color: blue"&gt;450px&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;float&lt;/span&gt;: &lt;span style="color: blue"&gt;left&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;style&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;head&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;body&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;form&lt;/span&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;form1&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;Button&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;leerElementosButton&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Leer elementos&amp;quot;&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;div&lt;/span&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;miGrid&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;GridView&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;GridView1&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;False&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;DataKeyNames&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;ProductID&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;DataSourceID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;SqlDataSource1&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;EmptyDataText&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;No hay registros que mostrar.&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Columns&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;BoundField&lt;/span&gt; &lt;span style="color: red"&gt;DataField&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;ProductID&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;HeaderText&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;ID Producto&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;InsertVisible&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;False&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;ReadOnly&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;True&amp;quot;&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;BoundField&lt;/span&gt; &lt;span style="color: red"&gt;DataField&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;ProductName&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;HeaderText&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Nombre Producto&amp;quot;&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateField&lt;/span&gt; &lt;span style="color: red"&gt;HeaderText&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Descontinuado&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;EditItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;CheckBox&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;CheckBox1&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;Checked&lt;/span&gt;&lt;span style="color: blue"&gt;='&lt;/span&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt;# Bind(&amp;quot;Discontinued&amp;quot;) &lt;span style="background: #ffee62"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;'&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;EditItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;CheckBox&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;CheckBox1&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;Checked&lt;/span&gt;&lt;span style="color: blue"&gt;='&lt;/span&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt;# Bind(&amp;quot;Discontinued&amp;quot;) &lt;span style="background: #ffee62"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;'&lt;/span&gt; &lt;span style="color: red"&gt;Enabled&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateField&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Columns&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;GridView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SqlDataSource&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;SqlDataSource1&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;ConnectionString&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt;$ ConnectionStrings:NorthwindConnectionString &lt;span style="background: #ffee62"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;ProviderName&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt;$ ConnectionStrings:NorthwindConnectionString.ProviderName &lt;span style="background: #ffee62"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;SelectCommand&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;SELECT [ProductID], [ProductName], [Discontinued] FROM [Products]&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SqlDataSource&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;div&lt;/span&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;resultados&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;resultadosLabel&amp;quot;&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;div&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;body&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;html&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Para acceder, por ejemplo, al CheckBox que est&amp;#225; dentro de la columna templeteada, primero necesitas una referencia al rengl&amp;#243;n, ya que el ID del control se repetir&amp;#225; &lt;em&gt;n&lt;/em&gt; veces (una por cada rengl&amp;#243;n del Grid).&amp;#160; &lt;/p&gt;

&lt;p&gt;Esto se puede hacer de varias formas, por ejemplo, si tienes un manejador para un evento clic en alguno de los controles dentro del rengl&amp;#243;n pues en ese caso el &lt;em&gt;sender&lt;/em&gt; viene siendo el rengl&amp;#243;n en s&amp;#237;, entonces &amp;#250;nicamente te falta encontrar el CheckBox de ese rengl&amp;#243;n para leer sus propiedades.&amp;#160;&amp;#160; Otra forma de hacerlo, como en el siguiente ejemplo, es leer todos los renglones y por cada uno encontrar el CheckBox que le corresponde al rengl&amp;#243;n:&lt;/p&gt;

&lt;div style="border-right: #cccccc 1pt dashed; padding-right: 5pt; border-top: #cccccc 1pt dashed; padding-left: 5pt; font-size: 10pt; background: #f5f5f5; padding-bottom: 5pt; overflow: auto; border-left: #cccccc 1pt dashed; width: 95%; color: black; max-height: 400px; padding-top: 5pt; border-bottom: #cccccc 1pt dashed; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;
  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;Partial&lt;/span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt; _Default&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;Inherits&lt;/span&gt; System.Web.UI.Page&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;Protected&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; leerElementosButton_Click(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; sender &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Object&lt;/span&gt;, _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;ByVal&lt;/span&gt; e &lt;span style="color: blue"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color: blue"&gt;Handles&lt;/span&gt; leerElementosButton.Click&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Dim&lt;/span&gt; grid &lt;span style="color: blue"&gt;As&lt;/span&gt; GridView = &lt;span style="color: blue"&gt;Me&lt;/span&gt;.GridView1&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Dim&lt;/span&gt; checkBox &lt;span style="color: blue"&gt;As&lt;/span&gt; CheckBox&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Dim&lt;/span&gt; resultado &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;New&lt;/span&gt; StringBuilder&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;For&lt;/span&gt; &lt;span style="color: blue"&gt;Each&lt;/span&gt; renglon &lt;span style="color: blue"&gt;As&lt;/span&gt; GridViewRow &lt;span style="color: blue"&gt;In&lt;/span&gt; grid.Rows&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; checkBox = &lt;span style="color: blue"&gt;CType&lt;/span&gt;(renglon.FindControl(&lt;span style="color: #a31515"&gt;&amp;quot;CheckBox1&amp;quot;&lt;/span&gt;), CheckBox)&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;If&lt;/span&gt; checkBox.Checked &lt;span style="color: blue"&gt;Then&lt;/span&gt;&amp;#160; &lt;span style="color: green"&gt;'Hacer algo con esta informaci&amp;#243;n&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resultado.Append(&lt;span style="color: blue"&gt;String&lt;/span&gt;.Format( _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;&amp;quot;El rengl&amp;#243;n {0} est&amp;#225; descontinuado &amp;lt;br /&amp;gt;&amp;quot;&lt;/span&gt;, renglon.DataItemIndex))&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;If&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Next&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160; resultadosLabel.Text = resultado.ToString()&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;En res&amp;#250;men, la idea clave aqu&amp;#237; es que el &lt;strong&gt;GridView&lt;/strong&gt; tiene una colecci&amp;#243;n de renglones (de tipo &lt;strong&gt;GridViewRow&lt;/strong&gt;) y cada uno de estos renglones tiene su correspondiente colecci&amp;#243;n de controles que est&amp;#225;n dentro de ese rengl&amp;#243;n.&amp;#160; El &lt;strong&gt;GridViewRow &lt;/strong&gt;tambi&amp;#233;n te da acceso al &lt;strong&gt;DataItem &lt;/strong&gt;que contiene los datos asociados al rengl&amp;#243;n, en caso de que lo requirieras.&lt;/p&gt;

&lt;p&gt;El resultado de correr el c&amp;#243;digo anterior (dando clic al bot&amp;#243;n) es el siguiente:&lt;/p&gt;

&lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/AccediendoAElementosEnGridView.jpg" /&gt; &lt;/p&gt;

&lt;p&gt;Espero les ayude.&lt;/p&gt;

&lt;p&gt;Enjoy &lt;img alt="smile_shades" src="http://spaces.live.com/rte/emoticons/smile_shades.gif" /&gt;&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=hXaagI"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=hXaagI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=VTbWIi"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=VTbWIi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=AwM5aI"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=AwM5aI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/303941355" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/303941355/cmo-acceder-controles-dentro-de-un.html" title="Cómo acceder a controles dentro de un GridView" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=8249054782891912753" title="0 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/8249054782891912753/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/8249054782891912753" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/8249054782891912753" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/06/cmo-acceder-controles-dentro-de-un.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-4095576928342724100</id><published>2008-05-15T12:28:00.001-06:00</published><updated>2008-05-15T12:28:09.239-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="cotorreo" /><title type="text">Creo que he estado trabajando mucho...</title><content type="html">&lt;p&gt;Me sali&amp;#243; esto hoy.&amp;#160; Creo que Visual Studio est&amp;#225; tratando de decirme algo...&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/OutOfMemory.png" /&gt;&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=50SVHH"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=50SVHH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=QdFqBh"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=QdFqBh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=DTSxUH"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=DTSxUH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/291110899" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/291110899/creo-que-he-estado-trabajando-mucho.html" title="Creo que he estado trabajando mucho..." /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=4095576928342724100" title="0 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/4095576928342724100/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/4095576928342724100" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/4095576928342724100" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/05/creo-que-he-estado-trabajando-mucho.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-3166506781431263946</id><published>2008-04-20T15:42:00.002-06:00</published><updated>2008-04-20T16:36:05.680-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="referencia rápida" /><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><title type="text">Domina los atajos de teclado para Visual Studio</title><content type="html">&lt;p&gt;Una de las maneras m&amp;#225;s f&amp;#225;ciles de incrementar tu productividad cuando utilizas casi cualquier programa es aprenderte los atajos de teclado&amp;#8212;los mentaos &lt;em&gt;keyboard shortcuts&lt;/em&gt;, pues.&amp;#160; De hecho tengo amigos que &lt;strong&gt;odian &lt;/strong&gt;levantar las manos del teclado cuando est&amp;#225;n programando.&amp;#160; Si alguna vez has usado alg&amp;#250;n editor de texto como &lt;em&gt;&lt;strong&gt;vi&lt;/strong&gt;&lt;/em&gt;, quiz&amp;#225; hayas apreciado que una vez que dominas la complejidad de los comandos, en realidad se siente como si estuvieras &amp;quot;platicando&amp;quot; con el editor. Y aunque yo no llegar&amp;#237;a al extremo de recomendar que &lt;a href="http://www.viemu.com/"&gt;manejes Visual Studio con los comandos de vi&lt;/a&gt;, s&amp;#237; recomiendo enormemente que te aprendas algunos de los m&amp;#225;s com&amp;#250;nes que ya vienen de caj&amp;#243;n con el &lt;abbr title="Integrated Development Environment"&gt;IDE&lt;/abbr&gt;. &lt;/p&gt;  &lt;p&gt;El problema es que Visual Studio tiene 8 millones 557,934 comandos.&amp;#160; Bueno, quiz&amp;#225; algunos menos, pero a&amp;#250;n as&amp;#237; son un titipuchal.&amp;#160; Y lo que es peor, los atajos de teclado cambian de acuerdo a la configuraci&amp;#243;n general de Visual Studio.&amp;#160; Esta es la configuraci&amp;#243;n que te pregunta la primer vez que arrancas el IDE o si das &lt;strong&gt;Tools&amp;gt;Import and Export Settings...&amp;gt;Reset all settings&lt;/strong&gt;.&lt;/p&gt;  &lt;p align="center"&gt;&lt;img alt="Ventana de di&amp;#225;logo de configuraci&amp;#243;n general de Visual Studio" src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/visualstudiosettings.png" /&gt; &lt;/p&gt;  &lt;p&gt;Aqu&amp;#237; es donde ayudan algunos documentos de referencia r&amp;#225;pida.&amp;#160; Si primordialmente desarrollas en Visual Basic, y utilizas esa configuraci&amp;#243;n &lt;strong&gt;&lt;em&gt;(Visual Basic Development Settings)&lt;/em&gt;&lt;/strong&gt;, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6bb41456-9378-4746-b502-b4c5f7182203&amp;amp;DisplayLang=en"&gt;aqu&amp;#237; hay un PDF de Microsoft&lt;/a&gt; que los resume.&amp;#160; &lt;/p&gt;  &lt;p&gt;Si usas la configuraci&amp;#243;n de &lt;em&gt;&lt;strong&gt;Visual C# Development Settings&lt;/strong&gt;&lt;/em&gt;, para desarrollar primordialmente en C#, est&amp;#225;n este &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c15d210d-a926-46a8-a586-31f8a2e576fe&amp;amp;DisplayLang=en"&gt;para Visual Studio 2005&lt;/a&gt; y este otro &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&amp;amp;displaylang=en"&gt;para Visual Studio 2008&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Sin embargo, yo utilizo la configuraci&amp;#243;n para desarrollo general &lt;em&gt;&lt;strong&gt;(General Development Settings)&lt;/strong&gt;&lt;/em&gt; porque desarrollo tanto aplicaciones Web como Windows, a veces en C# y a veces en Visual Basic, aparte que ya me hab&amp;#237;a aprendido algunos atajos desde versiones anteriores de Visual Studio.&amp;#160; Como no encontr&amp;#233; ninguna referencia r&amp;#225;pida para esta configuraci&amp;#243;n, cre&amp;#233; mi propio documento.&amp;#160; Puedes &lt;a href="http://comunidadnetjuarez.org/files/folders/varios/entry1325.aspx"&gt;descargarlo del sitio de la Comunidad&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Mi recomendaci&amp;#243;n personal es, no intentes aprenderlos todos de un zopet&amp;#243;n.&amp;#160; Dice un proverbio: &amp;quot;&amp;#191;C&amp;#243;mo te comes un elefante? Un bocado a la vez&amp;quot;.&amp;#160; As&amp;#237; que mejor escoge un grupo de comandos y practica cada uno por separado, repiti&amp;#233;ndolo al menos 20 veces.&amp;#160; Lo que yo hice fue agarrar una archivo con c&amp;#243;digo y practicar un comando a la vez en diferentes partes del archivo mientras lo &amp;quot;vocalizaba mentalmente&amp;quot; hasta que quedaba grabado en mi memoria muscular.&amp;#160; Luego practicaba el siguiente comando hasta terminar el grupo.&amp;#160; Al d&amp;#237;a siguiente me enfocaba en un grupo distinto, y as&amp;#237; sucesivamente.&lt;/p&gt;  &lt;h3&gt;C&amp;#243;mo crear tus propios atajos&lt;/h3&gt;  &lt;p&gt;Por supuesto, tambi&amp;#233;n puedes definir tus propios atajos.&amp;#160; Estos atajos pueden ejecutar un comando del IDE o alguna macro que hayas creado para alguna tarea espec&amp;#237;fica.&amp;#160; Por ejemplo, hay dos atajos que a mi me ha sido &amp;#250;til definir: uno para comparar el archivo actual contra la versi&amp;#243;n en el controlador de c&amp;#243;digo y otro para obtener el historial del archivo actual en el controlador de c&amp;#243;digo.&lt;/p&gt;  &lt;p&gt;Para definirlos, primero ve a &lt;strong&gt;Tools&amp;gt;Options... &lt;/strong&gt;y luego &lt;strong&gt;Environment&amp;gt;Keyboard&lt;/strong&gt;.&amp;#160; Al hacerlo ver&amp;#225;s la siguiente ventana:&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/visualstudiokeyboardoptions.png" /&gt; &lt;/p&gt;  &lt;p&gt;En la parte donde dice &lt;em&gt;&lt;strong&gt;Show commands containing&lt;/strong&gt;&lt;/em&gt;, teclea parte del comando, p. ej. &amp;quot;compare&amp;quot;.&amp;#160; Esto traer&amp;#225; una lista de posibles comandos.&amp;#160; En este caso, el que busco es &lt;strong&gt;File.Compare&lt;/strong&gt;.&amp;#160; Luego, selecciona el comando adecuado de la lista y pon el cursor en la parte donde dice &lt;em&gt;&lt;strong&gt;Press shortcut keys&lt;/strong&gt;.&lt;/em&gt; Presiona la combinaci&amp;#243;n que desees utilizar.&amp;#160; Si la combinaci&amp;#243;n ya est&amp;#225; siendo utilizada por alg&amp;#250;n otro comando, esta informaci&amp;#243;n ser&amp;#225; mostrada en la parte de abajo donde dice &lt;strong&gt;&lt;em&gt;Shortcut currently used by.&lt;/em&gt;&lt;/strong&gt;&amp;#160; En mi caso escog&amp;#237; la combinaci&amp;#243;n &lt;strong&gt;Ctrl+Alt+F,C&lt;/strong&gt; para finalmente darle clic en el bot&amp;#243;n &lt;em&gt;&lt;strong&gt;Assign&lt;/strong&gt;&lt;/em&gt;.&amp;#160; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/visualstudiokeyboardoptions_filecom.png" /&gt; &lt;/p&gt;  &lt;p&gt;Repite los mismos pasos para el comando &lt;strong&gt;File.ViewHistory &lt;/strong&gt;y utiliza el atajo &lt;strong&gt;Ctrl+Alt+F,H&amp;#8212;&lt;/strong&gt;o cualquier otra combinaci&amp;#243;n que m&amp;#225;s te guste.&lt;/p&gt; En fin, creo que esto da la idea.&amp;#160; Enjoy &lt;img alt="smile_shades" src="http://spaces.live.com/rte/emoticons/smile_shades.gif" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=9W6lMFG"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=9W6lMFG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=idHFiLg"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=idHFiLg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=yML5UmG"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=yML5UmG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/274285864" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/274285864/atajos-de-teclado-para-visual-studio.html" title="Domina los atajos de teclado para Visual Studio" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=3166506781431263946" title="0 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/3166506781431263946/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/3166506781431263946" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/3166506781431263946" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/04/atajos-de-teclado-para-visual-studio.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-2747754159993854507</id><published>2008-04-11T19:51:00.001-06:00</published><updated>2008-04-11T19:51:54.598-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="el mundo es plano" /><category scheme="http://www.blogger.com/atom/ns#" term="los mejorcitos" /><category scheme="http://www.blogger.com/atom/ns#" term="cotorreo" /><title type="text">La Generación M: Al borde del un nuevo cambio</title><content type="html">&lt;p&gt;Hoy me toc&amp;#243; dar una pl&amp;#225;tica bastante diferente a la que estoy acostumbrado.&amp;#160; Resulta que los chavos de la carrera de Tecnolog&amp;#237;as Computacionales del Tec de Monterrey Campus Ju&amp;#225;rez (mi &amp;quot;alma mater&amp;quot;) hicieron un evento llamado &lt;strong&gt;El Congreso&lt;/strong&gt; con la finalidad de atraer a m&amp;#225;s chavos (y chavas, claro, si no qu&amp;#233; chiste) de las prepas y secundarias locales hacia las carreras de &amp;quot;sistemas&amp;quot;.&lt;/p&gt;  &lt;p&gt;Aparentemente algunos de ellos hab&amp;#237;an le&amp;#237;do mi blog y me enviaron un correo para invitarme a participar como expositor, lo cual se me hizo un honor.&amp;#160; Se siente medio raro regresar a la escuela de donde te graduaste para &amp;quot;ense&amp;#241;ar algo&amp;quot;.&amp;#160; Pero cuando me dijeron que la audiencia ser&amp;#237;an principalmente &lt;em&gt;lepes&lt;/em&gt; de preparatoria comenc&amp;#233; a ponerme un poco nervioso.&amp;#160; Despu&amp;#233;s de todo, han pasado casi 10 a&amp;#241;os&amp;#8212;a ver d&amp;#237;aganlo: &amp;quot;uuuuuuuuuuuuu!&amp;quot;&amp;#8212;desde que dej&amp;#233; de dar clases, y no me paraba a hablar enfrente de un grupo de esa edad.&amp;#160; Mi mente inmediatamente comenz&amp;#243; a dar vueltas: &amp;quot;Demonios, &amp;#191;de qu&amp;#233; les puedo hablar? &amp;#191;De qu&amp;#233; manera puedo encontrar un tema donde tengamos algo en com&amp;#250;n, y que hable de tecnolog&amp;#237;a?&amp;quot;&amp;#160; &lt;/p&gt;  &lt;p&gt;Pens&amp;#225;ndola un poco m&amp;#225;s ca&amp;#237; en cuenta que muchos de estos chicos, son &lt;em&gt;modelo 90&lt;/em&gt; o m&amp;#225;s reciente&amp;#8212;osea que nacieron despu&amp;#233;s de 1990&amp;#8212;lo cual me hizo sentir &lt;em&gt;m&amp;#225;s &lt;/em&gt;ruco todav&amp;#237;a porque yo soy setentayqu&amp;#237;h&amp;#250;bole.&amp;#160; Mientras m&amp;#225;s lo pensaba m&amp;#225;s me era evidente que hay un a brecha entre esta generaci&amp;#243;n y la m&amp;#237;a.&amp;#160; Comenc&amp;#233; a recordar c&amp;#243;mo era el mundo cuando &lt;em&gt;yo&lt;/em&gt; ten&amp;#237;a la edad de ellos&amp;#8212;hace 15 a&amp;#241;os m&amp;#225;s o menos&amp;#8212;y c&amp;#243;mo hab&amp;#237;a cambiado el mundo desde entonces hasta ahora, hasta que me cay&amp;#243; el veinte: &amp;quot;&amp;#191;y por qu&amp;#233; no hablar precisamente sobre eso?&amp;quot;.&lt;/p&gt;  &lt;p&gt;As&amp;#237; que ech&amp;#233; un poco de alucine este fue el resultado. &lt;/p&gt;  &lt;h3&gt;Generaci&amp;#243;n i&lt;/h3&gt;  &lt;p&gt;La i es de internet.&amp;#160; Esta es la generaci&amp;#243;n a la que creo que pertenezco.&amp;#160; En ella incluyo a las personas que eran adolescentes durante los pricipios de la d&amp;#233;cada de 1990 y que nos toc&amp;#243;, por un lado, ver el nacimiento del internet&amp;#8212;s&amp;#237; ya s&amp;#233; que el &lt;em&gt;intern&amp;#233;&lt;/em&gt; exist&amp;#237;a desde los 70s y 80s pero no fue sino hasta los 90s que el Web lo trajo a las masas &amp;#191;verdad?&amp;#8212;y por otro lado presenciar cambios hist&amp;#243;ricos a nivel mundial como la ca&amp;#237;da del comunismo.&lt;/p&gt;  &lt;p align="center"&gt;&amp;#160;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/generacion_i.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;A&amp;#250;n recuerdo ver en la televisi&amp;#243;n c&amp;#243;mo derribaban el muro de Berl&amp;#237;n.&amp;#160; Recuerdo ver tambi&amp;#233;n en la T.V. los tanques en Rusia mientras intentaron el golpe de estado contra Gorbachev y sentirme triste porque le&amp;#237; su libro sobre la &lt;em&gt;perestroika &lt;/em&gt;y el &lt;em&gt;glasnost&lt;/em&gt;.&amp;#160; Recuerdo la ca&amp;#237;da, pa&amp;#237;s por pa&amp;#237;s, de la cortina de hierro en Europa y tambi&amp;#233;n la &lt;em&gt;primera&lt;/em&gt; Guerra del Golfo P&amp;#233;rsico donde &lt;em&gt;una coalici&amp;#243;n de pa&amp;#237;ses&lt;/em&gt; decidi&amp;#243; luchar contra Saddam Hussein.&lt;/p&gt;  &lt;p&gt;Para cuando tuve edad de entrar en a la carrera en 1994, el mundo entero parec&amp;#237;a enamorado de nuevo con el capitalismo y la apertura de mercados.&amp;#160; M&amp;#233;xico llevaba poco que hab&amp;#237;a firmado el TLC y en el Tec hasta inventaron carreras nuevas como la de Lic. en Comercio Internacional.&amp;#160; Tambi&amp;#233;n por aquellos tiempos el internet comenzaba a salir de las escuelas y a entrar a los hogares.&amp;#160; El Tec, que hasta entonces hab&amp;#237;a sido el &amp;#250;nico ISP de Cd. Ju&amp;#225;rez, le dej&amp;#243; eso a compa&amp;#241;&amp;#237;as como Infolink (si mal no recuerdo)&amp;#8212;&amp;#191;se acuerdan cuando ten&amp;#237;an que pagarle a alguien y marcarles por tel&amp;#233;fono con su m&amp;#243;dem para estar &amp;quot;en l&amp;#237;nea&amp;quot;? &amp;#191;No? &lt;em&gt;Chin.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;El caso es que se respiraba un ambiente de apertura.&amp;#160; En el lado tecnol&amp;#243;gico esa actitud comenz&amp;#243; a reflejarse en movimientos como el de Open Source.&amp;#160; Las personas comenzaron a colaborar a pesar de las grandes distancias gracias a la red que ahora cobraba vida.&amp;#160; Est&amp;#225;bamos en plena &amp;quot;globalizaci&amp;#243;n 1.0&amp;quot;, como lo describe &lt;a href="http://www.amazon.com/World-Flat-3-0-History-Twenty-first/dp/0312425074/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1207952544&amp;amp;sr=8-1"&gt;Thomas Friedman&lt;/a&gt; y el mundo se estaba aplanando.&amp;#160; El internet hab&amp;#237;a fomentado la globalizaci&amp;#243;n y la globalizaci&amp;#243;n ayud&amp;#243; al crecimiento de la red.&amp;#160; &lt;a href="http://www.dotnetero.com/2007/01/el-carlos-en-un-mundo-plano.html"&gt;Por supuesto que ese momento no me d&amp;#237; cuenta de lo que ocurr&amp;#237;a porque estaba inmerso en &amp;#233;l&lt;/a&gt;.&amp;#160; Para cuando me gradu&amp;#233; de la carrera en 1998, &amp;quot;eso del e-mail&amp;quot; y de trabajar a distancia se hab&amp;#237;a vuelto bastante com&amp;#250;n.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Generaci&amp;#243;n M&lt;/h3&gt;  &lt;p&gt;La M es de m&amp;#243;bil, es decir un &lt;em&gt;pochismo deformado &lt;/em&gt;m&amp;#237;o de &lt;em&gt;mobile phones, &lt;/em&gt;tambi&amp;#233;n conocidos como tel&amp;#233;fonos celulares.&amp;#160; Esta es la generaci&amp;#243;n que &lt;em&gt;en estos momentos &lt;/em&gt;est&amp;#225; en la adolescencia.&lt;/p&gt;  &lt;p&gt;Cuando comenc&amp;#233; mi pl&amp;#225;tica, abr&amp;#237; con una pregunta: &amp;quot;&amp;#191;C&amp;#243;mo ser&amp;#237;a tu vida... sin tu celular?&amp;quot;&amp;#160; Hubieran visto la reacci&amp;#243;n.&amp;#160; Fue una exclamaci&amp;#243;n colectiva de aut&amp;#233;ntico horror: &amp;quot;&amp;#161;Ay NOOoooo!&amp;quot;, jejeje. &amp;quot;&amp;#191;...sin Google? &amp;#191;...sin el Internet? &amp;#191;Qu&amp;#233; m&amp;#250;sica escuchar&amp;#237;as? &amp;#191;Qu&amp;#233; ser&amp;#237;a diferente?&amp;quot;&amp;#160; Y ya cuando hab&amp;#237;an parado la oreja puse una diapositiva que dec&amp;#237;a: &amp;quot;As&amp;#237; era el mundo hace apenas 15 a&amp;#241;os&amp;quot;.&lt;/p&gt;  &lt;p&gt;A veces creo que no se le ha dado cr&amp;#233;dito a la impacto que han tenido los celulares&amp;#8212;y s&amp;#237;, yo tambi&amp;#233;n considero que son odiosos y ojal&amp;#225; no los hubieran inventado, pero pues ni modo ya ganaron.&amp;#160; &amp;quot;En mis tiempos...&amp;quot;&amp;#8212;como dicen los viejitos&amp;#8212;los &amp;#250;nicos que tra&amp;#237;an celulares eran los narcos y la gente de muuuucha lana.&amp;#160; Eran esos horrendos ladrillos Motorola que les duraba la pila una hora y pod&amp;#237;an se utilizados como arma de defensa personal.&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/generacion_m_1.jpg" /&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Hoy en d&amp;#237;a parece que los chavitos nacen con el celular en la mano.&amp;#160; He visto ni&amp;#241;os de 7 y 8 a&amp;#241;os&amp;#8212;entre ellos algunos de mis sobrinos&amp;#8212;con celular propio, lo cual me parece absurdo, pero es la realidad.&amp;#160; Todo tipo de vagancias y mal comportamiento es videograbado con su tel&amp;#233;fono para subirlo a YouTube.&amp;#160; Para ellos se ha convertido en una extensi&amp;#243;n de su persona.&amp;#160; Algunos de ellos incluso &lt;em&gt;se identifican &lt;/em&gt;con su celular, lo cual es en verdad preocupante.&amp;#160; &lt;/p&gt;  &lt;p&gt;Esto est&amp;#225; ocasionando cambios interesantes.&amp;#160; Por ejemplo, todos esos mensajitos de texto&amp;#8212;y la flojera que causa tener que teclearlos, supongo&amp;#8212;est&amp;#225;n ocasionando cambios informales y deformaciones al espa&amp;#241;ol escrito.&amp;#160; Una conversaci&amp;#243;n t&amp;#237;pica podr&amp;#237;a ser:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;#8212;Ke rollo?      &lt;br /&gt;&amp;#8212;No ps nada       &lt;br /&gt;&amp;#8212;Vas a ir al cine vdd?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Este tipo de deformaciones tambi&amp;#233;n est&amp;#225;n creciendo por el uso de mensajer&amp;#237;a instant&amp;#225;nea (Messenger, Google Chat, Skype, etc.).&amp;#160; Cuando intento platicar con una de mis sobrinas por Messenger, a veces me dan ganas de darle un &lt;em&gt;sape&lt;/em&gt; virtual y decirle: &amp;quot;&amp;#161;escriba bien, no sea payasa!&amp;quot;, pero me las aguanto.&amp;#160; Estos programas, tambi&amp;#233;n los est&amp;#225;n acostumbrando a que ahora se puede tener conversaciones de video o voz internacionales gratis o a muy bajo costo.&amp;#160; En otras palabras, la dimensi&amp;#243;n de la distancia comienza a cambiar.&amp;#160; El mundo no solo es plano sino que comienza a encogerse.&lt;/p&gt;  &lt;p&gt;Una caracter&amp;#237;stica m&amp;#225;s que se me ocurre sobre la generaci&amp;#243;n M es que, los chicos de ahora est&amp;#225;n (&amp;#191;mal?)acostumbrados a tener las cosas &lt;em&gt;on-demand,&lt;/em&gt; es decir, cuando ellos quieren y como ellos quieren.&amp;#160; Si quieren m&amp;#250;sica, se van a iTunes, o BitTorrent o &lt;em&gt;&amp;lt;inserte aqu&amp;#237; la herramienta de pirater&amp;#237;a de moda&amp;gt;&lt;/em&gt;, la bajan y listo; ya no est&amp;#225;n limitados por la m&amp;#250;sica de la radio o los discos en la tienda del &lt;em&gt;mall&lt;/em&gt;.&amp;#160; Si quieren un libro es cuesti&amp;#243;n de pedirlo por Amazon o similares y obtenerlo.&amp;#160; &amp;#191;Aburrido? Solo &amp;quot;prende&amp;quot; YouTube y puedes perder horas enteras viendo todo tipo de tarugadas; ya no est&amp;#225;n limitados a lo que ofrece la tele.&amp;#160; La palabra clave, supongo, es opci&amp;#243;n.&amp;#160; Ahora tienen m&amp;#225;s opciones que nunca.&amp;#160; Lo cual quiz&amp;#225; es bueno y malo a la vez.&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/generacion_m_2.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Por otro lado tambi&amp;#233;n se pueden observar una serie de cambios y situaciones sociales interesantes.&amp;#160; Una de ellas me la apunt&amp;#243; &lt;a href="http://pelosbriseno.blogspot.com"&gt;Alex Brise&amp;#241;o&lt;/a&gt;: los hijos de los due&amp;#241;os de muchas empresas est&amp;#225;n comenzando a tomar las riendas.&amp;#160; Es decir, un empresario que hoy tiene 50-60 a&amp;#241;os y que puso su negocio propio ahora est&amp;#225; d&amp;#225;ndole el control a su hijos para que se hagan cargo.&amp;#160; Estos &amp;quot;hijos de due&amp;#241;os&amp;quot; son de la generaci&amp;#243;n i, y no se sienten intimidados por la tecnolog&amp;#237;a, lo que es m&amp;#225;s, lo ven como algo favorable, algo que trae un valor agregado.&amp;#160; Si alguna vez se han dedicado al negocio de vender &amp;quot;sistemas&amp;quot; se habr&amp;#225;n quiz&amp;#225; dado cuenta que con excepci&amp;#243;n de empresarios con mucha visi&amp;#243;n, la mayor&amp;#237;a de la generaciones anteriores percib&amp;#237;an esto como un costo, no como algo que les pudiera ayudar a ganar dinero.&amp;#160; Los &amp;quot;hijos de due&amp;#241;o&amp;quot;, sin embargo, no solo no tienen problema con esto, sino que &lt;em&gt;te buscan&lt;/em&gt; para que les hagas un sistema.&amp;#160; Eso a su vez comienza a cambiar la din&amp;#225;mica de la competencia en muchos &amp;#225;mbitos.&lt;/p&gt;  &lt;p&gt;Combinado con la maduraci&amp;#243;n de la globalizaci&amp;#243;n 2.0, el inicio de la 3.0 esto est&amp;#225; permitiendo que los David comiencen a competir con los Goliat.&amp;#160; &lt;a href="http://www.wired.com/wired/archive/12.10/tail.html"&gt;La Cola Larga&lt;/a&gt; est&amp;#225; comenzando a esparcirse.&amp;#160; Dos ejemplos locales son que en Cd. Ju&amp;#225;rez, en los &amp;#250;ltimos 6 u 8 meses, Cablem&amp;#225;s comenz&amp;#243; a competir con Telmex en telefon&amp;#237;a; Volaris e InterJet, dos aerol&amp;#237;neas de bajo costo comenzaron a competir con Aerom&amp;#233;xico.&lt;/p&gt;  &lt;p&gt;Pero con todas las maravillas de la tecnolog&amp;#237;a hay otra cosa que est&amp;#225; ocurriendo: est&amp;#225; creciendo la brecha digital, el &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Digital_divide"&gt;digital divide&lt;/a&gt;&lt;/em&gt;.&amp;#160; Es decir despu&amp;#233;s de darte cuenta que el internet es maravilloso y que el acceso a la informaci&amp;#243;n es una necesidad porque uno como &lt;strong&gt;individuo&lt;/strong&gt; est&amp;#225; compitiendo con personas de todo el mundo, la siguiente pregunta inevitablemente es &amp;quot;&amp;#191;y qu&amp;#233; hay de los &lt;u&gt;millones&lt;/u&gt; de mexicanos que a&amp;#250;n viven en extrema pobreza? &amp;#191;C&amp;#243;mo sobreviviran en este nuevo mundo?&amp;quot;&lt;/p&gt;  &lt;p&gt;Desgraciadamente no hay respuestas alentadoras.&amp;#160; La &amp;#250;nica manera de competir es a trav&amp;#233;s de la educaci&amp;#243;n &lt;strong&gt;y&lt;/strong&gt; de ofrecer algo m&amp;#225;s.&amp;#160; En otras palabras, no competir en la maquilada de las cosas o de la informaci&amp;#243;n&amp;#8212;siempre habr&amp;#225; mano de obra m&amp;#225;s barata en un pa&amp;#237;s m&amp;#225;s desesperado&amp;#8212;sino competir ofreciendo las cosas que requieren de m&amp;#225;s coco, de m&amp;#225;s intelecto. Seguro, un ingeniero hind&amp;#250; o chino de sistemas promedio sale m&amp;#225;s barato que yo, pero ninguno, de todos los que conozco y con los que he trabajado tiene la misma capacidad que yo.&amp;#160; Y no es por ser arrogante, simplemente les ha faltado cayo y colmillo.&amp;#160; No significa que no haya ingenieros competentes en otros pa&amp;#237;ses, significa que esos ingenieros no son de bajo costo.&amp;#160; Incluso eso est&amp;#225; cambiando claro, al punto que &lt;a href="http://www.eds.com/sites/cs/blogs/eds_next_big_thing_blog/archive/2008/04/07/will-india-be-still-viable-option-for-it-outsourcing-in-10-years.aspx"&gt;en 10 a&amp;#241;os quiz&amp;#225; estemos hablando de otros pa&amp;#237;ses&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Esta es una realidad dif&amp;#237;cil de aceptar.&amp;#160; Aunque hay que mencionar que s&amp;#237; hay algunas personas haciendo algo concreto al respecto.&amp;#160; Proyectos como el de &lt;a href="http://laptop.org/index.es.html"&gt;Una Laptop Por Ni&amp;#241;o (OLPC)&lt;/a&gt; est&amp;#225;n tratando de atacar este tipo de problemas, pero la tecnolog&amp;#237;a en s&amp;#237; es una soluci&amp;#243;n insuficiente.&lt;/p&gt;  &lt;h3&gt;Generaci&amp;#243;n W&lt;/h3&gt;  &lt;p&gt;La W es de &lt;em&gt;wireless&lt;/em&gt;.&amp;#160; Esta generaci&amp;#243;n ser&amp;#237;an los hijos de la generaci&amp;#243;n M, nacidos quiz&amp;#225; unos 15 o 20 a&amp;#241;os m&amp;#225;s en el futuro.&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/generacion_w.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Si todo progresa como hasta ahora, m&amp;#225;s temprano que tarde la idea de las redes inal&amp;#225;mbricas a nivel ciudad o regi&amp;#243;n se har&amp;#225;n realidad a trav&amp;#233;s de cosas como &lt;a href="http://es.wikipedia.org/wiki/WiMAX"&gt;WiMAX&lt;/a&gt; o &lt;a href="http://en.wikipedia.org/wiki/Mesh_network"&gt;mesh networks&lt;/a&gt;.&amp;#160; En otras palabras para entonces ya no estar&amp;#225;s atado a tu casa o tu restaurante favorito para estar conectado.&amp;#160; Esto no solo dar&amp;#225; a pie a dispositivos m&amp;#225;s sencillos y a la vez sofisticados&amp;#8212;&amp;#191;imaginas el iPhone del futuro?&amp;#8212;sino que har&amp;#237;a el sue&amp;#241;o de OLPC una realidad.&lt;/p&gt;  &lt;p&gt;Una vez liberados de los cables, &lt;a href="http://www.eds.com/sites/cs/blogs/eds_next_big_thing_blog/archive/2008/02/06/the-2048-teenager-questions-the-teenager-of-today.aspx"&gt;estos ni&amp;#241;os&lt;/a&gt; podr&amp;#225;n asimilar informaci&amp;#243;n y tecnolog&amp;#237;a de manera casi instant&amp;#225;nea.&amp;#160; De hecho, la idea de adiciones bio-tecnol&amp;#243;gicas al cuerpo humano no est&amp;#225; completamente fuera del rango de posibilidades.&amp;#160; Imagina que en lugar de &lt;em&gt;cargar&lt;/em&gt; un dispositivo como un celular o tableta inteligente que te brinda informaci&amp;#243;n, &amp;#233;sta est&amp;#233; integrada a ti.&amp;#160; Una red inal&amp;#225;mbrica ubicua y un &amp;quot;chip&amp;quot; integrado podr&amp;#237;a darle la capacidad a los ni&amp;#241;os de este siglo de comunicarse y compartir informaci&amp;#243;n pseudo-ps&amp;#237;quicamente en una red verdaderamente P2P.&amp;#160; Piensa en los &lt;em&gt;Borg&lt;/em&gt;, de &lt;em&gt;Star Trek, &lt;/em&gt;pero no tan feos y con independencia de acci&amp;#243;n.&lt;/p&gt;  &lt;p&gt;&amp;#191;Todav&amp;#237;a suena como ciencia ficci&amp;#243;n?&amp;#160; Considera que en unos 15 a&amp;#241;os seguramente habr&amp;#225; avances significativos en la nanotecnolog&amp;#237;a y que seg&amp;#250;n algunos expertos &lt;a href="http://news.bbc.co.uk/1/hi/world/7248875.stm"&gt;para el 2029 tambi&amp;#233;n habr&amp;#225; tanto el hardware como el software necesario para tener inteligencia artificial a nivel humano&lt;/a&gt;.&amp;#160; Supon que se retrasen algunos a&amp;#241;os, el doble aproximadamente, y esto no se de sino hasta mediados de siglo.&amp;#160; Los ni&amp;#241;os de la generaci&amp;#243;n W estar&amp;#225;n apenas entrando a la adolescencia.&lt;/p&gt;  &lt;p&gt;Sin embargo hay cosas que podr&amp;#237;an descarrilar todo esto.&amp;#160; Conflictos globales persistentes, como la actual guerra en Irak podr&amp;#237;an llevar a un des-aplanamiento del mundo y a que se vuelvan a cerrar las fronteras, regres&amp;#225;ndonos a la era Reagan.&amp;#160; Simplemente consideren algunos de los argumentos de los actuales candidatos dem&amp;#243;cratas a la presidencia de EE.UU., Barack Obama y Hillary Clinton.&amp;#160; Ambos &lt;a href="http://www.lanacion.com.ar/exterior/nota.asp?nota_id=1002304"&gt;han expresado que quieren re-negociar el TLC&lt;/a&gt;.&amp;#160; Entre eso, y &lt;a href="http://www.lanacion.com.ar/exterior/nota.asp?nota_id=1002304"&gt;el muro&amp;#8212;perd&amp;#243;n, &amp;quot;barda&amp;quot;&amp;#8212;fronterizo&lt;/a&gt; que &lt;a href="http://mundoabierto.info/2008/03/21/eloisa-tamez-la-mujer-que-demando-a-chertoff/"&gt;tan insistentemente&lt;/a&gt; y est&amp;#225;n construyendo, no inspira precisamente un ambiente de apertura para el futuro.&amp;#160; Siguiendo esta l&amp;#237;nea de pensamiento, no es tampoco descabechado pensar en un &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Internet_censorship_in_the_People's_Republic_of_China"&gt;Great Firewall&lt;/a&gt;&lt;/em&gt; estadounidense o europeo modelado despu&amp;#233;s del de China.&amp;#160; Si esto llegara a ocurrir y regres&amp;#225;ramos a un mundo cerrado, la humanidad en mi humilde opini&amp;#243;n, se estar&amp;#237;a dando en la torre de &lt;em&gt;motu proprio&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Pero todas estas son meramente posibilidades.&amp;#160; Lo bonito del futuro es que a&amp;#250;n no est&amp;#225; escrito, &amp;#191;verdad?&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=QmDjh4G"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=QmDjh4G" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=iFjeHMg"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=iFjeHMg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=81V4FbG"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=81V4FbG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/268724503" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/268724503/la-generacin-m-al-borde-del-un-nuevo.html" title="La Generación M: Al borde del un nuevo cambio" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=2747754159993854507" title="0 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/2747754159993854507/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/2747754159993854507" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/2747754159993854507" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/04/la-generacin-m-al-borde-del-un-nuevo.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-3302014091466686109</id><published>2008-03-18T08:54:00.001-07:00</published><updated>2008-03-25T11:43:13.206-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="desarrollo web" /><category scheme="http://www.blogger.com/atom/ns#" term="diseño web" /><title type="text">Apple libera Safari para Windows, IE8 beta no me impresionó</title><content type="html">&lt;p&gt;Parece que Apple acaba de liberar la versi&amp;#243;n &lt;strong&gt;final&lt;/strong&gt; de &lt;a href="http://www.apple.com/safari/"&gt;Safari&lt;/a&gt;.&amp;#160; Y aunque las versiones beta &lt;em&gt;&lt;a href="http://www.dotnetero.com/2007/06/aventuras-con-safari-3-en-windows.html"&gt;tuvieron algunos detalles&lt;/a&gt; &lt;/em&gt;(desde problemas con los fonts hasta problemas para autenticar a trav&amp;#233;s de un proxy), la versi&amp;#243;n final parece haber atado los cabos sueltos.&amp;#160; Una adici&amp;#243;n particularmente &amp;#250;til para los desarrolladores Web es que integraron las herramientas de desarrollado (WebKit) que antes solo estaban disponibles en la Mac:&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/safari_developer_options.png" /&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/safari_developer_menu.png" /&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/safari_web_inspector.png" /&gt; &lt;/p&gt;  &lt;p&gt;Y aunque esto no es nada nuevo para gente que desarrolla con Firefox, es bueno tenerlo en otros navegadores.&lt;/p&gt;  &lt;p&gt;Por otro lado hace un par de semanas el equipo de Internet Explorer anunci&amp;#243; los features de IE8 al &lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/features.mspx"&gt;liberar el beta 1 de ese navegador&lt;/a&gt; el cual tambi&amp;#233;n incluir&amp;#225; herramientas de desarrollo Web estilo Firebug.&amp;#160; &amp;lt;sarcasmo&amp;gt;Qu&amp;#233; bien, ya no voy a tener que &lt;a href="http://www.dotnetero.com/2006/09/toolbars-y-extensiones-para-desarrollo.html"&gt;bajar el Developer Toolbar&lt;/a&gt; y el &lt;a href="http://www.nikhilk.net/Project.WebDevHelper.aspx"&gt;Web Development Helper&lt;/a&gt; por separado.&amp;lt;/sarcasmo&amp;gt;&amp;#160; En cuanto a los otros &amp;quot;features&amp;quot;, ummm, a ver: WebSlices = Firefox Live Bookmarks on steroids, Activities = Smart Tags rehashed, y AJAX navigation = Something that should come with your AJAX framework.&amp;#160; Lo &amp;#250;nico decente va a ser la mejora en el performance de JavaScript, lo cual les urg&amp;#237;a corregir, pero de ah&amp;#237; en m&amp;#225;s nada particularmente inovador.&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=uWev0XF"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=uWev0XF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=C0Ymsef"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=C0Ymsef" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=uVeLruF"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=uVeLruF" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/253706468" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/253706468/apple-libera-safari-para-windows-ie8.html" title="Apple libera Safari para Windows, IE8 beta no me impresionó" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=3302014091466686109" title="1 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/3302014091466686109/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/3302014091466686109" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/3302014091466686109" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/03/apple-libera-safari-para-windows-ie8.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-7993445719600984423</id><published>2008-02-27T17:34:00.001-07:00</published><updated>2008-02-27T17:34:40.811-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="los mejorcitos" /><category scheme="http://www.blogger.com/atom/ns#" term="desarrollo de software" /><title type="text">Aguas con el SDC (Síndrome del Desarrollador Callado)</title><content type="html">&lt;p&gt;Ya van varias veces que veo esto ocurrir en diferentes proyectos y diferentes compa&amp;#241;&amp;#237;as, as&amp;#237; que asumo que es algo relativamente com&amp;#250;n. &lt;/p&gt;  &lt;p&gt;La historia casi siempre es la misma: se vende un proyecto grande a un cliente, quiz&amp;#225; algo ajustado de tiempo, pero suficiente para hacerlo.&amp;#160; Se hace el an&amp;#225;lisis y se bosqueja el dise&amp;#241;o r&amp;#225;pidamente.&amp;#160; Se reparte la chamba y todos en el equipo se ponen a jalar: &amp;quot;T&amp;#250; avi&amp;#233;ntate este m&amp;#243;dulo, t&amp;#250; este y yo este otro&amp;quot;.&lt;/p&gt;  &lt;p&gt;Ves a uno de los desarrolladores involucrados en el proyecto todos los d&amp;#237;as en su esquinita, tecleando como hormiga.&amp;#160; Sabes que est&amp;#225; chambeando (o al menos &lt;i&gt;crees&lt;/i&gt; saber que est&amp;#225; chambeando).&amp;#160; Cuando le preguntan: &lt;/p&gt;  &lt;p&gt;&amp;#8212;&amp;#191;Qu&amp;#233; rollo? &amp;#191;C&amp;#243;mo vas con eso? &lt;/p&gt;  &lt;p&gt;&amp;#8212;Bien&amp;#8212;contesta sencillamente.&amp;#160; No se queja, no da detalles.&amp;#160; As&amp;#237; que &lt;i&gt;asumes&lt;/i&gt; que todo va bien, &amp;#191;verdad?&lt;/p&gt;  &lt;p&gt;Pasa una semana, quiz&amp;#225; un mes o dos... tres meses, y de pronto esa persona comienza a enfermarse o a faltar misteriosamente y de buenas a primeras decide renunciar.&amp;#160; Para entonces ya est&amp;#225;s a una semana de entregar el sistema que prometiste, y cuando comienzas revisar el c&amp;#243;digo que el cuate hizo, te das cuenta que: 1) lo que hizo no funciona o 2) lo que hizo hace &lt;i&gt;algo&lt;/i&gt; pero no era lo que se supone que ten&amp;#237;a que hacer.&amp;#160; En otras palabras est&amp;#225;s &lt;strike&gt;jodido&lt;/strike&gt; en aprietos.&lt;/p&gt;  &lt;p&gt;Entonces el proyecto entra en p&amp;#225;nico.&amp;#160; Se oprime el bot&amp;#243;n rojo y comienzan a sonar alarmas.&amp;#160; Llamadas desesperadas.&amp;#160; Baja de unas cuerdas del techo un equipo S.W.A.T. de desarrolladores externos (o si no tienes pues con los mismos de tu equipo) y se junta a la raza en el &lt;i&gt;war room&lt;/i&gt; para ver c&amp;#243;mo canijos se puede hacer en una semana lo que un chango no hizo en 3 o 4 meses.&amp;#160; Todo mundo entra en &lt;i&gt;overdrive&lt;/i&gt; codificando d&amp;#237;a, noche y fines de semana casi sin dormir.&lt;/p&gt;  &lt;p&gt;Si tienes suerte, y gente MUY talentosa, igual y logras la meta.&amp;#160; Pero muchas veces no es suficiente.&lt;/p&gt;  &lt;p&gt;&amp;#191;Qu&amp;#233; fue lo que pas&amp;#243;?&amp;#160; Acabas de ser v&amp;#237;ctima del SDC, o S&amp;#237;ndrome del Desarrollador Callado.&lt;/p&gt;  &lt;p&gt;Una de las cosas que a menudo hacemos al desarrollar software es que cuando el &lt;i&gt;schedule&lt;/i&gt; anda apretado, lo primero que se hace es mandar a la goma las revisiones de c&amp;#243;digo, las pruebas unitarias, etc&amp;#233;tera.&amp;#160; Es decir, lo primero en sacrificarse en aras del calendario, normalmente son las buenas pr&amp;#225;cticas de desarrollo de software, que ir&amp;#243;nicamente son tu m&amp;#225;s valiosa herramienta para terminar a tiempo y con calidad.&amp;#160; &lt;/p&gt;  &lt;p&gt;Lo que acaba ocurriendo es que si las sacrificas y tienes uno de esos desarrolladores con SDC, lo m&amp;#225;s probable es que esa persona no est&amp;#233; entendiendo los requerimientos y/o no tenga las habilidades para pasarlos a c&amp;#243;digo y tiene demasiado temor de que se sepa.&amp;#160; As&amp;#237; que no pide ayuda, no se queja, no hace preguntas.&amp;#160; Simplemente se va a su esquinita y hace el intento.&amp;#160; Cuando va pasando el tiempo y se acerca el &lt;i&gt;deadline&lt;/i&gt; (por algo trae &lt;i&gt;dead&lt;/i&gt; la palabra) esa persona comienza a sentir la presi&amp;#243;n que a menudo se manifiesta en enfermedad/desaparici&amp;#243;n.&lt;/p&gt;  &lt;p&gt;No me malinterpreten, conozco dos o tres desarrolladores excelentes, algo anti-sociales, que chambean en su cub&amp;#237;culo/esquina, calladitos, enclaustrados una semana o dos y cuando emergen salen con una fregoner&amp;#237;a de c&amp;#243;digo.&amp;#160; Pero son &lt;b&gt;dos o tres&lt;/b&gt; de un montononal que conozco. &lt;/p&gt;  &lt;p&gt;Lo peor es que la soluci&amp;#243;n al SDC casi siempre es bien simple: hacer revisiones frecuentes del avance, no solo a lo que se ve (es decir, las pantallas, p&amp;#225;ginas, o lo que sea visible del sistema), sino a nivel c&amp;#243;digo.&amp;#160; Cada semana (cuando MUCHO) juntar a otro desarrollador, y a un &lt;i&gt;tester&lt;/i&gt; o persona que conozca los requerimientos: &amp;#8212;A ver, vamos a ver c&amp;#243;mo va esa pantalla.&lt;/p&gt;  &lt;p&gt;No se trata de traer a la raza a latigazos, y tampoco se trata de hacer que la raza no le busque por su cuenta.&amp;#160; Se trata de no esperarse para descubrir las broncas cuando es demasiado tarde para hacer algo al respecto.&amp;#160; Sobre todo de que no se atasque el proyecto por cosas sencillas.&amp;#160; Yo, personalmente, si me atoro con algo (ya &lt;i&gt;googuli&amp;#233;&lt;/i&gt;, y ya lo intent&amp;#233; de dos o tres formas distintas) m&amp;#225;s de 3 o 4 horas y no puedo salir de ah&amp;#237;, inmediatamente agarro uno de mis compa&amp;#241;eros y comienzo a explicarle el problema.&amp;#160; A veces con solo explicarlo se me viene una idea que resuelve el ator&amp;#243;n, y cuando no, ellos me pueden dar ideas nuevas o enfoques que a m&amp;#237; no se me hab&amp;#237;an ocurrido.&amp;#160; Por muy chicho que creas ser, nunca faltan los d&amp;#237;as&amp;#8212;o meses jejeje&amp;#8212;en los que puedes caer en un &lt;i&gt;lapsus brutus.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;As&amp;#237; que si son uno de esos desarrolladores con SDC, &lt;i&gt;por amor de Diosito&lt;/i&gt;, levanten la mano cuando se les atore la carreta.&amp;#160; No se esperen a que sea demasiado tarde.&amp;#160; Les prometo que nadie los va a morder. &lt;/p&gt;  &lt;p&gt;&lt;img alt="smile_shades" src="http://spaces.live.com/rte/emoticons/smile_shades.gif" /&gt;&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=N0B33dE"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=N0B33dE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=RBt0PLe"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=RBt0PLe" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=eXwlrQE"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=eXwlrQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/242410431" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/242410431/aguas-con-el-sdc-sndrome-del.html" title="Aguas con el SDC (Síndrome del Desarrollador Callado)" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=7993445719600984423" title="2 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/7993445719600984423/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/7993445719600984423" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/7993445719600984423" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/02/aguas-con-el-sdc-sndrome-del.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-1712834990392775900</id><published>2008-01-28T23:50:00.001-07:00</published><updated>2008-01-28T23:50:33.116-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comunidad" /><category scheme="http://www.blogger.com/atom/ns#" term="anuncios" /><title type="text">Evento de Microsoft en El Paso</title><content type="html">&lt;p&gt;Dado que no s&amp;#233; si el grupo de usuarios de .NET de El Paso ya pas&amp;#243; a mejor vida, les paso informaci&amp;#243;n de un evento que realizar&amp;#225; Microsoft este pr&amp;#243;ximo jueves.&amp;#160; Se me hizo interesante, ya que &amp;#250;ltimamente he estado hablando de &lt;a href="http://www.dotnetero.com/search/label/iis"&gt;IIS 7&lt;/a&gt; y &lt;a href="http://www.dotnetero.com/search/label/asp.net"&gt;ASP.NET&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MSDN Events: What&amp;#8217;s New in IIS7 and Extending ASP.NET 2.0 Application Services&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thursday,&lt;/strong&gt; &lt;strong&gt;January 31, 2008 12:00 PM - 4:00 PM&lt;/strong&gt;    &lt;br /&gt;Welcome Time: 11:30 AM&lt;/p&gt;  &lt;p&gt;Theater - Cinemark Tinseltown USA&lt;/p&gt;  &lt;p&gt;11855 Gateway West    &lt;br /&gt;El Paso Texas 79936     &lt;br /&gt;United States&lt;/p&gt;  &lt;p&gt;Para registrarse y obtener m&amp;#225;s detalles sobre el evento, vayan a la siguiente direcci&amp;#243;n:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032359805"&gt;http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032359805&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Tengan en mente que &lt;strong&gt;este evento es en ingl&amp;#233;s&lt;/strong&gt; (que igual no es problema).&amp;#160; Tambi&amp;#233;n tomen en cuenta que aunque la p&amp;#225;gina de registro dice que es de 1PM a 5PM, esto es tiempo del Centro as&amp;#237; que ser&amp;#237;a de 12PM a 5PM tiempo local.&lt;/p&gt;  &lt;p&gt;Les resalto los temas que me parecieron interesantes: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session 1 | Safer, Smarter, Stronger: What&amp;#8217;s New for Web Developers in IIS7&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Authentication methods and integration between ASP.NET and IIS 7 &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Writing IIS managed handlers and modules&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;How the IIS protocol listeners support hosting WCF services on TCP, Named Pipes and more&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;IIS handler permissions, request filtering and administration lists &lt;/li&gt;    &lt;li&gt;How the XML replacement for the Metdata Config file makes it easy to duplicate Web servers &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Features and protocols that make IIS 7 secure right out of the box&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Session 2 | Extending ASP.NET 2.0 Application Services&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Membership, role and profile provider overviews &lt;/li&gt;    &lt;li&gt;How to configure the built-in providers and use the basic login, role and navigation controls &lt;/li&gt;    &lt;li&gt;How to create and integrate a custom provider &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Using application services from AJAX and Silverlight clients&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Using ASP.NET 3.5 client application services from a Windows client.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Espero verlos ah&amp;#237;. &lt;img alt="smile_shades" src="http://spaces.live.com/rte/emoticons/smile_shades.gif" /&gt;&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=ayi0umD"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=ayi0umD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=V81R5id"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=V81R5id" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=H7PEPkD"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=H7PEPkD" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/225055594" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/225055594/evento-de-microsoft-en-el-paso.html" title="Evento de Microsoft en El Paso" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=1712834990392775900" title="1 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/1712834990392775900/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/1712834990392775900" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/1712834990392775900" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/01/evento-de-microsoft-en-el-paso.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-4242654741216026431</id><published>2008-01-25T01:07:00.001-07:00</published><updated>2008-03-25T11:42:46.179-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="los mejorcitos" /><category scheme="http://www.blogger.com/atom/ns#" term="windows vista" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="iis" /><title type="text">¿Dónde quedó el usuario ASPNET en Windows Vista? ¿Y qué $#!N&amp;@2 es eso de los Application Pools?</title><content type="html">&lt;p&gt;Hoy aprend&amp;#237; algunas cosas m&amp;#225;s al continuar con mis aventuras de desarrollo ASP.NET en Windows Vista.&amp;#160; Muchas de estas cosas aparentemente no son nuevas, vienen desde IIS 6 que era la versi&amp;#243;n incluida con Windows Server 2003, pero yo nunca los us&amp;#233;, as&amp;#237; que hasta ahora me vengo enterando.&lt;/p&gt;  &lt;p&gt;La primer lecci&amp;#243;n sali&amp;#243; cuando andaba buscando el usuario &lt;strong&gt;ASPNET&lt;/strong&gt; de mi m&amp;#225;quina para asignarle permisos de escritura sobre un directorio donde mi aplicaci&amp;#243;n &lt;a href="http://www.dotnetero.com/2007/12/cmo-subir-un-archivo-tu-servidor-web.html"&gt;permite que los usuarios suban archivos&lt;/a&gt;.&amp;#160; Despu&amp;#233;s de un rato de jugar &lt;em&gt;Where's Waldo&lt;/em&gt; con el usuario, me convenc&amp;#237; que simplemente no exist&amp;#237;a.&amp;#160; Resulta que el &lt;strong&gt;ASP.NET Worker Process&lt;/strong&gt;&amp;#8212;el proceso bajo el cual se ejecuta el c&amp;#243;digo de ASP.NET&amp;#8212;corre ahora por &lt;em&gt;default&lt;/em&gt; bajo la cuenta &lt;strong&gt;NETWORK SERVICE &lt;/strong&gt;(aunque esto se puede cambiar f&amp;#225;cilmente).&amp;#160; Ah, y por cierto, el &lt;em&gt;Worker Process&lt;/em&gt; ahora se llama &lt;strong&gt;w3wp.exe&lt;/strong&gt;, en lugar de aspnet_wp.exe.&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/AppPools/w3wp.png" /&gt; &lt;/p&gt;  &lt;p&gt;La segunda lecci&amp;#243;n vino cuando quise correr mi aplicaci&amp;#243;n.&amp;#160; Resulta que si usas m&amp;#243;dulos HTTP (&amp;lt;httpModules&amp;gt;) en tu web.config, recibir&amp;#225;s un mensaje de error porque IIS 7 intenta correr las aplicaciones por &lt;em&gt;default&lt;/em&gt; en un &lt;strong&gt;Application Pool &lt;/strong&gt;llamado&amp;#8212;duh&amp;#8212;DefaultAppPool, y &amp;#233;ste tiene un &lt;strong&gt;Managed Pipeline Mode &lt;/strong&gt;puesto a &lt;strong&gt;Integrated&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;&amp;#191;G&amp;#252;at?&lt;/strong&gt;&lt;/em&gt;&amp;#160; A ver si me puedo explicar.&amp;#160; Si abres la consola administrativa de IIS y te vas a Application Pools, ver&amp;#225;s algo como esto:&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/AppPools/ApplicationPools.png" /&gt; &lt;/p&gt;  &lt;p&gt;De caj&amp;#243;n, Vista tra&amp;#237;a los dos primeros&amp;#8212;&lt;strong&gt;Classic .NET AppPool&lt;/strong&gt; y &lt;strong&gt;DefaultAppPool&lt;/strong&gt;.&amp;#160; El tercero fue creado cuando instal&amp;#233; SQL Server Reporting Services, as&amp;#237; que por ahora ign&amp;#243;ralo.&lt;/p&gt;  &lt;p&gt;Lo primero que me pregunt&amp;#233; fue &amp;#191;qu&amp;#233; &lt;em&gt;&lt;strike&gt;$#!N&amp;amp;@2&lt;/strike&gt;&lt;/em&gt; demonios es eso de los &lt;strong&gt;Application Pools&lt;/strong&gt;?&lt;/p&gt;  &lt;p&gt;Resulta que es una manera muy padre de segregar y asignar una aplicaci&amp;#243;n Web&amp;#8212;o m&amp;#225;s correctamente &lt;a href="http://www.dotnetero.com/2006/10/y-tu-dominas-tus-aplicaciones.html"&gt;su Application Domain&lt;/a&gt;&amp;#8212;a un &lt;em&gt;Worker Process&lt;/em&gt; determinado.&amp;#160; Un &lt;em&gt;Pool &lt;/em&gt;puede tener varios &lt;strong&gt;AppDomain&lt;/strong&gt;s, y estos estar&amp;#225;n separados de los que corran en otros &lt;em&gt;pools.&lt;/em&gt; Considera este ejemplo:&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/AppPools/DiagramaApplicationPools.png" /&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Aqu&amp;#237; tenemos tres aplicaciones de ASP.NET, cada una con su directorio virtual.&amp;#160; Las primeras dos est&amp;#225;n asignadas al primer &lt;em&gt;Application Pool&lt;/em&gt;, y la tercera aplicaci&amp;#243;n est&amp;#225; asignada al segundo.&amp;#160; Esto es EXCELENTE por varias razones:&lt;/p&gt;  &lt;p&gt;&amp;#191;Que pasaba antes si una falla en una de las aplicaciones web hac&amp;#237;a que se reciclara el &lt;em&gt;Worker Process&lt;/em&gt;?&amp;#160; Pues todas las aplicaciones se &amp;quot;reiniciaban&amp;quot;&amp;#8212;botando posiblemente a las sesiones y todo el show&amp;#8212;porque los &lt;em&gt;Application Domains &lt;/em&gt;est&amp;#225;n corriendo en el mismo proceso ejecutable. Me ha pasado. Ten&amp;#237;amos una applicaci&amp;#243;n Web corriendo en el mismo servidor que un servicio Web (en una m&amp;#225;quina con Windows 2000 si mal no recuerdo), y de vez en cuando la aplicaci&amp;#243;n hac&amp;#237;a que se reciclara el &lt;em&gt;Worker Process&lt;/em&gt;&amp;#8212;maldito Crystal Reports&amp;#8212;llev&amp;#225;ndose entre las patas al &lt;em&gt;Web Service&lt;/em&gt;.&amp;#160; Ahora es posible asilar ese tipo de fallas.&lt;/p&gt;  &lt;p&gt;&amp;#191;O qu&amp;#233; pasar&amp;#237;a si quiero correr una aplicaci&amp;#243;n de ASP.NET v1.x en el mismo servidor que una de ASP.NET v2.x?&amp;#160; Un &lt;em&gt;Worker Process &lt;/em&gt;solo puede correr una versi&amp;#243;n del .NET Framework, hasta donde s&amp;#233;, as&amp;#237; que con Application Pools ahora puedes lograrlo.&lt;/p&gt;  &lt;p&gt;Y m&amp;#225;s relevante para el problema que yo ten&amp;#237;a, IIS 7 tiene una manera distinta de manejar los httpModules&amp;#8212;llamado &lt;strong&gt;Managed Pipeline Mode&lt;/strong&gt;. DefaultAppPool usa &lt;strong&gt;Integrated&lt;/strong&gt;. As&amp;#237; que lo que ten&amp;#237;a que hacer en mi caso era asignar el directorio virtual de mi aplicaci&amp;#243;n al Classic .NET AppPool que utiliza el modo &lt;strong&gt;Classic&lt;/strong&gt;, para no tener que cambiar la configuraci&amp;#243;n (y posiblemente c&amp;#243;digo) de mi aplicaci&amp;#243;n.&lt;/p&gt;  &lt;p&gt;Si inspeccionas las opciones avanzadas de un &lt;em&gt;Application Pool&lt;/em&gt; te das cuenta que puedes configurar cosas interesantes.&amp;#160; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/AppPools/ApplicationPoolAdvancedProperties.png" /&gt; &lt;/p&gt;  &lt;p&gt;Las que me llamaron la atenci&amp;#243;n fueron:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;.NET Framework Version.&lt;/strong&gt; Para seleccionar qu&amp;#233; versi&amp;#243;n quieres utilizar para las aplicaciones Web que corren en el &lt;em&gt;Pool&lt;/em&gt;, o si no quieres permitir que corra c&amp;#243;digo administrado (p.ej. una aplicaci&amp;#243;n de ASP cl&amp;#225;sico o PHP que no tenga nada que ver con .NET). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Managed Pipeline Mode&lt;/strong&gt;.&amp;#160; &lt;strong&gt;Integrated&lt;/strong&gt; utiliza el modo IIS 7, donde la configuraci&amp;#243;n de los httpModules est&amp;#225;n centralizados y supuestamente tiene varios beneficios que a&amp;#250;n no conozco; &lt;strong&gt;Classic&lt;/strong&gt; permite que cada aplicaci&amp;#243;n web mantenga su configuraci&amp;#243;n. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Identity&lt;/strong&gt;.&amp;#160; La cuenta de usuario y bajo el cual corre el &lt;em&gt;Worker Process&lt;/em&gt;. Esto afecta directamente los permisos de seguridad de las aplicaciones en el &lt;em&gt;Pool&lt;/em&gt;.&amp;#160; Los valores posibles son: &lt;strong&gt;NetworkService&lt;/strong&gt;, &lt;strong&gt;LocalService&lt;/strong&gt;, &lt;strong&gt;LocalSystem&lt;/strong&gt;, &lt;strong&gt;SpecificUser&lt;/strong&gt;; este &amp;#250;ltimo por si quieres especificar una cuenta creada por ti. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Identity Specific User Credentials&lt;/strong&gt;.&amp;#160; Para poner las &amp;quot;credenciales&amp;quot; (el password pues) del usuario si usas Identity=SpecificUser. &lt;/li&gt;    &lt;li&gt;CPU &lt;strong&gt;Limit&lt;/strong&gt;, &lt;strong&gt;Limit Interval &lt;/strong&gt;y &lt;strong&gt;Limit Action&lt;/strong&gt;.&amp;#160; Sirven para limitar el porcentaje de CPU que consume el &lt;em&gt;Worker Process &lt;/em&gt;en un tiempo determinado y hacer algo si se excede, como por ejemplo, matarlo. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Private Memory Limit&lt;/strong&gt; y &lt;strong&gt;Virtual Memory Limit&lt;/strong&gt;.&amp;#160; Sirven para limitar la memoria real y virtual que utiliza el &lt;em&gt;Worker Process&lt;/em&gt;. &amp;#191;Alguna vez le has pegado a un System.OutOfMemoryException? Yo si, y no es divertido. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Una vez que comenc&amp;#233; a entender este rollo, asignar mi aplicaci&amp;#243;n al &lt;em&gt;Pool &lt;/em&gt;correcto fue s&amp;#250;per sencillo.&amp;#160; Simplemente te vas a las opciones avanzadas de tu directorio virtual y lo cambias. &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/AppPools/VirtualDirectoryAdvancedProperties.png" /&gt;&amp;#160; &lt;/p&gt; Enjoy &lt;img alt="smile_shades" src="http://spaces.live.com/rte/emoticons/smile_shades.gif" /&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=IyTDhtD"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=IyTDhtD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=qGam0Pd"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=qGam0Pd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=gmuUZUD"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=gmuUZUD" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/222781629" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/222781629/dnde-qued-el-usuario-aspnet-en-windows.html" title="¿Dónde quedó el usuario ASPNET en Windows Vista? ¿Y qué $#!N&amp;amp;@2 es eso de los Application Pools?" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=4242654741216026431" title="2 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/4242654741216026431/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/4242654741216026431" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/4242654741216026431" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/01/dnde-qued-el-usuario-aspnet-en-windows.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-4736993296924326090</id><published>2008-01-22T13:47:00.001-07:00</published><updated>2008-03-25T11:42:46.181-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="los mejorcitos" /><category scheme="http://www.blogger.com/atom/ns#" term="sql server" /><category scheme="http://www.blogger.com/atom/ns#" term="windows vista" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="iis" /><title type="text">Cómo configurar IIS 7 en Windows Vista para desarrollar con Visual Studio 2005 y SQL Server 2005</title><content type="html">&lt;p&gt;Aunque Windows Vista ya tiene m&amp;#225;s del a&amp;#241;o que sali&amp;#243;, apenas hasta estos d&amp;#237;as pude migrar mi m&amp;#225;quina primaria de trabajo a este sistema operativo&amp;#8212;solo digamos que la empresa para la que chambeo es muuuuuuy cautelosa con este tipo de cambios.&amp;#160; Y aunque tambi&amp;#233;n ya sali&amp;#243; Visual Studio 2008, a&amp;#250;n tengo que utilizar la versi&amp;#243;n 2005.&lt;/p&gt;  &lt;p&gt;Desarrollo principalmente aplicaciones ASP.NET y tambi&amp;#233;n necesito tener SQL Server 2005 Developer instalado localmente para correr tanto la base de datos como Reporting Services.&amp;#160; &lt;/p&gt;  &lt;p&gt;Pero al intentar instalar estas herramientas me top&amp;#233; inmediatamente con los cambios en la manera que instalas IIS en Windows Vista.&amp;#160; Ya me hab&amp;#237;an platicado que IIS 7 era m&amp;#225;s modular, pero no me hab&amp;#237;an dicho &lt;em&gt;qu&amp;#233; tanto&lt;/em&gt;.&amp;#160; Por &lt;em&gt;default, &lt;/em&gt;IIS ni siquiera viene habilitado, as&amp;#237; que lo primero que tienes que hacer es instalarlo.&amp;#160; &lt;/p&gt;  &lt;p&gt;Es sencillo, te vas a &lt;strong&gt;Control Panel &amp;gt; Programs &amp;gt; Turn Windows features on or off&lt;/strong&gt;.&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/IIS7/VistaControlPanel_TurnWindowsFeatur.png" /&gt; &lt;/p&gt;  &lt;p&gt;De las opciones que aparecen, &lt;em&gt;palomea&lt;/em&gt; (osea dale clic en el &lt;em&gt;checkbox&lt;/em&gt;) a lo siguiente, en este orden:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Internet Information Services&lt;/strong&gt;.&amp;#160; Esto selecciona autom&amp;#225;ticamente lo necesario para correr IIS. &lt;/li&gt;    &lt;li&gt;IIS &amp;gt; WWW Services &amp;gt; Application Development Features &amp;gt; &lt;strong&gt;ASP.NET&lt;/strong&gt;.&amp;#160; Esto selecciona autom&amp;#225;ticamente lo necesario para correr aplicaciones de ASP.NET. &lt;/li&gt;    &lt;li&gt;IIS &amp;gt; Web Management Tools &amp;gt; IIS 6 Management Compatibility &amp;gt; &lt;strong&gt;IIS Metabase&lt;/strong&gt; and IIS 6 configuration compatibility.&amp;#160; Este componente es necesario para Visual Studio 2005. &lt;/li&gt;    &lt;li&gt;Ya que andas por ah&amp;#237;, selecciona &lt;strong&gt;IIS 6 WMI Compatibility&lt;/strong&gt;.&amp;#160; Este lo necesita SQL Server 2005. &lt;/li&gt;    &lt;li&gt;IIS &amp;gt; WWW Services &amp;gt; Common Http Features &amp;gt; &lt;strong&gt;HTTP Redirection&lt;/strong&gt;.&amp;#160; Este tambi&amp;#233;n lo necesita SQL Server. &lt;/li&gt; &lt;/ol&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/IIS7/IIS7OptionsForVS2005andSQLServer200.png" /&gt; &lt;/p&gt;  &lt;p&gt;Da clic en &lt;strong&gt;OK&lt;/strong&gt;, y se instalar&amp;#225;n los componentes seleccionados.&lt;/p&gt;  &lt;p&gt;Como puedes ver, solo necesitas 1, 2 y 3 para desarrollar ASP.NET con Visual Studio 2005.&amp;#160; Y si necesitas SQL Server 2005, agregas las opciones 3, y 4.&lt;/p&gt;  &lt;p&gt;Si intentas instalar SQL Server sin lo anterior, es muy probable que recibas una advertencia como la siguiente:&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/screenshots/IIS7/SQLServer2005WarningOnVista.png" /&gt; &lt;/p&gt;  &lt;p&gt;Enjoy &lt;img alt="smile_shades" src="http://spaces.live.com/rte/emoticons/smile_shades.gif" /&gt;&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=c6rBTuD"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=c6rBTuD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=trwFjnd"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=trwFjnd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=3vrNLMD"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=3vrNLMD" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/221198371" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/221198371/cmo-configurar-iis-7-en-windows-vista.html" title="Cómo configurar IIS 7 en Windows Vista para desarrollar con Visual Studio 2005 y SQL Server 2005" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=4736993296924326090" title="1 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/4736993296924326090/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/4736993296924326090" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/4736993296924326090" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/01/cmo-configurar-iis-7-en-windows-vista.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-3872672968108567145</id><published>2008-01-12T13:41:00.001-07:00</published><updated>2008-01-12T13:44:43.108-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cotorreo" /><title type="text">Bill Gates’ last day at Microsoft (video)</title><content type="html">&lt;p&gt;Hay que verlo para creerlo... &lt;img alt="smile_tongue" src="http://spaces.live.com/rte/emoticons/smile_tongue.gif" /&gt;&lt;/p&gt;  &lt;blockquote&gt;A video spoof shown during the CES 2008 keynote by Bill Gates about his last full day at Microsoft in July starring himself, Brian Williams, Steve Ballmer, Matthew McConaugheyr [sic], Robbie Bach, Jay-Z, Bono, Steven Spielberg, George Clooney, Jon Stewart, Kevin Turner, Hillary Clinton, Barack Obama, Al Gore, Ray Ozzie and Craig Mundie [...] Amazing who they can call for a guest appearance in the name of Bill Gates.&lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://www.istartedsomething.com/20080107/bill-gates-last-day-microsoft-video/"&gt;Bill Gates&amp;#8217; last day at Microsoft (video) - istartedsomething&lt;/a&gt;&lt;/p&gt;  &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=EaWmt9D"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=EaWmt9D" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=31Ox81d"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=31Ox81d" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ElOtroLado?a=Y7UXeKD"&gt;&lt;img src="http://feeds.feedburner.com/~f/ElOtroLado?i=Y7UXeKD" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElOtroLado/~4/215651167" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ElOtroLado/~3/215651167/bill-gates-last-day-at-microsoft-video.html" title="Bill Gates’ last day at Microsoft (video)" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=22529781&amp;postID=3872672968108567145" title="0 comentarios" /><link rel="replies" type="application/atom+xml" href="http://www.dotnetero.com/feeds/3872672968108567145/comments/default" title="Enviar comentarios" /><link rel="self" type="application/atom+xml" href="http://www.dotnetero.com/feeds/posts/full/3872672968108567145" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/22529781/posts/full/3872672968108567145" /><author><name>Carlos Rubalcava</name><uri>http://www.blogger.com/profile/10848793413989996197</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://www.dotnetero.com/2008/01/bill-gates-last-day-at-microsoft-video.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-22529781.post-7692483925880434585</id><published>2007-12-13T12:55:00.001-07:00</published><updated>2008-03-25T11:42:46.183-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="los mejorcitos" /><category scheme="http://www.blogger.com/atom/ns#" term="vb.net" /><category scheme="http://www.blogger.com/atom/ns#" term="ado.net" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><title type="text">Cómo leer archivos planos con ADO.NET (versión Visual Basic 2005)</title><content type="html">&lt;p&gt;Hace poco m&amp;#225;s de un a&amp;#241;o escrib&amp;#237; &lt;a href="http://www.dotnetero.com/2006/11/cmo-leer-archivos-planos-con-adonet.html" target="_blank"&gt;este art&amp;#237;culo&lt;/a&gt; que describe una t&amp;#233;cnica para leer archivos &lt;em&gt;planos &lt;/em&gt;utilizando el OleDB provider de ADO.NET.&amp;#160; Es uno de los art&amp;#237;culos de este sitio que ha recibido m&amp;#225;s comentarios, y entre ellos est&amp;#225; &lt;a href="http://www.dotnetero.com/2006/11/cmo-leer-archivos-planos-con-adonet.html#comment-7400577416392422469" target="_blank"&gt;uno que dej&amp;#243; fredy&lt;/a&gt; que me hizo re-hacer el ejemplo en Visual Basic 2005 para comprobar que no fuera un error de c&amp;#243;digo&amp;#8212;en realidad &amp;#233;l hizo la mayor parte de la chamba para &amp;quot;traducir&amp;quot; la rutina.&lt;/p&gt;  &lt;p&gt;No voy a explicar mucho la l&amp;#243;gica del c&amp;#243;digo&amp;#8212;para eso te dejo de tarea que leas &lt;a href="http://www.dotnetero.com/2006/11/cmo-leer-archivos-planos-con-adonet.html" target="_blank"&gt;el art&amp;#237;culo original&lt;/a&gt;&amp;#8212;aqu&amp;#237; simplemente te comparto c&amp;#243;mo se ver&amp;#237;a la rutina en VB:&lt;/p&gt;  &lt;div style="border-right: #cccccc 1pt dashed; padding-right: 5pt; border-top: #cccccc 1pt dashed; padding-left: 5pt; font-size: 9pt; background: #f5f5f5; padding-bottom: 5pt; overflow: auto; border-left: #cccccc 1pt dashed; width: 95%; color: black; max-height: 500px; padding-top: 5pt; border-bottom: #cccccc 1pt dashed; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;   &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;Imports&lt;/span&gt; System.IO&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;Imports&lt;/span&gt; System.Data&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;Imports&lt;/span&gt; System.Data.OleDb&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;Module&lt;/span&gt; Utilerias&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Public&lt;/span&gt; &lt;span style="color: blue"&gt;Enum&lt;/span&gt; TipoDeArchivoPlano&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Delimited&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Fixed&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Enum&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Public&lt;/span&gt; &lt;span style="color: blue"&gt;Function&lt;/span&gt; LeerArchivoPlano(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; archivo &lt;span style="color: blue"&gt;As&lt;/span&gt; FileInfo, _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;ByVal&lt;/span&gt; tieneEncabezado &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Boolean&lt;/span&gt;, _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;ByVal&lt;/span&gt; tipoDeArchivo &lt;span style="color: blue"&gt;As&lt;/span&gt; TipoDeArchivoPlano) &lt;span style="color: blue"&gt;As&lt;/span&gt; DataTable&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;If&lt;/span&gt; (&lt;span style="color: blue"&gt;Not&lt;/span&gt; archivo.Exists) &lt;span style="color: blue"&gt;Then&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Throw&lt;/span&gt; &lt;span style="color: blue"&gt;New&lt;/span&gt; FileNotFoundException(&lt;span style="color: #a31515"&gt;&amp;quot;No se encontr&amp;#243; el archivo especificado&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;If&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Dim&lt;/span&gt; conEncabezado &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;String&lt;/span&gt; = IIf(tieneEncabezado, &lt;span style="color: #a31515"&gt;&amp;quot;YES&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;NO&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Dim&lt;/span&gt; connectionString &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;String&lt;/span&gt; = _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;String&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};&amp;quot;&lt;/span&gt; + _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;&amp;quot;Extended Properties='text;HDR={1};FMT={2}'&amp;quot;&lt;/span&gt;, _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; archivo.DirectoryName, conEncabezado, tipoDeArchivo.ToString())&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Dim&lt;/span&gt; dt &lt;span style="color: blue"&gt;As&lt;/span&gt; DataTable = &lt;span style="color: blue"&gt;New&lt;/span&gt; DataTable(&lt;span style="color: #a31515"&gt;&amp;quot;miTabla&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Using&lt;/span&gt; conn &lt;span style="color: blue"&gt;As&lt;/span&gt; OleDbConnection = &lt;span style="color: blue"&gt;New&lt;/span&gt; OleDbConnection(connectionString)&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Using&lt;/span&gt; da &lt;span style="color: blue"&gt;As&lt;/span&gt; OleDbDataAdapter = &lt;span style="color: blue"&gt;New&lt;/span&gt; OleDbDataAdapter( _&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;&amp;quot;SELECT * FROM &amp;quot;&lt;/span&gt; + archivo.Name, conn)&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; da.Fill(dt)&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Using&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Using&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Return&lt;/span&gt; dt&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Function&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Module&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;br /&gt;

&lt;p&gt;Para probarla, hice una aplicaci&amp;#243;n sencilla en ASP.NET que mostrara los datos de un archivo .CSV que est&amp;#225; dentro de un subdirectorio del sitio web.&lt;/p&gt;

&lt;p align="center"&gt;&lt;img src="http://i110.photobucket.com/albums/n109/carlosrubalcava/blog-images/LeerArchivosPlanosConOleDBProvider/SolutionExplorer.png" /&gt;&lt;/p&gt;

&lt;p&gt;El archivo &lt;strong&gt;jason.csv&lt;/strong&gt; contiene:&lt;/p&gt;

&lt;div style="border-right: #cccccc 1pt dashed; padding-right: 5pt; border-top: #cccccc 1pt dashed; padding-left: 5pt; font-size: 9pt; background: #f5f5f5; padding-bottom: 5pt; overflow: auto; border-left: #cccccc 1pt dashed; width: 95%; color: black; max-height: 500px; padding-top: 5pt; border-bottom: #cccccc 1pt dashed; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;
  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;Producto,Cantidad,Precio&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;Sierra el&amp;#233;ctrica,1,250&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;M&amp;#225;scara de hockey,1,15.50&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;Machete,5,2.70&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;Detergente para ropa (con quita-manchas),1,10&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;Delantal,2,7.25&lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;Afilador,3,5&lt;/pre&gt;
&lt;/div&gt;

&lt;br /&gt;

&lt;p&gt;La p&amp;#225;gina dentro de la soluci&amp;#243;n que en realidad solo tiene un GridView.&amp;#160; Este es el contenido de &lt;strong&gt;Default.aspx&lt;/strong&gt;:&lt;/p&gt;

&lt;div style="border-right: #cccccc 1pt dashed; padding-right: 5pt; border-top: #cccccc 1pt dashed; padding-left: 5pt; font-size: 9pt; background: #f5f5f5; padding-bottom: 5pt; overflow: auto; border-left: #cccccc 1pt dashed; width: 95%; color: black; max-height: 500px; padding-top: 5pt; border-bottom: #cccccc 1pt dashed; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;
  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;@&lt;/span&gt; &lt;span style="color: #a31515"&gt;Page&lt;/span&gt; &lt;span style="color: red"&gt;Language&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;VB&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre style="margin: 0px; font-family: &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Consolas&amp;#39;, &amp;#39;Courier New&amp;#39;, courier, monospace"&gt;&amp;#160;&amp;#160; &lt;span sty