<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://team.desarrollosnea.com.ar/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>Bitácora - El blog del equipo de Desarrollos NEA</title><link>http://team.desarrollosnea.com.ar/blogs/</link><description>El blog del equipo de Desarrollos Nea es un espacio donde podrás enterarte como hacemos las cosas por aqui.  Comentaremos en lo que estamos trabajando, que tecnologias usamos, investigaciones y soluciones a problemas especificos, como es nuestro lugar de trabajo y como la pasamos bien al mismo tiempo de hacer lo que nos gusta.
</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>[ASP.NET+jQuery] Gridview con checkbox limitando a un solo valor de selección</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2012/01/10/asp-net-jquery-gridview-con-checkbox-limitando-a-un-solo-valor-de-selecci-243-n.aspx</link><pubDate>Tue, 10 Jan 2012 03:57:40 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:219</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Si necesitamos tener un control checkbox en cada fila y que solo podamos seleccionar un sola fila a la vez (idem a un option)   &lt;br /&gt;Esto puede servir tanto para ASP.NET Webform como para MVC, con la salvedad de que depende de como renderizan las grillas de datos.    &lt;br /&gt;Gracias a una pregunta de los foros de MSDN de ASP.NET “&lt;a href="http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/14c21cfc-f176-45f2-a176-065ae0979b80" target="_blank"&gt;Limitar selección Checkbox en GridView&lt;/a&gt;” tenia algo similiar en el borrador así que aquí va.&lt;/p&gt;  &lt;p&gt;Si tenemos un Gridview con una columna template algo así:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:GridView&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;GridView1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; 
        &lt;span style="color:#ff0000;"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;False&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Columns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TemplateField&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;HeaderText&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Seleccion&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
                 &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
                     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:CheckBox&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;chkSeleccion&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;CssClass&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;controlSeleccion&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
                 &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TemplateField&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;  
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:BoundField&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;DataField&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Nombre&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;HeaderText&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Nombre&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:BoundField&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;DataField&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;FechaNacimiento&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;HeaderText&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Fecha Nacimiento&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Columns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:GridView&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Cuando renderiza en ASP.NET 4.0 lo hace de esta manera&lt;/p&gt;

&lt;p&gt;
  &lt;table border="0" cellspacing="0" cellpadding="5" width="701"&gt;&lt;tbody&gt;
      &lt;tr&gt;
        &lt;td valign="top" width="250"&gt;La tabla HTML&lt;/td&gt;

        &lt;td valign="top" width="449"&gt;La celda con el control&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr&gt;
        &lt;td valign="top" width="250"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_4C8B9CA0.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_713CB417.png" width="304" height="141" /&gt;&lt;/a&gt;&lt;/td&gt;

        &lt;td valign="top" width="449"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_00901627.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_162A4EC4.png" width="537" height="354" /&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;br /&gt;

  &lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Solución con jQuery: Evento .click()&lt;/h3&gt;

&lt;p&gt;Podriamos tener un selector en jQuery que tome todos los checkbox que están dentro de nuestra clase “controlSeleccion” y cada vez que se realiza un evento click (con mouse o sin el directamente con el teclado igualmente dispara el evento)&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;script&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt;         $(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;             $(&lt;span style="color:#006080;"&gt;&amp;#39;.controlSeleccion input:checkbox&amp;#39;&lt;/span&gt;).click(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;                 $(&lt;span style="color:#006080;"&gt;&amp;#39;.controlSeleccion input:checkbox&amp;#39;&lt;/span&gt;).removeAttr(&lt;span style="color:#006080;"&gt;&amp;#39;checked&amp;#39;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;                 $(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;).attr(&lt;span style="color:#006080;"&gt;&amp;#39;checked&amp;#39;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;             });&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;         });    &lt;/pre&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;script&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;p&gt;&lt;em&gt;NOTA: El selector &lt;strong&gt;:checkbox&lt;/strong&gt; es identico a &lt;strong&gt;[type=checkbox]&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Solución con jQuery: Atachando el evento con .on() (nuevo en jQuery 1.7)&lt;/h3&gt;

&lt;p&gt;En la version 1.7 de jQuery tenemos la sintaxis &lt;a href="http://api.jquery.com/on/" target="_blank"&gt;“.on()”&lt;/a&gt; para bindear a eventos (como lo eran live o bind, etc).&lt;/p&gt;

&lt;p&gt;Nos quedaria algo asi para hacer lo anterior:&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;script&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt;     $(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;         $(&lt;span style="color:#006080;"&gt;&amp;#39;.controlSeleccion input:checkbox&amp;#39;&lt;/span&gt;).on(&lt;span style="color:#006080;"&gt;&amp;#39;click&amp;#39;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;             $(&lt;span style="color:#006080;"&gt;&amp;#39;.controlSeleccion input:checkbox&amp;#39;&lt;/span&gt;).removeAttr(&lt;span style="color:#006080;"&gt;&amp;#39;checked&amp;#39;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;             $(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;).attr(&lt;span style="color:#006080;"&gt;&amp;#39;checked&amp;#39;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;         });&lt;/pre&gt;&lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     });    &lt;/pre&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;script&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h4&gt;Para otros post:&lt;/h4&gt;

&lt;p&gt;Mas adelante escribiré como hacer que este checkbox se comporte como el “comando de selección del gridview”, para que nos quede todo “un poco mas elegante”, ya que en este caso particular el desarrollador deberá “iterar” para buscar que control esta seleccionado. Una mejora seria que este control este enlazado a algun campo booleano del la colección de objetos&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que les sirva de ayuda o guía.&lt;/p&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=219" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+4.0/default.aspx">ASP.NET 4.0</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>[Control+F 2011] Curso Terminado: .NET Senior 80hs. WPF/WCF/Silverlight (Polo IT Corrientes)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/12/19/control-f-2011-curso-terminado-net-senior-80hs-wpf-wcf-silverlight-polo-it-corrientes.aspx</link><pubDate>Mon, 19 Dec 2011 19:05:36 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:218</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Se acerca fin de año y por estos lugares, terminó un curso intensivo (y casi sin respiro) de estas tres tecnologías (WPF/WCF/Silverlight) en el marco de las &lt;a href="http://www.becascontrolf.com.ar/" target="_blank"&gt;Becas Control+F&lt;/a&gt; (&lt;a href="http://twitter.com/becascontrolf" target="_blank"&gt;@becascontrolf&lt;/a&gt;)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#666666"&gt;“Con el objetivo de fomentar más y mejor empleo en las áreas de software y tecnología a nivel nacional, el Ministerio de Trabajo, Empleo y Seguridad Social de la Nación, en conjunto con CESSI, y con el apoyo de empresas referentes del sector, ofrecen cursos de capacitación gratuita en todo el país.”&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Esta vez se armaron en Corrientes, y los gestionó el &lt;a href="http://poloitcorrientes.com" target="_blank"&gt;Polo IT Corrientes&lt;/a&gt; a los cursos de Programación &lt;a href="http://www.becascontrolf.com.ar/cursos/35/programador-net-junior" target="_blank"&gt;.NET Junior&lt;/a&gt;, &lt;a href="http://www.becascontrolf.com.ar/cursos/37/programador-net-nivel-senior" target="_blank"&gt;.NET Senior&lt;/a&gt;, &lt;a href="http://www.becascontrolf.com.ar/cursos/1/administrador-sql" target="_blank"&gt;Administración en SQL Server&lt;/a&gt; y &lt;a href="http://www.becascontrolf.com.ar/cursos/18/genexus" target="_blank"&gt;Genexus&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Aquí los que rindieron el primer día, y los del segundo (a la derecha):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/ControlF_2D00_NETSENIOR_2D00_2011_5F00_5EA26155.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="ControlF-NETSENIOR-2011" border="0" alt="ControlF-NETSENIOR-2011" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/ControlF_2D00_NETSENIOR_2D00_2011_5F00_thumb_5F00_4F3ED979.jpg" width="1044" height="536" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Algunos ya trabajaban con este tecnología o en .NET, pero la mayoría alumnos de entidades educativas de la región (&lt;a href="http://www.frre.utn.edu.ar/" target="_blank"&gt;UTN FRRe&lt;/a&gt;, UNNE, Institutos de IT)&amp;#160; y por eso razón casi la mitad del curso quedo en el grupo de los rezagados que quedaron por el camino (por falta de tiempo)&lt;/p&gt;  &lt;h3&gt;Mas fotos&lt;/h3&gt;  &lt;p&gt;   &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Similares que tuve la oportunidad de estar al frente&lt;/u&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;[Control+F 2010] .NET Senior (UTN FRRe) 2010 &lt;em&gt;(sin fotos, ni post)&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/fernandezja/archive/2010/12/27/control-f-2010-curso-terminado-net-junior-160hs-utn-frre.aspx" target="_blank"&gt;[Control+F 2010] Curso Terminado: .NET Junior 160hs (UTN – FRRe)&lt;/a&gt; 2010 &lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/fernandezja/archive/2009/12/21/curso-terminado-becas-control-f-curso-net-240hs-utn-frre.aspx" target="_blank"&gt;Curso Terminado: Becas Control+F Curso .NET 240hs (UTN – FRRe)&lt;/a&gt; 2009       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Mas info&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Becas Control+F      &lt;br /&gt;&lt;a href="http://www.becascontrolf.com.ar/"&gt;http://www.becascontrolf.com.ar/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Mas datos del curso .NET Senior dentro de Becas Control+F      &lt;br /&gt;&lt;a href="http://www.becascontrolf.com.ar/cursos/37/programador-net-nivel-senior"&gt;http://www.becascontrolf.com.ar/cursos/37/programador-net-nivel-senior&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=218" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Formacion/default.aspx">Formacion</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Cursos/default.aspx">Cursos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Control_2B00_F/default.aspx">Control+F</category></item><item><title>Buenas noticias para el sector educativo de la región</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2011/11/25/buenas-noticias-para-el-sector-educativo-de-la-regi-243-n.aspx</link><pubDate>Fri, 25 Nov 2011 12:32:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:216</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Desarrollos NEA sigue afianzando su liderazgo en la región. Hoy es la única empresa de tecnología en tener certificaciones específicas para el sector académico.&lt;/p&gt;  &lt;p&gt;A la certificación AER (“Acredited Education Reseller”) de Microsoft, sumamos la “VMware Academic Specialization”. Esto nos permite poder ofrecer a instituciones educativas la mejor alternativa de licenciamiento tanto en precio, como en soporte y grado de ajuste de la solución a los requerimientos planteados por cada cliente.&lt;/p&gt;  &lt;p&gt;Las instituciones educativas de la zona, tanto privadas como públicas, ahora cuentan con un partner local de dos de las mayores empresas de software del mundo especializado en licenciamiento para el sector educativo. Nuestra intención es poder hacer llegar a las mismas, convenientes programas de licenciamiento que les permitirán mejorar su reputación, acceder a servicios de soporte directos del fabricante, alcanzar beneficios exclusivos para el sector y explotar todas las capacidades del software disponible.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=216" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Certificaciones/default.aspx">Certificaciones</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/VMware/default.aspx">VMware</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Educaci_F300_n/default.aspx">Educación</category></item><item><title>Desarrollos NEA alcanza el “Professional Level” dentro del VMware Solution Provider Program</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2011/11/14/desarrollos-nea-alcanza-el-professional-level-dentro-del-vmware-solution-provider-program.aspx</link><pubDate>Mon, 14 Nov 2011 11:32:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:215</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tengo el placer de informar a todos un nuevo logro de la empresa. A partir de la fecha hemos alcanzado el nivel Professional dentro del programa de Partners de VMware, siendo nuevamente pioneros en la región en certificaciones de la industria.&lt;/p&gt;  &lt;p&gt;Este nuevo objetivo alcanzado marca una vez más el continuo crecimiento de la empresa y especialmente de las personas que la componen. No es sólo un diferenciador más que nos sigue posicionando en un nivel único distinguible tanto por clientes como por proveedores. Es la satisfacción de proponerse objetivos y alcanzarlos, de dar sentido y provecho a la planificación, y sobre todo es un motivador a seguir construyendo una empresa que busca ser ejemplar en todas sus facetas. &lt;/p&gt;  &lt;p&gt;Mis felicitaciones especiales para Ariel, un gran compañero de todos, artífice principal de este logro.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/VMW_5F00_09Q4_5F00_LGO_5F00_PARTNER_5F00_SOLUTION_5F00_PROVIDER_5F00_PRO_5F00_023ADD44.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="VMW_09Q4_LGO_PARTNER_SOLUTION_PROVIDER_PRO" border="0" alt="VMW_09Q4_LGO_PARTNER_SOLUTION_PROVIDER_PRO" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/VMW_5F00_09Q4_5F00_LGO_5F00_PARTNER_5F00_SOLUTION_5F00_PROVIDER_5F00_PRO_5F00_thumb_5F00_6C244BE4.png" width="244" height="181" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=215" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Certificaciones/default.aspx">Certificaciones</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/VMware/default.aspx">VMware</category></item><item><title>[EF] Utilizar el ConnectionString de mi modelo Entity Framework</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/11/08/ef-utilizar-el-connectionstring-de-mi-modelo-entity-framework.aspx</link><pubDate>Tue, 08 Nov 2011 11:56:42 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:214</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Trabajando con &lt;a href="http://team.desarrollosnea.com.ar/blogs/ffrank" target="_blank"&gt;Federico&lt;/a&gt; necesitamos realizar consultas a la DB “dinámicamente” para rellenar reportes con Report Server embebido en nuestras aplicaciones web.     &lt;br /&gt;Para eso utilizamos Procedimientos Almacenados, y como queremos que sea lo mas “genérico posible”, obtenemos el nombre del reporte (ya sea por un campo de la DB o armándolo con alguna política de nombres teniendo en cuenta el del reporte). &lt;/p&gt;  &lt;p&gt;Como sabemos la &lt;a href="http://msdn.microsoft.com/es-es/library/cc716756.aspx" target="_blank"&gt;Cadena de Conexión de Entity Framework&lt;/a&gt; esta compuesta por la cadena, path de archivos del modelo y de asignación. Por ejemplo… &lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;add&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;AdventureWorksEntities&amp;quot;&lt;/span&gt; 
         &lt;span style="color:#ff0000;"&gt;connectionString&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
         provider=System.Data.SqlClient;provider connection string=&amp;#39;Data Source=localhost;
         Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;
         multipleactiveresultsets=true&amp;#39;&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;providerName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;System.Data.EntityClient&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Para armar nuestro &lt;a href="http://msdn.microsoft.com/es-es/library/ms254953.aspx" target="_blank"&gt;Comando&lt;/a&gt; ADO.NET “puro y simple” (y genérico para llenar nuestros reportes) necesitamos la Conexión y para ello una cadena… y no queríamos:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Tener una cadena por separado (la tentación y fuerte!) &lt;/li&gt;

  &lt;li&gt;Parsear la cadena de conexión de EF (para obtener la parte que necesitamos) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Entonces solo basta una lectura rápida de las propiedades de la conexión en este caso nos valemos de la propiedad &lt;a href="http://msdn.microsoft.com/es-es/library/system.data.entityclient.entityconnection.storeconnection.aspx" target="_blank"&gt;StoreConnection&lt;/a&gt; del EntityConnection &lt;/p&gt;

&lt;p&gt;Textual de MSDN: &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;(…)Proporciona acceso a la conexión de origen de datos subyacente usada por el objeto EntityConnection.(…)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Podríamos entonces tener una propiedad estática que nos ayude:&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ConnectionString
{
    &lt;font color="#0000ff"&gt;get&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/font&gt;
    {
        &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; ( &lt;font color="#408080"&gt;AdventureWorksEntities&lt;/font&gt; contexto = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;font color="#408080"&gt;AdventureWorksEntities&lt;/font&gt;())
        {
            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cadenaCon = 
                    ((System.Data.EntityClient.&lt;font color="#408080"&gt;EntityConnection&lt;/font&gt;)contexto.Connection).StoreConnection.ConnectionString;
            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; cadenaCon;
            }
    

    }
}&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Cadena de Conexion (Entity Framework) 
      &lt;br /&gt;&lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/es-es/library/cc716756.aspx" href="http://msdn.microsoft.com/es-es/library/cc716756.aspx"&gt;http://msdn.microsoft.com/es-es/library/cc716756.aspx&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;EntityConnection&lt;/strong&gt; (Clase) 

    &lt;br /&gt;Contiene una referencia a un modelo conceptual y una conexión a un origen de datos. Esta clase no puede heredarse. 

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.entityclient.entityconnection(v=VS.100).aspx"&gt;http://msdn.microsoft.com/es-es/library/system.data.entityclient.entityconnection(v=VS.100).aspx&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;EntityConnection.&lt;strong&gt;StoreConnection&lt;/strong&gt; (Propiedad) 

    &lt;br /&gt;

    &lt;br /&gt;Proporciona acceso a la conexión de origen de datos subyacente usada por el objeto EntityConnection. 

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.entityclient.entityconnection.storeconnection.aspx"&gt;http://msdn.microsoft.com/es-es/library/system.data.entityclient.entityconnection.storeconnection.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=214" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/EF/default.aspx">EF</category></item><item><title>[ASP.NET MVC] Razor: Utilizar el caracter @ en funciones javascript y/o html. Caracter escape @@</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/10/21/asp-net-mvc-razor-utilizar-el-caracter-en-funciones-javascript-y-o-html-caracter-escape.aspx</link><pubDate>Fri, 21 Oct 2011 19:13:59 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:213</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Si alguien quiere utilizar en una vista con Razor el caracter “@” en alguna función javascript y/o html por ejemplo, algo simple…&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; indiceArroba = email.indexOf(&lt;span style="color:#006080;"&gt;&amp;quot;@&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;El mensaje que nos proporciona: 
  &lt;br /&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;&amp;quot;&amp;quot;&amp;quot; is not valid at the start of a code block.&amp;#160; Only identifiers, keywords, comments, &amp;quot;(&amp;quot; and &amp;quot;{&amp;quot; are valid.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_78A9FD48.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2FA3DB82.png" width="660" height="74" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O simplemente si quieres escribir en HTML un simple @&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_4C5D5097.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_1E2354DD.png" width="1028" height="48" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Con el mensaje: 
  &lt;br /&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;A space or line break was encountered after the &amp;quot;@&amp;quot; character.&amp;#160; Only valid identifiers, keywords, comments, &amp;quot;(&amp;quot; and &amp;quot;{&amp;quot; are valid at the start of a code block and they must occur immediately following &amp;quot;@&amp;quot; with no space in between.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Solución: El caracter escape para el @ es el doble @@&lt;/h3&gt;

&lt;p&gt;Para poder seguir adelante el carácter escape para el @ es simplemente el doble arroba @@ &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/wlEmoticon_2D00_smile_5F00_4C4D2ACA.png" /&gt;&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; indiceArroba = email.indexOf(&lt;span style="color:#006080;"&gt;&amp;quot;@@&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;O si quieres simplemente escribir un @@ simple.&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;NOTA:&amp;#160; No esta demás comentar también que podemos combinar HTML/Client Scripting con código Razor utilizando @: y &amp;lt;text&amp;gt;, &lt;a href="http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax#BM_CombiningTextMarkupAndCode" target="_blank"&gt;mas info aquí&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Enlaces&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;C# Razor Syntax Quick Reference 
    &lt;br /&gt;&lt;a href="http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx"&gt;http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Introduction to ASP.NET Web Programming Using the Razor Syntax 
    &lt;br /&gt;&lt;a href="http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax"&gt;http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=213" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Razor/default.aspx">Razor</category></item><item><title>Desarrollos NEA alcanza la acreditación Microsoft Authorized Education Reseller</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2011/05/31/desarrollos-nea-alcanza-la-acreditaci-243-n-microsoft-authorized-education-reseller.aspx</link><pubDate>Tue, 31 May 2011 13:02:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:217</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tengo el placer de comunicarles que logramos nuestra certificación como Microsoft AER (Authorized Education Reseller).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/AER.Logo_5F00_79C97881.gif"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="AER.Logo" border="0" alt="AER.Logo" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/AER.Logo_5F00_thumb_5F00_11147CF3.gif" width="244" height="47" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora podremos ofrecer al sector educativo programas de licenciamiento altamente convenientes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=217" width="1" height="1"&gt;</description></item><item><title>[SQL2008+NET] Leer un campo Time (SQL 2008) en un SqlDataReader para obtener un TimeSpan (.NET)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/05/11/sql2008-net-leer-un-campo-time-sql-2008-en-un-sqldatareader-para-obtener-un-timespan-net.aspx</link><pubDate>Thu, 12 May 2011 00:30:04 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:212</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Si estas accediendo a un SQL SERVER 2008 y utilizando uno de sus nuevos tipos de datos como el &lt;a href="http://msdn.microsoft.com/es-es/library/bb677243.aspx" target="_blank"&gt;Time&lt;/a&gt; veras que no es fácil leerlo con un &lt;a href="http://msdn.microsoft.com/es-es/library/w9y9ttex.aspx" target="_blank"&gt;SqlDataReader&lt;/a&gt;. La idea es obtener el valor del &lt;a href="http://msdn.microsoft.com/es-es/library/bb677243.aspx" target="_blank"&gt;Time&lt;/a&gt; (SQL) que en .NET es un tipo de dato &lt;a href="http://msdn.microsoft.com/es-es/library/system.timespan.aspx" target="_blank"&gt;TimeSpan&lt;/a&gt;.     &lt;br /&gt;    &lt;br /&gt;Si estas pensando hacer esto! olvídalo…&lt;/p&gt;  &lt;blockquote&gt;   &lt;div&gt;     &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;TimeSpan tiempo = (TimeSpan)reader[&lt;span style="color:#006080;"&gt;&amp;quot;tiempo&amp;quot;&lt;/span&gt;];&lt;/pre&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;h3&gt;Ir a las fuentes (ayuda a MSDN)&lt;/h3&gt;

&lt;p&gt;Investigando un poco di con método &lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.gettimespan.aspx"&gt;GetTimeSpan&lt;/a&gt; del &lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.aspx"&gt;SqlDataReader &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Para los curiosos&lt;/u&gt;: 

  &lt;br /&gt;Si utilizas el tipo de dato &lt;a href="http://msdn.microsoft.com/es-es/library/bb677243.aspx" target="_blank"&gt;Time&lt;/a&gt;(de SQL 2008) se mapea a un tipo de datos &lt;a href="http://msdn.microsoft.com/es-es/library/system.timespan.aspx" target="_blank"&gt;TimeSpan&lt;/a&gt; de .NET.

  &lt;br /&gt;Si vemos el articulo &lt;a href="http://msdn.microsoft.com/es-es/library/cc716729.aspx"&gt;Asignar tipos de datos de SQL Server (ADO.NET)&lt;/a&gt; vemos que para obtener este valor tenemos un método &lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.getdatetime.aspx"&gt;GetDateTime &lt;/a&gt;del &lt;a href="http://msdn.microsoft.com/es-es/library/w9y9ttex.aspx" target="_blank"&gt;SqlDataReader&lt;/a&gt;

  &lt;br /&gt;Pero luego descubrí el &lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.gettimespan.aspx"&gt;GetTimeSpan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Obteniendo el valor de campo Time… &lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Para obtener el valor del &lt;a href="http://msdn.microsoft.com/es-es/library/bb677243.aspx" target="_blank"&gt;Time&lt;/a&gt; (SQL) que en .NET es un tipo de dato &lt;a href="http://msdn.microsoft.com/es-es/library/system.timespan.aspx" target="_blank"&gt;TimeSpan&lt;/a&gt; utilizamos el método &lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.gettimespan.aspx"&gt;GetTimeSpan&lt;/a&gt; del &lt;a href="http://msdn.microsoft.com/es-es/library/w9y9ttex.aspx" target="_blank"&gt;SqlDataReader&lt;/a&gt;, que recibe la posición de la columna, si es la columna 3, el índice es 2... ejemplo: 

    &lt;div&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;TimeSpan horaTimeSpan = reader.GetTimeSpan(2);&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
  &lt;li&gt;Podemos mejorar agregando el método &lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.GetOrdinal.aspx"&gt;GetOrdinal &lt;/a&gt;para obtener el índice de la columna si tenemos el nombre 

    &lt;div&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;TimeSpan horaTimeSpan = reader.GetTimeSpan(reader.GetOrdinal(&lt;span style="color:#006080;"&gt;&amp;quot;hora&amp;quot;&lt;/span&gt;));
hora.Text = horaTimeSpan.ToString(&lt;span style="color:#006080;"&gt;&amp;quot;HH:mm&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTA 1:&lt;/strong&gt; Como dice la ayuda en MSDN se debería antes verificar si IsDBNull la columna del reader o sino la conversión genera una excepción&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTA 2:&lt;/strong&gt; Dar formato al TimeSpan “para que quede legible por nosotros, los humanos” ;) &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ee372286.aspx" target="_blank"&gt;Cadenas de formato TimeSpan estándar&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ee372287.aspx" target="_blank"&gt;Cadenas de formato TimeSpan personalizado&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.getdatetime.aspx"&gt; 
      &lt;br /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Espero que te sirva de ayuda o guía.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Time (Transact-SQL)
      &lt;br /&gt;&lt;/strong&gt;Define una hora de un día. La hora no distingue la zona horaria y está basada en un reloj de 24 horas. 

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/bb677243.aspx"&gt;http://msdn.microsoft.com/es-es/library/bb677243.aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Tipos de datos y funciones de fecha y hora (Transact-SQL)&lt;/strong&gt;

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ms186724.aspx"&gt;http://msdn.microsoft.com/es-es/library/ms186724.aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;SqlDataReader.GetTimeSpan (Método)&lt;/strong&gt; 

    &lt;br /&gt;Recupera el valor de la columna especificada como objeto TimeSpan. 

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.gettimespan.aspx"&gt;http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.gettimespan.aspx 
      &lt;br /&gt;&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Asignar tipos de datos de SQL Server (ADO.NET)&lt;/strong&gt; 

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/cc716729.aspx"&gt;http://msdn.microsoft.com/es-es/library/cc716729.aspx 
      &lt;br /&gt;&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;SqlDataReader.GetDateTime (Método) 
      &lt;br /&gt;&lt;/strong&gt;Obtiene el valor de la columna especificada como un objeto DateTime. 

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.getdatetime.aspx"&gt;http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.getdatetime.aspx 
      &lt;br /&gt;&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Cadenas de formato TimeSpan estándar&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ee372286.aspx"&gt; 
      &lt;br /&gt;http://msdn.microsoft.com/es-es/library/ee372286.aspx 

      &lt;br /&gt;&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Cadenas de formato TimeSpan personalizado&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader.getdatetime.aspx"&gt; 
      &lt;br /&gt;&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ee372287.aspx"&gt;http://msdn.microsoft.com/es-es/library/ee372287.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=212" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Tips_2F00_Tricks/default.aspx">Tips/Tricks</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/SQL+2008/default.aspx">SQL 2008</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ADO.NET/default.aspx">ADO.NET</category></item><item><title>Microsoft Community Contributor Award 2011</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/05/06/microsoft-community-contributor-award-2011.aspx</link><pubDate>Sat, 07 May 2011 01:33:04 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:211</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_13C04384.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7D7A0264.png" width="800" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Es grato recibir buenas noticias por correo! Y mas si es un premio. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2"&gt;Dear Jose,       &lt;br /&gt;Congratulations! We’re pleased to inform you that your contributions to Microsoft online technical communities have been recognized with the Microsoft Community Contributor Award.        &lt;br /&gt;The Microsoft Community Contributor Award is reserved for participants who have made notable contributions in Microsoft online community forums such as TechNet, MSDN and Answers. The value of these resources is greatly enhanced by participants like you, who voluntarily contribute your time and energy to improve the online community experience for others.        &lt;br /&gt;Becoming a Microsoft Community Contributor Award recipient includes access to important benefits, such as complimentary resources to support you in your commitment to Microsoft online communities…        &lt;br /&gt;Thank you for your commitment to Microsoft online technical communities and congratulations again! &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Uno día a día esta con el “cotidiano fuego de los proyectos” y se hace tiempo para ayudar y seguir aprendiendo en los foros… donde cada uno aporta un granito de arena, para que entre todos podamos crecer y evangelizar en la tecnología que nos apasiona (&lt;strike&gt;y nos da dolores de cabeza&lt;/strike&gt;).&lt;/p&gt;  &lt;p&gt;Asi que los invito a los &lt;a href="http://social.msdn.microsoft.com/Forums/es/categories/" target="_blank"&gt;foros de MSDN&lt;/a&gt;, &lt;a href="http://social.technet.microsoft.com/forums/es-ES/categories/" target="_blank"&gt;TechNet&lt;/a&gt; y &lt;a href="http://answers.microsoft.com/es-es" target="_blank"&gt;Answers&lt;/a&gt;, para compartir, preguntar, ayudar o simplemente “mirar pasivamente”.&lt;/p&gt;  &lt;p&gt;Gracias a Microsoft por el reconocimiento… y también por el premio; ya que además de la “distinción” tenemos acceso a una librería online con muchos libros de &lt;a href="http://www.microsoft.com/mspress/" target="_blank"&gt;Microsoft Press&lt;/a&gt; (E-Reference Library de &lt;a href="http://safaribooksonline.com" target="_blank"&gt;Safari Book Online&lt;/a&gt;) así que no hay impedimento para seguir formándose… &lt;/p&gt;  &lt;p&gt;Es grato ver en &lt;a href="http://geeks.ms" target="_blank"&gt;Geeks.ms&lt;/a&gt; que &lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2011/04/28/personal-microsoft-community-contributor-2011.aspx" target="_blank"&gt;Javier Torrecilla&lt;/a&gt; y &lt;a href="http://geeks.ms/blogs/jyeray/archive/2011/04/28/microsoft-community-contributor-award-2011.aspx"&gt;Josué Yeray Julián Ferreiro&lt;/a&gt; también tienen este honor… y es mas honor para mi compartir con ellos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/MCC11_5F00_Logo_5F00_Horizontal_5F00_Full_2D00_color_5F00_1FA1E81E.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="MCC11_Logo_Horizontal_Full-color" border="0" alt="MCC11_Logo_Horizontal_Full-color" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/MCC11_5F00_Logo_5F00_Horizontal_5F00_Full_2D00_color_5F00_thumb_5F00_64DA3F47.png" width="240" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=211" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Personal/default.aspx">Personal</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Classic+ASP/default.aspx">Classic ASP</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/MCC/default.aspx">MCC</category></item><item><title>[ASP.NET] Submit a un iFrame dentro de la misma pagina. Con PostbackUrl y modificando el target del formulario (JS puro y jQuery)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/03/26/asp-net-submit-a-un-iframe-dentro-de-la-misma-pagina-con-postbackurl-y-modificando-el-target-del-formulario-js-puro-y-jquery.aspx</link><pubDate>Sat, 26 Mar 2011 17:12:01 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:210</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Por una pregunta sobre este tema “&lt;a href="http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/5b75f7c2-ce6d-4f04-a6fe-fda0e6fcbeb9" target="_blank"&gt;Enviar datos a una forma dentro de un iframe&lt;/a&gt;”, desempolve algo que tenia en borrador hace años… &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ANTES NADA… Por qué lo tenia en borrador? &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Pense que nadie lo necesitaba… Porque trabajar con iFrames en ASP.NET Webforms en “un dolor constante”, hay que hacer cosas con javascript para la comunicación… una tema fácil es &lt;a href="http://geeks.ms/blogs/fernandezja/archive/2007/11/10/manipular-iframe-desde-codebehind-inscrustar-paginas-web.aspx" target="_blank"&gt;incrustar desde ASP.NET contenido en iframes&lt;/a&gt;, y otra es enviar-recibir información. Todo esto porque la magia es ASP.NET es tener un solo formulario que casi casi no debes “tocarlo”&lt;/p&gt;  &lt;p&gt;&lt;em&gt;(NOTA: en ASP.NET MVC es una maravilla trabajar con javascript, tienes un mejor control del HTML resultante)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;En ASP.NET Webforms tenemos varias opciones a los iFrames para “cargar contenido” &lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Utilizar &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.updatepanel.aspx" target="_blank"&gt;Update Panels&lt;/a&gt; con ASP.NET Ajax &lt;/li&gt;    &lt;li&gt;Utilizar Ajax para cargar el contenido externo (&lt;a href="http://api.jquery.com/category/ajax/" target="_blank"&gt;aquí con ayuda de jQuery tenemos una amplia API para estas cosas&lt;/a&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pero volvamos al tema de enviar datos a una iFrame dentro de la misma pagina…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;El problema&lt;/h3&gt;  &lt;p&gt;Al problema que en los foros de MSDN preguntaron tenia era como eje esta misma temática así que aquí va para tenerla de referencia.    &lt;br /&gt;“Enviar datos a una forma dentro de un iframe”, que como sabemos en ASP.NET tenemos un solo formulario en las paginas, en cada postback se realiza un post a la misma pagina salvo que cambiemos en un boton por ejemplo la propiedad PostbackUrl para modificar la pagina donde enviara los datos… pero no podemos definir el &lt;a href="http://www.w3.org/TR/html401/present/frames.html#target-info" target="_blank"&gt;target&lt;/a&gt; (nombre del frame) de donde queremos que cargue la pagina destino.     &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Solución&lt;/h3&gt;  &lt;p&gt;Para que funcione necesitamos en ASP.NET webforms o en cualquier otro formulario web modificar el atributo &lt;a href="http://www.w3.org/TR/html401/present/frames.html#target-info" target="_blank"&gt;target&lt;/a&gt; del formulario&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;W3C: Tag Form      &lt;br /&gt;&lt;a href="http://www.w3.org/TR/html401/interact/forms.html#h-17.3"&gt;http://www.w3.org/TR/html401/interact/forms.html#h-17.3&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Atributo Target      &lt;br /&gt;&lt;a href="http://www.w3.org/TR/html401/present/frames.html#target-info"&gt;http://www.w3.org/TR/html401/present/frames.html#target-info&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Solución en ASP.NET Webforms&lt;/h3&gt;  &lt;p&gt;Como modificamos la pagina de destino para enviar los datos? con la propiedad &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.button.postbackurl.aspx" target="_blank"&gt;PostbackUrl&lt;/a&gt;.     &lt;br /&gt;Como modificamos el target del formulario? en el cliente lo tenemos que hacer al momento de realizar el click… del boton. Nos ayudamos con &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.button.onclientclick.aspx" target="_blank"&gt;OnClientClick&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bueno para muestra “basta un botón” así que el ejemplo para descargar &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_71C600E0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_70714234.png" width="990" height="526" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;La pagina padre&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;Default.aspx&lt;/p&gt;    &lt;div&gt;     &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;Ingrese un Nombre: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;txtNombre&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ClientIDMode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Static&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:TextBox&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;btnAceptar&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Aceptar&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;OnClientClick&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;enviarDatosAFrame(&amp;#39;iframePaginaHija&amp;#39;);&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;PostBackUrl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;~/PaginaIframeDestino.aspx&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;iframe&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;iframePaginaHija&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;iframePaginaHija&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;src&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;PaginaIframeDestino.aspx&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;100%&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;200px&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;iframe&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;lblHora&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;lblHora&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Si podemos ver el botón que es un webcontrol Button que tiene dos atributos definidos&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.button.onclientclick.aspx" target="_blank"&gt;OnClientClick&lt;/a&gt;: Que nos ayuda a llamar a una funcion del lado del cliente antes de enviar el submit &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.button.postbackurl.aspx" target="_blank"&gt;PostbackUrl&lt;/a&gt;: Nos ayuda a definir una pagina de destino diferente a la actual cuando se realice el submit &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Tenemos un script llamado “enviarDatosAFrame” que es una función del lado del cliente en javascript que nos ayuda a cambiar el atributo target del formulario de ASP.NET 
    &lt;br /&gt;&lt;/p&gt;

  &lt;div&gt;
    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;
    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; enviarDatosAFrame(frameNombre) {
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; formulario = document.getElementById(&lt;span style="color:#006080;"&gt;&amp;#39;form1&amp;#39;&lt;/span&gt;);
        formulario.target = frameNombre;

        setTimeout(&lt;span style="color:#006080;"&gt;&amp;#39;formularioInicializar(\&amp;#39;&amp;#39;&lt;/span&gt; + formulario.id + &lt;span style="color:#006080;"&gt;&amp;#39;\&amp;#39;);&amp;#39;&lt;/span&gt;, 2000);
    }         
&amp;lt;/script&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  

  &lt;div&gt;Mas adelante vemos que es el formularioInicializar.&lt;/div&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;NOTA: Para que nos sirva de esta manera que buscamos el formulario por Id (getElementById), debes tener definido el Id del formulario de ASP.NET (de tu pagina o MasterPage) &lt;/p&gt;

  &lt;div&gt;&amp;#160;&lt;/div&gt;

  &lt;div&gt;&amp;#160;&lt;/div&gt;

  &lt;div align="left"&gt;&amp;#160;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;h4&gt;La pagina destino (el contenido del iframe)&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;PaginaIframeDestino.aspx (en el ejemplo) 
    &lt;br /&gt;&lt;/p&gt;

  

  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;Nombre: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;lblNombre&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;lblNombre&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;p&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;lblHora&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;lblHora&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  

  &lt;p&gt;Tengo definido en la pagina la directiva &lt;a href="http://msdn.microsoft.com/es-es/library/ms228169.aspx" target="_blank"&gt;PreviousPageType&lt;/a&gt; para tener intellisense de lo voy a obtener de la pagina padre 

    &lt;br /&gt;&lt;/p&gt;

  &lt;div&gt;
    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;lt;%@ Page Language=&lt;span style="color:#006080;"&gt;&amp;quot;C#&amp;quot;&lt;/span&gt; AutoEventWireup=&lt;span style="color:#006080;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; CodeFile=&lt;span style="color:#006080;"&gt;&amp;quot;PaginaIframeDestino.aspx.cs&amp;quot;&lt;/span&gt; Inherits=&lt;span style="color:#006080;"&gt;&amp;quot;PaginaIframeDestino&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;%@ PreviousPageType VirtualPath=&lt;span style="color:#006080;"&gt;&amp;quot;~/Default.aspx&amp;quot;&lt;/span&gt;  %&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  

  &lt;p&gt;
    &lt;br /&gt;En el codebehind… 

    &lt;br /&gt;&lt;/p&gt;

  

  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)
   {
       &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (PreviousPage != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)
       {
           &lt;span style="color:#008000;"&gt;//Sin el atributo de pagina PreviousPageType &lt;/span&gt;
           &lt;span style="color:#008000;"&gt;//TextBox txt = (TextBox)PreviousPage.FindControl(&amp;quot;txtNombre&amp;quot;);&lt;/span&gt;
           &lt;span style="color:#008000;"&gt;//string nombre = txt.Text;&lt;/span&gt;

           &lt;span style="color:#008000;"&gt;//Con el atributo de pagina PreviousPageType, &lt;/span&gt;
           &lt;span style="color:#008000;"&gt;//tenemos acceso a intellisense de PreviousPage (que agregamos una propieddad publica) &lt;/span&gt;
           &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; nombre = PreviousPage.Nombre;


           lblNombre.Text = nombre;
       }

       lblHora.Text = DateTime.Now.ToLongTimeString();
   }&lt;/pre&gt;

  

  &lt;p&gt;&amp;#160;&lt;/p&gt;

  &lt;p&gt;NOTA en la pagina padre (default.aspx) tengo una propiedad para recuperarla en la destino 
    &lt;br /&gt;&lt;/p&gt;

  &lt;div&gt;
    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; _Default : System.Web.UI.Page
{
    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Nombre {
        get {
            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; txtNombre.Text;
        }
    }
...&lt;/pre&gt;
  &lt;/div&gt;

  
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Colocar el atributo target directamente en el form? por si lo pensaste colocar aquí…&lt;/h3&gt;

&lt;p&gt;Hacer esto significaría que todo postback de esa pagina tendrá como target el definamos “estáticamente allí”… si lo hacemos con javascript a este cambio &lt;strong&gt;será dinámico&lt;/strong&gt; y solamente hay que agregar al control que hace el sumbit la funcionalidad de que ejecute, previo submit, el cambio de target&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_29E42C5F.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_328484EB.png" width="538" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Con JQuery: Agregar funcionalidad no intrusiva en botón&lt;/h3&gt;

&lt;p&gt;Con la ayuda de jQuery podemos armar una función que nos ayude a la tarea de modificar el target del formulario a partir de la configuración de un botón si necesidad de adicionar OnClientClick sino simplemente configurando el botón con unos atributos&lt;/p&gt;

&lt;p&gt;En este ejemplo, para probar los atributos data de jQuery, se me ocurrió utilizar data-FrameDestino para definir el nombre del iframe donde quiero enviar los datos y como todavía no se como es el selector para “data”, utilice un selector de clase css, entonces todos los botones con la clase “postbackToFrame” tendrán esta funcionalidad&lt;/p&gt;

&lt;p&gt;El botón queda así: 
  &lt;br /&gt;&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;btnAceptarConjQuery&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Aceptar (con jQuery)&amp;quot;&lt;/span&gt; 
        &lt;span style="color:#ff0000;"&gt;PostBackUrl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;~/PaginaIframeDestino.aspx&amp;quot;&lt;/span&gt; 
        &lt;span style="color:#ff0000;"&gt;CssClass&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;postbackToFrame&amp;quot;&lt;/span&gt; 
        &lt;span style="color:#ff0000;"&gt;data-frameDestino&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;iframePaginaHija&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;p&gt;La función jQuery&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;
    $(document).ready(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {
        $(&lt;span style="color:#006080;"&gt;&amp;quot;.postbackToFrame&amp;quot;&lt;/span&gt;).click(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {
            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; form = $(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;).parents(&lt;span style="color:#006080;"&gt;&amp;quot;form:first&amp;quot;&lt;/span&gt;);
            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; formNombre = $(form).attr(&lt;span style="color:#006080;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;);
            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; frameNombre = $(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;).data(&lt;span style="color:#006080;"&gt;&amp;quot;frameDestino&amp;quot;&lt;/span&gt;);
            &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (frameNombre != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; || frameNombre != &lt;span style="color:#006080;"&gt;&amp;#39;undefined&amp;#39;&lt;/span&gt;) {

                $(form).attr(&lt;span style="color:#006080;"&gt;&amp;#39;target&amp;#39;&lt;/span&gt;, frameNombre);
            }

            setTimeout(&lt;span style="color:#006080;"&gt;&amp;#39;formularioInicializar(\&amp;#39;&amp;#39;&lt;/span&gt; + formNombre + &lt;span style="color:#006080;"&gt;&amp;#39;\&amp;#39;);&amp;#39;&lt;/span&gt;, 2000);
        });
    })
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Mas adelante vemos que es el formularioInicializar…&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Modificamos el target del form, pero las siguientes acciones toman el mismo camino. Como inicializamos?&lt;/h3&gt;

&lt;p&gt;Cuando modificamos en el cliente el target del formulario el mismo permanece allí y cualquier otra acción que involucre un postback se dirigirá al target correspondiente. Si en la pagina tenemos mas botones, linkbutton o cualquier control que realice un submit tomara el valor del formulario que configuramos&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Si llegamos a necesitar &lt;/strong&gt;que el valor del target se inicialice debemos llamar a una función para tal motivo luego de un tiempo prudencial del submit, en mi caso 2000 milisegundos&lt;/p&gt;

&lt;p&gt;Con jQuery&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;
    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; formularioInicializar(formularioNombre) {
        $(&lt;span style="color:#006080;"&gt;&amp;#39;#&amp;#39;&lt;/span&gt; + formularioNombre).attr(&lt;span style="color:#006080;"&gt;&amp;#39;target&amp;#39;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);
    }      
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;O como la primer versión con javascript puro.&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;
    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; formularioInicializar(formularioNombre) {
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; form = document.getElementById(formularioNombre);
        formt.target =&lt;span style="color:#006080;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;;
    }      
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;NOTA: Seria bueno este inicializar formulario reciba el target tambien y podemos unificar todas las funciones que modifican este atributo&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;h3&gt;Ejemplo para descargar&lt;/h3&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que les sirva de ayuda o guía.&lt;/p&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=210" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+4.0/default.aspx">ASP.NET 4.0</category></item><item><title>[ASP.NET] Modificar la salida HTML para Compactar (Minify). En el Render (RegEx, YUI Compresor for .NET) , con Response.Filter y con PageParserFilter</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/02/15/asp-net-modificar-la-salida-html-para-compactar-minify-en-el-render-regex-yui-compresor-for-net-con-response-filter-y-con-pageparserfilter.aspx</link><pubDate>Tue, 15 Feb 2011 13:04:39 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:209</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Como en los &lt;a href="http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/35d44697-32e5-4c39-b67c-970033f0a78b" target="_blank"&gt;foros de MSDN alguien necesitaba de un tema similar&lt;/a&gt;, lo tenia en borrador y encontré el “justificativo” de terminarlo. Ahora lo tengo para referencias de &lt;strong&gt;“opciones de capturar la salida HTML”, &lt;/strong&gt;encubriendo para minificar el HTML resultante.&lt;/p&gt;  &lt;h3&gt;Que es Compactar (Minify) HTML?&lt;/h3&gt;  &lt;p&gt;La idea es limpiar el HTML resultante de caracteres que no son necesarios para renderizar la pagina (&lt;a href="http://www.websiteoptimization.com/speed/tweak/whitespace/" target="_blank"&gt;espacios en blanco innecesarios&lt;/a&gt;, salto de línea) esto se llama &lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Minification_(programming)" target="_blank"&gt;Minificar (Minification&lt;/a&gt;) &lt;/b&gt;Por que son innecesarios estos caracteres? Solo están para una mejor lectura para nosotros “los mortales desarrolladores” la maquina no los necesita.. y el HTML tampoco :)&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font size="2"&gt;Aquí utilizare de sinónimo Minificar = Minimizar = Compactar&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Puedes ver con un ejemplo online de esta tarea: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://kangax.github.com/html-minifier/"&gt;http://kangax.github.com/html-minifier/&lt;/a&gt; o en esta &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.willpeavy.com/minifier/"&gt;http://www.willpeavy.com/minifier/&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Veamos a “vista de águila”…&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="5" width="500"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;strong&gt;Antes&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="250"&gt;&lt;strong&gt;Después&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_621DF831.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_230C2BFC.png" width="185" height="419" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="250"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_034D2C67.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_1B1C8769.png" width="226" height="142" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Se utiliza generalmente para los Javascript, y los CSS donde existen muchas herramientas online, incluso para .NET el &lt;a href="http://www.asp.net/ajaxlibrary/AjaxMinDocumentation.ashx" target="_blank"&gt;Microsoft Ajax Minifier&lt;/a&gt;.&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Es necesario compactar la salida HTML?&lt;/h3&gt;  &lt;p&gt;&lt;em&gt;“&lt;a href="http://diccionario.babylon.com/poner_los_huevos_en_la_misma_canasta/" target="_blank"&gt;No colocar todos los huevos en la misma canasta/cesta”&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Depende… utilizando herramientas como &lt;a href="http://developer.yahoo.com/yslow/" target="_blank"&gt;YSlow&lt;/a&gt; o &lt;a href="http://code.google.com/speed/page-speed/" target="_blank"&gt;Page Speed&lt;/a&gt; no darán información en que lugar “ganamos más” optimizando. Y no siempre es en la compactación del HTML, ya que con &lt;a href="http://technet.microsoft.com/en-us/library/cc771003(WS.10).aspx" target="_blank"&gt;la configuración de la Compresión HTTP (gzip) en el IIS&lt;/a&gt; es suficiente.&lt;/p&gt;  &lt;h4&gt;Entonces que tenemos que compactar?&lt;/h4&gt;  &lt;p&gt;Lo que si es necesario es comprimir, compactar y agrupar (son tres técnicas que en conjunto logran reducir tiempos deF descarga) los CSS y JS porque allí si ganamos en cantidad de archivos a descargar, como así también los CSS Sprites pero bueno eso ya es otro tema&lt;/p&gt;  &lt;p&gt;Todo el mundo ya conoce que tenemos herramientas para estas tareas como por ejemplo &lt;a href="http://www.asp.net/ajaxlibrary/AjaxMinDocumentation.ashx" target="_blank"&gt;Microsoft Ajax Minifier&lt;/a&gt; o &lt;a href="http://yuicompressor.codeplex.com/" target="_blank"&gt;YUI Compressor for .NET&lt;/a&gt; (u otras similares) Algunas con todas las características que necesitamos otras con menos.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/gperez/archive/2010/02/16/noticia-ajax-minifier-4-0-release-y-con-soporte-de-minificar-los-css.aspx" target="_blank"&gt;[Noticia] Ajax Minifier 4.0 Release, y con soporte de minificar los CSS! :)&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Primero lo primero: Como modificamos el HTML resultante?&lt;/h3&gt;  &lt;p&gt;Si conocemos el &lt;a href="http://msdn.microsoft.com/es-es/library/ms178472.aspx" target="_blank"&gt;ciclo de vida de una pagina ASP.NET&lt;/a&gt;, lo que se nos viene a la cabeza como lugar para realizar la acción es el método &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.control.render.aspx" target="_blank"&gt;Render&lt;/a&gt;, por lo que hay que sobrescribirlo. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;La idea la tome &lt;/em&gt;&lt;a href="http://stackoverflow.com/questions/531631/get-html-of-current-page-without-viewstate-asp-net" target="_blank"&gt;&lt;em&gt;por aquí&lt;/em&gt;&lt;/a&gt;&lt;em&gt; para obtener el HTML resultante, que era para quitar el Viewstate, así que nos sirve para este ejemplo.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Ahora el objetivo: Minimizar el HTML&lt;/h3&gt;  &lt;p&gt;Lo primero que se nos viene la cabeza es reemplazar cadenas, y allí el “balón de oro” es el que tenga mejor performance para cadenas inmutables ;)&lt;/p&gt;  &lt;p&gt;Muy bueno este articulo: &lt;a href="http://blogs.msdn.com/b/debuggingtoolbox/archive/2008/04/02/comparing-regex-replace-string-replace-and-stringbuilder-replace-which-has-better-performance.aspx" target="_blank"&gt;Comparing RegEx.Replace, String.Replace and StringBuilder.Replace – Which has better performance?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pero además, vamos a necesitar si o si expresiones regulares (esos textos que como siempre digo parece que un &lt;a href="http://es.wikipedia.org/wiki/Vulcano_(Star_Trek)" target="_blank"&gt;Vulcano&lt;/a&gt; los haya escrito) para detectar algunos patrones que nos son simples de buscar. Entonces para el ejemplo RegEx.Replace. (&lt;strike&gt;perdonen pero hay que sufrir con esto de expresiones regulares&lt;/strike&gt;)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Objetivos secundarios de este post&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#000000"&gt;Vamos a ver opciones para modificar el HTML resultante para minimizarlo, las complicaciones que podamos tener y porque no es uno de los pilares de la optimización pero aunque no lo utilicemos veremos tecnicas que en alguna oportunidad nos pueden ayudar para otras tareas de modificar la salida:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#000000"&gt;Modificar la salida de una pagina HTML &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#000000"&gt;Seguir &lt;strike&gt;sufriendo&lt;/strike&gt; utilizando con expresiones regulares y como nos ayudan bastante (aunque no las entendamos luego de 1 hora)&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#000000"&gt;Utilizar los &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.httpresponse.filter.aspx" target="_blank"&gt;Response.Filter&lt;/a&gt; (Filtros para la salida)&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#000000"&gt;Conocer y ver una implementación (de terceros)&lt;/font&gt; de &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.pageparserfilter.aspx" target="_blank"&gt;PageParserFilter&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;/font&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Que opciones tenemos para minimizar el HTML&lt;/strong&gt;&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;Sobrescribimos el método &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.control.render.aspx" target="_blank"&gt;Render&lt;/a&gt; de una pagina, y “limpiamos” con expresiones regulares &lt;/li&gt;    &lt;li&gt;Sobrescribimos el método &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.control.render.aspx" target="_blank"&gt;Render&lt;/a&gt; y limpiamos con componentes como el &lt;a href="http://yuicompressor.codeplex.com/" target="_blank"&gt;YUI Compressor for .NET&lt;/a&gt;       &lt;ol&gt;       &lt;li&gt;Utilizamos &lt;a href="http://regexadvice.com/blogs/mash/archive/2008/04/27/Update-to-CSS-Minification.aspx" target="_blank"&gt;la formidable clase en C#&lt;/a&gt; para minimizar CSS realizada por &lt;a href="http://regexadvice.com/blogs/mash/default.aspx" target="_blank"&gt;Michael Ash&lt;/a&gt; que es la que utiliza el &lt;a href="http://yuicompressor.codeplex.com/" target="_blank"&gt;YUI Compressor for .NET&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Un poco mas “técnicos”… Utilizamos &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.httpresponse.filter.aspx" target="_blank"&gt;Response.Filter&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Vamos hasta “al infinito y mas allá”. Utilizamos &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.pageparserfilter.aspx" target="_blank"&gt;PageParserFilter&lt;/a&gt;.       &lt;br /&gt;&lt;em&gt;Aqui nos ayudamos con un componente que ya lo tiene implementado&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;[Idea a futuro] Componente del IIS para limpiar caracteres en blanco… (no lo tengo implementado, si alguien tiene un ejemplo bienvenido en los comentarios)      &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;&lt;u&gt;OPCION 1&lt;/u&gt;: Sobrescribimos el método &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.control.render.aspx" target="_blank"&gt;Render&lt;/a&gt; de una pagina, limpiamos con expresiones regulares&lt;/h4&gt;  &lt;p&gt;Aquí sobrescribimos el evento &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.control.render.aspx" target="_blank"&gt;Render&lt;/a&gt; para obtener la cadena de salida y tratarla&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Render(HtmlTextWriter writer)
    {

        &lt;span style="color:#008000;"&gt;//Obtemos el HTML resultante dentro de un TextWriter&lt;/span&gt;
        TextWriter tw = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; StringWriter();

        HtmlTextWriter htmlWriter = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HtmlTextWriter(tw);

        &lt;span style="color:#008000;"&gt;//Renderizamos la pagina&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.Render(htmlWriter);

        htmlWriter.Close();

        &lt;span style="color:#008000;"&gt;//Obtenemos la cadena del HTML&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; htmlResultante = tw.ToString();

        &lt;span style="color:#008000;"&gt;//Limpiando&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; htmlMin = YODA.Web.HTMLUtil.MinificarHTML(htmlResultante);

        &lt;span style="color:#008000;"&gt;//Escribiendo la salida&lt;/span&gt;
        writer.Write(htmlMin);
    }&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Haciendo uso de expresiones regulares simples podremos Minificar el HTML, solo para algunos patrones (espacios entre tags, saltos de linea, tabs, espacios en blanco mayores que 2&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; YODA.Web
{
    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; HTMLUtil
    {
        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; HTMLUtil()
        {
            &lt;span style="color:#008000;"&gt;//&lt;/span&gt;
            &lt;span style="color:#008000;"&gt;// TODO: Add constructor logic here&lt;/span&gt;
            &lt;span style="color:#008000;"&gt;//&lt;/span&gt;
        }

        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MinificarHTML(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; htmlCadena)
        {
            Regex regEspaciosEntreTags = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Regex(&lt;span style="color:#006080;"&gt;@&amp;quot;&amp;gt;(?! )\s+&amp;quot;&lt;/span&gt;, RegexOptions.Singleline);
            Regex regSaltoDeLinea = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Regex(&lt;span style="color:#006080;"&gt;@&amp;quot;([\n\s])+?(?&amp;lt;= {2,})&amp;lt;&amp;quot;&lt;/span&gt;, RegexOptions.Singleline);
            Regex regSaltoDeLinea2 = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Regex(&lt;span style="color:#006080;"&gt;@&amp;quot;\r\n&amp;quot;&lt;/span&gt;, RegexOptions.Singleline);
            Regex regTabs = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Regex(&lt;span style="color:#006080;"&gt;@&amp;quot;\t&amp;quot;&lt;/span&gt;, RegexOptions.Singleline);
            Regex regEspaciosEnBlanco = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Regex(&lt;span style="color:#006080;"&gt;@&amp;quot;\s{2,}&amp;quot;&lt;/span&gt;, RegexOptions.Singleline);


            htmlCadena = regEspaciosEntreTags.Replace(htmlCadena, &lt;span style="color:#006080;"&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;);
            htmlCadena = regSaltoDeLinea.Replace(htmlCadena, &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;&amp;quot;&lt;/span&gt;);
            htmlCadena = regSaltoDeLinea2.Replace(htmlCadena, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty);
            htmlCadena = regTabs.Replace(htmlCadena, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty);
            htmlCadena = regEspaciosEnBlanco.Replace(htmlCadena, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty);

            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; htmlCadena.ToString();
        }

    }  
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Puedes buscar en &lt;a href="http://regexlib.com/"&gt;regexlib.com&lt;/a&gt; algunos ejemplos. En el ejemplo para descargar dejo varias implementaciones.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;NOTA IMPORTANTE: Este código no es del todo óptimo, pero sirve como ejemplo. Ya que espacios de variables en javascript&amp;#160; var vble1 = “&amp;#160;&amp;#160; valor 1”; lo optimiza por los espacios; Los saltos de linea no tiene en cuenta si lo que viene es una funcion js, y asi sucesivamente. Vuelvo a insistir, antes que el lector se acuerde de mi familia, que esto es un &lt;u&gt;ejemplo de como modificar&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h4&gt;&lt;u&gt;OPCION 2:&lt;/u&gt; Sobrescribimos el método &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.control.render.aspx" target="_blank"&gt;Render&lt;/a&gt; y limpiamos con componentes como el &lt;a href="http://yuicompressor.codeplex.com/" target="_blank"&gt;YUI Compressor for .NET&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_4F408AE2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2FCE344F.png" width="974" height="168" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NOTA Opción 2: Aquí utilice &lt;a href="http://yuicompressor.codeplex.com/" target="_blank"&gt;el componente&lt;/a&gt; pero dentro del componente la clase que hace la magia de minimizar es un código de autoría de &lt;a href="http://regexadvice.com/blogs/mash/default.aspx" target="_blank"&gt;Michael Ash&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;En el código fuente de &lt;a href="http://yuicompressor.codeplex.com/" target="_blank"&gt;YUI Compressor for .NET&lt;/a&gt; 

    &lt;br /&gt;&lt;a href="http://yuicompressor.codeplex.com/SourceControl/changeset/view/62134#983563"&gt;http://yuicompressor.codeplex.com/SourceControl/changeset/view/62134#983563&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;[El código original]&lt;/strong&gt; Update to CSS Minification (por &lt;a href="http://regexadvice.com/blogs/mash/default.aspx" target="_blank"&gt;Michael Ash&lt;/a&gt;) 

    &lt;br /&gt;&lt;a href="http://regexadvice.com/blogs/mash/archive/2008/04/27/Update-to-CSS-Minification.aspx"&gt;http://regexadvice.com/blogs/mash/archive/2008/04/27/Update-to-CSS-Minification.aspx&lt;/a&gt;&amp;#160; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Asi que lo dejo también dentro de ejemplo a descargar en la carpeta App_Code&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;NOTA: No podremos utilizar &lt;a href="http://www.asp.net/ajaxlibrary/AjaxMinDocumentation.ashx" target="_blank"&gt;Microsoft Ajax Minifier&lt;/a&gt;&amp;#160; solo tenemos dos métodos que nos nos ayudan a minimizar JS y CSS incluso de obuscar para minimizar el nombre de variables&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_610CF8E2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7A64D64F.png" width="827" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h4&gt;Opcion 1.1, 2.1 (Tip): Heredar comportamiento (sobreescribir el Render en un solo lugar)&lt;/h4&gt;

&lt;p&gt;Ambas Opciones (1, 2) que sobrescriben el Render pueden estar en una Pagina Base para luego heredarla o en una Master base, como el ejemplo&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; YODA.Web
{
    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MasterPageBase : System.Web.UI.MasterPage
             
    {
        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; MasterPageBase()
        {
            &lt;span style="color:#008000;"&gt;//&lt;/span&gt;
            &lt;span style="color:#008000;"&gt;// TODO: Add constructor logic here&lt;/span&gt;
            &lt;span style="color:#008000;"&gt;//&lt;/span&gt;
        }

        &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Render(HtmlTextWriter writer)
        {

            &lt;span style="color:#008000;"&gt;//Obtemos el HTML resultante dentro de un TextWriter&lt;/span&gt;
            TextWriter tw = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; StringWriter();

            HtmlTextWriter htmlWriter = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HtmlTextWriter(tw);

            &lt;span style="color:#008000;"&gt;//Renderizamos la pagina&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.Render(htmlWriter);

            htmlWriter.Close();

            &lt;span style="color:#008000;"&gt;//Obtenemos la cadena del HTML&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; htmlResultante = tw.ToString();
            
            &lt;span style="color:#008000;"&gt;//Limpiando&lt;/span&gt;
            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; htmlMin = YODA.Web.HTMLUtil.MinificarHTML(htmlResultante);

            &lt;span style="color:#008000;"&gt;//Escribiendo salida&lt;/span&gt;
            writer.Write(htmlMin);

        }
    }
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;hay que hacer que la Master de nuestro sitio herede de la MasterPageBase que creamos&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; partial &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; SiteWithOverrrideRender : YODA.Web.MasterPageBase
{
    &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)
    {

    }
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h4&gt;&lt;u&gt;OPCION 3:&lt;/u&gt; Utilizamos &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.httpresponse.filter.aspx" target="_blank"&gt;Response.Filter&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;Aqui debemos crear un filtro, que es una clase que hereda en este ejemplo de MemoryStream y realice las acciones correspondientes&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“(…)Cuando se crea un objeto Stream y se establece la propiedad Filter para el objeto Stream, toda la salida HTTP enviada por &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.httpresponse.write.aspx"&gt;Write&lt;/a&gt; pasa por el filtro.(…)”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div align="left"&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; YODA.Web
{
    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MinificarHTMLFiltro : MemoryStream
    {
        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Stream HtmlStream { get; set; }

        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; MinificarHTMLFiltro(Stream htmlStream)
        {
            &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.HtmlStream = htmlStream;
        }


        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Write(&lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[] buffer, &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; offset, &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; count)
        {
            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; contenidoEnElBuffer = UTF8Encoding.UTF8.GetString(buffer);

            &lt;span style="color:#008000;"&gt;//Acciones a realizar&lt;/span&gt;

            &lt;span style="color:#008000;"&gt;//Accion 1: Minificar salida limpinado tabs/espacios en blanco&lt;/span&gt;
            contenidoEnElBuffer = YODA.Web.HTMLUtil.MinificarHTML3(contenidoEnElBuffer);

            HtmlStream.Write(UTF8Encoding.UTF8.GetBytes(contenidoEnElBuffer), offset, UTF8Encoding.UTF8.GetByteCount(contenidoEnElBuffer));
        }
    }
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Y lo utilizamos en el Load de la pagina, simple no?&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)
    {
        Response.Filter = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; MinificarHTMLFiltro(Response.Filter);
    }&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h4&gt;&lt;u&gt;OPCION 4:&lt;/u&gt; Utilizamos &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.pageparserfilter.aspx" target="_blank"&gt;PageParserFilter&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;Como ya lo dije, aquí es utilizando &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.pageparserfilter.aspx" target="_blank"&gt;PageParserFilter&lt;/a&gt;, pero no comente que es un poco difícil (&lt;strike&gt;y doloroso&lt;/strike&gt;) crear una clase que herede de &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.pageparserfilter.aspx" target="_blank"&gt;PageParserFilter&lt;/a&gt; y haga lo que necesitamos, ya que deben construir todos los controles del árbol de controles de una pagina… 

  &lt;br /&gt;Gracias a enlace que compartió &lt;a href="http://geekswithblogs.net/jaullo/Default.aspx" target="_blank"&gt;Jason Ulloa&lt;/a&gt; en los &lt;a href="http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/35d44697-32e5-4c39-b67c-970033f0a78b" target="_blank"&gt;foros de MSDN&lt;/a&gt;, pude llegar hasta aquí:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://omari-o.blogspot.com/2009/09/aspnet-white-space-cleaning-with-no.html" target="_blank"&gt;ASP.NET white space cleaning with no runtime cost&lt;/a&gt; (by &lt;a href="http://omari-o.blogspot.com/" target="_blank"&gt;Omari Нa&lt;/a&gt;) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Que es una implementación de &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.pageparserfilter.aspx" target="_blank"&gt;PageParserFilter&lt;/a&gt; justamente para el objetivo de limpiar los espacios en blanco. Y podremos utilizarlo en ASP.NET Webforms y en ASP.NET MVC&lt;/p&gt;

&lt;p&gt;Como lo implementamos, configuramos? &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Creamos nuestro &lt;a href="http://msdn.microsoft.com/es-es/library/system.web.ui.pageparserfilter.aspx" target="_blank"&gt;PageParserFilter&lt;/a&gt; (o utilizamos un componente) &lt;/li&gt;

  &lt;li&gt;Registramos en la seccion pages del web.config 
    &lt;br /&gt;

    &lt;div&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;    
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;pages&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;pageParserFilterType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;YODA.Web.MinificarHTMLPageParserFilter&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;pages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;br /&gt; ...&lt;/span&gt;&lt;/pre&gt;
En &lt;a href="http://omari-o.blogspot.com/2009/09/aspnet-white-space-cleaning-with-no.html" target="_blank"&gt;el ejemplo Omari Нa que lo puedes descargar&lt;/a&gt; 

      &lt;br /&gt;

      &lt;div&gt;
        &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;pages&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;pageParserFilterType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Omari.Web.UI.WhiteSpaceCleaner, WhiteSpaceCleanerForWebFormsAndMVC2&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;pages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
...&lt;/p&gt;&lt;/pre&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;&amp;#160;&lt;/h4&gt;

&lt;h4&gt;&lt;u&gt;OPCION 5:&lt;/u&gt; [Idea a futuro] Componente del IIS para limpiar caracteres en blanco…minimizar &lt;/h4&gt;

&lt;p&gt;Mejorar… siempre! Para los mas experimentados… Comprimir todo en el IIS. CREAR UN COMPONENTE&lt;/p&gt;

&lt;p&gt;Podríamos armar un componente para el IIS para que comprima el HTML resultante de cualquier pagina… ya existe? por favor háganmelo saber a través de los comentarios&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Ganamos algo? Algunos inconvenientes&lt;/h3&gt;

&lt;p&gt;Comente mas arriba que hay otros lugares en nuestra app web para empezar a optimizar, porque no siempre ganamos haciendo esto de compactar la salida HTML&lt;/p&gt;

&lt;p&gt;Problemas que podemos tener:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Como la minificacion es automática, el documento HTML mal formado puede ocasionar una salida “no bien formada” (con errores para el renderizado en el navegador) (incluso eliminando porciones de contenido) 
    &lt;br /&gt;Por qué puede estar mal formado? porque somos nosotros simples mortales lo que escribimos parte del mismo. Todavía no es todo “autogenerado”, todavía ;) 

    &lt;br /&gt;Es decir: Si alguien se le fue “los dedos” y escribió &lt;strong&gt;&amp;lt;br&amp;gt; /&amp;gt;&lt;/strong&gt;&amp;#160; y al limpiar entre tags no sabremos que puede pasar. 

    &lt;br /&gt;Mas arriba comente algo sobre por ejemplo limpiar bien los saltos de linea que esta demas (y el problema de javascript) 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Hay que tener en cuenta el tiempo que involucra tener esta funcionalidad y realizarla por cada pagina, en cada peticion 
    &lt;br /&gt;Con las otras tecnicas se puede mejorar. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Tips/Recomendaciones&lt;/h3&gt;

&lt;p&gt;Esto de compactar HTML ( o CSS y JS) tiene que ir de la mano de otras técnicas para optimiza porque no es tampoco nada recomendable estar haciendo esto siempre, ya que es un punto que hay procesamiento. Por este motivo podemos ayudarnos con:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Comprimir el contenido que se envía al cliente (típicamente con Gzip) ya la mayoría de los “mortales” utilizamos navegadores modernos que soportan recibir este tipo de contenido. &lt;/li&gt;

  &lt;li&gt;Cachear un poco el contenido en el servidor y en el cliente cuando se pueda, &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Algunos tips a tener en cuenta para optimizar aplicaciones web pueden verlo aquí:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;[Geeks.ms] &lt;a href="http://geeks.ms/blogs/gperez/archive/2010/05/15/material-chala-t-233-cnicas-ninja-de-optimizaci-243-n-web.aspx" target="_blank"&gt;Material Charla - Técnicas Ninja de Optimización Web&lt;/a&gt; (por &lt;a href="http://geeks.ms/members/gperez/default.aspx"&gt;Gonzalo Perez&lt;/a&gt;) 

    &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dejo otros enlaces mas abajo.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Síntesis &lt;/h3&gt;

&lt;p&gt;Se aprendió además de la idea de minificar el HTML, varias opciones de como modificar la salida HTML de nuestros proyectos con ASP.NET Webforms. 
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Ejemplo para descargar&lt;/h3&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;u&gt;Response.Filter&lt;/u&gt; 

    &lt;ul&gt;
      &lt;li&gt;
        &lt;div align="left"&gt;Cómo: Almacenar los resultados de una página dinámica para una página HTML en ASP.NET mediante Visual C# .NET 
          &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/810205/es"&gt;http://support.microsoft.com/kb/810205/es&lt;/a&gt;&lt;/div&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;div align="left"&gt;Filtering HTTP Requests with .NET 
          &lt;br /&gt;&lt;a href="http://ondotnet.com/pub/a/dotnet/2003/10/20/httpfilter.html"&gt;http://ondotnet.com/pub/a/dotnet/2003/10/20/httpfilter.html&lt;/a&gt;&lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;u&gt;Optimizando sitio web&lt;/u&gt; 

    &lt;ul&gt;
      &lt;li&gt;14 Rules for Faster-Loading Web Sites 
        &lt;br /&gt;&lt;a href="http://stevesouders.com/hpws/rules.php"&gt;http://stevesouders.com/hpws/rules.php&lt;/a&gt; &lt;/li&gt;

      &lt;li&gt;Best Practices for Speeding Up Your Web Site 
        &lt;br /&gt;&lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;http://developer.yahoo.com/performance/rules.html&lt;/a&gt; &lt;/li&gt;

      &lt;li&gt;Reducing the file size of HTML documents 
        &lt;br /&gt;&lt;a href="http://code.google.com/speed/articles/optimizing-html.html"&gt;http://code.google.com/speed/articles/optimizing-html.html&lt;/a&gt; 

        &lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;u&gt;PagePageFilter&lt;/u&gt; 

    &lt;ul&gt;
      &lt;li&gt;&lt;a href="http://omari-o.blogspot.com/2009/09/aspnet-white-space-cleaning-with-no.html" target="_blank"&gt;ASP.NET white space cleaning with no runtime cost&lt;/a&gt; (by &lt;a href="http://omari-o.blogspot.com/" target="_blank"&gt;Omari Нa&lt;/a&gt;) &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=209" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+4.0/default.aspx">ASP.NET 4.0</category></item><item><title>[TFS2008] Descargar/Modificar/Publicar Templates de procesos</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2011/01/11/tfs2008-descargar-modificar-publicar-templates-de-procesos.aspx</link><pubDate>Tue, 11 Jan 2011 12:01:36 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:208</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hoy me toco modificar un template de un proceso que tenemos en nuestro TFS, siempre lo modificamos online (agregar nuevos campos) pero hoy con &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales/" target="_blank"&gt;Diego&lt;/a&gt; decidimos que es hora de hacerlo en un template nuevo, porque que la tarea ardua de&amp;#160; modificar sobre el proyecto “en caliente” no era bueno repetirlo. Además el proceso ya se estandarizó en nuestro sistema de calidad.    &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Antes que nada… “las fuentes”!&lt;/h3&gt;  &lt;p&gt;Si quieres hablar, rezar, pensar o realizar alguna acción sobre TFS y tienes a la lengua castellana como “natural” es imposible no caer en algunos de los &lt;a href="http://geeks.ms/blogs/elbruno/archive/2009/11/11/off-topic-post-n-250-mero-1111101000-eres-la-mitad-de-los-10-tipos-de-persona-que-lo-entenderan.aspx" target="_blank"&gt;1000 post&lt;/a&gt; de &lt;a href="http://geeks.ms/blogs/elbruno" target="_blank"&gt;El Bruno&lt;/a&gt; que tiene sobre &lt;a href="http://geeks.ms/blogs/elbruno/archive/tags/Team+Foundation+Server/default.aspx" target="_blank"&gt;TFS&lt;/a&gt; (y otros temas), como se diría por aquí&amp;#160; &lt;a href="http://www.youtube.com/watch?v=qKggsaadZ0s" target="_blank"&gt;“el que sabe… sabe”&lt;/a&gt;. Los invito a visitar su blog… Así que de ahí tomo de referencia para el presente articulo,&amp;#160; también dejo enlaces al final.     &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Empezamos con lo general&lt;/h3&gt;  &lt;p&gt;Para modificar todo es tocar y retocar XML, pero por por suerte tenemos las &lt;a href="http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx" target="_blank"&gt;Team Foundation Server Power Tools&lt;/a&gt; que tiene el &lt;a href="http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#pte" target="_blank"&gt;Process Template Editor&lt;/a&gt;     &lt;br /&gt;para VS2008 tienes &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fbd14eea-781f-45a1-8c46-9f6ba2f68bf0&amp;amp;DisplayLang=en" target="_blank"&gt;TFS 2008: Power Tools (Oct/2008)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cuando instalas tienes en Herramientas el &lt;a href="http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#pte" target="_blank"&gt;Process Template Editor&lt;/a&gt; y puedes editar un work item directamente desde el servidor&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_2CA01991.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_39D67CD7.png" width="750" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;O puedes abrir un Template de proceso…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_24985162.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_0187DFF2.png" width="775" height="138" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Descargar/Publicar Template de Procesos&lt;/h3&gt;  &lt;p&gt;Aqui el primer paso su queremos armar un nuevo template modificando uno actual&lt;/p&gt;  &lt;p&gt;En el menu del VS que es&amp;#160; Team &amp;gt; Team Foundation Server Settings &amp;gt; Process Template Manager…    &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_308A1BC9.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_3F24A1E1.png" width="483" height="405" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;…o también desde el menú contextual arriba del nombre del servidor en el Explorador&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_614C879A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_21BF244A.png" width="494" height="289" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y desde alli podremos ralizar el Download de un proceso y su correspondiente &lt;a href="http://msdn.microsoft.com/es-es/library/ms181512.aspx" target="_blank"&gt;Upload&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_2C9C0592.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_28CE3AF5.png" width="485" height="354" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Y como seguimos? Modificando los workitems necesarios…&lt;/h3&gt;  &lt;p&gt;Mas adelante publico otro ejemplo de modificar un Workitem (el que tuvimos que agregar), pero tienes este HowTo de elBruno &lt;a href="http://geeks.ms/blogs/elbruno/archive/2008/10/02/tfs2008-howto-agregar-un-campo-personalizado-a-la-definici-243-n-de-un-workitem.aspx" target="_blank"&gt;[TFS2008] HowTo: Agregar un campo personalizado a la definición de un WorkItem&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Espero que les sirva. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Enlaces&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx" target="_blank"&gt;Team Foundation Server Power Tools&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#pte" target="_blank"&gt;Process Template Editor&lt;/a&gt;           &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb668982.aspx" target="_blank"&gt;How To: Customize a Process Template in Visual Studio Team Foundation Server&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Varios de TFS y Templates      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ms181510.aspx" target="_blank"&gt;Administrar plantillas de proceso&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ms243782.aspx" target="_blank"&gt;Personalizar plantillas de procesos&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ms181512.aspx" target="_blank"&gt;Cargar una plantilla de procesos&lt;/a&gt;           &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/elbruno" target="_blank"&gt;El Bruno&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a href="http://geeks.ms/blogs/elbruno/archive/2008/10/02/tfs2008-howto-agregar-un-campo-personalizado-a-la-definici-243-n-de-un-workitem.aspx" target="_blank"&gt;[TFS2008] HowTo: Agregar un campo personalizado a la definición de un WorkItem&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=208" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/TFS+2008/default.aspx">TFS 2008</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category></item><item><title>[Control+F 2010] Curso Terminado: .NET Junior 160hs (UTN – FRRe)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/12/27/control-f-2010-curso-terminado-net-junior-160hs-utn-frre.aspx</link><pubDate>Tue, 28 Dec 2010 00:20:05 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:207</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Una vez mas tuve la grata tarea de estar al frente de un curso de Control+F, &lt;a href="http://geeks.ms/blogs/fernandezja/archive/2009/12/21/curso-terminado-becas-control-f-curso-net-240hs-utn-frre.aspx" target="_blank"&gt;al igual que el año pasado&lt;/a&gt;.     &lt;br /&gt;Terminamos a finales de Noviembre las 160 horas de formación de &lt;a href="http://www.becascontrolf.com.ar/cursos/programacion-puntonet.asp#junior" target="_blank"&gt;.NET Junior&lt;/a&gt; en el marco de las &lt;a href="http://www.becascontrolf.com.ar/" target="_blank"&gt;Becas Control+F&lt;/a&gt;&lt;img src="http://i.ixnp.com/images/v6.53/t.gif" alt="" /&gt;, en los laboratorios de la &lt;a href="http://www.frre.utn.edu.ar/" target="_blank"&gt;UTN FRRE&lt;/a&gt;&lt;img src="http://i.ixnp.com/images/v6.53/t.gif" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Aquí los &lt;a href="http://es.wikipedia.org/wiki/Padawan#Padawan" target="_blank"&gt;Padawan&lt;/a&gt;… &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/ControlF_2D00_Curso52_2D00_NETJunior_2D00_UTN_2D00_FRRE_2D00_2010_5F00_463F48E2.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="ControlF-Curso52-NETJunior-UTN-FRRE-2010" border="0" alt="ControlF-Curso52-NETJunior-UTN-FRRE-2010" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/ControlF_2D00_Curso52_2D00_NETJunior_2D00_UTN_2D00_FRRE_2D00_2010_5F00_thumb_5F00_0644F0F6.jpg" width="729" height="475" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;El curso&lt;/h3&gt;  &lt;p&gt;En esta versión del curso de 160hs menos horas que el curso anterior del año pasado, esta vez en &lt;a href="http://www.frre.utn.edu.ar/" target="_blank"&gt;UTN FRRE&lt;/a&gt;&lt;img src="http://i.ixnp.com/images/v6.53/t.gif" alt="" /&gt; tenia dos cursos, &lt;a href="http://hernanzini.blogspot.com/2009/12/fin-curso-becas-controlf.html" target="_blank"&gt;unos de ellos los daba Hernán Zini&lt;/a&gt;&amp;#160;&lt;em&gt;(que este año no blogueo fotos todavía)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Temas&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Parte I: Fundamentos de POO con C#, algo de HTML con Javascript, &lt;/li&gt;    &lt;li&gt;Parte II: Basada en el &lt;a href="http://www.microsoft.com/learning/en/us/course.aspx?ID=2310D" target="_blank"&gt;MOC 2310: Developing Web Applications Using Microsoft Visual Studio 2008 SP1&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Las Becas Control+F?&lt;/h3&gt;  &lt;p&gt;Que son las becas? es una iniciativa de capacitación en tecnologías informáticas organizada por el &lt;strong&gt;&lt;a href="http://www.trabajo.gob.ar/" target="_blank"&gt;Ministerio de Trabajo de la Nación (Argentina)&lt;/a&gt;&lt;img src="http://i.ixnp.com/images/v6.53/t.gif" alt="" /&gt;&lt;/strong&gt; en conjunto con &lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href="http://www.cessi.org.ar/" target="_blank"&gt;CESSI&lt;/a&gt;&lt;/strong&gt;&lt;img src="http://i.ixnp.com/images/v6.53/t.gif" alt="" /&gt; y empresas de primera línea del sector informático&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Un poco mas de fotos…   &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14471_5F00_1C3B36BB.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SDC14471" border="0" alt="SDC14471" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14471_5F00_thumb_5F00_13B715CA.jpg" width="216" height="163" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14841_5F00_2376AACE.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SDC14841" border="0" alt="SDC14841" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14841_5F00_thumb_5F00_7BAFE309.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14469_5F00_674A1D7E.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SDC14469" border="0" alt="SDC14469" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14469_5F00_thumb_5F00_5D61D9BB.jpg" width="217" height="164" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14840_5F00_300043EB.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SDC14840" border="0" alt="SDC14840" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC14840_5F00_thumb_5F00_22D5F273.jpg" width="244" height="164" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;em&gt;… por si no se dan cuenta nos vimos desde Agosto hasta Noviembre… desde pulóveres hasta remeras &lt;img style="border-bottom-style:none;border-right-style:none;border-top-style:none;border-left-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/wlEmoticon_2D00_winkingsmile_5F00_4B9157BC.png" /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Mas info&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Becas Control+F      &lt;br /&gt;&lt;a href="http://www.becascontrolf.com.ar/" target="_blank"&gt;http://www.becascontrolf.com.ar/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=207" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Formacion/default.aspx">Formacion</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Cursos/default.aspx">Cursos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Control_2B00_F/default.aspx">Control+F</category></item><item><title>[Sync Framework] COM Exception: Retrieving the COM class factory for component with CLSID {031913FE-EB2A-49F2-B2BE-B996B2448CD4} failed due to the following error: 80040154</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/12/21/sync-framework-com-exception-retrieving-the-com-class-factory-for-component-with-clsid-031913fe-eb2a-49f2-b2be-b996b2448cd4-failed-due-to-the-following-error-80040154.aspx</link><pubDate>Tue, 21 Dec 2010 22:22:35 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:206</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Muy largo el titulo! Disculpas. (Pero para el que necesita vendría bien encontrarlo por el titulo como lo queria hacer yo)&lt;/p&gt;  &lt;p&gt;Bueno estas cosas hay que publicarlas… tal como viene a la vida y se nos presenta en nuestras pantallas&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Introducción &lt;/h3&gt;  &lt;p&gt;Utilizando en un proyecto &lt;a href="http://msdn.microsoft.com/en-us/sync/default" target="_blank"&gt;Microsoft Sync Framework&lt;/a&gt;&amp;#160;&lt;a href="http://twitter.com/syncfx" target="_blank"&gt;(@syncfx&lt;/a&gt;) para utilizarlo en un componente nos descargamos en nuestro equipo de&amp;#160; proyecto el &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ee6af141-79d0-4351-a4a0-ea89bb29dcf5&amp;amp;displayLang=es" target="_blank"&gt;SDK 2.1&lt;/a&gt; (&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=afd89099-d589-423c-9762-78096aa95ac2&amp;amp;displaylang=en" target="_blank"&gt;la version 4.0 esta en CTP desde Oct/2010&lt;/a&gt; para los &lt;a href="http://en.wikipedia.org/wiki/Kamikaze" target="_blank"&gt;kamikaze&lt;/a&gt;), todo bien para el desarrollo en mi SO de 32bits pero cuando alguien en el equipo de desarrollo con un sistema operativo a 64bits lo quiso levantar, nos arrojaba el siguiente mensaje…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Mensaje de la excepción:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;Retrieving the COM class factory for component with CLSID {031913FE-EB2A-49F2-B2BE-B996B2448CD4} failed due to the following error: 80040154 Clase no registrada (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Mensaje&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;Retrieving the COM class factory for component with CLSID {C201C012-C929-4D72-B9C5-341D48630630} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Imagen de la excepción:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_75F9180B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_003A169F.png" width="712" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Por allí en la InnerException nos tiraba una clave en la Registry dentro de &lt;a href="http://msdn.microsoft.com/es-es/library/aa384249.aspx" target="_blank"&gt;WOW64&lt;/a&gt; (emulación de 32bits dentro del SO de 64bits) entonces buscando algo que me diga que era &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Aclaración:&lt;/u&gt;&lt;/strong&gt; en la maquina de SO de 64bits se instalo el &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ee6af141-79d0-4351-a4a0-ea89bb29dcf5&amp;amp;displayLang=es" target="_blank"&gt;SDK 2.1&lt;/a&gt; para su versión&amp;#160; &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_7ABB802D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_52A8D10E.png" width="219" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Solución&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Bueno, es obvia, si el proyecto esta compilado para x86, y los componentes no los tengo instalado los debo instalar en la de 64bit para x86, pero como no lo hicimos así y en el deploy vamos a encontrarnos con maquinas de diferentes plataformas entonces cambiamos la configuración con que se compila a que sea para &lt;a href="http://msdn.microsoft.com/en-us/library/5b4eyb0k.aspx" target="_blank"&gt;“Any CPU”&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_1F6C97A5.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2402A25F.png" width="255" height="126" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Antes… (un poco de historia)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Buscando en los foros de Sync Framework dimos con muchos ejemplos de cuando no existía al versión para 64bits, pero desde la 2.0 la tenemos disponible.    &lt;br /&gt;En la lista de discusion de los ejemplos de MS Sync en MSDN Code Gallery encontré &lt;a href="http://code.msdn.microsoft.com/sync/Thread/View.aspx?ThreadId=258" target="_blank"&gt;también en este pequeño cambio que propusieron&lt;/a&gt;.     &lt;br /&gt;Antes la única forma era emular en la maquina de 64bits, 32bits (el famoso WOW64) &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Enlaces&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ee6af141-79d0-4351-a4a0-ea89bb29dcf5&amp;amp;displayLang=es" target="_blank"&gt;Kit de desarrollo de software (SDK) de Microsoft Sync Framework 2.1&lt;/a&gt;      &lt;br /&gt;Aqui encontraran tanto para plataformas x86 como x64.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c3b2f32b-12a9-40b8-9e83-c452ac546c49&amp;amp;displayLang=es" target="_blank"&gt;Microsoft Sync Framework 2.1 Redistributable Package&lt;/a&gt;      &lt;br /&gt;Para las maquinas para realizar el deployment necesitamos los paquetes de redistribución.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://social.microsoft.com/Forums/en/category/sync" target="_blank"&gt;Microsoft Sync Framework Forum&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=206" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/SyncFx/default.aspx">SyncFx</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Sync+Framework/default.aspx">Sync Framework</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Microsoft+Sync+Framework/default.aspx">Microsoft Sync Framework</category></item><item><title>Procedimientos Almacenados en SQL Server 2005/2008. Control de Errores &amp; Transacciones. Uso XACT_ABORT &amp; XACT_STATE.</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2010/12/11/procedimientos-almacenados-en-sql-server-2005-2008-control-de-errores-amp-transacciones-uso-xact-abort-amp-xact-state.aspx</link><pubDate>Sat, 11 Dec 2010 14:13:34 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:205</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A continuación comparto la &lt;strong&gt;plantilla de código&lt;/strong&gt; para la creación de procedimientos almacenados en SQL Server 2005/2008 con control de transacciones que utilizamos en la empresa:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;PROCEDURE&lt;/span&gt; [dbo].[Objeto_Accion]&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;    -- Parámetros de salida&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    [&amp;lt;@paramOUT&amp;gt; int &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;[, &amp;lt;@paramOUTMSG&amp;gt; varchar(255) &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;]&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="rem"&gt;-- Parámetros de entrada (obligatorios)&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &amp;lt;@param1&amp;gt; &amp;lt;datatype&amp;gt;,
    &amp;lt;@param2&amp;gt; &amp;lt;datatype&amp;gt;,
    ...&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="rem"&gt;-- Parámetros de entrada (opcionales)&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &amp;lt;@param11&amp;gt; &amp;lt;datatype&amp;gt; = &amp;lt;default value&amp;gt;,
    &amp;lt;@param12&amp;gt; &amp;lt;datatype&amp;gt; = &amp;lt;default value&amp;gt;,
    ...&lt;/pre&gt;

&lt;p&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;-- Bloque de declaración de variables&lt;/span&gt;

&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;
[&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; &amp;lt;@MensajeDevuelto&amp;gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(255)]&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;-- Bloque de declaración de constantes&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;&lt;/pre&gt;


&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;


    &lt;span class="rem"&gt;-- Bloque de sentencias SELECT &lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;-- Asignación de variables.&lt;/span&gt;
        &lt;span class="rem"&gt;-- Validaciones. &lt;/span&gt;

&lt;span class="rem"&gt;        -- Condición de salida previa&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;        [&lt;span class="kwrd"&gt;IF&lt;/span&gt; &amp;lt;condición de salida previa&amp;gt; 
            &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;
                &lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt; = -1
                [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@MensajeDevuelto&amp;gt; = &lt;span class="str"&gt;&amp;#39;Detalle de condición de salida&amp;#39;&lt;/span&gt;]

                [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@paramOUT&amp;gt; = &amp;lt;@ValorDevuelto&amp;gt;]
                [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@paramOUTMSG&amp;gt; = &amp;lt;@MensajeDevuelto&amp;gt;]

                &lt;span class="kwrd"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt;[, &amp;lt;@MensajeDevuelto&amp;gt;]&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                &lt;font color="#0000ff"&gt;RAISEERROR &lt;/font&gt;(50001, 25, ‘Salida sin ejecución’)


                &lt;span class="rem"&gt;-- Salida sin ejecución&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                &lt;span class="kwrd"&gt;RETURN&lt;/span&gt;(-1)
            &lt;span class="kwrd"&gt;END …]&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;    [SET&lt;/span&gt; TRANSACTION ISOLATION LEVEL ]&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;    SET&lt;/span&gt; XACT_ABORT &lt;span class="kwrd"&gt;ON&lt;/span&gt;


    &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; TRY


        &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;


            &lt;span class="rem"&gt;-- Bloque de sentencias DML&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                &lt;span class="rem"&gt;-- ...&lt;/span&gt;
                &lt;span class="rem"&gt;-- ...&lt;/span&gt;

                &lt;span class="rem"&gt;-- Recuperar el ID que nos interesa devolver a la aplicación&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                &lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt; = SCOPE_IDENTITY()



            &lt;span class="rem"&gt;-- Bloque de auditoria&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                &lt;span class="kwrd"&gt;SET&lt;/span&gt; ...

                INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; Auditoria



        &lt;span class="kwrd"&gt;COMMIT&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;


        [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@MensajeDevuelto&amp;gt; = &lt;span class="str"&gt;&amp;#39;Mensaje de ejecución OK&amp;#39;&lt;/span&gt;]

        [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@paramOUT&amp;gt; = &amp;lt;@ValorDevuelto&amp;gt;]
        [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@paramOUTMSG&amp;gt; = &amp;lt;@MensajeDevuelto&amp;gt;]

        &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt;[, &amp;lt;@MensajeDevuelto&amp;gt;]


        &lt;span class="rem"&gt;-- Salida con ejecución exitosa&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;        &lt;span class="kwrd"&gt;RETURN&lt;/span&gt; (1)

    &lt;span class="kwrd"&gt;END&lt;/span&gt; TRY


    &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; CATCH


        &lt;span class="rem"&gt;-- Obtener info del error. Escribir en tabla de track de Errores&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;        SET&lt;/span&gt; @ERROR_NUMBER = ERROR_NUMBER()
&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;        SET&lt;/span&gt; @ERROR_SEVERITY = ERROR_SEVERITY()
&lt;span class="kwrd"&gt;        SET&lt;/span&gt; @ERROR_STATE = ERROR_STATE()
&lt;span class="kwrd"&gt;        SET&lt;/span&gt; @ERROR_LINE = ERROR_LINE()
&lt;span class="kwrd"&gt;        SET&lt;/span&gt; @ERROR_PROCEDURE = ERROR_PROCEDURE()
&lt;span class="kwrd"&gt;        SET&lt;/span&gt; @ERROR_MESSAGE = ERROR_MESSAGE()&lt;/pre&gt;


&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;-- Test XACT_STATE()&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;            -- If  1, la XACT es &amp;quot;committable&amp;quot;. COMMIT&lt;/span&gt;
            &lt;span class="rem"&gt;-- If -1, la XACT es &amp;quot;uncommittable&amp;quot;. ROLLBACK&lt;/span&gt;
            &lt;span class="rem"&gt;-- If  0, no hay XACT abierta.&lt;/span&gt;

        &lt;span class="kwrd"&gt;IF&lt;/span&gt; (XACT_STATE()) = -1
            &lt;span class="kwrd"&gt;ROLLBACK&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;

        &lt;span class="kwrd"&gt;IF&lt;/span&gt; (XACT_STATE()) = 1
            &lt;span class="kwrd"&gt;COMMIT&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;&lt;/pre&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;  &lt;/font&gt;-- Ante error SQL se devuelve a la aplicación el ID del registro conteniendo el error en la tabla ErrorInfo&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;font color="#008000"&gt;&lt;span class="rem"&gt;  -- &lt;/span&gt;INSERT INTO&lt;font color="#000000"&gt; &lt;font color="#008000"&gt;ErrorInfo
&lt;/font&gt;  &lt;span class="rem"&gt;-- &lt;/span&gt;    &lt;font color="#008000"&gt;(ErrorNumber, ErrorSeverity, ErrorState, ErrorLine, ErrorProcedure, ErrorMessage)&lt;/font&gt;
  &lt;span class="rem"&gt;--     VALUES&lt;/span&gt;&lt;font color="#008000"&gt;
&lt;/font&gt;  &lt;span class="rem"&gt;-- &lt;/span&gt;        &lt;/font&gt;&lt;font color="#008000"&gt;(@ERROR_NUMBER, @ERROR_SEVERITY, @ERROR_STATE, @ERROR_LINE, @ERROR_PROCEDURE, @ERROR_MESSAGE)&lt;/font&gt;

&lt;/font&gt;&lt;/pre&gt;

  &lt;p&gt;&lt;font color="#008000"&gt;&amp;#160;&amp;#160; &lt;font size="2" face="Consolas"&gt; &lt;span class="rem"&gt;-- &lt;/span&gt;RAISEERROR (@ERROR_NUMBER, @ERROR_SEVERITY, @ERROR_MESSAGE);&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;

  &lt;p&gt;&amp;#160;&lt;/p&gt;

  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;/font&gt;&amp;#160;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;pre class="csharpcode"&gt;        &lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt; = SCOPE_IDENTITY()
        [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@MensajeDevuelto&amp;gt; = {&lt;span class="str"&gt;&amp;#39;Detalle del Error&amp;#39;&lt;/span&gt; | @ERROR_MESSAGE | ...}]

        [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@paramOUT&amp;gt; = &amp;lt;@ValorDevuelto&amp;gt;]
        [&lt;span class="kwrd"&gt;SET&lt;/span&gt; &amp;lt;@paramOUTMSG&amp;gt; = &amp;lt;@MensajeDevuelto&amp;gt;]&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;        &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &amp;lt;@ValorDevuelto&amp;gt;[, &amp;lt;@MensajeDevuelto&amp;gt;]

        

        &lt;span class="rem"&gt;-- Salida con error&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;        &lt;span class="kwrd"&gt;RETURN&lt;/span&gt; (0)    

    &lt;span class="kwrd"&gt;END&lt;/span&gt; CATCH

&lt;span class="kwrd"&gt;END&lt;/span&gt; 
GO&lt;/pre&gt;


&lt;pre class="csharpcode"&gt;&amp;#160;&lt;/pre&gt;

&lt;p&gt;Paso a explicar en detalle las secciones más importantes de la plantilla.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parámetros de salida&lt;/strong&gt; &lt;/p&gt;

&lt;pre class="csharpcode"&gt;[&amp;lt;@paramOUT&amp;gt; &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;[, &amp;lt;@paramOUTMSG&amp;gt; &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;]] &lt;/pre&gt;


&lt;p&gt;Si bien figura como un bloque opcional, es aconsejable devolver tanto el valor de salida del procedimiento como el mensaje explicativo de éxito o error como parámetros de salida además de como parte del SELECT de resultados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="rem"&gt;&lt;strong&gt;Bloque de sentencias SELECT &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;En este bloque deben incluirse todas las asignaciones de variables de trabajo que puedan consultarse en forma independiente a la transacción. De esta manera se reduce el tiempo de bloqueos exclusivos requerido por el procedimiento. &lt;/p&gt;

&lt;p&gt;Si existen variables cuyos valores influyen directamente en la transacción deberán asignarse dentro del bloque BEGIN TRANSACTION … END TRANSACTION configurando para ello el nivel de aislamiento deseado previo al mismo:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;[&lt;span class="kwrd"&gt;SET&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt; &lt;span class="kwrd"&gt;ISOLATION&lt;/span&gt; &lt;span class="kwrd"&gt;LEVEL&lt;/span&gt; {&lt;span class="kwrd"&gt;READ&lt;/span&gt; UNCOMMITTED | &lt;span class="kwrd"&gt;READ&lt;/span&gt; COMMITTED | REPEATABLE &lt;span class="kwrd"&gt;READ&lt;/span&gt; | SERIALIZABLE | SNAPSHOT}]&lt;/pre&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Condición de salida previa&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si el procedimiento debe incluir algunas verificaciones para detectar casos que impidan la ejecución del mismo, las mismas deben programarse de acuerdo al esquema propuesto en la plantilla. En este caso &amp;lt;@ValorDevuelto&amp;gt; = -1 y &amp;lt;@MensajeDevuelto&amp;gt; puede contener un detalle de porque se abandonó el procedimiento sin ejecutarlo. &lt;/p&gt;

&lt;p&gt;El valor de retorno puede ser 0 ó –1. Este último caso permitiría diferenciar el estado de ejecución del procedimiento:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“1” indicaría ejecución correcta. &lt;/li&gt;

  &lt;li&gt;“&amp;lt;1” indicaría ejecución incorrecta. 
    &lt;ul&gt;
      &lt;li&gt;“0” ejecución con error. &lt;/li&gt;

      &lt;li&gt;“-1” no ejecución por pre-condición no cumplida. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;/strong&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; XACT_ABORT &lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El uso de esta sentencia ha generado mucha discusión en nuestras reuniones de capacitación. Finalmente concluimos que este valor es indispensable configurar previo a la ejecución todo bloque BEGIN TRY / BEGIN TRANSACTION … COMMIT TRANSACTION / END TRY.&lt;/p&gt;

&lt;p&gt;La explicación más exacta del por qué el uso de esta configuración, es porque su utilización permite que cualquier error que se produzca dentro del bloque BEGIN TRY … END TRY marque como inválida a la transacción. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bloque de sentencias DML&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Siempre dentro del bloque BEGIN TRY / BEGIN TRANSACTION … COMMIT TRANSACTION / END TRY.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bloque de auditoria&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si no hay implementado algún otro mecanismo de auditoria (aplicación, desencadenadores, etc.) se lo debe incluir dentro del bloque BEGIN TRY / BEGIN TRANSACTION … COMMIT TRANSACTION / END TRY.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bloque BEGIN CATCH… END CATCH&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Captura errores producidos dentro del bloque BEGIN TRY … END TRY y confirma o deshace la transacción de acuerdo al valor de la función XACT_STATE().&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plantilla Simple con devolución de errores únicamente por RETURN.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;PROCEDURE&lt;/span&gt; [dbo].[Objeto_Accion]&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="rem"&gt;-- Parámetros de entrada (obligatorios)&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &amp;lt;@param1&amp;gt; &amp;lt;datatype&amp;gt;,
    &amp;lt;@param2&amp;gt; &amp;lt;datatype&amp;gt;,
    ... &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="rem"&gt;-- Parámetros de entrada (opcionales)&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;    &amp;lt;@param11&amp;gt; &amp;lt;datatype&amp;gt; = &amp;lt;default value&amp;gt;,
    &amp;lt;@param12&amp;gt; &amp;lt;datatype&amp;gt; = &amp;lt;default value&amp;gt;,
    ...&lt;/pre&gt;

&lt;p&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;-- Bloque de declaración de variables&lt;/span&gt;

&lt;span class="rem"&gt;-- Bloque de declaración de constantes&lt;/span&gt;&lt;/pre&gt;


&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;


    &lt;span class="rem"&gt;-- Bloque de sentencias SELECT &lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;-- Asignación de variables, v&lt;/span&gt;&lt;span class="rem"&gt;alidaciones, etc.&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;    SET&lt;/span&gt; XACT_ABORT &lt;span class="kwrd"&gt;ON&lt;/span&gt;

    &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; TRY

        &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;

            &lt;span class="rem"&gt;-- Bloque de sentencias DML&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;            &lt;span class="rem"&gt;-- Bloque de auditoria&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;
        &lt;span class="kwrd"&gt;COMMIT&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;

        &lt;span class="rem"&gt;-- Salida con ejecución exitosa&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;        &lt;span class="kwrd"&gt;RETURN&lt;/span&gt; (1)

    &lt;span class="kwrd"&gt;END&lt;/span&gt; TRY


    &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; CATCH&lt;/pre&gt;


&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;-- Test XACT_STATE()&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;        &lt;span class="kwrd"&gt;IF&lt;/span&gt; (XACT_STATE()) = -1
            &lt;span class="kwrd"&gt;ROLLBACK&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;

        &lt;span class="kwrd"&gt;IF&lt;/span&gt; (XACT_STATE()) = 1
            &lt;span class="kwrd"&gt;COMMIT&lt;/span&gt; &lt;span class="kwrd"&gt;TRANSACTION&lt;/span&gt;

        &lt;span class="rem"&gt;-- Salida con error&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;        &lt;span class="kwrd"&gt;RETURN&lt;/span&gt; (0)    

    &lt;span class="kwrd"&gt;END&lt;/span&gt; CATCH

&lt;span class="kwrd"&gt;END&lt;/span&gt; 
GO&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&amp;#160;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=205" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>[Libros] Comentarista! ;) ..de libros de Murach sobre VB.NET 2008 / ASP.NET 3.5 / ADO.NET, LINQ &amp; EF</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/11/11/libros-comentarista-de-libros-de-murach-sobre-vb-net-2008-asp-net-3-5-ado-net-linq-amp-ef.aspx</link><pubDate>Thu, 11 Nov 2010 18:06:26 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:204</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/BooksMurach_5F00_003_5F00_30569D57.jpg"&gt;&lt;img style="border-right-width:0px;margin:0px 15px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="BooksMurach_003" border="0" alt="BooksMurach_003" align="left" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/BooksMurach_5F00_003_5F00_thumb_5F00_3DE90DC5.jpg" width="384" height="218" /&gt;&lt;/a&gt;Hace un par de meses me contactaron de &lt;a href="http://www.murach.com/"&gt;Murach&lt;/a&gt; para realizar un comentario sobre algunos libros, que luego me enviaron …y estoy en deuda en este tema. Hoy justamente comente un par de enlaces y volví a este tema desde los foros de MSDN donde recomendamos unos de estos libros.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.asp.net/community/books"&gt;http://www.asp.net/community/books&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.asp.net/community/books/aspnet-web-forms-books"&gt;http://www.asp.net/community/books/aspnet-web-forms-books&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;Este post lo tengo en borrador desde hace unos cuantos meses, así que en los próximos días estaré publicando brevemente que opinión merecen estos libros (aunque sea el de la tecnología que mas me agrada que es ASP.NET, EF).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Por lo pronto pueden ver &lt;strong&gt;la “presencia” que tienen&lt;/strong&gt;, pero no se asusten están armados/impresos didácticamente cuando se abre en una hoja del lado izquierdo tenemos la teoría y del derecho la practica/código de la misma, particularmente me me gusto esta interesante propuesta de impresión. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los libros:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.murach.com/books/vb08/index.htm"&gt;Murach&amp;#39;s Visual Basic 2008&lt;/a&gt;       &lt;br /&gt;by Anne Boehm       &lt;br /&gt;25 chapters, 820 pages, 351 illustrations       &lt;br /&gt;ISBN: 978-1-890774-45-5       &lt;br /&gt;… la versión nueva es la &lt;a href="http://www.murach.com/books/vb10/index.htm"&gt;Visual Basic 2010&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;a href="http://www.amazon.com/Murachs-Visual-Basic-2008-Boehm/dp/1890774456"&gt;Comprar en&lt;/a&gt; &lt;a href="http://www.amazon.com/Murachs-Visual-Basic-2008-Boehm/dp/1890774456"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="amazon" border="0" alt="amazon" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/amazon_5F00_77C82AE4.jpg" width="87" height="17" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.murach.com/books/dvb8/index.htm"&gt;ADO.NET 3.5, LINQ, and the Entity Framework with VB 2008&lt;/a&gt;       &lt;br /&gt;by Anne Boehm       &lt;br /&gt;20 chapters, 708 pages, 308 illustrations       &lt;br /&gt;ISBN 978-1-890774-52-3       &lt;br /&gt;&lt;a href="http://www.amazon.com/Murachs-ADO-NET-LINQ-Entity-Framework/dp/1890774529"&gt;Comprar en&lt;/a&gt; &lt;a href="http://www.amazon.com/Murachs-ADO-NET-LINQ-Entity-Framework/dp/1890774529"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="amazon" border="0" alt="amazon" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/amazon_5F00_6CFD67A7.jpg" width="87" height="17" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.murach.com/books/avb8/index.htm"&gt;ASP.NET 3.5 Web Programming with VB 2008&lt;/a&gt;       &lt;br /&gt;by Anne Boehm       &lt;br /&gt;29 chapters, 1000 pages, 455 illustrations       &lt;br /&gt;ISBN: 978-1-890774-47-9       &lt;br /&gt;&lt;a href="http://www.amazon.com/Murachs-ASP-NET-3-5-Programming-2008/dp/1890774472"&gt;Comprar en&lt;/a&gt; &lt;a href="http://www.amazon.com/Murachs-ASP-NET-3-5-Programming-2008/dp/1890774472"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="amazon" border="0" alt="amazon" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/amazon_5F00_1286E509.jpg" width="87" height="17" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/BooksMurach_5F00_002_5F00_343079C2.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="BooksMurach_002" border="0" alt="BooksMurach_002" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/BooksMurach_5F00_002_5F00_thumb_5F00_62B65CD7.jpg" width="544" height="307" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Enlaces:&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Lista de Libros de Murach      &lt;br /&gt;&lt;a href="http://www.murach.com/books/index.htm"&gt;http://www.murach.com/books/index.htm&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=204" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Murach/default.aspx">Murach</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Libros/default.aspx">Libros</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/VB.NET/default.aspx">VB.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Basic/default.aspx">Visual Basic</category></item><item><title>Desarrollos NEA juega en la Liga Nacional del Básquet</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2010/10/30/desarrollos-nea-juega-en-la-liga-nacional-del-b-225-squet.aspx</link><pubDate>Sat, 30 Oct 2010 11:19:33 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:203</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;El miércoles 27/10 (feriado nacional decretado por el Censo 2010) se organizó una charla con todo el personal involucrado en la implementación de Calipso en el Club de Regatas Corrientes.&lt;/p&gt;  &lt;p&gt;La misma fue organizada por los miembros de CD que seleccionaron a CALIPSO y DESARROLLOS NEA como la solución integral de gestión buscada desde hace mucho tiempo para la institución.&lt;/p&gt;  &lt;p&gt;La reunión buscaba por un lado comunicar al personal aspectos de la implementación y características del software que no pueden percibir desde su puesto de trabajo individual. A su vez se intentó realizar una actividad que sea motivadora trabajando sobre dos aspectos centrales: Dar oportunidad de hablar, opinar y preguntar a todos, por un lado; Y realizar una charla previa con el técnico y 2 jugadores emblemáticos del plantel profesional sobre la temática de &amp;quot;trabajo en equipo&amp;quot; por otro.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/DemtiKammerichsMartinez1_5F00_7FECFFEE.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:20px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="OLYMPUS DIGITAL CAMERA         " border="0" alt="OLYMPUS DIGITAL CAMERA         " src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/DemtiKammerichsMartinez1_5F00_thumb_5F00_78516AB4.jpg" width="322" height="280" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/Lanari_5F00_7483A017.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="OLYMPUS DIGITAL CAMERA         " border="0" alt="OLYMPUS DIGITAL CAMERA         " src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/Lanari_5F00_thumb_5F00_21886719.jpg" width="386" height="280" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La reunión fue muy bien recibida, en varias oportunidades se escuchó decir &amp;quot;en tantos años que tengo en el club, nunca hubo una actividad como esta&amp;quot;. También fue una excelente oportunidad para nosotros contar todo el trabajo que se vino haciendo y que ya está empezando a dar sus primeros frutos. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/KammerichsMartinezLanari_5F00_04529942.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:5px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="OLYMPUS DIGITAL CAMERA         " border="0" alt="OLYMPUS DIGITAL CAMERA         " src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/KammerichsMartinezLanari_5F00_thumb_5F00_625710F0.jpg" width="249" height="296" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La charla fue seguida por un arroz con pollo en la terraza. &lt;/p&gt;  &lt;p&gt;Comparto el enlace de la nota que salió en la página oficial de la Liga Nacional del Básquet.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lnb.com.ar/liga/leermas.php?id_noticia=1922"&gt;http://www.lnb.com.ar/liga/leermas.php?id_noticia=1922&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=203" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Capacitaciones/default.aspx">Capacitaciones</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Calipso/default.aspx">Calipso</category></item><item><title>[ASP.NET] Enviar mail a través de Gmail/Hotmail/Live.com configurando mailSettings en el web.config (nuevo enableSsl="true" en ASP.NET 4.0)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/10/07/asp-net-enviar-mail-a-trav-233-s-de-gmail-hotmail-live-com-configurando-mailsettings-en-el-web-config-nuevo-enablessl-quot-true-quot-en-asp-net-4-0.aspx</link><pubDate>Thu, 07 Oct 2010 16:07:45 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:202</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Para enviar email a través de los servidores de Google (o Google App) o de desde Hotmail/Live.com es necesario configurar puertos específicos y habilitar SSL.    &lt;br /&gt;Ya nos comentaban como hacerlo por código José Alarcón Aguín&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/jalarcon/archive/2007/06/23/c-243-mo-enviar-correo-electr-243-nico-por-c-243-digo-usando-cuentas-de-gmail.aspx" target="_blank"&gt;Cómo enviar correo electrónico por código usando cuentas de GMail&lt;/a&gt; (por &lt;a href="http://geeks.ms/blogs/jalarcon" target="_blank"&gt;José M. Alarcón Aguín&lt;/a&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Como verán era necesario habilitar por codigo SSL con la propiedad &lt;a href="http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient.enablessl.aspx" target="_blank"&gt;EnableSsl (del SmptClient)&lt;/a&gt; . “Era” la única manera/forma antes de ASP.NET 4.0...&lt;/p&gt;  &lt;p&gt;Un pedido hacia el equipo de ASP.NET era habilitarlo desde el web.config, y lo tenemos disponible… pueden verlo en el&amp;#160; al pedido en Microsoft Connect&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Include &amp;quot;EnableSSL&amp;quot; option for System.Net.SmtpClient when using configuration file.      &lt;br /&gt;&lt;a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=281277&amp;amp;wa=wsignin1.0" target="_blank"&gt;https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=281277&amp;amp;wa=wsignin1.0&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Introducción: Sección &lt;a href="http://msdn.microsoft.com/es-es/library/w355a94k.aspx"&gt;mailSettings&lt;/a&gt; en el web.config &lt;/h3&gt;  &lt;p&gt;Desde ASP.NET 2.0, tenemos una sección de configuración &lt;a href="http://msdn.microsoft.com/es-es/library/w355a94k.aspx" target="_blank"&gt;mailSettings&lt;/a&gt;, donde podremos configurar la &lt;a href="http://msdn.microsoft.com/es-es/library/ms164240.aspx"&gt;sección smtp&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;font face="Courier New"&gt;&amp;lt;system.net&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;mailSettings&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;smtp deliveryMethod=&amp;quot;Network&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;network .... /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/smtp&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/mailSettings&amp;gt;       &lt;br /&gt;&amp;lt;/system.net&amp;gt;&lt;/font&gt;&lt;/blockquote&gt;  &lt;p&gt;En la parte smtp podremos configurar como la &lt;a href="http://msdn.microsoft.com/es-es/library/ms164242.aspx" target="_blank"&gt;sección network&lt;/a&gt; (donde tenemos por medio de atributo de configuración la posibilidad de habilitar SSL)&lt;/p&gt;  &lt;p&gt;Configurando la seccion &lt;a href="http://msdn.microsoft.com/es-es/library/w355a94k.aspx" target="_blank"&gt;mailSettings&lt;/a&gt; podremos enviar directamente sin previa configuración de la instancia de la clase &lt;a href="http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient.aspx" target="_blank"&gt;SmtpClient&lt;/a&gt;, … un mensaje de correo:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;SmtpClient smtpClient = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SmtpClient();
&lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;
{
    smtpClient.Send(emailMsg);
}
&lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (System.Net.Mail.SmtpException ex)
{
      &lt;span style="color:#008000;"&gt;//acciones&lt;/span&gt;
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Configurando… con “enableSsl” (nuevo desde ASP.NET 4.0)&lt;/h3&gt;

&lt;p&gt;Podemos incluir &amp;quot;EnableSSL&amp;quot; (que es una opción de la clase &lt;a href="http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient.aspx" target="_blank"&gt;System.Net.Mail.SmtpClient&lt;/a&gt;) desde el archivo de configuración (sección &lt;a href="http://msdn.microsoft.com/es-es/library/w355a94k.aspx" target="_blank"&gt;mailSettings&lt;/a&gt;) y allí configurando &lt;a href="http://msdn.microsoft.com/es-es/library/ms164242.aspx" target="_blank"&gt;network&lt;/a&gt; para el envío a través de SMTP. &lt;/p&gt;

&lt;h4&gt;&lt;u&gt;Ejemplo de configuración con Google App&lt;/u&gt;:&lt;/h4&gt;

&lt;div&gt;Datos de servidor SMTP:&lt;/div&gt;

&lt;blockquote&gt;
  &lt;pre&gt;Server SMTP: smtp.gmail.com / Port: 587 / Enable SSL&lt;br /&gt;User: {user}@gmail.com // {user}@tudominio.com (Google App)&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;div&gt;Configuración:&lt;/div&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;mailSettings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;smtp&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;deliveryMethod&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Network&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;from&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=username@gmail.com&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;network&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;enableSsl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; 
                &lt;span style="color:#ff0000;"&gt;defaultCredentials&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt; 
                &lt;span style="color:#ff0000;"&gt;clientDomain&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;www.tudominio.com&lt;/span&gt;&amp;quot;  
                &lt;span style="color:#ff0000;"&gt;host&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;smtp.gmail.com&amp;quot;&lt;/span&gt; 
                &lt;span style="color:#ff0000;"&gt;port&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;587&amp;quot;&lt;/span&gt; 
                &lt;span style="color:#ff0000;"&gt;userName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;username@tudominio.com&amp;quot;&lt;/span&gt; 
                &lt;span style="color:#ff0000;"&gt;password&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;password&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;smtp&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;mailSettings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;
  &lt;br /&gt;&lt;u&gt;&lt;/u&gt;&lt;/div&gt;

&lt;h4&gt;&lt;u&gt;Ejemplo para utilizar Live.com (nuestro Hotmail)&lt;/u&gt;&lt;/h4&gt;

&lt;div&gt;Datos de servidor SMTP:&lt;/div&gt;

&lt;blockquote&gt;
  &lt;pre&gt;Server SMTP: smtp.live.com / Port: 587 / Enable SSL&lt;br /&gt;User: {user}@live.com&lt;br /&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;div&gt;Configuración:&lt;/div&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;mailSettings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;smtp&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;deliveryMethod&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Network&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;from&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;usuario@live.com&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;network&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;enableSsl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;
               &lt;span style="color:#ff0000;"&gt;defaultCredentials&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;
               &lt;span style="color:#ff0000;"&gt;clientDomain&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;www.tudominio.com&amp;quot;&lt;/span&gt;
               &lt;span style="color:#ff0000;"&gt;host&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;smtp.live.com&amp;quot;&lt;/span&gt;
               &lt;span style="color:#ff0000;"&gt;port&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;587&amp;quot;&lt;/span&gt;
               &lt;span style="color:#ff0000;"&gt;userName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;usuario@live.com&amp;quot;&lt;/span&gt;
               &lt;span style="color:#ff0000;"&gt;password&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;password&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;smtp&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;mailSettings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;Puede ver mas info de los atributos de la sección &lt;a href="http://msdn.microsoft.com/es-es/library/ms164242.aspx" target="_blank"&gt;network aquí&lt;/a&gt;&lt;/div&gt;

&lt;div&gt;
  &lt;br /&gt;&lt;/div&gt;

&lt;h3&gt;Notas sobre “enableSsl”&lt;/h3&gt;

&lt;p&gt;…from MSDN &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;(…)El atributo enableSsl especifica si se usa SSL para obtener acceso a un servidor de correo SMTP.La clase &lt;a href="http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient.aspx" target="_blank"&gt;System.Net.Mail.SmtpClient&lt;/a&gt; sólo admite la extensión de servicio SMTP para SMTP seguro sobre Seguridad de la capa de transporte como se define en RFC 3207.En este modo, la sesión de SMTP &lt;/p&gt;

  &lt;div&gt;comienza en un canal no cifrado, a continuación, el cliente ejecuta un comando STARTTLS al servidor para intercambiar para proteger la comunicación mediante SSL.Vea RFC 3207 publicada por Internet Engineering Task Force (IETF) para obtener más información.&lt;/div&gt;

  &lt;p&gt;Un método de conexión alternativo es donde una sesión de SSL se establece al frente antes de que se envíe cualquier comando de protocolo. &lt;font color="#ff0000"&gt;Este método de conexión a veces se denomina SMTP/SSL y de manera predeterminada usa el puerto 465.Actualmente no se admite este método de conexión alternativo utilizando SSL&lt;/font&gt;.(…)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&amp;lt;&lt;strong&gt;mailSettings&lt;/strong&gt;&amp;gt; Elemento de configuración (Network Settings) 

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/w355a94k.aspx"&gt;http://msdn.microsoft.com/es-es/library/w355a94k.aspx&lt;/a&gt; 

    &lt;ul&gt;
      &lt;li&gt;&amp;lt;&lt;strong&gt;smtp&lt;/strong&gt;&amp;gt; 

        &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ms164240.aspx"&gt;http://msdn.microsoft.com/es-es/library/ms164240.aspx&lt;/a&gt; 

        &lt;ul&gt;
          &lt;li&gt;&amp;lt;&lt;strong&gt;network&lt;/strong&gt;&amp;gt; 

            &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ms164242.aspx"&gt;http://msdn.microsoft.com/es-es/library/ms164242.aspx&lt;/a&gt; &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Complete FAQ for the System.Net.Mail namespace 
    &lt;br /&gt;&lt;a href="http://www.systemnetmail.com/"&gt;http://www.systemnetmail.com/&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=202" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+4.0/default.aspx">ASP.NET 4.0</category></item><item><title>JUTI XI – Presentación: ASP.NET MVC 2 con Entity Framework 4.0 en VS2010</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/10/04/juti-xi-presentaci-243-n-asp-net-mvc-2-con-entity-framework-4-0-en-vs2010.aspx</link><pubDate>Mon, 04 Oct 2010 20:01:08 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:200</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Hace un par de semanas estuvimos con &lt;a href="http://team.desarrollosnea.com.ar/blogs/cdacunda/"&gt;Cristina&lt;/a&gt; presentando en la JUTI algunas características de Entity Framework 4.0 y ASP.NET MVC 2 con Visual Studio 2010. Aquí va el post (que lo tenia en borrador) y la presentación que nos recordó Noelia que no la publicamos aún (así que aquí esta lo que debíamos)&lt;/p&gt;  &lt;p&gt;Esto ya nos comento &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales"&gt;Diego&lt;/a&gt;, que presentó con &lt;a href="http://team.desarrollosnea.com.ar/blogs/llomazzi/"&gt;Lautaro&lt;/a&gt; y el invitado especial Rodrigo Eirasca (de &lt;a href="http://www.cgeconsultores.com/"&gt;CGE Consultores de Gestión Empresaria),&lt;/a&gt;&amp;#160; el tema &lt;strong&gt;Certificar Calidad bajo ISO 9001:2008&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;&lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales/archive/2010/10/01/juti-ix-certificar-sgc-bajo-la-norma-iso-9001-2008-alcance-desarrollo-de-software.aspx"&gt;JUTI XI – Certificar SGC bajo la norma ISO 9001:2008 (Alcance desarrollo de software)&lt;/a&gt; (por &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales"&gt;Diego Morales&lt;/a&gt;) &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Este es el 11° año de la &lt;a href="http://www.juti-frre.com.ar/"&gt;JUTI&lt;/a&gt; (Jornadas Universitarias Tecnológicas sobre Informática) que se viene realizando en la &lt;a href="http://www.frre.utn.edu.ar/"&gt;UTN-FRRE&lt;/a&gt; (&lt;a href="http://www2.frre.utn.edu.ar/cincuentenario/"&gt;que este año esta de cincuentenario&lt;/a&gt;) &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.juti-frre.com.ar/"&gt;http://www.juti-frre.com.ar/&lt;/a&gt;      &lt;br /&gt;&lt;em&gt;NOTA: Lástima que la web de la JUTI la utilicen para otros eventos, seria bueno tener un enlace “histórico” para no perder todas las versiones anteriores :(&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Aquí les dejo &lt;a href="http://www.slideshare.net/desarrollosnea/entity-framework-40-y-aspnet-mvc-2-con-vs2010-juti-xi-2010"&gt;el enlace a la presentación&lt;/a&gt;, y de paso la pruebo la incrustación directa :)&lt;/p&gt;  &lt;div style="width:425px;" id="__ss_5355049"&gt;&lt;strong style="margin:12px 0px 4px;display:block;"&gt;&lt;a title="Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010" href="http://www.slideshare.net/desarrollosnea/entity-framework-40-y-aspnet-mvc-2-con-vs2010-juti-xi-2010"&gt;Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010&lt;/a&gt;&lt;/strong&gt;    &lt;div style="padding-bottom:12px;padding-left:0px;padding-right:0px;padding-top:5px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/desarrollosnea"&gt;Desarrollos NEA&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=200" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/JUTI/default.aspx">JUTI</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>JUTI XI – Certificar SGC bajo la norma ISO 9001:2008 (Alcance desarrollo de software)</title><link>http://team.desarrollosnea.com.ar/blogs/dmorales/archive/2010/10/01/juti-ix-certificar-sgc-bajo-la-norma-iso-9001-2008-alcance-desarrollo-de-software.aspx</link><pubDate>Fri, 01 Oct 2010 13:32:58 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:199</guid><dc:creator>Diego</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Como todos los años, nos hacemos un tiempito para prepara algunas charlas para la JUTI (Jornadas Universitaria en Tecnologías de Información). La JUTI es organizada por la UTN – FRRe (Facultad Regional Resistencia) como otro medio para acercar el conocimiento y la experiencia en TICs a todas las personas interesadas.&lt;/p&gt;  &lt;p&gt;Este año, Desarrollos NEA presentó dos temas, “Visual Studio 2010 y MVC” por un lado, e “Certificar SGC bajo la norma ISO 9001:2008” el tema que nos convoca en este post.&lt;/p&gt;  &lt;p&gt;En el primer caso los disertantes fueron el Ing. José Fernández y la Ing. Cristina Dacunda; en el segundo caso el Ing. Lautaro Lomazzi, el Ing. Diego Morales y el Ing. Rodrigo Eirasca a quien agradecemos especialmente por compartir su conocimiento.&lt;/p&gt;  &lt;p&gt;A continuación dejamos disponible para todos ustedes la presentación desarrollada para el tema “Certificar SGC bajo la norma ISO 9001:2008”, en la cual se menciona una breve explicación de la familia ISO 9000, continua con detalles de la implementación del SGC de Desarrollos NEA en donde se incluye los puntos mas desafiantes, y por ultimo se aportan algunas conclusiones de interés.&lt;/p&gt;  &lt;div style="width:425px;" id="__ss_5315927"&gt;&lt;strong style="margin:12px 0px 4px;display:block;"&gt;&lt;a title="Desarrollos NEA - SGC ISO 9001 2008 - Desarrollo de Software" href="http://www.slideshare.net/desarrollosnea/desarrollos-nea-implementacion-sgc-iso-9001-2008"&gt;Desarrollos NEA - SGC ISO 9001 2008 - Desarrollo de Software&lt;/a&gt;&lt;/strong&gt;    &lt;div style="padding-bottom:12px;padding-left:0px;padding-right:0px;padding-top:5px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/desarrollosnea"&gt;Desarrollos NEA&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=199" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/dmorales/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/dmorales/archive/tags/ISO+9001/default.aspx">ISO 9001</category><category domain="http://team.desarrollosnea.com.ar/blogs/dmorales/archive/tags/Scrum/default.aspx">Scrum</category></item><item><title>[ASP.NET] Vulnerabilidad de Seguridad (Todas las versiones)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/09/18/asp-net-vulnerabilidad-de-seguridad-todas-las-versiones.aspx</link><pubDate>Sat, 18 Sep 2010 16:07:33 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:198</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;[Actualización 28/09/2010] FINAL        &lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;Actualización de seguridad&lt;/font&gt; &lt;a href="http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx"&gt;Microsoft Security Bulletin MS10-070 – Important&lt;/a&gt; &lt;font color="#ff0000"&gt;Asi que a descargar…. Primeramente mediante Microsoft Download Center (forma manual), o puedes (si quieres) esperar unos días&amp;#160; y estará entre nosotros por Windows Update /Windows Server Update Service.      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;[Actualización 24/09/2010]&lt;/strong&gt;&lt;/font&gt;     &lt;br /&gt;&lt;font color="#ff0000"&gt;Se actualizo la solución provisoria en el aviso de seguridad&lt;/font&gt; &lt;a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx"&gt;Microsoft Security Advisory (2416728)&lt;/a&gt;&amp;#160;&lt;font color="#ff0000"&gt;para agregar un filtro mas de “protección” para este caso especifico que lee los mensajes de error de nuestra aplicación. La idea es implementar el filtro de URL para no permitir peticiones con “aspxerrorpath=” en el IIS, aquí podremos utilizar&lt;/font&gt;&amp;#160;&lt;a href="http://learn.iis.net/page.aspx/143/use-request-filtering/"&gt;Request Filtering&lt;/a&gt;&amp;#160;&lt;font color="#ff0000"&gt;o&lt;/font&gt; &lt;a href="http://www.iis.net/download/UrlScan"&gt;URLScan&lt;/a&gt;&amp;#160;&lt;font color="#ff0000"&gt;(leer mas abajo la Tarea 2)&lt;/font&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;[Actualización 21/09/2010]&lt;/font&gt;&lt;/strong&gt;     &lt;br /&gt;&lt;font color="#ff0000"&gt;Doy enlace a un post de&lt;/font&gt;&amp;#160;&lt;a href="http://geeks.ms/blogs/sergiotarrillo/default.aspx"&gt;Sergio Tarrillo&lt;/a&gt; &lt;font color="#ff0000"&gt;donde da un timeline de los últimos días y un ejemplo de aplicar la solución provisional: &lt;/font&gt;&lt;a href="http://geeks.ms/blogs/sergiotarrillo/archive/2010/09/21/reciente-vulnerabilidad-de-asp-net-y-blogengine-net.aspx"&gt;Reciente vulnerabilidad de ASP.NET y BlogEngine.Net&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;[Actualización 20/09/2010]&lt;/font&gt;&lt;/strong&gt;     &lt;br /&gt;&lt;font color="#ff0000"&gt;Doy enlace al post de&lt;/font&gt; &lt;a href="http://geeks.ms/blogs/adiazmartin/default.aspx"&gt;Alberto Diaz&lt;/a&gt; &lt;font color="#ff0000"&gt;donde aplica la solución provisional en SP 2010:&lt;/font&gt; &lt;a href="http://geeks.ms/blogs/adiazmartin/archive/2010/09/20/sharepoint-2010-vulnerabilidad-0-days-de-asp-net.aspx"&gt;SharePoint 2010. Vulnerabilidad 0 days de ASP.NET&lt;/a&gt;.     &lt;br /&gt;&lt;font color="#ff0000"&gt;Donde en los comentarios nos da el enlace al blog de Sharepoint:&lt;/font&gt; &lt;a href="http://blogs.msdn.com/b/sharepoint/archive/2010/09/21/security-advisory-2416728-vulnerability-in-asp-net-and-sharepoint.aspx"&gt;Security Advisory 2416728 (Vulnerability in ASP.NET) and SharePoint.&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;[Actualización 19/09/2010]&lt;/strong&gt;&lt;/font&gt;     &lt;br /&gt;&lt;font color="#ff0000"&gt;Doy enlace a un post de&lt;/font&gt; &lt;a href="http://geeks.ms/blogs/dsalgado/default.aspx"&gt;David Salgado&lt;/a&gt; &lt;font color="#ff0000"&gt;donde da su punto de vista (el cual comparto):&lt;/font&gt; &lt;a href="http://geeks.ms/blogs/dsalgado/archive/2010/09/19/el-0-day-de-asp-net-modo-de-evitarlo-y-referencias.aspx"&gt;El 0 day de asp.net… modo de evitarlo? y referencias&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Mas de uno ya se habrá enterado pero ayer se presento en una conferencia esta vulnerabilidad (&lt;strong&gt;&lt;a href="http://www.ekoparty.org/"&gt;ekoparty&lt;/a&gt;&lt;/strong&gt;), yo por mi parte lo encontré por un comentario de un amigo en el trabajo cuando hace dos días me envió un articulo, así que lo venia siguiendo.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Noticia: Uno de cada cuatro sitios web está expuesto a ciberataques (Clarín - Argentina)      &lt;br /&gt;&lt;em&gt;&lt;font size="2"&gt;… donde se comentaba que en la conferencia se dará a conocer “recién” la vulnerabilidad de ASP.NET&lt;/font&gt;&lt;/em&gt;       &lt;br /&gt;&lt;a href="http://www.clarin.com/internet/cuatros-sitios-web-expuesto-ciberataques_0_335966623.html"&gt;http://www.clarin.com/internet/cuatros-sitios-web-expuesto-ciberataques_0_335966623.html&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Que me llevo ver los resultados de la Conferencia de Seguridad &lt;strong&gt;ekoparty&lt;/strong&gt;&amp;#160;&lt;a href="http://www.ekoparty.org/"&gt;http://www.ekoparty.org/&lt;/a&gt; que presentaron el tema&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Padding Oracles Everywhere&lt;/strong&gt; (por &lt;a href="http://www.ekoparty.org/juliano-rizzo-2010.php"&gt;Juliano Rizzo&lt;/a&gt; y &lt;a href="http://www.ekoparty.org/thai-duong-2010.php"&gt;Thai Duong&lt;/a&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La vulnerabilidad fue publicada luego de presentarse:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Security Advisory 2416728 Released&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://blogs.technet.com/b/msrc/archive/2010/09/17/security-advisory-2416728-released.aspx"&gt;http://blogs.technet.com/b/msrc/archive/2010/09/17/security-advisory-2416728-released.aspx&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Vulnerability in ASP.NET Could Allow Information Disclosure        &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx"&gt;http://www.microsoft.com/technet/security/advisory/2416728.mspx&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Y como lo comenta Scott Guthrie… , &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx"&gt;It’s important&lt;/a&gt; (el tiene su blog mas información). También publicó unas &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/20/frequently-asked-questions-about-the-asp-net-security-vulnerability.aspx"&gt;preguntas frecuentes&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Cuando se publica la vulnerabilidad tenemos unas “soluciones de compromiso/provisionales” y también unas herramientas para que los responsables de infraestructura pueda escudriñar los sitios del IIS de un server y detectar posibles configuraciones débiles     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;&lt;b&gt;Problema&lt;/b&gt;&lt;/h3&gt;  &lt;p&gt;Ayer a la tarde en la conferencia se expuso una vulnerabilidad de ASP.NET para todas las versiones de ASP.NET(desde la 1.1 a la 4.0) para todos los sistemas operativos:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“Un atacante que aprovechara esta vulnerabilidad podría ver los datos, como el estado de vista, que fue cifrado por el servidor de destino, o leer datos de archivos en el servidor de destino, como el web.config…”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Como hablamos con &lt;a href="http://team.desarrollosnea.com.ar/blogs/llomazzi/"&gt;Lautaro&lt;/a&gt;, si el web.config encima tiene datos sensibles (acuérdense que se puede encriptar la cadena de conexión) estamos en graves problemas.     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Mas Técnico&lt;/u&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/b/msrc/archive/2010/09/17/security-advisory-2416728-released.aspx"&gt;Security Advisory 2416728 Released&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx"&gt;Vulnerability in ASP.NET Could Allow Information Disclosure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx"&gt;Understanding the ASP.NET Vulnerability&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/20/frequently-asked-questions-about-the-asp-net-security-vulnerability.aspx"&gt;Frequently Asked Questions about the ASP.NET Security Vulnerability&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;b&gt;     &lt;br /&gt;Solución (provisional)&lt;/b&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;[Actualización 28/09/2010] FINAL&lt;/strong&gt;&lt;/font&gt;     &lt;br /&gt;&lt;font color="#ff0000"&gt;Ya esta la solución final (un parche de seguridad) leer aquí &lt;/font&gt;&lt;a href="http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx"&gt;Microsoft Security Bulletin MS10-070 – Important&lt;/a&gt;     &lt;br /&gt;&lt;font color="#ff0000"&gt;No es necesario aplicar las “soluciones provisionales” una vez aplicado la solución final&lt;/font&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;A las horas… se publicó &lt;a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx"&gt;“la contra oferta”,&lt;/a&gt; (para salir del paso como se diría) básicamente es:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“Habilitar los errores ASP.NET personalizado y mapear todos los códigos de error a la misma pagina de error”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Pero también utilizar una página de error “con un poco de código” (miren el enlace de &lt;a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx"&gt;Secuity Advisor&lt;/a&gt;) donde establece un timeout     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Dos tareas a realizar “provisionalmente” para nuestra protección &lt;font color="#ff0000"&gt;[Actualización 24/09/2010]&lt;/font&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;[En la App Web] Habilitar los errores ASP.NET personalizado y mapear todos los códigos de error a la misma pagina de error (independientemente del error detectado) &lt;/li&gt;    &lt;li&gt;[En el Servidor IIS] Bloqueo de los request que especifican la ruta de error. Es decir no permitir “aspxerrorpath=” en el querystring &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La solución final se desplegara mediante Windows Update, así que a estar atentos. Cuando vea la luz la solución final, estos “filtros de protección” ya no lo debemos aplicar.    &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;h4&gt;&lt;u&gt;TAREA 1:&lt;/u&gt; Habilitar los errores ASP.NET personalizado y mapear todos los códigos de error a la misma pagina de error &lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;u&gt;Ejemplos&lt;/u&gt;:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;ASP.NET 3.5 o anterior…        &lt;div&gt;         &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;location&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;allowOverride&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;customErrors&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;mode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;On&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;defaultRedirect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;~/error.html&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;location&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/div&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;
    &lt;br /&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;En ASP.NET 3.5 SP1 o superior (NET 4.0) 
      &lt;div&gt;
        &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;location&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;allowOverride&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;customErrors&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;mode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;On&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;redirectMode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ResponseRewrite&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;defaultRedirect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;~/ErrorPage.aspx&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;location&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
      &lt;/div&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Como comenta &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx"&gt;Scott&lt;/a&gt; en su blog, también es recomendable un “delay” en la pagina de error&lt;/p&gt;

  &lt;p&gt;&lt;u&gt;Ejemplo&lt;/u&gt;:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;div&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;script runat=&lt;span style="color:#006080;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
   &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Page_Load() {
      &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[] delay = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[1];
      RandomNumberGenerator prng = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; RNGCryptoServiceProvider();

      prng.GetBytes(delay);
      Thread.Sleep((&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;)delay[0]);
        
      IDisposable disposable = prng &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; IDisposable;
      &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (disposable != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;) { disposable.Dispose(); }
    }
&amp;lt;/script&amp;gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;&lt;u&gt;TAREA 2:&lt;/u&gt; Bloqueo de los request que especifican la ruta de error (aspxerrorpath)&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;Aquí tenemos dos alternativas, &lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;A) Característica de &lt;a href="http://learn.iis.net/page.aspx/143/use-request-filtering/"&gt;Request Filtering&lt;/a&gt; (Filtro de solicitudes) IIS 7 &lt;/li&gt;

    &lt;li&gt;B) &lt;a href="http://www.iis.net/download/UrlScan"&gt;URLScan&lt;/a&gt; (versión 3.1) &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;strong&gt;Opcion A) Request filtering&lt;/strong&gt; 

    &lt;br /&gt;Si estamos en Windows Vista Service Pack 2, Windows Server 2008 Service Pack 2, Windows 7, Windows Server 2008 R2.&lt;/p&gt;

  &lt;p&gt;Podremos utilizar un característica del IIS 7 &lt;a href="http://learn.iis.net/page.aspx/143/use-request-filtering/"&gt;Request Filtering&lt;/a&gt;&lt;/p&gt;

  &lt;table border="0" cellspacing="0" cellpadding="5" width="500"&gt;&lt;tbody&gt;
      &lt;tr&gt;
        &lt;td valign="top" width="250"&gt;&lt;strong&gt;Windows 7&lt;/strong&gt;&lt;/td&gt;

        &lt;td valign="top" width="250"&gt;&lt;strong&gt;Windows 2008&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr&gt;
        &lt;td valign="top" width="250"&gt;Activando una característica… 
          &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_7E15291D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_68C6D7DB.png" width="363" height="254" /&gt;&lt;/a&gt; &lt;/td&gt;

        &lt;td valign="top" width="250"&gt;Agregando un rol… 
          &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_38AC608D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_52CC7E17.png" width="417" height="222" /&gt;&lt;/a&gt; &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;

  &lt;p&gt;Una vez instalado debemos ir a denegar: &lt;b&gt;aspxerrorpath=&lt;/b&gt; 

    &lt;br /&gt;Por linea de comando utilizando AppCmd&lt;/p&gt;

  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font face="Courier New"&gt;appcmd set config /section:requestfiltering /+denyQueryStringSequences.[sequence=&amp;#39;aspxerrorpath=&amp;#39;]&lt;/font&gt; 

    &lt;br /&gt;

    &lt;br /&gt;&lt;/p&gt;
  &lt;strong&gt;Opcion B) URLScan&lt;/strong&gt; 

  &lt;br /&gt;

  &lt;p&gt;Aqui utilizaremos &lt;a href="http://www.iis.net/download/UrlScan"&gt;URLScan&lt;/a&gt; para filtrar las peticiones en nuestros IIS (versiones 5.1/6/7)&lt;/p&gt;

  &lt;p&gt;Hay que modificar la el archivo UrlScan.ini (&lt;em&gt;%windir%\system32\inetsrv\urlscan&lt;/em&gt;) y en la linea bajo &lt;b&gt;[DenyQueryStringSequences]&lt;/b&gt; agregar:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;aspxerrorpath=&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Nos quedaría: &lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;&lt;font face="Courier New"&gt;[DenyQueryStringSequences] 
        &lt;br /&gt;aspxerrorpath=&lt;/font&gt;&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Herramienta (Script) para detectar las aplicaciones vulnerables&lt;/h3&gt;

&lt;p&gt;Para comenzar a fixear, &lt;a href="http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx"&gt;ejecute la herramienta (es un script)&lt;/a&gt; que nos informa en un servidor ”las web con la vulnerabilidad a flor de pecho”, que los responsables de infraestructura pueden ejecutar en un server y verificar todas las web del IIS. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que les sirva de ayuda o guía,… o a modo informativo.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Security Bulletin MS10-070 – Important | Vulnerability in ASP.NET Could Allow Information Disclosure (2418042) 
    &lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx"&gt;http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Security Advisory 2416728 Released 
    &lt;br /&gt;&lt;a href="http://blogs.technet.com/b/msrc/archive/2010/09/17/security-advisory-2416728-released.aspx"&gt;http://blogs.technet.com/b/msrc/archive/2010/09/17/security-advisory-2416728-released.aspx&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Vulnerability in ASP.NET Could Allow Information Disclosure 
    &lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx"&gt;http://www.microsoft.com/technet/security/advisory/2416728.mspx&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Understanding the ASP.NET Vulnerability 
    &lt;br /&gt;&lt;a title="http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx" href="http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx"&gt;http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Scott Guthrie’s blog 
    &lt;ul&gt;
      &lt;li&gt;Important: ASP.NET Security Vulnerability (by Scott Guthrie) 
        &lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx&lt;/a&gt; 

        &lt;br /&gt;&lt;/li&gt;

      &lt;li&gt;Update on ASP.NET Vulnerability 
        &lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/24/update-on-asp-net-vulnerability.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2010/09/24/update-on-asp-net-vulnerability.aspx&lt;/a&gt; 

        &lt;br /&gt;&lt;/li&gt;

      &lt;li&gt;Frequently Asked Questions about the ASP.NET Security Vulnerability 
        &lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/20/frequently-asked-questions-about-the-asp-net-security-vulnerability.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2010/09/20/frequently-asked-questions-about-the-asp-net-security-vulnerability.aspx&lt;/a&gt; 

        &lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=198" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+4.0/default.aspx">ASP.NET 4.0</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Seguridad/default.aspx">Seguridad</category></item><item><title>[VS2010] Enfocarnos en “solo un” Área de ASP.NET MVC como raíz en VS2010 gracias a las Productivity Power Tools</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/08/30/vs2010-enfocarnos-en-solo-un-193-rea-de-asp-net-mvc-como-ra-237-z-en-vs2010-gracias-a-las-productivity-power-tools.aspx</link><pubDate>Mon, 30 Aug 2010 12:02:55 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:197</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Trabajando con ASP.NET MVC y Áreas, en un proyecto con múltiples Áreas, es conveniente para &lt;strong&gt;“enfocar el cerebro”&lt;/strong&gt; tener en el explorador de soluciones solo los controladores y vistas del área en que estamos trabajando.&lt;/p&gt;  &lt;p&gt;Me ayude de las extensiones de&amp;#160; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;Visual Studio 2010 Productivity Power Tools&lt;/a&gt;, tiene una funcionalidad que es el “Navegador de Solucion” (&lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/07/20/solution-navigator-blog-post.aspx"&gt;Solution Navigator&lt;/a&gt;) que es una herramienta/funcionalidad All-In-One … “unión entre el explorador de soluciones, el de objetos, buscador… etc“ que nos brinda una serie de ricas funciones. &lt;/p&gt;  &lt;p&gt;Ya nos comentaba &lt;a href="http://geeks.ms/blogs/jersson"&gt;Jersson&lt;/a&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/jersson/archive/2010/07/22/vs2010-updates-en-productivity-power-tools-mejorado.aspx"&gt;VS2010: Updates en Productivity Power Tools (mejorado!!!)&lt;/a&gt;&amp;#160; (por &lt;a href="http://geeks.ms/blogs/jersson"&gt;Jersson&lt;/a&gt;)       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Para empezar a utilizarlo… &lt;/h3&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_2178AB08.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_363A7DBB.png" width="323" height="136" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una de estas funciones: &lt;strong&gt;Crear una vista a partir de un elemento (nodo/carpeta)&amp;#160; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;En cada elemento del navegador de soluciones tenemos un botón contextual “View this as root”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_653CB992.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_0FC874A3.png" width="535" height="178" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Lo cual me crea un filtro en mi árbol del navegador de solución, con la raíz en el elemento que seleccionamos para “concentrarme” en el Área especifica&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_534FFFF8.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_06E8468A.png" width="542" height="240" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;NOTA: Se puede hacer desde cualquier elemento ;)      &lt;br /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Y hasta la búsqueda es contextual al “ámbito de la raíz que definimos”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_0169B019.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2FFFB8FB.png" width="306" height="204" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Espero que les pueda ayudar como a mi.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Mas info&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/07/20/solution-navigator-blog-post.aspx%20"&gt;Visual Studio Blog: Announcing the Solution Navigator&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef%20"&gt;VS Gallery :: Productivity Power Tools&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/19/vs-2010-productivity-power-tools-update-with-some-cool-new-features.aspx"&gt;VS 2010 Productivity Power Tools Update (with some cool new features)&lt;/a&gt; (by Scott Guthrie)       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=197" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Pro+Power+Tools/default.aspx">Pro Power Tools</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>[Formación] Workshop Scrum… UTN-FRRE Agosto/2010. Finalizado</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/08/26/formaci-243-n-workshop-scrum-utn-frre-agosto-2010-finalizado.aspx</link><pubDate>Thu, 26 Aug 2010 22:11:42 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:196</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;La semana pasada con &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales/"&gt;Diego&lt;/a&gt; tuvimos nuevamente la grata responsabilidad de facilitar un taller sobre Scrum, el segundo de los &lt;a href="http://geeks.ms/blogs/fernandezja/archive/2010/06/18/formaci-243-n-workshop-scrum-unne-utn-frre-jun-jul-2010-cupos-limitados.aspx" target="_blank"&gt;workshop planificados&lt;/a&gt; en el marco del proyecto de extensión: “Formación de RRHH orientados al desarrollo de la industria del software de la región NEA” (programa La Universidad en el Medio).&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;El proyecto: &lt;a href="http://geeks.ms/blogs/fernandezja/archive/2010/06/18/formaci-243-n-workshop-scrum-unne-utn-frre-jun-jul-2010-cupos-limitados.aspx" target="_blank"&gt;[Formación] Workshop Scrum. UNNE/UTN FRRe (Jun/Jul 2010). Cupos Limitados&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;El anterior taller (en Corrientes): &lt;a href="http://geeks.ms/blogs/fernandezja/archive/2010/07/06/formaci-243-n-workshop-scrum-unne-jun-2010-finalizado.aspx" target="_blank"&gt;[Formación] Workshop Scrum… UNNE Jun/2010. Finalizado.&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Esta vez participaron docentes de la carrera de &lt;a href="http://www.frre.utn.edu.ar/" target="_blank"&gt;Sistemas de la UTN-FRRE&lt;/a&gt;&lt;img src="http://i.ixnp.com/images/v6.42/t.gif" alt="" /&gt; y profesionales del &lt;a href="http://www.polochaco.com.ar/" target="_blank"&gt;Polo IT Chaco&lt;/a&gt;&lt;img src="http://i.ixnp.com/images/v6.42/t.gif" alt="" /&gt;. &lt;/p&gt;  &lt;p&gt;Presentamos el framework de trabajo pero nos llevamos como siempre un rico intercambio de experiencias.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN21_5F00_5F538BAD.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="20100821-WorkshopScrumUTN (21)" border="0" alt="20100821-WorkshopScrumUTN (21)" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN21_5F00_thumb_5F00_3362EC24.jpg" width="624" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font size="2"&gt;… aquí nuevamente faltan algunos participantes por tenían que retirarse un poco antes de la “foto del recuerdo”&lt;/font&gt;      &lt;br /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN1_5F00_6622CCCB.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="20100821-WorkshopScrumUTN (1)" border="0" alt="20100821-WorkshopScrumUTN (1)" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN1_5F00_thumb_5F00_070619A6.jpg" width="244" height="139" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN3_5F00_2497F4A5.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="20100821-WorkshopScrumUTN (3)" border="0" alt="20100821-WorkshopScrumUTN (3)" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN3_5F00_thumb_5F00_354F7986.jpg" width="244" height="139" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN7_5F00_6C4957BF.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="20100821-WorkshopScrumUTN (7)" border="0" alt="20100821-WorkshopScrumUTN (7)" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/20100821WorkshopScrumUTN7_5F00_thumb_5F00_07BE33F6.jpg" width="244" height="139" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com/DesarrollosNEA/WorkshopDeScrumUTNAgosto2010" target="_blank"&gt;Mas imágenes aquí&lt;/a&gt;&lt;/p&gt; 
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=196" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Formacion/default.aspx">Formacion</category></item><item><title>Brújula en la III EXPO TURISMO LITORAL</title><link>http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/2010/08/25/br-250-jula-en-la-iii-expo-turismo-litoral.aspx</link><pubDate>Wed, 25 Aug 2010 18:55:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:195</guid><dc:creator>Verónica Echeverría Mosna</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;El fin de semana pasado estuvimos acompa&amp;ntilde;ando a la Subsecretar&amp;iacute;a de Turismo en la &lt;b&gt;III EXPO TURISMO LITORAL&lt;/b&gt; en la cual estuvieron exhibidos al p&amp;uacute;blico los kioscos en una versi&amp;oacute;n beta de Br&amp;uacute;jula (Soluci&amp;oacute;n Integral de Gesti&amp;oacute;n de Informaci&amp;oacute;n Tur&amp;iacute;stica Multimedial) &lt;a href="http://www.desarrollosnea.com.ar/productos/brujula"&gt;http://www.desarrollosnea.com.ar/productos/brujula&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/IMG_5F00_0669_5F00_2E905B9A.jpg"&gt;&lt;img height="231" width="229" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/IMG_5F00_0669_5F00_thumb_5F00_46A3A028.jpg" alt="IMG_0669" border="0" title="IMG_0669" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0683_5F00_4ACD77ED.jpg"&gt;&lt;img height="231" width="230" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0683_5F00_thumb_5F00_5D724BD7.jpg" alt="Foto0683" border="0" title="Foto0683" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02589_5F00_6FDA9C8C.jpg"&gt;&lt;img height="277" width="156" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02589_5F00_thumb_5F00_0EED93A0.jpg" alt="DSC02589" border="0" title="DSC02589" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/46131_5F00_120612877991074_5F00_100001270875651_5F00_132855_5F00_6296779_5F00_n_5F00_13839E5A.jpg"&gt;&lt;img height="276" width="152" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/46131_5F00_120612877991074_5F00_100001270875651_5F00_132855_5F00_6296779_5F00_n_5F00_thumb_5F00_0A66ED0C.jpg" alt="46131_120612877991074_100001270875651_132855_6296779_n" border="0" title="46131_120612877991074_100001270875651_132855_6296779_n" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02590_5F00_7A0B7552.jpg"&gt;&lt;img height="272" width="153" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02590_5F00_thumb_5F00_6DD9D55E.jpg" alt="DSC02590" border="0" title="DSC02590" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0684_5F00_128AECD6.jpg"&gt;&lt;img height="225" width="226" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0684_5F00_thumb_5F00_1E108448.jpg" alt="Foto0684" border="0" title="Foto0684" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02600_5F00_4908724D.jpg"&gt;&lt;img height="227" width="227" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02600_5F00_thumb_5F00_37C46EDD.jpg" alt="DSC02600" border="0" title="DSC02600" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02592_5F00_54EA16E7.jpg"&gt;&lt;img height="277" width="156" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02592_5F00_thumb_5F00_69ABE99A.jpg" alt="DSC02592" border="0" title="DSC02592" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02602_5F00_4773DE14.jpg"&gt;&lt;img height="277" width="156" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/DSC02602_5F00_thumb_5F00_05404FC4.jpg" alt="DSC02602" border="0" title="DSC02602" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0670_5F00_73340C36.jpg"&gt;&lt;img height="279" width="157" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0670_5F00_thumb_5F00_74D4B23D.jpg" alt="Foto0670" border="0" title="Foto0670" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=195" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Productos/default.aspx">Productos</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Br_26002300_250_3B00_jula/default.aspx">Br&amp;#250;jula</category></item><item><title>¿Cómo expandir dinámicamente discos lógicos en un storage IBM DS3000?</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2010/08/25/191-c-243-mo-expandir-din-225-micamente-discos-l-243-gicos-en-un-storage-ibm-ds3000.aspx</link><pubDate>Wed, 25 Aug 2010 13:12:47 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:194</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;En una instalación de un storage IBM DS3000 nos encontramos con un requerimiento del cliente que necesitaba poder expandir dinámicamente un disco lógico. Por ejemplo, como se ve en la imagen, asignar al disco lógico “JCAR01Backup” parte del espacio libre de 487 GB disponible en el array “JCAR01”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/image_5F00_0B195B89.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/image_5F00_thumb_5F00_18ABCBF7.png" width="540" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Investigando un poco vimos que IBM llama a esto “DVE – dynamic volume expansion”. El problema es que en la interfaz del IBM Storage Manager (estábamos utilizando la última versión) para estos equipos, no disponíamos de ninguna opción para realizar esta operación. A continuación mostramos un manual donde asume que esta funcionalidad estaba disponible desde la interfaz del software. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/clip_5F00_image006_5F00_6BE2C683.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image006" border="0" alt="clip_image006" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/clip_5F00_image006_5F00_thumb_5F00_64B3643E.jpg" width="644" height="452" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sí por ejemplo está disponible por supuesto la operación para asignar nuevos discos a un array. Pero luego de que ampliamos el arreglo no teníamos forma de asignar el nuevo espacio libre a los discos lógicos ya existentes en el mismo. &lt;/p&gt;  &lt;p&gt;Tampoco encontramos ningún post o artículo sobre el tema, sólo varios menciones de que la operación que necesitábamos estaba disponible en los equipos IBM DS 3000. &lt;/p&gt;  &lt;p&gt;Así es que fuimos por la opción de línea de comandos (scripts) e investigando (y probando) un poco encontramos rápidamente la forma de hacerlo. Los comandos son muy simples como puede verse en la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;margin-left:0px;border-left-width:0px;margin-right:0px;" title="clip_image008" border="0" alt="clip_image008" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/clip_5F00_image008_5F00_72E1B761.jpg" width="624" height="484" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hay que esperar un poco para que la operación de redimensionamiento del disco lógico se complete. El progreso de la operación puede seguirse desde la interfaz gráfica del DS Storage Manager o consultando vía scripts las operaciones en curso. Una vez completada tuvimos el nuevo espacio asignado al disco. Esto permite al cliente agregar dinámicamente discos a sus arreglos y hacer crecer los discos lógicos incluidos en cada uno a medida que vayan necesitando espacio sin interrumpir el servicio.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=194" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/IBM/default.aspx">IBM</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Storage/default.aspx">Storage</category></item><item><title>Charla – Taller sobre Desarrollo de Productos Turísticos</title><link>http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/2010/08/23/charla-taller-sobre-desarrollo-de-productos-tur-237-sticos.aspx</link><pubDate>Mon, 23 Aug 2010 18:37:17 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:193</guid><dc:creator>Verónica Echeverría Mosna</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Fuimos invitados por la subsecretaría de Turismo de la Provincia a participar de una &lt;strong&gt;Charla – Taller sobre el Desarrollo de Productos Turísticos&lt;/strong&gt;, la cual se realizó el día viernes 20 de agosto en la ciudad de Corrientes. La misma fue disertada por el Arq. Luis Grunewald, quien se ha especializado en la temática. Presentó algunos casos y estrategias de promoción del turismo aplicadas en otras provincias y países en los que estuvo trabajando, dio sus puntos de vista como especialista de cómo encuentra la difusión del turismo en Corrientes.&lt;/p&gt;  &lt;p&gt;La temática nos resultó interesante para considerar algunos aspectos en el desarrollo de &lt;strong&gt;Brújula&lt;/strong&gt;, nuestra Solución Integral de Gestión de Información Turística Multimedial &lt;a href="http://www.desarrollosnea.com.ar/productos/brujula"&gt;http://www.desarrollosnea.com.ar/productos/brujula&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0662_5F00_164C6190.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 5px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="Foto0662" border="0" alt="Foto0662" align="left" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0662_5F00_thumb_5F00_3B59862F.jpg" width="240" height="240" /&gt;&lt;/a&gt;Algunas conclusiones que a mi criterio son interesantes y a tenerlos en cuenta…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Uno de los atractivos más tradicionales de la oferta turística es el turismo en las ciudades. Para generar la oferta turística hay que tener en cuenta que cada producto va directamente relacionado con la ciudad. &lt;/p&gt;  &lt;p&gt;La demanda no compra un producto o servicio, compra una experiencia… en lo posible &lt;em&gt;“una experiencia única”.&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0661_5F00_6AC7F4FB.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="Foto0661" border="0" alt="Foto0661" align="left" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/Foto0661_5F00_thumb_5F00_4455EBE3.jpg" width="240" height="240" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Es necesario cambiar el concepto de&lt;em&gt; “vender la oferta existente”&lt;/em&gt; por &lt;em&gt;“comercializar lo que se vende”&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=193" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Capacitaci_26002300_243_3B00_n/default.aspx">Capacitaci&amp;#243;n</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Br_26002300_250_3B00_jula/default.aspx">Br&amp;#250;jula</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Marketing/default.aspx">Marketing</category></item><item><title>SEMINARIO "Tendencias de la industria IT a nivel global y Desarrollo de Polos Tecnológicos Regionales"</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2010/08/23/seminario-quot-tendencias-de-la-industria-it-a-nivel-global-y-desarrollo-de-polos-tecnol-243-gicos-regionales-quot.aspx</link><pubDate>Mon, 23 Aug 2010 13:19:39 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:192</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Los días 29 y 30 de julio pasados, el &lt;a href="http://www.poloitcorrientes.com" target="_blank"&gt;Polo IT Corrientes&lt;/a&gt; tuvo el honor de ser anfitrión del &lt;a href="http://poloitcorrientes.com/noticia.php?i=05284" target="_blank"&gt;XIII Congreso&lt;/a&gt; del Consejo Federal de Entidades Empresariales de Software y Servicios Informáticos (&lt;a href="http://www.cfessi.org.ar" target="_blank"&gt;CFESSI&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A modo de apertura de tan importante evento donde congregamos a toda la industria del país, organizamos un &lt;a href="http://poloitcorrientes.com/noticia.php?i=05285" target="_blank"&gt;Seminario&lt;/a&gt; en el &lt;a href="http://www.teatrovera.gov.ar/" target="_blank"&gt;Teatro Oficial “Juan de Vera”&lt;/a&gt; de nuestra ciudad. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/IMG_5F00_3939_5F00_5EF2C572.jpg"&gt;&lt;img style="border-right-width:0px;margin:0px 30px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="IMG_3939" border="0" alt="IMG_3939" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/IMG_5F00_3939_5F00_thumb_5F00_61C7DE8B.jpg" width="454" height="304" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/IMG_5F00_3952_5F00_023EF871.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="IMG_3952" border="0" alt="IMG_3952" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/IMG_5F00_3952_5F00_thumb_5F00_738426BE.jpg" width="454" height="304" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;El foco principal de este Seminario, además de traer disertantes de primer nivel a hablar de temas de actualidad, y de mostrar a la comunidad nuestra tarea silenciosa en pos del crecimiento y la defensa de la industria local y el desarrollo tecnológico de nuestra Provincia, era la de plantear una discusión respecto de las problemáticas, desafíos, pero especialmente las oportunidades que se presentan para las empresas de Software y Servicios Informáticos del interior del país. &lt;/p&gt;  &lt;p&gt;Para discutir está temática se organizó un Panel de Debate donde diferentes actores de la industria puedan presentar su visión desde ópticas bien diferentes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Fernando Racca, como presidente de &lt;a href="http://www.cessi.org.ar" target="_blank"&gt;CESSI&lt;/a&gt; analizando el desarrollo de la industria en general en el país, trayendo la palabra institucional de CESSI y contando el porqué CESSI salió al interior uniéndose al CFESSI. &lt;/li&gt;    &lt;li&gt;Rosa Wachenchauzer de la &lt;a href="http://www.agencia.gob.ar/" target="_blank"&gt;Agencia Nacional de Promoción Científica y Tecnológica&lt;/a&gt;, mostrando programas y estadísticas de los programas de apoyo a la industria pero con un foco hacia el interior del país. Estadísticas de presentación/aprobación de proyectos. Barreras observadas. Gestión de las ventanillas provinciales de los programas, etc. &lt;/li&gt;    &lt;li&gt;El Polo IT Corrientes (donde me tocó exponer a mí) describiendo la problemática, los desafíos, la perspectiva de desarrollo desde adentro, marcando los principales diferenciadores respecto de los centros más poblados, como así también las desventajas competitivas. Presentando a la vez una visión de cómo afecta la política o acción (o inacción) de los gobiernos provinciales en el desarrollo de los polos locales, etc. &lt;/li&gt;    &lt;li&gt;Carlos Pallotti –Presidente honorario de CESSI y director de la &lt;a href="http://www.fundacionsadosky.com.ar/" target="_blank"&gt;Fundación Sadosky&lt;/a&gt;- con su visión del desarrollo Federal. El inicio de CFESSI. El ensamble interior-CESSI para el desarrollo y la internacionalización de la industria. Cómo ve él la inserción de las empresas del interior periférico del país en el modelo de desarrollo del sector en el país. Sus posibilidades de exportación, las oportunidades de vinculación con empresas de capital, Córdoba o Rosario. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/IMG_5F00_4175_5F00_7C44093D.jpg"&gt;&lt;img style="border-right-width:0px;margin:0px 0px 0px 40px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="IMG_4175" border="0" alt="IMG_4175" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/IMG_5F00_4175_5F00_thumb_5F00_47FFBA2A.jpg" width="644" height="431" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;¿Por qué quisimos presentar este debate?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Mucho se habla respecto de las ventajas, fortalezas y oportunidades de la industria de SW en la Argentina. También del crecimiento de la industria, principalmente desde la salida de la convertibilidad y la ventaja competitiva (en precios) que eso significaba. Aunque generalmente estos análisis se basan en lo que ocurre en los grandes centros urbanos.&lt;/p&gt;  &lt;p&gt;Por otra parte, también es cierto que el crecimiento de la industria en dichos centros ha ido “traccionando” el desarrollo del sector en todo el país. Aquí han confluido diferentes causas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Las empresas han ido asentando centros de desarrollo en el interior: “Toda industria tiene que estar cerca de la materia prima”. &lt;/li&gt;    &lt;li&gt;La industria local se ha ido formalizando y organizando. &lt;/li&gt;    &lt;li&gt;Los gobiernos y universidades locales han observado altas tasas de migración de profesionales del sector y han buscado la manera de revertir ese fenómeno. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Así nacieron Polos, clústeres (conglomerados) y parques tecnológicos en todo el país. Pero, las realidades son distintas… No sólo desde la geografía. Por eso pedí a las personalidades que me acompañaron una reflexión y perspectiva de desarrollo de la industria con foco en situaciones similares a la de nuestra Provincia.&lt;/p&gt;  &lt;p&gt;Es así que a mi me tocó hablar desde la realidad de nuestras empresas y del Polo IT Corrientes como cámara de empresas de software de Corrientes, que defiende firmemente el desarrollo local. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Cómo vemos desde el Polo IT Corrientes el desarrollo del sector en la provincia?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Si bien puede ser un proceso mucho más largo y de menor impacto inmediato,&lt;strong&gt; el desarrollo de la industria local, con capitales y “dueños” locales, es el modelo más sustentable y de mayores beneficios a largo plazo&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;El desarrollo de empresas locales es el modelo que “por lejos” genera más valor. &lt;strong&gt;No sólo queda en nuestra región la remuneración, sino el capital, las utilidades, las reinversiones, y sobre todo se retiene el conocimiento y otros intangibles: Marcas, mejores prácticas, propiedad intelectual, etc.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A esto hay que agregar el efecto que tienen las Pymes sobre la distribución del ingreso. Un relevamiento reciente de la &lt;a href="http://www.observatoriopyme.org.ar/es/index.php" target="_blank"&gt;Fundación Observatorio Pyme&lt;/a&gt;, determinó que en las Pymes argentinas &lt;strong&gt;el salario tiene una participación del 73% sobre el valor agregado generado por la empresa&lt;/strong&gt;, mientras que en las grandes empresas ese promedio es sólo del 14%. &lt;/p&gt;  &lt;p&gt;Con este objetivo nacimos: Convencer a nuestros dirigentes y gobernantes sobre las ventajas de desarrollar la industria local y de las capacidades de nuestras empresas. &lt;strong&gt;La institucionalidad y la formalidad son requisitos indispensables para que la industria local pueda ser “vista” con otros ojos y que este modelo propuesto pueda percibirse como más realizable&lt;/strong&gt;. Aquí el esfuerzo lo debíamos poner nosotros. Había que empezar a construir y desarrollar empresas.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Y así empezamos… Con objetivos claros que yo los presenté en este árbol, como metáfora de un crecimiento ordenado. De un acción orientada, ordenada, que ya fue dando sus primeros “frutos”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/image_5F00_01067160.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/horaison/image_5F00_thumb_5F00_3783F6D7.png" width="847" height="530" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Finalmente hice una breve análisis FODA de las empresas locales del interior del país.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Oportunidades y Fortalezas&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Competitividad, debido a menores costos de desarrollo que en otros puntos del país. &lt;/li&gt;      &lt;li&gt;Mejores condiciones de vida y el bienestar laboral favorecen el desarrollo de talentos locales. &lt;/li&gt;      &lt;li&gt;Cercanía con universidades que cuentan con carreras específicas de Sistemas. &lt;/li&gt;      &lt;li&gt;Baja conflictividad laboral. &lt;/li&gt;      &lt;li&gt;Bajo nivel de desarrollo e implementación de las TICs en los gobiernos locales. &lt;/li&gt;      &lt;li&gt;Escasa incorporación de tecnología por parte de los principales sectores productivos de la provincia. &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Desafíos y Amenazas&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;El incremento de los costos. ¿Cómo diferenciar la industria local sin que sea por medio de salarios competitivos? &lt;/li&gt;      &lt;li&gt;Dificultades de financiamiento o soporte para el desarrollo de nuevos productos o servicios. &lt;/li&gt;      &lt;li&gt;La «Ley de software» puede convertirse en un diferenciador competitivo importante. Las empresas más chicas y con mayores necesidades pueden estar pagando más impuestos y cargas sociales por no llegar –o llegar fuera de tiempo- a los beneficios de la ley. &lt;/li&gt;      &lt;li&gt;El autodesarrollo del estado. &lt;/li&gt;      &lt;li&gt;La Universidad empieza a competir por clientes y recursos. &lt;/li&gt;      &lt;li&gt;Cultura del «compro afuera, es mejor». &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=192" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Polo+IT+Corrientes/default.aspx">Polo IT Corrientes</category></item><item><title>Desarrollos NEA S.R.L. alcanza el nivel Microsoft Gold Certified Partner</title><link>http://team.desarrollosnea.com.ar/blogs/horaison/archive/2010/08/14/desarrollos-nea-s-r-l-alcanza-el-nivel-microsoft-gold-certified-partner.aspx</link><pubDate>Sat, 14 Aug 2010 13:59:43 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:191</guid><dc:creator>horaison</dc:creator><slash:comments>0</slash:comments><description>&lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d00cd62f-aca1-4459-ab62-c34479167a00" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/Desarrollos+NEA" rel="tag"&gt;Desarrollos NEA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Certificaciones" rel="tag"&gt;Certificaciones&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Los Socios &lt;strong&gt;Gold&lt;/strong&gt; &lt;strong&gt;Certified&lt;/strong&gt; representan el nivel más alto de competencia y especialización en tecnologías Microsoft, además de disfrutar de una relación más estrecha con la compañía. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="margin:0px 15px 0px 0px;display:inline;" alt="" align="left" src="http://www.desarrollosnea.com.ar/articuloRecursos/imagen_92_67_300.jpg" width="185" height="101" /&gt;Gracias a su conocimiento, habilidades y compromiso para ayudar a implementar soluciones tecnológicas que se adapten a las necesidades de cada negocio, Desarrollos NEA S.R.L. ha obtenido en el mes de Julio pasado la certificación &lt;strong&gt;Gold&lt;/strong&gt;, demostrando así contar con las capacidades, experiencias e índices de satisfacción de clientes requeridos por Microsoft.&lt;/p&gt;  &lt;p&gt;Como Microsoft Gold Certified Partner, Desarrollos NEA S.R.L. tiene acceso a los beneficios más completos de la red de socios, los cuales son siempre trasladados a nuestros clientes en la provisión e implementación de soluciones robustas, eficientes y escalables basadas en tecnologías Microsoft. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hoy contamos con las competencias &lt;strong&gt;Midmarket Solution Provider&lt;/strong&gt; y &lt;strong&gt;Server Platform&lt;/strong&gt;. Incrementando día a día la cantidad de &lt;a href="https://partner.microsoft.com/argentina/40121166"&gt;profesionales certificados&lt;/a&gt; seguiremos incorporando nuevas competencias en los rubros de soluciones de infraestructura avanzada, virtualización, seguridad, desarrollo de software, base de datos, inteligencia de negocios, portales y colaboración, etc.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ver &lt;a href="http://pinpoint.microsoft.com/es-AR/PartnerDetails.aspx?PartnerId=4296838718&amp;amp;LocId=301407921802814"&gt;Desarrollos NEA S.R.L.&lt;/a&gt; en &lt;a href="http://http://pinpoint.microsoft.com/es-AR/default.aspx"&gt;PinPoint&lt;/a&gt;, el nuevo portal de búsqueda de expertos y soluciones de Microsoft. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=191" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://team.desarrollosnea.com.ar/blogs/horaison/archive/tags/Certificaciones/default.aspx">Certificaciones</category></item><item><title>Encuentro Latinoamericano de Diseño 2010 … un año más… PRESENTE!</title><link>http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/2010/08/10/encuentro-latinoamericano-de-dise-241-o-2010-un-a-241-o-m-225-s-presente.aspx</link><pubDate>Tue, 10 Aug 2010 14:04:56 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:190</guid><dc:creator>Verónica Echeverría Mosna</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/14_5F00_78611127.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="1 (4)" border="0" alt="1 (4)" align="left" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/14_5F00_thumb_5F00_75D7DF69.jpg" width="145" height="195" /&gt;&lt;/a&gt;La Facultad de Diseño y Comunicación de la Universidad de Palermo organiza año a año, el Encuentro Latinoamericano de Diseño.&lt;/p&gt;  &lt;p align="justify"&gt;La gran convocatoria de las ediciones previas, ha consolidado este evento como el mayor espacio de capacitación, actualización, reflexión e intercambio de experiencias entre docentes, profesionales, estudiantes y empresas del campo del diseño (gráfico, industrial, de indumentaria, entre otros).&lt;/p&gt;  &lt;p align="justify"&gt;Se lleva a cabo durante 4 días sobre fines del mes de julio. En esta oportunidad dio inicio el 27 y cerró el 30 de julio. Contó con más de 350 actividades de capacitación (talleres, seminarios y conferencias) dictadas por profesionales del diseño y la comunicación de toda América Latina. Los invitados de honor en esta oportunidad fueron: Felipe Taborda (Brasil), Alejandro Magallanes (México), América Sánchez (Argentina) y Norberto Chaves (Argentina).&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/21_5F00_5ABF105B.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="2 (1)" border="0" alt="2 (1)" align="left" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/21_5F00_thumb_5F00_748320BD.jpg" width="244" height="184" /&gt;&lt;/a&gt; Los diseñadores concluyeron el evento en una mesa de cierre, muy interesante, frente a más de 400 personas disertando sobre los pilares de la profesión y destacando la importancia de las palabras y la observación en el diseño.&lt;/p&gt;  &lt;p align="justify"&gt;América Sánchez, quien ha explorado en la inagotable fuente iconográfica del grafismo popular, espontáneo y anónimo básicamente de raíz latina, compartió en sus conferencias proyecciones comentadas de material que resultó parte de su estudio junto a algunos de sus trabajos o “encargos” (como él los llama) más relevantes, transmitiendo su desinterés absoluto por generar un “estilo propio&lt;b&gt;”. &lt;/b&gt;Destacó que s&lt;strong&gt;u gran obsesión es&lt;/strong&gt;&lt;strong&gt; el dibujo, materializado hoy con El Club del dibujo,&lt;/strong&gt; un espacio de pensamiento y acción acerca del dibujo pensado para público especializado y no especializado. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/22_5F00_4B2BD8BF.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="2 (2)" border="0" alt="2 (2)" align="left" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/22_5F00_thumb_5F00_7E77764E.jpg" width="244" height="184" /&gt;&lt;/a&gt; Norberto Chaves, por su parte (bastante más teórico…) reflexionó sobre el diseñador de información, el diseñador como comunicador global que debe tener dominio de lo que necesita comunicar. Entiende que no es un artista, por lo que el estilo es una variable y no responde a la necesidad creativa personal. Considera que el diseñador debe tener un alto espíritu analítico y una conciencia de trabajar de manera interdisciplinaria.&lt;/p&gt;  &lt;p align="justify"&gt;Mientras que el diseñador Alejandro Magallanes considera que el diseño tiene la capacidad de generar memoria colectiva, y que no piensa que una imagen valga más que mil palabras, porque las palabras son imágenes…&lt;/p&gt;  &lt;p align="justify"&gt;Felipe Taborda hizo hincapié en “la curiosidad” como motor del trabajo y el disfrute del mismo. Cerró el evento con el “furor visual” como la constante “necesidad de querer agarrar todo con nuestros ojos”.&lt;/p&gt;  &lt;p align="justify"&gt;Otras conferencias en las que me interesé fueron Diseño Web inclusivo, Email Marketing, Motion Graphics, la Presentación del libro &amp;quot;Ideas Registradas&amp;quot; de Shakespeare, Comunicación y diseño en un gobierno local: el caso de Junín, entre otras.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/13_5F00_3498EE9E.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="1 (3)" border="0" alt="1 (3)" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/13_5F00_thumb_5F00_32D7FCFD.jpg" width="233" height="176" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/15_5F00_571CE17F.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="1 (5)" border="0" alt="1 (5)" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/15_5F00_thumb_5F00_588DD7C6.jpg" width="234" height="177" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p align="justify"&gt;Si quieren ver algunas presentaciones de los conferencistas pueden acceder a …&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://www.slideshare.net/encuentro2010"&gt;http://www.slideshare.net/encuentro2010&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://www.slideshare.net/encuentro2010"&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/11_5F00_3C9CA2CE.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="1 (1)" border="0" alt="1 (1)" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/11_5F00_thumb_5F00_44841F63.jpg" width="174" height="244" /&gt;&lt;/a&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/12_5F00_0CEE5E75.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="1 (2)" border="0" alt="1 (2)" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/12_5F00_thumb_5F00_69DDED04.jpg" width="174" height="244" /&gt;&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;También hubo exposiciones y concursos… estos dos afiches me parecieron muy buenos!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=190" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Encuentro/default.aspx">Encuentro</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Capacitaci_26002300_243_3B00_n/default.aspx">Capacitaci&amp;#243;n</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Dise_26002300_241_3B00_o/default.aspx">Dise&amp;#241;o</category></item><item><title>[ASP.NET] Nuevos snippet de código en VS2010 para HTML, Javascript … y sumando para jQuery</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/08/02/asp-net-nuevos-snippet-de-c-243-digo-en-vs2010-para-html-javascript-y-sumando-para-jquery.aspx</link><pubDate>Mon, 02 Aug 2010 14:25:06 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:189</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Cuando trabajamos en ambientes web con Visual Studio 2010 tenemos a nuestra disposición los nuevos snippet de código para HTML y Javascript algo que nos puede ayudar en nuestro día a día (además de los que ya teníamos ASP.NET y sus webcontrols de versiones previas y &lt;a href="http://weblogs.asp.net/rajbk/archive/2010/04/18/code-snippets-for-asp-net-mvc2-in-vs-2010.aspx" target="_blank"&gt;por supuesto de ASP.NET MVC 2&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;En estos días estamos en la empresa “aumentando” nuestra formación en jQuery así que saque a relucir algo que tenia en borrador desde hace un par de meses por los snippets para este framework javascript.&lt;/p&gt;  &lt;p&gt;O sea tenemos del lado del cliente snippets:&lt;/p&gt;  &lt;ol&gt;   &lt;ol&gt;     &lt;li&gt;Snippet “out-the-box” para HTML (lo que viene con VS2010) &lt;/li&gt;      &lt;li&gt;Snippet “out-the-box” para Javascript (lo que viene con VS2010) &lt;/li&gt;      &lt;li&gt;Snippet para jQuery &lt;em&gt;(no viene preinstalado, aquí hay que crear al snippet … o mejor si alguien ya lo hizo y lo compartió… &lt;strike&gt;menos doloroso&lt;/strike&gt;)&lt;/em&gt; &lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;1 - Snippet para HTML&lt;/h3&gt;  &lt;p&gt;Esto lo tenemos disponible “out-the-box” (o sea preinstalado) para acortarnos camino al escribir una tag a o table… incluso para silverlight ;)    &lt;br /&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="5" width="600"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="255"&gt;&lt;strong&gt;Etiqueta/Snippet para HTML&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="345"&gt;&lt;strong&gt;Snippet generado&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="255"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_4D3A4665.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_035BBEB5.png" width="244" height="159" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="345"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_3572E932.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_3B4D8CCB.png" width="187" height="37" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="255"&gt;Asi tenemos desde los “básicos” como div, table, span, etc….&lt;/td&gt;        &lt;td valign="top" width="345"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_2C36ADF1.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_118A11D8.png" width="406" height="201" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="255"&gt;Como algo completo (&lt;em&gt;y doloroso para escribirlo o copiarlo&lt;/em&gt;) como es el tag object para insertar Silverlight           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;em&gt;NOTA: En breve veremos como hacer uno para swfObject para insertar películas Flash&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="345"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_56C26901.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_44A5FFA7.png" width="473" height="170" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;Listado Completo:&lt;/strong&gt; Si quieres tener un listado John Sheehan (&lt;a href="http://twitter.com/johnsheehan" target="_blank"&gt;@johnsheehan&lt;/a&gt;) (el que armo y compartió los snippet de jQuery) &lt;a href="http://john-sheehan.com/blog/cheatsheets/visual-studio-2010-asp-net-html-javascript-snippets.htm" target="_blank"&gt;tiene un “cheat sheets” de estos snippets&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://john-sheehan.com/blog/cheatsheets/visual-studio-2010-asp-net-html-javascript-snippets.htm" target="_blank"&gt;Visual Studio 2010 Built-in Code Snippets (ASP.NET, HTML, JavaScript)&lt;/a&gt; (por John Sheehan &lt;a href="http://twitter.com/johnsheehan" target="_blank"&gt;@johnsheehan&lt;/a&gt;)       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;Inserción de un Snippet&lt;/h4&gt;  &lt;p&gt;Existen tres formas de disparar la inserción de un snippet&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;La primera escribiendo el “código” del snippet (en vista del código fuente del marcado html) y luego presionando [Tab]      &lt;br /&gt;&lt;em&gt;(No es lo mismo que los snippet de webcontrol donde hay que presionar dos veces Tab para que complete el nombre del control y luego que escriba el snippet)&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;La segunda mas “grafica” con el famoso menú contextual (botón derecho)      &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_262B98F1.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_1DC7C39A.png" width="382" height="50" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;También con las “hot-key” presionando Ctrl+K, Ctrl+X (en ese secuencia) y aparece el selector para “Insert Snippet”…      &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_07257553.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_4B19339D.png" width="444" height="308" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Envolver nuestro código con… en el editor HTML&lt;/h4&gt;  &lt;p&gt;También tenemos posibilidad de insertar y/o envolver nuestro código (como lo hacemos en el codebehind) pero en el editor HTML, ya nos comenta &lt;a href="http://geeks.ms/blogs/elbruno" target="_blank"&gt;elBruno&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/elbruno/archive/2009/04/16/vsts2010-insert-snippet-y-surround-with-en-el-editor-web.aspx" target="_blank"&gt;Insert snippet y surround with … en el editor web&lt;/a&gt; (por &lt;a href="http://geeks.ms/blogs/elbruno" target="_blank"&gt;elBruno&lt;/a&gt;)       &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_5D15515D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7AA72C5C.png" width="504" height="80" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;Donde está la configuración de snippet?&lt;/strong&gt; &lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;Tools &amp;gt;&amp;gt; Code Snippets Manager (Ctrl+K, Ctrl+B)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_034784E9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7EFD6189.png" width="480" height="359" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Crear un Snippet, “encapsulando conocimiento”&lt;/h4&gt;  &lt;p&gt;Si quieres crear uno propio puedes escribirlo en XML (&lt;strike&gt;si te gusta martirizar con abrir y cerrar tags&lt;/strike&gt;) o utilizar &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://snippeteditor.codeplex.com/" target="_blank"&gt;Snippet Editor&lt;/a&gt; que en su versión 2.1 trae soporte para VS2010 &lt;/li&gt;    &lt;li&gt;&lt;a href="http://snippetdesigner.codeplex.com/" target="_blank"&gt;Snippet Designer&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;En todos los casos se debe copiar el archivo miSnippet.snippet &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;C:\Users\{usuario}\Documents\Visual Studio 2010\Code Snippets\Visual Web Developer&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Alli tienes dos carpetas My HTML Snippets y My JSScript Snippets respectivamente&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_023EAD98.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2B6645D6.png" width="156" height="57" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;NOTA: Ahora que recuerdo, tengo un post relacionado “tipo tutorial” para crear un snippet para insertar peliculas flash con&amp;#160; &lt;/em&gt;&lt;a href="http://code.google.com/p/swfobject/" target="_blank"&gt;&lt;em&gt;swfobject&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, así que lo publicare en breve.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;2 - Snippet para Javascript&lt;/h3&gt;  &lt;p&gt;Tenemos también “out-the-box” snippet para Javascript (lo justo y necesario) &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_709E9CFF.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_410FE299.png" width="649" height="394" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ejemplos:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="5" width="602"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="255"&gt;&lt;strong&gt;Etiqueta/Snippet para JS&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="345"&gt;&lt;strong&gt;Snippet generado&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="255"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_50531EDB.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2F5FAC34.png" width="66" height="24" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="345"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_074CFD15.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_581B117D.png" width="305" height="29" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="255"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_3DDAA859.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_628BBFD0.png" width="428" height="168" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="345"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_60028E12.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_1C6ADCF0.png" width="227" height="107" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;3 - Snippet para jQuery&lt;/h3&gt;  &lt;p&gt;Aquí hacemos uso de &lt;a href="http://jquerysnippets.codeplex.com/" target="_blank"&gt;jQuery Code Snippets for Visual Studio 2010&lt;/a&gt; que es proyecto hosteado en CodePlex que nos agrega &lt;a href="http://jquerysnippets.codeplex.com/documentation?referringTitle=Home" target="_blank"&gt;unos cuantos snippet&lt;/a&gt;. O sea o lo hacemos nosotros o utilizamos lo que alguien compartió (&lt;strike&gt;y nos ahorro un par de horas&lt;/strike&gt;) esto gracias John Sheehan (&lt;a href="http://twitter.com/johnsheehan" target="_blank"&gt;@johnsheehan&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Para ayudarnos en vez del copy&amp;amp;paste nos da un instalador y copia en las carpetas para snippets personalizados que comente mas arriba (My HTML Snippets y My JSScript Snippets)    &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_4CB1B1A6.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_40438E7D.png" width="427" height="42" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Entonces luego podremos ver que nos instalo unos cuentos&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="5" width="600"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="300"&gt;&lt;strong&gt;Snippet para jQuery en HTML&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="300"&gt;&lt;strong&gt;Snippet para jQuery en JScript&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_09F2666E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2422A9C5.png" width="354" height="288" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="300"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_679A0F4D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_3E9ED477.png" width="362" height="284" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;NOTA:&lt;/strong&gt; (&lt;strike&gt;para el quisquilloso&lt;/strike&gt;) La versión que nos inserta para la registración de la libreria jQuery es para la 1.3.2, para tenerlo en cuenta. Tampoco creo que cambiar 1.3.2 a 1.4.2 que es la ultima sea muy difícil. Por ejemplo abriendo todos los archivos con &lt;a href="http://notepad-plus-plus.org/" target="_blank"&gt;Notepad++&lt;/a&gt; y reemplazando valores.     &lt;br /&gt;O también te vas a la ultima &lt;a href="http://jquerysnippets.codeplex.com/SourceControl/list/changesets" target="_blank"&gt;revisión de código y te descargas el repositorio&lt;/a&gt; y reemplazas archivos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ejemplos:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="5" width="602"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="327"&gt;&lt;strong&gt;Etiqueta/Snippet para jQuery&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="273"&gt;&lt;strong&gt;Snippet generado&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="327"&gt;&amp;#160; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_736B8E1A.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_592B24F6.png" width="78" height="28" /&gt;&lt;/a&gt;           &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="273"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_6A2F52D9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_48CFAD3D.png" width="290" height="54" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="327"&gt;los CDN tanto de &lt;a href="http://code.google.com/intl/es-ES/apis/libraries/" target="_blank"&gt;Google&lt;/a&gt; como &lt;a href="http://www.asp.net/ajaxlibrary/cdn.ashx" target="_blank"&gt;Microsoft&lt;/a&gt;           &lt;br /&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_750C3421.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_21B4EDFB.png" width="134" height="54" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="273"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_0055485F.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7E384995.png" width="401" height="83" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="327"&gt;… el $(document).ready…          &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_3459C1E5.png"&gt;           &lt;br /&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_246A7D21.png" width="408" height="90" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="273"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_296CBAD0.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_55A941B4.png" width="264" height="90" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="327"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="273"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://jquerysnippets.codeplex.com/documentation?referringTitle=Home" target="_blank"&gt;Listado completo de Snippet para jQuery aquí&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Video de uso :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.screencast.com/users/JohnSheehan/folders/Jing/media/e0787da7-5e1c-4eef-bbb9-648426204be5"&gt;http://www.screencast.com/users/JohnSheehan/folders/Jing/media/e0787da7-5e1c-4eef-bbb9-648426204be5&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;[Actualización 27/08/2010]&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Leyendo el blog &lt;a href="http://twitter.com/Jersson"&gt;@Jersson&lt;/a&gt; di con un post interesante referente a tips en la utilización de los fragmentos de código, dejo (y linkeo) el enlace&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;&lt;a href="http://geeks.ms/blogs/jersson/archive/2010/08/20/vs2010-qu-233-tanto-usas-los-snippets-de-c-243-digo.aspx" target="_blank"&gt;VS2010: Qué tanto usas los snippets de código?&lt;/a&gt; (por &lt;a href="http://geeks.ms/members/jersson/default.aspx"&gt;Jersson&lt;/a&gt;)        &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Enlaces:&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Walkthrough: Using HTML Snippets      &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd985242.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd985242.aspx&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Snippet Editor      &lt;br /&gt;&lt;a href="http://snippeteditor.codeplex.com/"&gt;http://snippeteditor.codeplex.com/&lt;/a&gt;       &lt;ul&gt;       &lt;ul&gt;         &lt;li&gt;           &lt;p&gt;Gestión de archivos de snippets.&lt;/p&gt;         &lt;/li&gt;          &lt;li&gt;           &lt;p&gt;Coloreado de sintaxis básica.&lt;/p&gt;         &lt;/li&gt;          &lt;li&gt;           &lt;p&gt;Subrayado de reemplazos.&lt;/p&gt;         &lt;/li&gt;          &lt;li&gt;           &lt;p&gt;Organización de archivos drag &amp;amp; drop.&lt;/p&gt;         &lt;/li&gt;       &lt;/ul&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;jQuery Code Snippets for Visual Studio 2010      &lt;br /&gt;&lt;a href="http://jquerysnippets.codeplex.com/"&gt;http://jquerysnippets.codeplex.com/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=189" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Desarrollos NEA certificó su Sistema de Gestión de la Calidad bajo la Norma ISO 9001:2008</title><link>http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/2010/07/19/desarrollos-nea-certific-243-su-sistema-de-gesti-243-n-de-la-calidad-bajo-la-norma-iso-9001-2008.aspx</link><pubDate>Mon, 19 Jul 2010 20:04:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:188</guid><dc:creator>Verónica Echeverría Mosna</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/logoISOIQNET_5F00_06B172FA.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="logo ISO IQNET" border="0" alt="logo ISO IQNET" align="right" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vecheverria/logoISOIQNET_5F00_thumb_5F00_476BE305.jpg" width="215" height="167" /&gt;&lt;/a&gt;En el mes de junio de 2010, la empresa &lt;em&gt;&lt;strong&gt;Desarrollos NEA S.R.L&lt;/strong&gt;&lt;/em&gt;. obtuvo la certificación ISO 9001-2008 otorgada por el IRAM (Instituto Argentino de Normalización y Certificación) . Esta Norma Internacional especifica los requisitos para un sistema de gestión de la calidad, cuando una organización necesita demostrar su capacidad para proporcionar regularmente productos que satisfagan los requisitos del cliente (y los legales y reglamentarios aplicables), y aspira a aumentar la satisfacción del cliente a través de la aplicación eficaz del sistema, incluidos los procesos para la mejora continua del sistema.&lt;/p&gt;  &lt;p&gt;El alcance del &lt;em&gt;&lt;strong&gt;Sistema de Gestión de la Calidad&lt;/strong&gt;&lt;/em&gt; definido por la empresa incluye la comercialización, análisis, diseño, construcción, testing, implementación y posventa de software de gestión a medida y productos propios.&lt;/p&gt;  &lt;p&gt;El logro obtenido por &lt;em&gt;&lt;strong&gt;Desarrollos NEA&lt;/strong&gt;&lt;/em&gt; ratifica el fuerte compromiso que la empresa mantiene con sus clientes y con el desarrollo del sector de las Tecnologías de la Información en la región.&lt;/p&gt;  &lt;p&gt;Desarrollos NEA es una empresa que se dedica a la provisión de soluciones integrales en Tecnologías de Información. Su equipo está formado en su mayoría por Ingenieros en Sistemas de Información, profesionales&amp;#160; formados en nuestras universidades, con amplia experiencia y perfeccionamiento continuo en desarrollo de software, administración de base de datos, y diseño e implementación de infraestructuras de red, servicios y seguridad. Su principal diferenciador es la capacidad de optimizar procesos, paralelamente al desarrollo de las aplicaciones, con el fin de generar las mejores soluciones para los clientes.&lt;/p&gt;  &lt;p&gt;Los servicios prestados por la empresa son los siguientes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; Desarrollo de Software a medida y configuración de productos propios y de terceros, &lt;/li&gt;    &lt;li&gt;Consultoría integral en proyectos de desarrollo, análisis y segurización de infraestructuras tecnológicas, auditoría y optimización de bases de datos, integración de sistemas y plataformas. &lt;/li&gt;    &lt;li&gt;Configuración y mantenimiento de infraestructuras. Implementación, gestión y mantenimiento de infraestructuras de red basadas en plataformas Microsoft Windows Server. Implementación y administración de políticas y mecanismos de seguridad. Configuración de servicios de red corporativos. &lt;/li&gt;    &lt;li&gt;Capacitación y entrenamiento a personal técnico. Transferencia de conocimientos y experiencias prácticas, destinadas a organizaciones que cuentan con equipos propios de desarrollo y soporte. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Desarrollos NEA&lt;/em&gt;&lt;/strong&gt; focaliza sus esfuerzos en formalizar el conocimiento en sus áreas de especialización,&amp;#160; a través de certificaciones líderes en el mercado, buscando alcanzar los niveles más altos de competencia y experiencia en las tecnologías que se utilizan. Este camino ha llevado a la empresa a formar parte del Microsoft Partner Network con el nivel Gold Certified Partner, el cual permite ofrecer las mejores soluciones de licenciamiento, contar con el soporte directo del fabricante y desarrollar soluciones de Software e Infraestructura respaldadas por Microsoft. &lt;/p&gt;  &lt;p&gt;Este logro tan importante se consiguió junto a otras empresas del sector como resultado de un fuerte trabajo asociativo del POLO IT CORRIENTES. &lt;/p&gt;  &lt;p&gt;La entrega de los certificados de calidad se realizará en el acto de apertura del &lt;em&gt;&lt;strong&gt; XIII Congreso de Consejo Federal de Empresas de Software y Servicios Informáticos (CFESSI)&lt;/strong&gt;&lt;/em&gt; que reunirá los máximos representantes de la industria de todo el país y el &lt;strong&gt;&lt;em&gt;POLO IT CORRIENTES&lt;/em&gt;&lt;/strong&gt; tiene el honor de organizar.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=188" width="1" height="1"&gt;</description><enclosure url="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.01.88/logo-ISO_2B00_IQNET.jpg" length="619231" type="image/jpeg" /><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/vecheverria/archive/tags/Eventos/default.aspx">Eventos</category></item><item><title>Gmail con firma de Texto Enriquecido (por fin!)… y también en Google App</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/07/14/gmail-con-firma-de-texto-enriquecido-por-fin-y-tambi-233-n-en-google-app.aspx</link><pubDate>Wed, 14 Jul 2010 23:48:33 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:186</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Esto era algo que lo necesitábamos “en los viajes” ;) para seguir manteniendo nuestra imagen institucional en las conversaciones vía email&lt;/p&gt;  &lt;p&gt;&lt;em&gt;(Si bien esto es vox-populi, dejo por aquí asentado para hacer referencia interna)     &lt;br /&gt;      &lt;br /&gt;&lt;/em&gt;Desde hace unos días tenemos disponible esta funcionalidad (sin recurrir a scripts de &lt;a href="http://www.greasespot.net/" target="_blank"&gt;Greasemonkey&lt;/a&gt; como &lt;a href="http://userscripts.org/scripts/show/6356" target="_blank"&gt;plugins de Firefox&lt;/a&gt; )&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Rich text signatures     &lt;br /&gt;&lt;a href="http://gmailblog.blogspot.com/2010/07/rich-text-signatures.html"&gt;http://gmailblog.blogspot.com/2010/07/rich-text-signatures.html&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;En la configuración de la cuenta podremos ver que podemos configurar por cuenta una firma diferente&lt;/p&gt;  &lt;p&gt;Por ejemplo para cargar una imagen&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/image_5F00_358B476B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/image_5F00_thumb_5F00_2C4F0C2A.png" width="941" height="161" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Insertar una imagen podremos acceder a ella mediante la URL Absoluta … (que raro que no la podamos subir tipo nuestra imagen)&lt;/p&gt;  &lt;p&gt;Pero tranquilamente podemos utilizar cualquier servicio que nos permita acceder a la imagen directamente por web &lt;a href="http://picasaweb.google.com/home" target="_blank"&gt;PicasaWebAlbum&lt;/a&gt;, &lt;a href="http://www.flickr.com/" target="_blank"&gt;Flickr&lt;/a&gt;, o en nuestras carpetas en &lt;a href="http://www.skydrive.com/" target="_blank"&gt;SkyDrive&lt;/a&gt; (o se llama Office Documents Online??)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/image_5F00_71876353.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/image_5F00_thumb_5F00_4110DEDD.png" width="642" height="319" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=186" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/General/default.aspx">General</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Google/default.aspx">Google</category></item><item><title>[OT] DESNEA.SuperTazón… estrenando las tazas empresariales (con sentido de pertenencia incorporado)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/07/13/ot-desnea-supertaz-243-n-estrenando-las-tazas-empresariales-con-sentido-de-pertenencia-incorporado.aspx</link><pubDate>Tue, 13 Jul 2010 17:03:10 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:185</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Siempre es bueno sentir la pertenencia a un grupo, y mas aún si se “materializa” ;)&lt;/p&gt;  &lt;p&gt;Estamos estrenando en Desarrollos NEA nuevas tazas&lt;/p&gt;  &lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/SDC13743_5F00_53A71C43.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="SDC13743" border="0" alt="SDC13743" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/SDC13743_5F00_thumb_5F00_5952101C.jpg" width="702" height="397" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;em&gt;&lt;font size="2"&gt;Imagínense el valor que hay que tener para al armar esta pirámide!!! estaba contando cuanta $$ tenia que devolver… en caso de terremoto ;)&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;NOTA FINAL: Aquí hay un &lt;a href="http://es.wikipedia.org/wiki/Mensaje_subliminal" target="_blank"&gt;mensaje subliminal&lt;/a&gt; enviado a todos para detectar quien deja las tazas sucias en la cocina y prevenirlo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=185" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Personal/default.aspx">Personal</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Off-topic/default.aspx">Off-topic</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Team/default.aspx">Team</category></item><item><title>[ASP.NET] Error: Could not load file or assembly [XXX] The parameter is incorrect … HRESULT: 0x80070057 (E_INVALIDARG). Solución</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/07/12/asp-net-error-could-not-load-file-or-assembly-xxx-the-parameter-is-incorrect-hresult-0x80070057-e-invalidarg-soluci-243-n.aspx</link><pubDate>Tue, 13 Jul 2010 00:42:05 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:184</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;div style="background-color:#fffab5;"&gt;Esos errores que aparecen en tu vida y vaya a saber que planetas se alinearon… &lt;/div&gt;  &lt;p&gt;En una aplicación web con ASP.NET 3.5/VS2008 en una de las maquinas de desarrollo dio este mensaje de error el momento de debugear&lt;/p&gt;  &lt;p&gt;Mensaje de Error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;Could not load file or assembly ‘…’ or one of its dependencies. The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))        &lt;br /&gt;        &lt;br /&gt;&lt;font color="#400000"&gt;Y para “colmo de males” el mensaje directamente era por el assembly de &lt;a href="http://www.asp.net/ajaxlibrary/act.ashx" target="_blank"&gt;AJAX Control Toolkit&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;&lt;/font&gt;&lt;i&gt;Could not load file or assembly &amp;#39;AjaxControlToolkit&amp;#39; or one of its dependencies. The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Solución efectiva y eficaz (al estilo del botón reset)&lt;/h3&gt;  &lt;p&gt;Con &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales" target="_blank"&gt;Diego&lt;/a&gt; dimos en la solución eliminando la carpeta temporal de Temporal de Archivos de ASP.NET que es donde “la magia” de la &lt;a href="http://msdn.microsoft.com/es-es/library/ms366723.aspx" target="_blank"&gt;compilación dinámic&lt;/a&gt;a genera sus archivos&lt;/p&gt;  &lt;p&gt;Esta carpeta generalmente se encuentra aquí:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;%SystemRoot%\Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Como estamos trabajando con ASP.NET 3.5 en core del framework es 2.0 así que la carpeta específicamente se encuentra aquí:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files&lt;br /&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h4&gt;NOTA IMPORTANTE: Desarrollando en Vista/Windows 7&lt;/h4&gt;

&lt;p&gt;Justamente en la maquina donde generaba el error es un Windows 7, y si utilizamos un usuario que no es administrador local de la maquina la carpeta temporal se “redirecciona” aquí&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;%LocalAppData%\Temp\Temporary ASP.NET Files&lt;/p&gt;

  &lt;p&gt;&lt;u&gt;Ejemplo:&lt;/u&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;c:\Users\[Usuario]\AppData\Local\Temp\Temporary ASP.NET Files&amp;#160; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;
  &lt;br /&gt;Espero que les pueda servir de ayuda o guía…&lt;/p&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=184" width="1" height="1"&gt;</description></item><item><title>[Formación] Workshop Scrum… UNNE Jun/2010. Finalizado.</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/07/06/formaci-243-n-workshop-scrum-unne-jun-2010-finalizado.aspx</link><pubDate>Tue, 06 Jul 2010 13:17:07 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:182</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Se realizó la semana pasada el primero de los dos workshop sobre Scrum como &lt;a href="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/06/18/formaci-243-n-workshop-scrum-unne-utn-frre-jun-jul-2010-cupos-limitados.aspx" target="_blank"&gt;ya había comentado&lt;/a&gt;, para acercarlo y poder &lt;strong&gt;“sentirlo” (vivenciarlo)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Esta vez participaron en su mayoría docentes de la carrera de Licenciatura en Sistemas de la &lt;a href="http://exa.unne.edu.ar/" target="_blank"&gt;UNNE – FACENA&lt;/a&gt;, pero también asistieron profesionales del &lt;a href="http://poloitcorrientes.com/" target="_blank"&gt;Polo IT Corrientes&lt;/a&gt; y &lt;a href="http://www.polochaco.com.ar/" target="_blank"&gt;Polo IT Chaco&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Con &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales/" target="_blank"&gt;Diego&lt;/a&gt; comunicamos de diferentes maneras (con dinámicas de grupo, dibujando, explicando, moviéndonos, con gráficos, y escribiendo) dejando de lado un poco “la clase magistral”&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13662_5F00_1F6F9859.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SDC13662" border="0" alt="SDC13662" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13662_5F00_thumb_5F00_78915C4B.jpg" width="686" height="395" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;em&gt;…aquí en la foto nos faltan dos personas :( &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;A medida que transcurrían la horas nos íbamos compenetrando e intercambiábamos tanto experiencias como compresión en los diferentes roles, artefactos y momentos que nos propone Scrum.    &lt;br /&gt;    &lt;br /&gt;Y al final realizamos algo vivencial, sentir y “sufrir” lo que veníamos hablando… Practicar Scrum. &lt;/p&gt;  &lt;p&gt;Aquí tengo que agradecer a Alan Cyment por facilitarme la dinámica del pajarraco (ya hace un par de meses para otro workshop) para realizar la simulación completa de Scrum, además con Diego hicimos unos retoques.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13654_5F00_4DE555A1.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SDC13654" border="0" alt="SDC13654" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13654_5F00_thumb_5F00_76246228.jpg" width="244" height="139" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13659_5F00_13B63D28.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SDC13659" border="0" alt="SDC13659" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13659_5F00_thumb_5F00_1556E32F.jpg" width="244" height="139" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13657_5F00_60D610E6.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SDC13657" border="0" alt="SDC13657" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13657_5F00_thumb_5F00_53CC0B08.jpg" width="244" height="139" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13652_5F00_3C5156D7.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SDC13652" border="0" alt="SDC13652" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SDC13652_5F00_thumb_5F00_0EDF9B3A.jpg" width="244" height="139" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Aquí un par de imágenes mas…. del proceso ;)&lt;/p&gt;    &lt;p&gt;&lt;a href="http://picasaweb.google.com/DesarrollosNEA/WorkshopDeScrumUNNEJunio2010#" target="_blank"&gt;Mas imágenes aquí&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Quisiéramos agradecer a Cristina Liliam Greiner y Laly Dapozo (ambas de la UNNE) por la gestión para realizar todo esto.&lt;/p&gt;  &lt;p&gt;Ahora se viene el segundo workshop en la UTN FRRE… &lt;/p&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=182" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Formacion/default.aspx">Formacion</category></item><item><title>[Formación] Workshop Scrum. UNNE/UTN FRRe (Jun/Jul 2010). Cupos Limitados</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/06/18/formaci-243-n-workshop-scrum-unne-utn-frre-jun-jul-2010-cupos-limitados.aspx</link><pubDate>Fri, 18 Jun 2010 13:21:24 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:180</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Nuevamente tengo la oportunidad junto con &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales/" target="_blank"&gt;Diego Morales&lt;/a&gt;, de facilitar un workshop de Scrum, en marco del proyecto de extensión: “Formación de RRHH orientados al desarrollo de la industria del software de la region NEA” (programa La Universidad en el Medio).&lt;/p&gt;  &lt;p&gt;La ultima vez que hicimos en un curso de Scrum publico fue en la &lt;a href="http://geeks.ms/blogs/fernandezja/archive/2009/08/22/juti-2009-10-186-jornadas-universitarias-tecnol-243-gicas-sobre-inform-225-tica-workshop-sobre-scrum.aspx" target="_blank"&gt;JUTI 2009&lt;/a&gt; (…allí tuvimos 6 horas apretadas y ahora tenemos un poco mas) Algunas repercusiones de esa vez:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales/archive/2009/09/17/scrum-workshop-juti-2009.aspx" target="_blank"&gt;Scrum Workshop – JUTI 2009&lt;/a&gt; (by &lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales" target="_blank"&gt;Diego Morales&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://casivaagustin.com.ar/?p=361" target="_blank"&gt;Taller de Scrum&lt;/a&gt; (by &lt;a href="http://casivaagustin.com.ar/" target="_blank"&gt;Agustin Casiva&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecom.chaco.gov.ar/sfSimpleBlog/show/stripped_title/personal-de-ecom-en-taller-de-scrum" target="_blank"&gt;Personal de Ecom en Taller de Scrum&lt;/a&gt; (&lt;a href="http://ecom.chaco.gov.ar/index.php/blog" target="_blank"&gt;blog de Ecom Chaco&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Este vez estaremos dictando este curso de capacitación y taller destinado “preferencialmente” para profesionales de empresas de los polos tecnológicos del Chaco (&lt;a href="http://www.polochaco.com.ar/" target="_blank"&gt;Polo IT Chaco&lt;/a&gt;) y de Corrientes (&lt;a href="http://poloitcorrientes.com/" target="_blank"&gt;Polo IT Corrientes&lt;/a&gt;), docentes de carreras informáticas/sistemas de la &lt;a href="http://www.unne.edu.ar/" target="_blank"&gt;UNNE&lt;/a&gt; y le &lt;a href="http://www.frre.utn.edu.ar" target="_blank"&gt;UTN FRRe&lt;/a&gt;., alumnos avanzados; pero también invitamos a toda persona que desea darle una mirada y un acercamiento a Scrum.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;…desde hace unos meses en reuniones con responsables de formación de ambos Polos IT (Chaco/Corrientes) y de responsables de ambas instituciones (&lt;a href="http://www.unne.edu.ar/" target="_blank"&gt;UNNE&lt;/a&gt; / &lt;a href="http://www.frre.utn.edu.ar" target="_blank"&gt;UTN FRRe&lt;/a&gt;), se llego a un convenio de una serie de cursos de formación desde las instituciones hacia las empresas y desde las empresas hacia las instituciones; todo esto para crear una relación un poco mas simbiótica (estrecha y persistente) entre todas las partes que mas que una simple “fabrica y tomador de rrhh” ;)&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Mas datos del workshop&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Lugar:        &lt;br /&gt;&lt;/strong&gt;FACENA (Facultad de Ciencias Exactas y Naturales y Agrimensura) de la UNNE | 9 de Julio 1449 (Corrientes) &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Cronograma:        &lt;br /&gt;&lt;/strong&gt;Se dictaran en dos grupos, el primero el próximo &lt;strong&gt;25 y 26 de Junio de 2010&lt;/strong&gt; y el siguiente el&lt;strong&gt; 2 y 3 de Julio de 2010&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Inscripción e Informes (y costos):        &lt;br /&gt;&lt;/strong&gt;Secretaria del Departamento de Informática de FACENA (Facultad de Ciencias Exactas y Naturales y Agrimensura) de la UNNE       &lt;br /&gt;9 de Julio 1449 (Corrientes) | 1er. Piso | de 14 a 21hs (María Laura)       &lt;br /&gt;Email: &lt;strong&gt;gndapozo&lt;/strong&gt; @exa.unne.edu.ar, &lt;strong&gt;cgreiner&lt;/strong&gt; @exa.unne.edu.ar &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bueno si mas introducciones aquí les dejo el afiche del curso:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/UNNE2010Scrum_5F00_49004BAC.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="UNNE-2010-Scrum" border="0" alt="UNNE-2010-Scrum" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/UNNE2010Scrum_5F00_thumb_5F00_554E233B.png" width="545" height="786" /&gt;&lt;/a&gt;&lt;/p&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=180" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Formacion/default.aspx">Formacion</category></item><item><title>[Entity Framework] Serializar entidades con JSON.NET - Error: The type 'EntidadXXX' cannot be serialized to JSON because its IsReference setting is 'True'</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/05/13/entity-framework-serializar-entidades-con-json-net-error-the-type-entidadxxx-cannot-be-serialized-to-json-because-its-isreference-setting-is-true.aspx</link><pubDate>Thu, 13 May 2010 13:29:18 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:179</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;   &lt;br /&gt;En el trabajo cotidiano estaba armando un servicio WCF que genera JSON a partir de entidades de Entity Framework, cuando la simplicidad me genero un error. Simplicidad porque no quería mas que un listado de una de mis entidades en formato &lt;a href="http://www.json.org/json-es.html" target="_blank"&gt;JSON&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Estaba utilizando &lt;a href="http://msdn.microsoft.com/es-es/library/system.runtime.serialization.json.datacontractjsonserializer.aspx%20" target="_blank"&gt;DataContractJsonSerializer&lt;/a&gt; como siempre en mis app web, pero parece que tiene un problema con EF 1.0:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/354859/entity-framework-entitycollection-and-datacontractjsonserializer" target="_blank"&gt;Microsoft Connect: Entity framework EntityCollection and DataContractJsonSerializer&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Como bien dice “reza” este articulo: &lt;a target="_blank"&gt;Serializing Entity Framework object to JSON&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“…serializing EF object to JSON is not quite of an easy task…”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Lo bueno que encontré la solución utilizando la librería &lt;a href="http://www.codeplex.com/Json" target="_blank"&gt;JSON.NET&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.codeplex.com/Json" target="_blank"&gt;Json.NET&lt;/a&gt; library makes working with JSON formatted data in .NET simple. Key features include a flexible JSON serializer to for quickly converting .NET classes to JSON and back again, and LINQ to JSON for reading and writing JSON.       &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Mensaje de &lt;strike&gt;Horror&lt;/strike&gt; Error:&lt;/p&gt;  &lt;p&gt;[EN]&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;quot;The type &amp;#39;EntidadXXX&amp;#39; cannot be serialized to JSON because its IsReference setting is &amp;#39;True&amp;#39;. The JSON format does not support references because there is no standardized format for representing references. To enable serialization, disable the IsReference setting on the type or an appropriate parent class of the type.&amp;quot;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;[ES]&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;quot;El tipo &amp;#39;EntidadXXX&amp;#39; no se puede serializar a JSON porque su valor IsReference es &amp;#39;True&amp;#39;. El formato JSON no admite referencias porque no hay un formato estandarizado para representarlas. Para habilitar la serialización, deshabilite el valor IsReference en el tipo o en una clase primaria apropiada del tipo.&amp;quot;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_54E94654.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_1B826DF8.png" width="594" height="296" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Aquí va el ejemplo &lt;/h3&gt;  &lt;p&gt;El código que genera la excepción antes mencionada&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ListadoJSON(){
            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cadenaJSON = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty;
            ItemRepository itemRepositorio = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ItemRepository();
            Int32 paginaPageTotal;
            List&amp;lt;Item&amp;gt; listado = itemRepositorio.Buscar(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, 0, 0, 17, 10, 1, &lt;span style="color:#0000ff;"&gt;out&lt;/span&gt; paginaPageTotal);

            DataContractJsonSerializer ser = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DataContractJsonSerializer(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(List&amp;lt;Item&amp;gt;));
            &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (MemoryStream ms = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; MemoryStream())
            {
                ser.WriteObject(ms, listado);
                cadenaJSON = Encoding.Default.GetString(ms.ToArray());
            }

            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; cadenaJSON;
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;Esto genera un error al momento de serializar&lt;/font&gt; 

    &lt;br /&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;OPCION 1:Crear un listado para serializar con objetos anónimos&lt;/h4&gt;

&lt;p&gt;Como no puede serializar la entidad entonces generamos un nuevo listado con las propiedades que queremos serializar&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;ArrayList listadoItemsParaSerializar = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ArrayList();
&lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; item &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; listado)
{
    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; itemNuevo = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; { id = item.ItemId, nombre=item.Nombre};
    listadoItemsParaSerializar.Add(itemNuevo);
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Y luego serializamos con &lt;a href="http://msdn.microsoft.com/es-es/library/system.runtime.serialization.json.datacontractjsonserializer.aspx%20" target="_blank"&gt;DataContractJsonSerializer&lt;/a&gt; el nuevo listado: listadoItemsParaSerializar ;)&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h4&gt;OPCION 2: sin crear nada utilizando la librería &lt;a href="http://www.codeplex.com/Json" target="_blank"&gt;JSON.NET&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;Utilizando &lt;a href="http://www.codeplex.com/Json" target="_blank"&gt;JSON.NET&lt;/a&gt; solucionando el problema&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ListadoJSONConJSONDotNET(){
            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cadenaJSON = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty;
            ItemRepository itemRepositorio = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ItemRepository();
            Int32 paginaPageTotal;
            List&amp;lt;Item&amp;gt; listado = itemRepositorio.Buscar(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, 0, 0, 17, 10, 1, &lt;span style="color:#0000ff;"&gt;out&lt;/span&gt; paginaPageTotal);

            cadenaJSON = Newtonsoft.Json.JsonConvert.SerializeObject(listado, Newtonsoft.Json.Formatting.Indented);

            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; cadenaJSON;
        
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Es la forma mas simple, pero la librería tiene varios &lt;a href="http://james.newtonking.com/projects/json/help/html/N_Newtonsoft_Json_Converters.htm" target="_blank"&gt;convertidores&lt;/a&gt;, me gusto del &lt;a href="http://james.newtonking.com/projects/json/help/html/T_Newtonsoft_Json_Converters_DataTableConverter.htm" target="_blank"&gt;Datatable&lt;/a&gt; que tengo por ahí algunos para consultas “cuadradas” para reportes o gráficos y el de &lt;a href="http://james.newtonking.com/projects/json/help/html/T_Newtonsoft_Json_Converters_JavaScriptDateTimeConverter.htm" target="_blank"&gt;JavaScriptDateTimeConverter&lt;/a&gt; . &lt;a href="http://james.newtonking.com/projects/json/help/" target="_blank"&gt;Mas info en la ayuda online&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que les sirva de ayuda o guía.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;JSON.NET 
    &lt;br /&gt;&lt;a title="http://www.codeplex.com/Json" href="http://www.codeplex.com/Json"&gt;http://www.codeplex.com/Json&lt;/a&gt; 

    &lt;ul&gt;
      &lt;li&gt;Ayuda online de JSON.NET 
        &lt;br /&gt;&lt;a href="http://james.newtonking.com/projects/json/help/"&gt;http://james.newtonking.com/projects/json/help/&lt;/a&gt; &lt;/li&gt;

      &lt;li&gt;Blog: 
        &lt;br /&gt;&lt;a href="http://james.newtonking.com/"&gt;http://james.newtonking.com/&lt;/a&gt; 

        &lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;JSON 
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="http://www.json.org/json-es.html"&gt;http://www.json.org/json-es.html&lt;/a&gt; &lt;/li&gt;

      &lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/JSON"&gt;http://es.wikipedia.org/wiki/JSON&lt;/a&gt; &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=179" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Tareas para mejorar el posicionamiento natural de un sitio en los motores de búsqueda</title><link>http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/2010/05/03/tareas-para-mejorar-el-posicionamiento-natural-de-un-sitio-en-los-motores-de-b-250-squeda.aspx</link><pubDate>Mon, 03 May 2010 18:34:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:177</guid><dc:creator>rgodoy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tal como coment&amp;eacute; en el articulo &lt;a href="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/2010/04/17/191-quiere-aparecer-en-los-primeros-lugares-de-google.aspx"&gt;Quiero aparecer en los primeros lugares de google&lt;/a&gt;&amp;nbsp;existen dos formas de&amp;nbsp; aparecer en la cima del ranking del buscador: a trav&amp;eacute;s de los resultados &amp;quot;org&amp;aacute;nicos&amp;quot; (o naturales) o los &amp;quot;patrocinados&amp;quot;. En este articulo, veremos algunas de las tareas que podemos desarrollar con el objetivo de optimizar los contenidos y la programacion del sitio para que sea encontrado&amp;nbsp; con mayor facilidad por los buscadores. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tareas para mejorar el posicionamiento natural de un sitio en los motores de b&amp;uacute;squeda:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Investigar sobre el mercado y la industria del cliente a asesorar: consiste en estudiar el mercado y la competencia del negocio del cliente y definir los objetivos que quieren lograrse.&lt;/li&gt;
&lt;li&gt;Tareas On Page y Off Page: Las tareas On Page son aquellas que se realizan dentro del sitio y las Off Page son aquellas acciones que se realizan fuera del sitio para lograr promocionarlo y difundirlo en la web.&lt;/li&gt;
&lt;li&gt;Monitoreo y an&amp;aacute;lisis permanente de los resultados con herramientas que registren el tr&amp;aacute;fico de las visitas del sitio web.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Veamos con un poco mas de detale...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tareas On Page (dentro el sitio)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Asesorar sobre el dise&amp;ntilde;o de la estructura de un sitio web (considerando lo que se llama &amp;ldquo;usability&amp;quot;). No necesariamente la programaci&amp;oacute;n en s&amp;iacute;, sino las secciones, la ubicaci&amp;oacute;n del men&amp;uacute; y la navegabilidad que debe tener el sitio.&lt;/li&gt;
&lt;li&gt;Asesorar en cuestiones relacionadas con la ubicaci&amp;oacute;n del servidor que hostea el sitio y registro de los dominios a utilizar (url). Tambi&amp;eacute;n deber&amp;aacute; asesorar sobre las urls que se le asignen a cada p&amp;aacute;gina est&amp;aacute;tica y din&amp;aacute;mica del sitio. &lt;/li&gt;
&lt;li&gt;Estudio exhaustivo sobre las palabras claves (keywords) del negocio y la competencia online&amp;nbsp;de la empresa con esas palabras. Esta es una de las tareas m&amp;aacute;s importantes ya que las palabras claves son las que los potenciales clientes utilizar&amp;aacute;n para buscar en internet los servicios o productos que la empresa provee.&lt;/li&gt;
&lt;li&gt;An&amp;aacute;lisis, edici&amp;oacute;n, redacci&amp;oacute;n y actualizaci&amp;oacute;n de los CONTENIDOS de cada p&amp;aacute;gina que componen al sitio. La calidad y originalidad de los contenidos de un sitio ser&amp;aacute; lo que le permita diferenciarse del resto y lo que en el largo plazo le proporcione buena calidad de links provenientes de otros sitios y clientes fieles.&lt;/li&gt;
&lt;li&gt;Dise&amp;ntilde;o de los c&amp;oacute;digos html del sitio web como ser los meta tags ( meta title y meta description ) que contengan las palabras claves estudiadas. Los meta robots tambi&amp;eacute;n pueden ser de gran utilidad ya que al incluirnos se le informa a los robots (buscadores) si se quiere o no que las p&amp;aacute;ginas del sitio sean indexadas.&lt;/li&gt;
&lt;li&gt;Dise&amp;ntilde;ar el Site Map o mapa del sitio. El site map es simplemente una p&amp;aacute;gina (algo as&amp;iacute; como un organigrama de informaci&amp;oacute;n, ver ejemplo) donde se presentan todas las secciones y subsecciones del sitio con sus respectivos links. Es una herramienta que se utiliza para que los motores de b&amp;uacute;squeda reconozcan e indexen todas las p&amp;aacute;ginas que componen al sitio. Esto es aun m&amp;aacute;s necesario para sitios complejos compuestos por muchas p&amp;aacute;ginas y subsecciones. Los buscadores (google, yahoo, msn live) proveen un servicio especial a los webmasters (en Google se llama webmaster tools) que les permite suscribirse y registrar sus sitios de forma que los robots lo indexen. Es un medio para informar a los buscadores de la existencia de sitios. Al mismo tiempo ofrecen servicios (gratuitos) de reportes como por ejemplo la detecci&amp;oacute;n de errores en las p&amp;aacute;ginas y consejos &amp;uacute;tiles para mejorar la indexaci&amp;oacute;n de los sitios.&lt;/li&gt;
&lt;li&gt;Adem&amp;aacute;s del mapa del sitio es importante que dentro del contenido las p&amp;aacute;ginas que componen el sitio existan links internos que direccionen a las distintas secciones. Este aspecto es tan importante para los usuarios como para los buscadores. Los usuarios suelen hacer clic sobre links que se encuentran dentro de los contenidos de las p&amp;aacute;ginas m&amp;aacute;s frecuentemente que sobre el men&amp;uacute;. Esto se debe a que dedican m&amp;aacute;s tiempo mirando contenidos que observando el resto de las secciones de una p&amp;aacute;gina (footer, margen superior, barra izquierda, barra derecha).&lt;/li&gt;
&lt;li&gt;Todas aquellas acciones dentro de un sitio que produzcan el aumento del tr&amp;aacute;fico en la web de los llamados &amp;ldquo;returnig visitors&amp;rdquo;, como ser suscripciones a newsletters o feeds. Si se facilita el acceso a la informaci&amp;oacute;n (nuevos productos o servicios) y a las actualizaciones de los contenidos de un sitio web a los usuarios, ser&amp;aacute; m&amp;aacute;s sencillo lograr la difusi&amp;oacute;n del mismo. Cuanto mayor sea el n&amp;uacute;mero de gente que se suscriba a newsletter o a un feed, mayor ser&amp;aacute; la probabilidad de que los contenidos se difundan en la web. Claro que la calidad, originalidad y utilidad de los contenidos son el factor clave para lograr este objetivo. &lt;/li&gt;
&lt;li&gt;Redacci&amp;oacute;n de gacetillas de prensa online para que sean difundidos en la Web. Muchas empresas incluyen en sus sitios una secci&amp;oacute;n dedicada a la prensa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tareas Off Page (fuera del sitio)&lt;/strong&gt; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estrategias de link building: obtener links externos de otros sitios referentes y con autoridad en la web, que apunten al sitio en cuesti&amp;oacute;n. Pueden ser directorios, portales de la industria, diarios o revistas relacionadas con el mercado al cual se dirige la empresa.&lt;br /&gt;Es muy com&amp;uacute;n enviar informaci&amp;oacute;n sobre la empresa y sus productos v&amp;iacute;a email a referentes de la industria, directorios, aliados estrat&amp;eacute;gicos, revistas, portales de la industria y diarios online para obtener links de esos sitios al sitio el cliente. Es muy importante no excederse en esta acci&amp;oacute;n para no ser considerado un spammer. &lt;/li&gt;
&lt;li&gt;Las comunidades llamadas &amp;ldquo;social media networks&amp;rdquo; como ser: blogs, foros; comunidades como Facebook, Myspace o Linkedin; sitios de social bookmarking (Del.ici.us, Digg, Technorati, Men&amp;eacute;ame, Skidoo); sitios de videos como YouTube, sitios de foto sharing como Fotolog o Flickr, etc., tienen cada vez m&amp;aacute;s impacto sobre los buscadores y los usuarios. Estas comunidades permiten un alto grado de segmentaci&amp;oacute;n, lo cual ayuda a concentrase sobre aquellos usuarios que pueden estar m&amp;aacute;s interesados en los productos o servicios que la empresa provee. Es importante investigar sobre el perfil de usuarios de las distintas comunidades y teniendo en cuenta el idioma y la cultura, cu&amp;aacute;les son las comunidades m&amp;aacute;s influyentes en cada pa&amp;iacute;s o regi&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;Las estrategias de link baiting para generar Marketing Viral son muy utilizadas por profesionales de SEO. Utilizando esta herramienta, ciertas acciones de la empresa (relacionadas con productos o servicios), pueden lograr popularidad dentro de la comunidad online del segmento target al cual apunta el negocio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Importante: La selecci&amp;oacute;n de la herramienta de red social para ser utilizada, depender&amp;aacute; de la industria y del tipo de sitio web que se est&amp;eacute; optimizando. (Ejemplo: e-commerce, blog, noticias, portal, etc.; cada una de ellas se orientar&amp;aacute; a una comunidad distinta seg&amp;uacute;n el perfil del target de audiencia).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Testeo y Monitoreo de los resultados&lt;/strong&gt;&lt;br /&gt;Otras tareas importantes que se deben realizar es el testeo, monitoreo y an&amp;aacute;lisis del tr&amp;aacute;fico web, utilizando herramientas como Google Analytics o parecidos. Realizando esto podr&amp;aacute; determinar si sus acciones han sido exitosas o si se requieren cambios a lo largo del tiempo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=177" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/google/default.aspx">google</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/buscadores/default.aspx">buscadores</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/optimizacion/default.aspx">optimizacion</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/SEO/default.aspx">SEO</category></item><item><title>[Silverlight] Pasar proyecto de VS2008 &gt; VS2010 &gt; VS2008, y el mensaje: Cannot get the list of output files from the project</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/04/19/silverlight-pasar-proyecto-de-vs2008-gt-vs2010-gt-vs2008-y-el-mensaje-cannot-get-the-list-of-output-files-from-the-project.aspx</link><pubDate>Tue, 20 Apr 2010 00:53:41 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:176</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Si probaste la beta, RC y ahora el trial y/o versión final de VS2010 con proyectos en curso de Silverlight desarrollados con VS2008 podrás tener el inconveniente que encontré al abrir proyecto SL con VS2010 y luego querer abrir nuevamente con VS2008.    &lt;br /&gt;Si bien el archivo de solución cambia (no es el mismo que VS2008), creía que el archivo de proyecto mantendría cierta consistencia pero no es así.     &lt;br /&gt;Esto solamente sucedió en proyectos SL, porque en otros proyectos (web app, consola) al abrir con diferentes versiones del Visual Studio daba el mensaje y podía seguir utilizandolo, pero en SL no me dejaba seguir trabajando (no es un error, pero no te deja utilizarlo ;) )     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Mensaje de “warning” al compilar:    &lt;br /&gt;&lt;font color="#0000ff"&gt;Project file contains ToolsVersion=&amp;quot;4.0&amp;quot;, which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion=&amp;quot;3.5&amp;quot;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_7E913EFC.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_6CE10897.png" width="932" height="139" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;El mensaje que no dejaba utilizar el proyecto Silverlight:    &lt;br /&gt;&lt;font color="#ff0000"&gt;Cannot get the list of output files from the project&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_4F6B6533.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2AAA27EF.png" width="410" height="130" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Solución express (rápida)&lt;/h3&gt;  &lt;p&gt;Abrir el archivo de proyecto (con algún editor de texto plano) y cambiar la línea que dice &amp;lt;Project ToolsVersion=”4.0”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_3AF579DB.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_3944AE07.png" width="374" height="71" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;Por &amp;lt;Project ToolsVersion=”3.5”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_508FB278.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_67DAB6E9.png" width="618" height="55" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;y ya podremos seguir utilizando el proyecto en VS2008&lt;/p&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=176" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Estuvimos en formación en “Herramientas de Management”</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/04/17/estuvimos-en-formaci-243-n-en-herramientas-de-management.aspx</link><pubDate>Sat, 17 Apr 2010 17:16:15 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:175</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Una vez mas nos estuvimos formando en temas “no tan técnicos” ;) gracias a la gestión &lt;a href="http://www.poloitcorrientes.com/" target="_blank"&gt;Polo IT Corrientes&lt;/a&gt;, tuvimos la oportunidad de participar hace un par de semanas de una seria de cursos facilitados por &lt;a href="http://ar.linkedin.com/pub/cristina-palmeyro/17/667/7A9" target="_blank"&gt;Mg. Cristina Palmeyro&lt;/a&gt; que abarcaron estos temas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="left"&gt;Liderazgo personal. Motivación y autorrealización &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;Eficiencia en la gestión del tiempo &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;Negociación y resolución de conflictos &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;Creatividad e innovación como ventaja competitiva &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="left"&gt;En esta ocasión lo hicimos con otras empresas del &lt;a href="http://www.poloitcorrientes.com/" target="_blank"&gt;Polo IT Corrientes&lt;/a&gt;, por lo que en la parte de “practica/taller” para realizar trabajos en grupo fue escuchar otras voces lo que también enriqueció al conjunto.     &lt;br /&gt;Al principio todos parecíamos estar en una clase magistral pero luego como me gusta a mi en círculos mirándonos la cara ;)     &lt;br /&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/201003HerramientasDeManagementPOLOITCorrientes4_5F00_742ED6BB.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="201003-HerramientasDeManagement-POLOITCorrientes (4)" border="0" alt="201003-HerramientasDeManagement-POLOITCorrientes (4)" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/201003HerramientasDeManagementPOLOITCorrientes4_5F00_thumb_5F00_05BEC187.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/201003HerramientasDeManagementPOLOITCorrientes9_5F00_4A8AE5BB.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="201003-HerramientasDeManagement-POLOITCorrientes (9)" border="0" alt="201003-HerramientasDeManagement-POLOITCorrientes (9)" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/201003HerramientasDeManagementPOLOITCorrientes9_5F00_thumb_5F00_35893D7B.jpg" width="323" height="183" /&gt;&lt;/a&gt; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/201003HerramientasDeManagementPOLOITCorrientes10_5F00_72C9F242.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="201003-HerramientasDeManagement-POLOITCorrientes (10)" border="0" alt="201003-HerramientasDeManagement-POLOITCorrientes (10)" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jfernandez/201003HerramientasDeManagementPOLOITCorrientes10_5F00_thumb_5F00_446046C8.jpg" width="323" height="183" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="left"&gt;&lt;a href="http://picasaweb.google.com/DesarrollosNEA/CursosDeHerramientasDeManagementPoloITCorrientes" target="_blank"&gt;Mas fotos aquí&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Hay que seguir formándose?&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Si bien la mayor parte de mis post son técnicos, no solo de eso &lt;strike&gt;subsistimos&lt;/strike&gt; vivimos.     &lt;br /&gt;Todo el día interactuamos con otras personas en los equipo de trabajos de los proyectos y esas personas a veces son clientes finales y por tal motivo hay que tener una serie de habilidades &lt;em&gt;“no-técnicas”&lt;/em&gt; que nos ayuden a gestionar los diálogos en nuestro cotidiano, para no “quemarnos” con momentos o vivencias que no sabemos cómo tratarlas o que no gana nuestro interior y debemos practicar la &lt;a href="http://es.wikipedia.org/wiki/Inteligencia_emocional" target="_blank"&gt;inteligencia emocional&lt;/a&gt; para lograr nuestro Liderazgo persona.     &lt;br /&gt;Además vimos en el curso una aproximación a la Gestión del Tiempo para practicar y así ver cómo nos consumen los “temas urgentes”&amp;#160; y que debemos estar siempre con “los temas importantes”; Vimos algo de negoción y la táctica de “ganar/ganar” y mediación, para lo último rompernos un poco el cerebro con nuestra gestión del conocimiento y creatividad… &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;El personal de Desarrollos NEA en conjunto con las empresas del POLO IT Corrientes se dedican mayoritariamente al desarrollo de software y servicios informáticos y contamos básicamente con un fuerte formación técnica y profesional pero estrictamente relacionada con el rubro al cual pertenecen nuestras empresas, así que necesitamos crecer en aspectos tales como, management, recursos humanos, marketing, negociación, venta y liderazgo entre los aspectos más importantes.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Estos cursos fueron los primeros en una serie que deben venir en el 2010.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;Enlaces:&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Fotos del Evento        &lt;br /&gt;&lt;/strong&gt;&lt;a title="http://picasaweb.google.com/DesarrollosNEA/CursosDeHerramientasDeManagementPoloITCorrientes#" href="http://picasaweb.google.com/DesarrollosNEA/CursosDeHerramientasDeManagementPoloITCorrientes#"&gt;http://picasaweb.google.com/DesarrollosNEA/CursosDeHerramientasDeManagementPoloITCorrientes#&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Jornadas de Capacitación organizadas por el Polo IT Corrientes&lt;/strong&gt;       &lt;br /&gt;&lt;a title="http://poloitcorrientes.com/noticia.php?i=05272" href="http://poloitcorrientes.com/noticia.php?i=05272"&gt;http://poloitcorrientes.com/noticia.php?i=05272&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Mg. Cristina Palmeyro&lt;/strong&gt; (en LinkedIn)       &lt;br /&gt;&lt;a href="http://ar.linkedin.com/pub/cristina-palmeyro/17/667/7A9"&gt;http://ar.linkedin.com/pub/cristina-palmeyro/17/667/7A9&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=175" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Cursos/default.aspx">Cursos</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Polo+IT+Corrientes/default.aspx">Polo IT Corrientes</category></item><item><title>Quiero aparecer en los primeros lugares de google</title><link>http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/2010/04/17/191-quiere-aparecer-en-los-primeros-lugares-de-google.aspx</link><pubDate>Sat, 17 Apr 2010 13:39:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:174</guid><dc:creator>rgodoy</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Aparecer en los primeros lugares de Google garantiza una alta visibilidad para una empresa o producto pudiendo&amp;nbsp;&amp;nbsp;contribuir significativamente al incremento de ventas o a la consecuci&amp;oacute;n de otros objetivos de marketing. &lt;/p&gt;
&lt;p&gt;Ahora bien, hay dos formas de aparecer en la cima del ranking: a trav&amp;eacute;s de los resultados &amp;quot;org&amp;aacute;nicos&amp;quot; (o naturales) o los &amp;quot;patrocinados&amp;quot;. &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rgodoy/EnlacesNaturalesyPatrocinados.jpg"&gt;&lt;img src="http://team.desarrollosnea.com.ar/resized-image.ashx/__size/550x459/__key/CommunityServer.Blogs.Components.WeblogFiles/rgodoy/EnlacesNaturalesyPatrocinados.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Los resultados org&amp;aacute;nicos figuran sobre la izquierda de la pantalla. Los patrocinados, sobre la derecha, identificados como &amp;quot;Enlaces patrocinados&amp;quot; en el caso de Google (estos &amp;uacute;ltimos tambi&amp;eacute;n pueden mostrarse arriba de los resultados org&amp;aacute;nicos sobre un fondo sombreado). &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1) &amp;iquest;C&amp;oacute;mo aparecer en los primeros lugares del ranking org&amp;aacute;nico?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Los resultados org&amp;aacute;nicos son producto de la indizaci&amp;oacute;n que llevan a cabo los motores de b&amp;uacute;squeda de Google sobre la base de criterios particulares. &lt;br /&gt;En principio, es pr&amp;aacute;cticamente imposible garantizar que un sitio aparezca en determinado orden entre estos resultados. Sin embargo, es posible optimizar la programaci&amp;oacute;n y contenidos del website para que sea encontrado con mayor facilidad por los buscadores. De esto se trata, precisamente, el SEO (Search Engine Optimization-Optimizaci&amp;oacute;n para Motores de B&amp;uacute;squeda).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2) &amp;iquest;C&amp;oacute;mo aparecer en los primeros lugares de los resultados patrocinados? &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Los resultados patrocinados, por el contrario, surgen de la materializaci&amp;oacute;n de alguna campa&amp;ntilde;a de Pago por Clic que se encuentra en ejecuci&amp;oacute;n por un auspiciante.&lt;br /&gt;Este tipo de acciones consisten justamente en pagar por las visitas efectivas que llegan a la p&amp;aacute;gina web que se desea, en el marco de la campa&amp;ntilde;a que se haya implementado con determinados avisos y palabras clave. &lt;br /&gt;As&amp;iacute;, a condici&amp;oacute;n de contratar los servicios de Google, cualquier empresa puede aparecer en los primeros lugares de los resultados patrocinados, aumentar su visibilidad y llevar tr&amp;aacute;fico a su sitio. &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Resultados org&amp;aacute;nicos versus patrocinados, &amp;iquest;cu&amp;aacute;l es mejor?&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Desde luego, a efectos de incrementar la visibilidad de un sitio, siempre es bueno aparecer en los primeros lugares de los resultados org&amp;aacute;nicos de Google. Sin embargo, esto no puede lograrse sencillamente en el corto plazo. &lt;br /&gt;Si lo que se desean son resultados inmediatos, esto puede lograrse a trav&amp;eacute;s de una campa&amp;ntilde;a de pago por clic, que ubique al sitio en los enlaces patrocinados. &lt;br /&gt;De todas formas, no es necesario buscar una alternativa mejor que otra entre las expuestas, sino que deber&amp;iacute;a trabajarse en pos de lograr sinergia entre ambas. Depender&amp;aacute; en cada caso de los objetivos concretos que se persigan para con un sitio web o para con determinada acci&amp;oacute;n de comunicaci&amp;oacute;n. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Como empiezo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dentro de la oferta de servicios de &lt;a target="_blank" href="http://www.desarrollosnea.com.ar"&gt;Desarrollos NEA SRL&lt;/a&gt; se encuentra el asesoramiento en la optimizacion&amp;nbsp;para motores de busqueda. Nuestro servicio consiste en evaluar las mejores alternativas para lograr el posicionamiento y acompa&amp;ntilde;ar a nuestros clientes en la implementacion y seguimiento. &lt;a target="_blank" href="http://www.desarrollosnea.com.ar/recursos/desnea/contacto.aspx"&gt;Comunicate con nosotros.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#333333;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=174" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/servicios/default.aspx">servicios</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/google/default.aspx">google</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/buscadores/default.aspx">buscadores</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/optimizacion/default.aspx">optimizacion</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/SEO/default.aspx">SEO</category></item><item><title>Acuerdo Desarrollos NEA SRL y Calipso SA para la implementación de ERP</title><link>http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/2010/04/17/acuerdo-desarrollos-nea-srl-y-calipso-sa-para-la-implementaci-243-n-de-erp.aspx</link><pubDate>Sat, 17 Apr 2010 13:05:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:173</guid><dc:creator>rgodoy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a target="_blank" href="http://www.calipso.com"&gt;Calipso SA&lt;/a&gt; y &lt;a target="_blank" href="http://www.desarrollosnea.com.ar"&gt;Desarrollos NEA SRL&lt;/a&gt; han firmado un acuerdo para la implementaci&amp;oacute;n, capacitaci&amp;oacute;n y distribuci&amp;oacute;n del producto Calipso Fast Way en la regi&amp;oacute;n. Con el objetivo de brindar soluciones de valor a los clientes a partir de los principios de compromiso, responsabilidad, confianza y trabajo presentamos esta oferta de integraci&amp;oacute;n de proyectos de software enfocada a resolver las necesidades de gesti&amp;oacute;n y negocios de peque&amp;ntilde;as y medianas empresas.&lt;/p&gt;
&lt;p&gt;A trav&amp;eacute;s de esta alianza, buscamos combinar una robusta aplicaci&amp;oacute;n y su veloz modelo de implementaci&amp;oacute;n con la experiencia y conocimiento en la consultor&amp;iacute;a e integraci&amp;oacute;n de sistemas de informaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&lt;a target="_self" href="http://www.desarrollosnea.com.ar/alianzas/calipso.aspx" title="Mas informaci&amp;oacute;n"&gt;Mas informaci&amp;oacute;n&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=173" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/erp/default.aspx">erp</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/servicios/default.aspx">servicios</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/Desarrollos+NEA/default.aspx">Desarrollos NEA</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/calipso/default.aspx">calipso</category></item><item><title>[Silverlight] System.Web.Silverlight donde estás? (Where's Wally?)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/04/07/silverlight-system-web-silverlight-donde-est-225-s-where-s-wally.aspx</link><pubDate>Wed, 07 Apr 2010 12:13:25 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:172</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Por si alguien lo necesita como yo… estaba utilizando Silverlight 3, y tratando de modularizarlo con &lt;a href="http://prism.codeplex.com/" target="_blank"&gt;Prism&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Abro el ejemplo que viene con &lt;a href="http://prism.codeplex.com/" target="_blank"&gt;Prism&lt;/a&gt; (para ver la implementación) que es el proyecto&lt;strong&gt; HelloWorld.Silverlight&lt;/strong&gt;     &lt;br /&gt;&lt;em&gt;{Carpeta de instalación de Prism}\Quickstarts\Hello World\HelloWorld.Silverlight\HelloWorld.Silverlight.sln&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_61905094.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_1ED1055C.png" width="284" height="161" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;y resulta que faltaba la referencia a un assembly: &lt;strong&gt;System.Web.Silverlight&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_18A9B8C1.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_3B8A7A71.png" width="187" height="63" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Porque utiliza el webcontrol Silverlight (que venia con el SDK 2.0)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_4F376405.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_58B0227B.png" width="347" height="118" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;…en Silverlight 3 &lt;strong&gt;todo &lt;/strong&gt;es con el archiconocido tag &lt;strong&gt;object&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_19DE2BD3.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_31853D6C.png" width="726" height="72" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Pero si queremos seguir utilizando esta librería? donde la obtenemos?&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.findwaldo.com/" target="_blank"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;margin-left:0px;border-left-width:0px;margin-right:0px;" title="wally[1]" border="0" alt="wally[1]" align="left" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/wally1_5F00_7AC7E267.jpg" width="78" height="96" /&gt;&lt;/a&gt;&amp;#160;&lt;strong&gt;Where’s Wally? System.Web.Silverlight?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Este assembly se encuentra en el Silverlight SDK, pero la versión 2.0, y yo utilizo la 3.0 &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lo que siempre me confunde es saber donde esta cuando es un SDK o cuando es una Tools?&lt;/p&gt;  &lt;p&gt;Pero resulta que tenia todos estos en mi carpeta de Silverlight:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=8D933343-038F-499C-986C-C3C7E87A60B3&amp;amp;displaylang=en" target="_blank"&gt;Microsoft Silverlight 2 Software Development Kit&lt;/a&gt; (silverlight_sdk.exe | version 2.0 | 13/Octubre/2009)       &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=D09B6ECF-9A45-4D99-B752-2A330A937BC4&amp;amp;displaylang=en" target="_blank"&gt;Microsoft Silverlight 3 SDK Beta 1&lt;/a&gt; (silverlight_sdk.exe | version 3.0 | 16/Marzo/2009) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd" target="_blank"&gt;Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1&lt;/a&gt; (Silverlight3_Tools.exe | version 30730.126| ) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1EA49236-0DE7-41B1-81C8-A126FF39975B&amp;amp;displaylang=en" target="_blank"&gt;Microsoft Silverlight 3 SDK&lt;/a&gt; (silverlight_sdk.exe | version 3.0 | 31/Agosto/2009) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Pero donde esta &lt;strike&gt;wally&lt;/strike&gt;? en el SDK de la 2.0&lt;/p&gt;  &lt;p&gt;Por estos link a documentos la explicación: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;La Liga Silverlight: &lt;a href="http://blogs.ligasilverlight.com/?p=336"&gt;Más novedades sobre Silverlight 3&lt;/a&gt;       &lt;br /&gt;&lt;a href="http://blogs.ligasilverlight.com/?p=336"&gt;http://blogs.ligasilverlight.com/?p=336&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;(online) &lt;strong&gt;Ensuring That Your Silverlight 2 Applications Work with Silverlight 3&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc645049(VS.95).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc645049(VS.95).aspx&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;4.1 System.Web.Silverlight.dll has been removed from the Silverlight SDK          &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;(offline) En el documento &lt;strong&gt;Changes.docx&lt;/strong&gt;       &lt;br /&gt;&lt;strong&gt;Ensuring That Your Silverlight 2 or Silverlight 3 Beta Applications Work with the Silverlight 3 Release&lt;/strong&gt;       &lt;br /&gt;&lt;a target="_blank"&gt;C:\Program Files\Microsoft SDKs\Silverlight\v3.0\SDK Help\en-US\Changes.docx&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;4.1 System.Web.Silverlight.dll has been removed from the Silverlight SDK          &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;from MSDN    &lt;br /&gt;(…) &lt;em&gt;Developers creating new applications will want to use the latest templates that contain the OBJECT tag and other markup. Developers could add the System.Web.Silverlight assembly manually and use the server controls. However, these controls will not provide the latest installation logic, or be able to render iframes for Silverlight history support for example.&lt;/em&gt; (…)&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Entonces… dos opciones:&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;Desde un ejemplo obtenemos la librería (para compilar) &lt;/li&gt;    &lt;li&gt;Instalado las “Server Libraries” únicamente de Silverlight 2.0 SDK      &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;OPCION 1: De un ejemplo obtenemos la librería&lt;/h3&gt;  &lt;p&gt;Aquí gracias a la &lt;a href="http://blogs.ligasilverlight.com/" target="_blank"&gt;La Liga Silverlight&lt;/a&gt;, en el post &lt;a href="http://blogs.ligasilverlight.com/?p=336"&gt;Más novedades sobre Silverlight 3&lt;/a&gt; di con el proyecto:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Code MSDN: ASP.NET Projects      &lt;br /&gt;&lt;b&gt;ASP.NET Server Controls for Silverlight Samples&lt;/b&gt;       &lt;br /&gt;&lt;em&gt;This samples release contains the ASP.NET server controls (&lt;b&gt;Silverlight&lt;/b&gt; and &lt;b&gt;MediaPlayer&lt;/b&gt;) that were shipped with the Silverlight 2 SDK         &lt;br /&gt;&lt;/em&gt;&lt;a title="http://code.msdn.microsoft.com/aspnetprojects" href="http://code.msdn.microsoft.com/aspnetprojects"&gt;http://code.msdn.microsoft.com/aspnetprojects&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Donde podremos descargar y compilar la libreria &lt;strong&gt;System.Web.Silverlight&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_1212E6D9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_768DE4D5.png" width="214" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;OPCION 2: Instalado las “Server Libraries” únicamente de Silverlight 2.0 SDK&lt;/h3&gt;  &lt;p&gt;Instalado la versión Silverlight 2.0 SDK, pero solo las “Server Libraries”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_53114070.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_64A12B3B.png" width="512" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;ya alli “Found Wally”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_1A567096.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_682F204B.png" width="439" height="379" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En el ejemplo&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_5CD5E641.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_6E65D10C.png" width="497" height="465" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Espero que les sirva de ayuda o guía.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Enlaces:&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Prism: Patterns &amp;amp; Practices Composite Application Guidance for WPF and Silverlight      &lt;br /&gt;&lt;a title="http://prism.codeplex.com/" href="http://prism.codeplex.com/"&gt;http://prism.codeplex.com/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=8D933343-038F-499C-986C-C3C7E87A60B3&amp;amp;displaylang=en" target="_blank"&gt;Microsoft Silverlight 2 Software Development Kit&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9442B0F2-7465-417A-88F3-5E7B5409E9DD&amp;amp;displaylang=es" target="_blank"&gt;Microsoft Silverlight 3 Tools para Visual Studio 2008 SP1&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;ASP.NET Server Controls for Silverlight Samples&lt;/b&gt;       &lt;br /&gt;&lt;a title="http://code.msdn.microsoft.com/aspnetprojects" href="http://code.msdn.microsoft.com/aspnetprojects"&gt;http://code.msdn.microsoft.com/aspnetprojects&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=172" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Prism/default.aspx">Prism</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Multiples escritorios con Windows MultiPoint Server 2010</title><link>http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/2010/04/01/multiples-escritorios-con-windows-multipoint-server-2010.aspx</link><pubDate>Thu, 01 Apr 2010 15:40:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:171</guid><dc:creator>rgodoy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Desde febrero de 2010&amp;nbsp;est&amp;aacute; disponible&amp;nbsp; Windows MultiPoint Server 2010, un sistema operativo que permite a varias personas conectarse a una sola computadora con sus propios monitores, teclados y ratones a trav&amp;eacute;s de USB o de una tarjeta de video. Cada persona controla de forma individual su propia estaci&amp;oacute;n con una experiencia Windows independiente y familiar.&lt;/p&gt;
&lt;p&gt;Este&amp;nbsp; nuevo producto de Microsoft es parte de una familia de soluciones de recursos compartidos,&amp;nbsp; una categor&amp;iacute;a emergente, que permite a una sola computadora&amp;nbsp; dar soporte a varios usuarios al mismo tiempo, permitiendo&amp;nbsp; a un cliente aprovechar una capacidad de exceso de computadoras para permitir que una sola computadora soporte m&amp;uacute;ltiples usuarios simult&amp;aacute;neamente. Microsoft considera que los casos de uso de computadoras en laboratorios, salones de clase y bibliotecas de las escuelas pueden beneficiarse ampliamente de las soluciones de computaci&amp;oacute;n de recursos compartidos al reducir el costo total de propiedad y al proporcionarle a m&amp;aacute;s usuarios acceso a la computaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Entre los beneficios m&amp;aacute;s destacados est&amp;aacute;n:&lt;br /&gt;&amp;nbsp;- Mantenimiento centralizado&lt;br /&gt;&amp;nbsp;- Administraci&amp;oacute;n centralizada&lt;br /&gt;&amp;nbsp;- F&amp;aacute;cil de instalar&lt;br /&gt;&amp;nbsp;- Bajo consumo de energ&amp;iacute;a&lt;br /&gt;&amp;nbsp;- Ahorro en licencias&lt;br /&gt;&amp;nbsp;- Mayor vida &amp;uacute;til&lt;br /&gt;&amp;nbsp;- Sin emisi&amp;oacute;n de ruido ni calor&lt;br /&gt;&amp;nbsp;-&amp;nbsp;Menor espacio f&amp;iacute;sico&lt;/p&gt;
&lt;p&gt;Estos son algunos videos para entender el concepto:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a target="_blank" href="http://www.youtube.com/watch?v=lJC-CwaGQ7Y&amp;amp;feature=related" title="Presentaci&amp;oacute;n de Windows MultiPoint Server 2010 (en ingl&amp;eacute;s)"&gt;Presentaci&amp;oacute;n de Windows MultiPoint Server 2010 (en ingl&amp;eacute;s)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a target="_blank" href="http://www.youtube.com/watch?v=lJC-CwaGQ7Y&amp;amp;feature=related" title="Demostracion de recursos compartidos con Windows MultiPoint Server 2010 (en ingl&amp;eacute;s)"&gt;Demostracion de recursos compartidos con Windows MultiPoint Server 2010 (en ingl&amp;eacute;s)&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=171" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://team.desarrollosnea.com.ar/blogs/rgodoy/archive/tags/Windows+MultiPoint+Server/default.aspx">Windows MultiPoint Server</category></item><item><title>[ASP.NET] Plugin jQuery quickSearch: Filtrar tablas y listas (ejemplo con Gridview)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/03/23/asp-net-plugin-jquery-quicksearch-filtrar-tablas-y-listas-ejemplo-con-gridview.aspx</link><pubDate>Tue, 23 Mar 2010 11:36:43 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:170</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Búsqueda “rapida” en tablas HTML o listas filtrando “on-the-fly”. Unas de las preguntas en los foros/grupos fue: &lt;strong&gt;Como filtrar GridView al presionar una tecla?&lt;/strong&gt;&lt;/p&gt;  &lt;h4&gt;Plugins de jQuery para esta tarea hay muchos, por ejemplo…&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;uitablefilter &lt;a href="http://plugins.jquery.com/project/uiTableFilter"&gt;http://plugins.jquery.com/project/uiTableFilter&lt;/a&gt;       &lt;br /&gt;&lt;a href="http://gregweber.info/projects/uitablefilter"&gt;http://gregweber.info/projects/uitablefilter&lt;/a&gt;       &lt;br /&gt;demo: &lt;a href="http://gregweber.info/projects/demo/flavorzoom.html"&gt;http://gregweber.info/projects/demo/flavorzoom.html        &lt;br /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;quickSearch      &lt;br /&gt;&lt;a title="http://plugins.jquery.com/project/quicksearch" href="http://plugins.jquery.com/project/quicksearch"&gt;http://plugins.jquery.com/project/quicksearch&lt;/a&gt;       &lt;br /&gt;demo: &lt;a href="http://lomalogue.com/jquery/quicksearch/"&gt;http://lomalogue.com/jquery/quicksearch/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;columnFilter      &lt;br /&gt;&lt;a href="http://plugins.jquery.com/project/ColumnFilters"&gt;http://plugins.jquery.com/project/ColumnFilters&lt;/a&gt;       &lt;br /&gt;demo: &lt;a href="http://www.tomcoote.co.uk/jQueryColumnFilters.aspx"&gt;http://www.tomcoote.co.uk/jQueryColumnFilters.aspx&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;El ejemplo es con el plugin numero 2, &lt;a href="http://plugins.jquery.com/project/quicksearch"&gt;quickSearch&lt;/a&gt; que fue un pedido en los foros/grupos de ASP.NET&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Para comenzar: Tablas semánticas&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Importante 1: Tablas semánticas&lt;/strong&gt;     &lt;br /&gt;Hay que tener en cuenta que para estos trabajos con tablas las mismas deben tener un semántica en sus filas… que queremos decir con “semántica de filas”, poder diferenciar las filas del encabezado del resto de las filas del cuerpo (filas de información/datos) y las del pie     &lt;br /&gt;Mas info: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3"&gt;HTML 4.01 Specification &amp;gt; Tables &amp;gt; Row groups: the THEAD, TFOOT, and TBODY elements&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#tables"&gt;HTML Techniques for Web Content Accessibility Guidelines 1.0 &amp;gt; Tables&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Importante 2: Gridview de ASP.NET 2.0/3.5 y su renderizacion por default&lt;/strong&gt;     &lt;br /&gt;El gridview que viene con ASP.NET por default el renderizado de las filas no es &amp;quot;muy semántico&amp;quot; es decir no agrupa las filas en tipo de filas.     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;OPCION 1: Utilizar &lt;/strong&gt;&lt;a href="http://cssfriendly.codeplex.com/"&gt;&lt;strong&gt;CSS Friendly Adapter&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Para ello necesitamos utilizar un “condimento” que es el &lt;a href="http://cssfriendly.codeplex.com/"&gt;CSS Friendly Adapter&lt;/a&gt;, que ya hablamos &lt;a href="http://geeks.ms/blogs/fernandezja/search.aspx?q=css+friendly+adapter"&gt;por aquí&lt;/a&gt;.     &lt;br /&gt;En el ejemplo que se adjunta para descargar al final se encuentra configurado el componente.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="5" width="90%"&gt;&lt;tbody&gt;     &lt;tr style="background-color:#408080;color:#fff;"&gt;       &lt;td valign="top"&gt;Gridview “normal” ;)&lt;/td&gt;        &lt;td valign="top"&gt;Gridview renderizado con CSS Friendly Adapter&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_42814351.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_35A6ED33.png" width="408" height="42" /&gt;&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_1F70D1E1.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_12967BC3.png" width="384" height="238" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_7BF42D7B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2F4FF0D8.png" width="408" height="79" /&gt;&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_38C8AF4E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7D94D382.png" width="395" height="260" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://lomalogue.com/jquery/quicksearch/"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;OPCION 2: Generar thead en el gridview sin CSS Friendly Adapter      &lt;br /&gt;&lt;/strong&gt;Puedes utilizar este snipeet:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;GridViewJedis.DataSource = JediHelper.Listado();
GridViewJedis.DataBind();

GridViewJedis.UseAccessibleHeader = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;
GridViewJedis.HeaderRow.TableSection = TableRowSection.TableHeader;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Y renderiza de esta menera&lt;/p&gt;

&lt;table border="0" cellspacing="0" cellpadding="5" width="2"&gt;&lt;tbody&gt;
    &lt;tr style="background-color:#408080;color:#fff;"&gt;
      &lt;td valign="top"&gt;Gridview con la opcion 2&lt;/td&gt;

      &lt;td valign="top"&gt;Gridview renderizado con CSS Friendly Adapter&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top"&gt;coloca el encabezado agrupado en thead 
        &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_1473A4FF.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_32DDE5E8.png" width="326" height="183" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;br /&gt;

        &lt;br /&gt;&lt;/td&gt;

      &lt;td valign="top"&gt;Aquí encierra a la tabla HTML con un DIV, y además coloca en cada fila estilos CSS para poder “personalizarlos” 
        &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_7BF42D7B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_2F4FF0D8.png" width="408" height="79" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;

        &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_38C8AF4E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7D94D382.png" width="395" height="260" /&gt;&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RECOMENDACION&lt;/strong&gt;: utilizar &lt;a href="http://cssfriendly.codeplex.com/"&gt;CSS Friendly Adapter&lt;/a&gt; para ser mas fácil a nuestros diseñadores gráficos para web ;)&amp;#160; a la hora de “estetizar” el trabajo.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Volviendo al tema del filtrado de la tabla…&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Armando el ejemplo&lt;/h3&gt;

&lt;p&gt;Hay que descargar el plugin de jQuery quickSearch y por supuesto la versión de jQuery que estemos trabajando (este plugin es soportado por el framework de jQuery &lt;em&gt;1.2.x o superior&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_461E9C87.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_16ECB0F0.png" width="198" height="63" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Luego tenemos que tener una tabla y input text de donde se dispara el plugin&lt;/p&gt;

&lt;p&gt;En este ejemplo lo obtengo así:&lt;/p&gt;

&lt;ol&gt;
  &lt;ol&gt;
    &lt;li&gt;Obtener el Id del lado del cliente del Textbox &lt;/li&gt;

    &lt;li&gt;Idem del Gridview &lt;/li&gt;

    &lt;li&gt;Desde el textbox disparo el plugin para el selector de todas las filas de la grilla (del cuerpo de la misma) &lt;/li&gt;
  &lt;/ol&gt;
&lt;/ol&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;quot;&amp;gt;
    $(document).ready(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;() {
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; txtFiltro = &lt;span style="color:#006080;"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;+&lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;%=txtFiltro.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;;
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; grillaJedis = &lt;span style="color:#006080;"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;+&lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;%=GridViewJedis.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;;
        $(txtFiltro).quicksearch(grillaJedis + &lt;span style="color:#006080;"&gt;&amp;#39; tbody tr&amp;#39;&lt;/span&gt;);
    });
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="http://plugins.jquery.com/project/quicksearch%20"&gt;Mas info en la ayuda del plugin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al final se encuentra el ejemplo para descargar.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Veamos el comportamiento…&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Ejemplo 1: Gridview sin CSS Friendly Adapter&lt;/h3&gt;

&lt;p&gt;Podemos ver que si no tenemos control de las filas de datos.. el plugin tambien filtrar el contenido del encabezado&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;quot;&amp;gt;
    $(document).ready(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;() {
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; txtFiltro = &lt;span style="color:#006080;"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;+&lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;%=txtFiltro.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;;
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; grillaJedis = &lt;span style="color:#006080;"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;+&lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;%=GridviewJedis.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;;
        $(txtFiltro).quicksearch(grillaJedis + &lt;span style="color:#006080;"&gt;&amp;#39; tbody tr&amp;#39;&lt;/span&gt;);
    });
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Vemos que el selector que aplicamos al plugin quickSearch es que lo realice en todas las &lt;strong&gt;filas (tr)&lt;/strong&gt; dentro de &lt;strong&gt;cuerpo (tbody)&lt;/strong&gt; de la tabla&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTA&lt;/strong&gt;: Aqui voy a aclarar que en el ejemplo para descargar al final esta pagina no tiene un gridview, sino una tabla html que es la copia textual del renderizado de un gridview. Esto es para que en el mismo ejemplo pueda colocar uno con y sin CSS Friendly Adapter.&lt;/p&gt;

&lt;table border="0" cellspacing="0" cellpadding="5" width="2"&gt;&lt;tbody&gt;
    &lt;tr style="background-color:#408080;color:#fff;"&gt;
      &lt;td valign="top"&gt;Gridview “normal” ;)&lt;/td&gt;

      &lt;td valign="top"&gt;Filtrando&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top"&gt;&amp;#160; &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_2A999A84.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_3A4909BB.png" width="387" height="433" /&gt;&lt;/a&gt; &lt;/td&gt;

      &lt;td valign="top"&gt;&amp;#160; &lt;br /&gt;&lt;strong&gt;Filtrando: Yoda 
          &lt;br /&gt;&lt;/strong&gt;Como el encabezado no tiene la palabra yoda se filtra tambien ;( 

        &lt;br /&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_67F686E6.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_7A9B5AD0.png" width="290" height="200" /&gt;&lt;/a&gt; 

        &lt;br /&gt;

        &lt;br /&gt;Filtro: no 

        &lt;br /&gt;aqui podemos ver que filtra el texto que contiene tambien 

        &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_230A1718.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_65B93C83.png" width="366" height="212" /&gt;&lt;/a&gt; &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Ejemplo 2: Gridview con CSS Friendly Adapter (u opcion 2 para renderizar thead)&lt;/h3&gt;

&lt;p&gt;Si utilizamos &lt;a href="http://cssfriendly.codeplex.com/"&gt;CSS Friendly Adapter&lt;/a&gt;, y con el mismo código de inicialización del plugin para quickSearch&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&amp;lt;script type=&lt;span style="color:#006080;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;quot;&amp;gt;
    $(document).ready(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;() {
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; txtFiltro = &lt;span style="color:#006080;"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;+&lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;%=txtFiltro.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;;
        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; grillaJedis = &lt;span style="color:#006080;"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;+&lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;%=GridViewJedis.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;;
        $(txtFiltro).quicksearch(grillaJedis + &lt;span style="color:#006080;"&gt;&amp;#39; tbody tr&amp;#39;&lt;/span&gt;);
    });
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Al filtrar con un texto se mantiene el encabezado&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_41D06529.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_4449711A.png" width="417" height="219" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esto es porque se actua por el selector:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;$(txtFiltro).quicksearch(grillaJedis + &lt;span style="color:#006080;"&gt;&amp;#39; tbody tr&amp;#39;&lt;/span&gt;); &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;sobre el las filas del cuerpo&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_5F521A5B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_47D7662A.png" width="372" height="262" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Ejemplo para descargar&lt;/h3&gt;

&lt;p&gt;Si no puedes ver para descargar &lt;a href="http://cid-f5a5b07c2286412f.skydrive.live.com/self.aspx/Geeks.ms/ASPNET%5E_jQuery%5E_GridviewFilter%5E_PluginQuickSearch.zip"&gt;click aquí&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;jQuery plugin quickSearch 
    &lt;br /&gt;quickSearch is a plug-in for quickly searching through large data such as tables and lists 

    &lt;br /&gt;&lt;a href="http://plugins.jquery.com/project/quicksearch"&gt;http://plugins.jquery.com/project/quicksearch&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;CSS Friendly Adapter 
    &lt;br /&gt;&lt;a href="http://cssfriendly.codeplex.com/"&gt;http://cssfriendly.codeplex.com/&lt;/a&gt; 

    &lt;br /&gt;&lt;a href="http://www.asp.net/CssAdapters/"&gt;http://www.asp.net/CssAdapters/&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3"&gt;HTML 4.01 Specification &amp;gt; Tables &amp;gt; Row groups: the THEAD, TFOOT, and TBODY elements&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#tables"&gt;HTML Techniques for Web Content Accessibility Guidelines 1.0 &amp;gt; Tables&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=170" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>[Tip] Dynamics CRM 4.0 Client con Outlook 2010</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/03/18/tip-dynamics-crm-4-0-client-con-outlook-2010.aspx</link><pubDate>Thu, 18 Mar 2010 23:17:09 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:169</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hace un par de semanas instale la suite 2010 del Office aprovechando una reinstalación de mi notebook;&amp;#160; y por donde trabajo utilizamos &lt;a href="http://www.microsoft.com/spain/businesssolutions/dynamics/productos/crm/default.mspx" target="_blank"&gt;Microsoft Dynamics CRM 4.0 &lt;/a&gt;y la conectividad-sincronización con Outlook es muy buena y la queríamos mantener en Outlook 2010&lt;/p&gt;  &lt;p&gt;Actualmente todavía no tiene soporte para Outlook 2010, pero hay una pequeñas ayudas/tips que nos pueden allanar el camino para utilizarlo en la versión Beta de Outlook 2010 (con nuestro pleno consentimiento)&lt;/p&gt;  &lt;h4&gt;Hay dos opciones&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Reinstalar sobre Outlook 2007 que ya tenia instalado el &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=60C4A6CC-59D7-416E-9F44-0AE8FF249768&amp;amp;displaylang=en" target="_blank"&gt;Cliente del CRM 4.0&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Instalar &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=60C4A6CC-59D7-416E-9F44-0AE8FF249768&amp;amp;displaylang=en" target="_blank"&gt;Cliente del CRM 4.0&lt;/a&gt; para Outlook sin el Outlook instalado o con Outlook 2010 instalado (valga al redundancia) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Soluciones de cortesía&lt;/h3&gt;  &lt;h4&gt;   &lt;br /&gt;OPCION 1: Instalar sobre Outlook 2007 con Cliente CRM 4.0 instalado&lt;/h4&gt;  &lt;p&gt;Aquí no hay que hacer mucho, el cliente ya esta instalado y lo va a tomar el Outlook 2010. Habría que configurarlo de nuevo al cliente con el Asistente de configuración&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_61123A12.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_0889067D.png" width="491" height="98" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;OPCION 2: Instalar CRM 4.0 para Outlook sin el Outlook instalado o con Outlook 2010 instalado (valga al redundancia)&lt;/h4&gt;  &lt;p&gt;Aquí tenemos el problema, cualquiera de las dos opciones nos aparece el mensaje:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;“No hay instalada ninguna versión compatible de Microsoft Outlook. Asegúrese de que Outlook 2003 o Outlook 207 están instalados con el Service Pack y las actualizaciones mas recientes. Si va a actualizar el cliente y no tiene ninguna versión de Outlook compatible, pude perder datos”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/Outlook2010CRM4ClientForOutlook001_5F00_7A6A177F.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Outlook2010-CRM4ClientForOutlook-001" border="0" alt="Outlook2010-CRM4ClientForOutlook-001" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/Outlook2010CRM4ClientForOutlook001_5F00_thumb_5F00_43408986.png" width="493" height="209" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Si tenemos el Office 2010 instalado no lo va a reconocer como valido, asi que tendremos que “saltear esta verificación”&lt;/p&gt;  &lt;p&gt;Como saltear la verificacion:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Registrar esto en el Registro de Windows      &lt;p&gt;&lt;em&gt;[HKEY_CURRENT_USER\SOFTWARE\Microsoft\&lt;strong&gt;MSCRMClient&lt;/strong&gt;]&lt;/em&gt;&lt;/p&gt;      &lt;p&gt;&lt;em&gt;Key Type: &lt;strong&gt;DWord&lt;/strong&gt;           &lt;br /&gt;Key: &lt;strong&gt;IgnoreChecks&lt;/strong&gt;           &lt;br /&gt;Value:&lt;strong&gt; 1&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;&lt;em&gt;Instalar el Cliente para&lt;/em&gt; CRM 4.0 &lt;/li&gt;    &lt;li&gt;Instalar Office 2010 (si no lo tienes ya instalado) &lt;/li&gt;    &lt;li&gt;Configurar el &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=60C4A6CC-59D7-416E-9F44-0AE8FF249768&amp;amp;displaylang=en" target="_blank"&gt;Cliente del CRM 4.0 para Outlook &lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;NOTA: EL cliente de CRM 4.0 para Outlook solo sirve para Outlook de 32bits&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Referencias&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Dynamics Community: CRM 4.0 and Office 2010      &lt;br /&gt;&lt;a href="http://community.dynamics.com/forums/p/27997/46839.aspx#46839"&gt;http://community.dynamics.com/forums/p/27997/46839.aspx#46839&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Microsoft Dynamics Community: Outlook CRM Client Installation – Constant Pending Reboot      &lt;br /&gt;&lt;a href="http://community.dynamics.com/blogs/crmpowerobjects/archive/2009/11/24/outlook-crm-client-installation-8211-constant-pending-reboot.aspx"&gt;http://community.dynamics.com/blogs/crmpowerobjects/archive/2009/11/24/outlook-crm-client-installation-8211-constant-pending-reboot.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;MS Outlook 2010 and Dynamics CRM Outlook Client (Bovoweb)      &lt;br /&gt;&lt;a href="http://bovoweb.blogspot.com/2009/10/ms-outlook-2010-and-dynamics-crm.html"&gt;http://bovoweb.blogspot.com/2009/10/ms-outlook-2010-and-dynamics-crm.html&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Enlaces&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Dynamic CRM&amp;#160; &lt;br /&gt;&lt;a href="http://crm.dynamics.com/"&gt;http://crm.dynamics.com/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Version online de evaluacion de Microsoft Dynamic CRM&amp;#160; &lt;br /&gt;&lt;a title="http://www.hostedmicrosoftcrmtrial.com/" href="http://www.hostedmicrosoftcrmtrial.com/"&gt;http://www.hostedmicrosoftcrmtrial.com/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=60C4A6CC-59D7-416E-9F44-0AE8FF249768&amp;amp;displaylang=en" target="_blank"&gt;Cliente del CRM 4.0 para Outlook &lt;/a&gt;      &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=60C4A6CC-59D7-416E-9F44-0AE8FF249768&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=60C4A6CC-59D7-416E-9F44-0AE8FF249768&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=169" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Tips_2F00_Tricks/default.aspx">Tips/Tricks</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Dynamics+CRM/default.aspx">Dynamics CRM</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/CRM+4.0/default.aspx">CRM 4.0</category></item><item><title>[MSDE] Eliminar manualmente una instalación de MSDE (Microsoft SQL Server Desktop Engine)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/01/25/msde-eliminar-manualmente-una-instalaci-243-n-de-msde-microsoft-sql-server-desktop-engine.aspx</link><pubDate>Tue, 26 Jan 2010 01:36:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:168</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Amigo mío tu que tienes problemas con la instalación/desinstalación de una &lt;a href="http://www.asp.net/downloads/archived/msde/" target="_blank"&gt;MSDE (Microsoft SQL Server Desktop Engine)&lt;/a&gt; aquí tienes la forma de no “estresarte” demasiado (o no como nosotros, &lt;a href="http://team.desarrollosnea.com.ar/blogs/asario" target="_blank"&gt;Agustín&lt;/a&gt;, &lt;a href="http://team.desarrollosnea.com.ar/blogs/cdacunda" target="_blank"&gt;Cristina&lt;/a&gt; y &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;el que escribe&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Luego de varias horas pudimos dar con la desinstalación manual, entre &lt;a href="http://team.desarrollosnea.com.ar/blogs/asario" target="_blank"&gt;Agustín&lt;/a&gt; y &lt;a href="http://team.desarrollosnea.com.ar/blogs/cdacunda" target="_blank"&gt;Cristina&lt;/a&gt; .&lt;/p&gt;  &lt;p&gt;La desinstalación automática nos generaba error, algo fallaba en el instalador .msi… hacíamos un log de la desinstalación pero no nos daba nada.. así que acudimos a la desinstalación manual.   &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Pasos (que hicimos)&lt;/h3&gt;  &lt;blockquote&gt;   &lt;h4&gt;&lt;u&gt;Paso 1: &lt;/u&gt;Limpiar .msi (podríamos decir …corrupto)&lt;/h4&gt;    &lt;p&gt;Primeramente descargamos el conocido &lt;a href="http://support.microsoft.com/kb/290301/es" target="_blank"&gt;Windows Installer CleanUp Utility&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Esta opción no desinstala nada, solo nos limpia los archivos que el windows installer coloca en una ubicación temporal para “conocer” cuando hay que desinstalar automáticamente (que en este caso nos generara error,&amp;#160; así que no nos servía)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;h4&gt;&lt;u&gt;Paso 2:&lt;/u&gt; Manualmente eliminar archivos y carpetas&lt;/h4&gt;    &lt;p&gt;Ubicación predeterminada: &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Instancia predeterminada: \Program Files\Microsoft SQL Server\MSSQL\Data &lt;/li&gt;      &lt;li&gt;Instancia con nombre: \Program Files\Microsoft SQL Server\MSSQL$&amp;lt;INSTANCENAME&amp;gt;\Data &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Hay que eliminar tanto Data y Binn      &lt;br /&gt;Aqui eliminar toda la carpeta o en ocasiones si existe en Archivos de programa la carpeta “Microsoft SQL Server” no instala       &lt;br /&gt;      &lt;br /&gt;Si necesitas la ubicación y alguien en la instalacion la modifico puedes ir:&lt;/p&gt;    &lt;p&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup\&lt;b&gt;SQLDataRoot &lt;/b&gt;      &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/320873" target="_blank"&gt;Mas info aquí&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;h4&gt;&lt;u&gt;Paso 3:&lt;/u&gt; Limpiar “manualmente el registro de windows”&lt;/h4&gt;    &lt;p&gt;Aqui hay que eliminar una serie de entradas.. que las dejo copiadas pero estan detalladas en &lt;a href="http://support.microsoft.com/kb/320873" target="_blank"&gt;Microsoft Support&lt;/a&gt;&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Para una instancia predeterminada de MSDE 2000, quite la clave siguiente:        &lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer &lt;/li&gt;      &lt;li&gt;Para un MSDE 2000 instancia con nombre, quite la clave siguiente:        &lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\&amp;lt;INSTANCENAME&amp;gt; &lt;/li&gt;      &lt;li&gt;Si la siguiente clave del Registro señala a MSDE 2000 instancia &lt;b&gt;ProductCode &lt;/b&gt;, quite el valor &lt;i&gt;InstanceComponentSet.x &lt;/i&gt;. Por ejemplo, InstanceComponentSet.1 tiene un valor que coincide con el &lt;b&gt;código de producto &lt;/b&gt;de sqlrun01.msi:         &lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Component Set\InstanceComponentSet.1 &lt;/li&gt;      &lt;li&gt;Quite la clave del registro de servicio de SQL Server.        &lt;br /&gt;Para una instancia predeterminada de MSDE 2000, quite las siguientes:         &lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer         &lt;br /&gt;Para un MSDE 2000 instancia con nombre, quitar las siguientes:         &lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$&amp;lt;INSTANCENAME&amp;gt; &lt;/li&gt;      &lt;li&gt;Quite la clave de registro de servicio SQLServerAgent:        &lt;br /&gt;Para una instancia predeterminada de MSDE 2000, quite las siguientes:         &lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLServerAgent         &lt;br /&gt;Para un MSDE 2000 instancia con nombre, quitar las siguientes:         &lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLAgent$&amp;lt;INSTANCENAME&amp;gt; &lt;/li&gt;   &lt;/ol&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Mas info de estos pasos: &lt;a href="http://support.microsoft.com/kb/320873"&gt;http://support.microsoft.com/kb/320873&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;&lt;u&gt;Paso 4:&lt;/u&gt; Sin reiniciar podremos volver a instalar una instancia.&lt;/h4&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Instalación con parámetros personalizados:&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;El .bat que utilizamos:      &lt;br /&gt;setup.exe /qb+ SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0 INSTANCENAME=MINSTANCIA SAPWD=mipassword /log c:\Logsql.log&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Mas info de opciones de instalación para MSDE: &lt;a href="http://msdn.microsoft.com/es-es/library/aa214935(en-us,SQL.80).aspx"&gt;http://msdn.microsoft.com/es-es/library/aa214935(en-us,SQL.80).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;Enlaces&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Cómo quitar manualmente una instancia de Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)      &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/320873"&gt;http://support.microsoft.com/kb/320873&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Windows Installer CleanUp Utility      &lt;br /&gt;&lt;a title="http://support.microsoft.com/kb/290301/es" href="http://support.microsoft.com/kb/290301/es"&gt;http://support.microsoft.com/kb/290301/es&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Customizing Desktop Engine Setup.exe      &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/aa214935(en-us,SQL.80).aspx"&gt;http://msdn.microsoft.com/es-es/library/aa214935(en-us,SQL.80).aspx&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=168" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Tips_2F00_Tricks/default.aspx">Tips/Tricks</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/SQL+2000/default.aspx">SQL 2000</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/MSDE/default.aspx">MSDE</category></item><item><title>[EF 1.0] Obtener la foreign key de una entidad (que no la tenemos por intellisense)</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/01/13/ef-1-0-obtener-la-foreign-key-de-una-entidad-que-no-la-tenemos-por-intellisense.aspx</link><pubDate>Thu, 14 Jan 2010 00:10:35 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:167</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;El que esta trabajando con Entity Framework 1.0 (para VS2008 SP1)… sabrá que: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Cuando creamos el modelo las foreign keys las utiliza para crear las relaciones, y mediante propiedades navegar entre ellas. O sea no necesitaríamos las FK para nada, porque es algo que la DB necesita para relaciones (“larga vida a las base de datos relacionales”)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Esta particularidad de no visualizar las claves foráneas me parece muy bueno, ya que no la necesitamos en POO&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;NOTA Adjunta:&lt;/u&gt; en EF 4.0 (que seria la 2.0 pero la versión sigue a la del Framework .NET) al momento de generar el modelo pregunta si queremos “visualizar las foreign keys” :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A través de una pregunta en los newsgroups y foros (que mas bien me vino por email) &lt;strong&gt;necesitaban si o si &lt;strike&gt;desesperadamente&lt;/strike&gt;&lt;/strong&gt; el identificador de la foránea, así que lo dejo por aquí para referencia.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pensamiento lateral&lt;/strong&gt;: (pensando pensando.. en que momento utilizar esto) Se me ocurre cuando estamos visualizando en una pagina ASP.NET y queremos ver el detalle de algo adjunto o enviarlo a una función javascript seria necesario ir a las clave foránea, en vez de traer la entidad relacionada. Caso claro es las grillas donde por alguna razón tenemos que visualizar una imagen asociada y deseamos enviar el id al handler que despliega la misma. &lt;em&gt;(Esto es solo un pensamiento en voz alta) &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Veamos lo que necesitamos…&lt;/h3&gt;  &lt;p&gt;En la DB la tabla que mapeamos…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_2584B3B5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_14BD0907.png" width="269" height="292" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Si tenemos una entidad relacionada con otras, o sea con una relación de conocimiento (Asociación), nos queda en nuestro modelo&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_07767FF4.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_4FE0BF05.png" width="271" height="295" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;donde podremos apreciar que no se encuentras las claves foráneas&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_7B44DFFF.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_030CD2A2.png" width="550" height="315" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pero &lt;strong&gt;si no puedes dormir&lt;/strong&gt; sin esta información… &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Como lo obtenemos?&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Opción recomendada&lt;/strong&gt; utilizando &lt;u&gt;elegantemente&lt;/u&gt; expresiones lambda, y buscamos el nombre de la clave foránea que tanto deseamos:&lt;/p&gt;  &lt;p&gt;En VB.NET&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; tipoPublicidadId &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; Int32 = Int32.Parse(publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues.First(&lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt;(k) k.Key = &lt;span style="color:#006080;"&gt;&amp;quot;TipoPublicidadId&amp;quot;&lt;/span&gt;).Value)&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;En C#&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; tipoPublicidadId = (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;)publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues.First(k =&amp;gt; k.Key == &lt;span style="color:#006080;"&gt;&amp;quot;TipoPublicidadId&amp;quot;&lt;/span&gt;).Value;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Podemos por índice…, algo que nunca me gusto utilizar “índices” (vaya uno a saber en que posición se encuentra la que necesitamos,… pero igualmente va el código&lt;/p&gt;

&lt;p&gt;En VB.NET&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; tipoPublicidadId &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; Int32
&lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; publicidadArchivo.TipoPublicidadReference.EntityKey &lt;font color="#0000ff"&gt;IsNot&lt;/font&gt; &lt;span style="color:#0000ff;"&gt;Nothing&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt; 
     tipoPublicidadId = Int32.Parse(publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues(0).Value) 
&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; If&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;EN C#&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; tipoPublicidadId;
&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (!IsNothing(publicidadArchivo.TipoPublicidadReference.EntityKey)) {
    tipoPublicidadId = Int32.Parse(publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues(0).Value);
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Cuando se cargan?&lt;/h3&gt;

&lt;p&gt;Las asociaciones se cargan y completan cuando hacemos I&lt;a href="http://msdn.microsoft.com/es-es/library/bb896272.aspx" target="_blank"&gt;nclude&lt;/a&gt; en la consulta LINQ to Entities relacionada, o la carga explicita con mediante el método &lt;a href="http://msdn.microsoft.com/es-es/library/bb896351.aspx" target="_blank"&gt;Load&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NOTA: Hasta EF 4.0 no tenemos Lazy Load “nativo”.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Enlaces&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Asociación (EDM)
    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/bb399198.aspx"&gt;http://msdn.microsoft.com/es-es/library/bb399198.aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Working with Entity Keys (Entity Framework)
    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/dd283139(en-us).aspx"&gt;http://msdn.microsoft.com/es-es/library/dd283139(en-us).aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;EntityKey.EntityKeyValues (Propiedad)&amp;#160; &lt;br /&gt;Obtiene los valores de clave asociados a esta EntityKey.

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.entitykey.entitykeyvalues.aspx"&gt;http://msdn.microsoft.com/es-es/library/system.data.entitykey.entitykeyvalues.aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Cómo cargar explícitamente objetos relacionados (Entity Framework)
    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/bb896249.aspx"&gt;http://msdn.microsoft.com/es-es/library/bb896249.aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Dar forma a los resultados de la consulta (Entity Framework)
    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/bb896272.aspx"&gt;http://msdn.microsoft.com/es-es/library/bb896272.aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;EntityReference(TEntity).Load (Método)
    &lt;br /&gt;Carga el objeto relacionado para esta &lt;a href="http://msdn.microsoft.com/es-es/library/bb297956.aspx"&gt;EntityReference(TEntity)&lt;/a&gt;.

    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/bb896351.aspx"&gt;http://msdn.microsoft.com/es-es/library/bb896351.aspx&lt;/a&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;ul&gt;
    &lt;li&gt;EntityReference(Of TEntity).Load (Método) (MergeOption)
      &lt;br /&gt;Carga el objeto relacionado para esta &lt;a href="http://msdn.microsoft.com/es-es/library/bb297956.aspx"&gt;EntityReference(Of TEntity)&lt;/a&gt; con la opción de combinación especificada.

      &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/bb896375.aspx"&gt;http://msdn.microsoft.com/es-es/library/bb896375.aspx&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=167" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Entity+Framework/default.aspx">Entity Framework</category></item><item><title>Examen 70-547 aprobado. Certificación MCPD: Microsoft Certified Professional Developer</title><link>http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2010/01/08/examen-70-547-aprobado-certificaci-243-n-mcpd-microsoft-certified-professional-developer.aspx</link><pubDate>Fri, 08 Jan 2010 12:48:14 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:164</guid><dc:creator>Jose A. Fernandez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;El lunes pasado aprobé el &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-547" target="_blank"&gt;Examen 70-547&lt;/a&gt; que es sobre desarrollo de aplicaciones web.&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;       &lt;div&gt;&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-547" target="_blank"&gt;PRO: Designing and Developing Web-Based Applications by Using the Microsoft .NET Framework&lt;/a&gt;&lt;/div&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;El que faltaba para &lt;a href="http://www.microsoft.com/learning/en/us/certification/mcpd.aspx" target="_blank"&gt;Microsoft Certified Professional Developer (MCPD)&lt;/a&gt; en Web Applications&lt;/p&gt;  &lt;p&gt;También poniendo semilla “empecemos por casa” del post anterior: &lt;a href="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/2009/12/21/curso-terminado-becas-control-f-curso-net-240hs-utn-frre.aspx" target="_blank"&gt;Curso Terminado: Becas Control+F Curso .NET 240hs (UTN – FRRe)&lt;/a&gt;.    &lt;br /&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Un Testing Center mas cerca…&lt;/h3&gt;  &lt;p&gt;Lo bueno en esta oportunidad e interesante es que no tuve que viajar hacia Buenos Aires (o Rosario o Córdoba), sino que “cruzando el puente” en Resistencia (Chaco) tenemos un Testing Center de &lt;a href="http://www.prometric.com" target="_blank"&gt;Prometric&lt;/a&gt;, nuestros colegas y amigos de &lt;a href="http://www.pampatechnologies.com.ar" target="_blank"&gt;Pampa Technologies (PampaTech)&lt;/a&gt; (ex MegaKey SRL) solo que esta en el listado de &lt;a href="http://www.prometric.com" target="_blank"&gt;Prometric&lt;/a&gt; como el ultimo. Muy buena la atención de Rafael.&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;Preparación&lt;/h3&gt;  &lt;p&gt;Para eso durante los últimos días me prepare (además de la experiencia que uno carga en el trabajo, y participaciones en newsgroup/foros) como siempre lo hago mediante el libro del Training Kit del examen.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="90%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="150"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_63E5C53F.png"&gt;&lt;img style="border-right-width:0px;margin:0px 15px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" align="left" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_0FC22AFD.png" width="194" height="244" /&gt;&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Que viene con un CD           &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_1DC0CE60.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;margin-left:0px;border-left-width:0px;margin-right:0px;" title="image" border="0" alt="image" align="left" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/image_5F00_thumb_5F00_6CA9918E.png" width="285" height="224" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="679"&gt;         &lt;p&gt;&amp;#160;&lt;strong&gt;MCPD Self-Paced Training Kit (Exam 70-547): Designing and Developing Web-Based Applications Using the Microsoft .NET Framework (Hardcover)&lt;/strong&gt;             &lt;br /&gt;&lt;a title="http://www.amazon.com/MCPD-Self-Paced-Training-Exam-70-547/dp/0735623406" href="http://www.amazon.com/MCPD-Self-Paced-Training-Exam-70-547/dp/0735623406"&gt;http://www.amazon.com/MCPD-Self-Paced-Training-Exam-70-547/dp/0735623406&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;Puedes darle una mirada interna desde el enlace a &lt;a href="http://www.amazon.com/MCPD-Self-Paced-Training-Exam-70-547/dp/0735623406" target="_blank"&gt;Amazon.com&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&amp;#160;&lt;/p&gt;          &lt;p&gt;Temas:&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;Application Requirements and Design &lt;/li&gt;            &lt;li&gt;Decompose Specifications for Developers &lt;/li&gt;            &lt;li&gt;Design Evaluation &lt;/li&gt;            &lt;li&gt;Creating a User Interface &lt;/li&gt;            &lt;li&gt;Creating and Choosing Controls &lt;/li&gt;            &lt;li&gt;Data Validation &lt;/li&gt;            &lt;li&gt;Delivering Multimedia &lt;/li&gt;            &lt;li&gt;Component Design &lt;/li&gt;            &lt;li&gt;Component Development &lt;/li&gt;            &lt;li&gt;Reusable Software Components &lt;/li&gt;            &lt;li&gt;Application Logic Layer &lt;/li&gt;            &lt;li&gt;Logging and Monitoring &lt;/li&gt;            &lt;li&gt;Application Configuration &lt;/li&gt;            &lt;li&gt;Define and Evaluate a Testing Strategy &lt;/li&gt;            &lt;li&gt;Creating Development Tests &lt;/li&gt;            &lt;li&gt;Deploying an Application &lt;/li&gt;            &lt;li&gt;Supporting an Application &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/MCPD-Self-Paced-Training-Exam-70-547/dp/0735623406" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En el libro hay referencias a URL en la mayoría hacia &lt;a href="http://msdn.microsoft.com/es-es/library/default.aspx" target="_blank"&gt;MSDN Library&lt;/a&gt;, o artículos de &lt;a href="http://msdn.microsoft.com/es-es/magazine/default.aspx" target="_blank"&gt;MSDN Magazine&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Lo que me llamo la atención (sabia que era así, pero me hizo pensar) es que las preguntas no eran directas sino mas bien te presenta unos requerimientos y tendrás que elegir entre las diferentes alternativas teniendo en cuenta tu diseño lógico de tu aplicacion, físico, componentes, base de datos, reusabilidad), luego varios preguntas sobre estrategia de testing (unitarios, de integración, stress, etc.)&lt;/p&gt;  &lt;p&gt;Fue un examen de sin “pica-código” (como dirían mis amigos españoles) sino mas bien de que “pensamiento exploratorio”, aunque no tan profundo como pensaba (&lt;a href="http://mvpfiles.spaces.live.com/blog/cns!44A6F6B3589906F1!1833.entry" target="_blank"&gt;Matías Iacono nos daba un &lt;strike&gt;indicio de tranquilidad&lt;/strike&gt; sobre la profundidad del examen&lt;/a&gt;);&amp;#160; en la mayoría de las preguntas el sentido común viene a nuestra mente, así que la experiencia también cuenta.&amp;#160; &lt;br /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTA&lt;/strong&gt;: Para que que esta pensando que estoy diciendo parte del examen y que es parte del NDA, en el CD adjunto al libro viene una batería de preguntas que ayudan a perfilarse (no son exactamente como el examen, pero ayudan) y allí se perfilan de ese manera.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Enlaces&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Certificaciones Microsoft      &lt;br /&gt;&lt;a title="http://www.microsoft.com/spain/formacion/mcp/certicaciones.mspx" href="http://www.microsoft.com/spain/formacion/mcp/certicaciones.mspx"&gt;http://www.microsoft.com/spain/formacion/mcp/certicaciones.mspx&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;La credencial MCPD      &lt;br /&gt;&lt;a title="http://www.microsoft.com/spain/formacion/mcp/mcpd.mspx" href="http://www.microsoft.com/spain/formacion/mcp/mcpd.mspx"&gt;http://www.microsoft.com/spain/formacion/mcp/mcpd.mspx&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Foro de MSDN sobre Certificaciones      &lt;br /&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/es-ES/certificacioneses/threads"&gt;http://social.msdn.microsoft.com/Forums/es-ES/certificacioneses/threads&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Crossposting desde &lt;a href="http://geeks.ms/blogs/fernandezja" target="_blank"&gt;mi blog en Geeks.ms: http://geeks.ms/blogs/fernandezja&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=164" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/Examen/default.aspx">Examen</category><category domain="http://team.desarrollosnea.com.ar/blogs/jfernandez/archive/tags/certificaciones/default.aspx">certificaciones</category></item><item><title>Semana de la calidad</title><link>http://team.desarrollosnea.com.ar/blogs/dmorales/archive/2009/12/24/semana-de-la-calidad.aspx</link><pubDate>Thu, 24 Dec 2009 14:17:00 GMT</pubDate><guid isPermaLink="false">3ea7d28b-09bb-46d3-a159-3889b059424f:163</guid><dc:creator>Diego</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Domingo 29 de noviembre.. ultimando detalles para la 2&amp;deg; auditoria interna previa a las auditorias de certificaci&amp;oacute;n. El &lt;strong&gt;equipo de calidad&lt;/strong&gt; (&lt;a href="http://team.desarrollosnea.com.ar/blogs/dmorales/default.aspx"&gt;Diego&lt;/a&gt; y Lautaro) trabaja hombro a hombro con los responsables de proyectos (&lt;a target="_blank" href="http://team.desarrollosnea.com.ar/blogs/rgodoy/default.aspx"&gt;Rub&amp;eacute;n&lt;/a&gt;, &lt;a target="_blank" href="http://team.desarrollosnea.com.ar/blogs/jfernandez/default.aspx"&gt;Jos&amp;eacute;&lt;/a&gt; y Lautaro) e infraestructura (&lt;a target="_blank" href="http://team.desarrollosnea.com.ar/blogs/fcattay/default.aspx"&gt;Fede&lt;/a&gt;) ultimando detalles en la definici&amp;oacute;n de los procedimientos y el control de evidencia auditable.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Algunas im&amp;aacute;genes..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited001_5F00_576D005C.jpg"&gt;&lt;img height="182" width="242" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited001_5F00_thumb_5F00_209F7F8B.jpg" alt="SGC-Unlimited 001" border="0" title="SGC-Unlimited 001" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited004_5F00_2FA63898.jpg"&gt;&lt;img height="182" width="242" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited004_5F00_thumb_5F00_7008AF7A.jpg" alt="SGC-Unlimited 004" border="0" title="SGC-Unlimited 004" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;18:12 p.m. &lt;a target="_blank" href="http://team.desarrollosnea.com.ar/blogs/fcattay/default.aspx"&gt;Fede&lt;/a&gt;&amp;nbsp;expone sus ideas en la pizarra recordando aquellos tiempos de profesor en la facultad.. &lt;strong&gt;como pez en el agua&lt;/strong&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;20:15 p.m. &lt;strong&gt;Responsables de proyectos Vs. equipo de calidad&lt;/strong&gt; repasando por en&amp;eacute;sima vez los procedimientos de Comercializaci&amp;oacute;n, Planificaci&amp;oacute;n y Producci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited005_5F00_408A1AE1.jpg"&gt;&lt;img height="182" width="242" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited005_5F00_thumb_5F00_5C4ADE72.jpg" alt="SGC-Unlimited 005" border="0" title="SGC-Unlimited 005" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited012_5F00_3CD887DF.jpg"&gt;&lt;img height="182" width="242" src="http://team.desarrollosnea.com.ar/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmorales/SGCUnlimited012_5F00_thumb_5F00_6AA58EFD.jpg" alt="SGC-Unlimited 012" border="0" title="SGC-Unlimited 012" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;22:05 p.m. La &lt;strong&gt;Ley de Murphy&lt;/strong&gt; empieza a tomar protagonismo.&lt;/p&gt;
&lt;p align="justify"&gt;00:55 a.m. En el horno.. corte de energ&amp;iacute;a en todo el Nordeste Argentino. Solo quedaba esperar el restablecimiento del servicio.. &lt;strong&gt;ilusos&lt;/strong&gt;!&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;.. Y HORAS MAS TARDE&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Se restableci&amp;oacute; el servicio el&amp;eacute;ctrico. Se completo las tareas comprometidas. Vinieron los auditores y paso volando el d&amp;iacute;a. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;RESTULTADO&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Una buena &lt;strong&gt;performance&lt;/strong&gt; (y eso que no es Bailando por un Sue&amp;ntilde;o). Mejoramos la primer auditoria, pero queda mucho trabajo por delante.. y bueno.. &lt;strong&gt;de eso de trata &lt;span style="font-size:small;"&gt;&amp;iquest;no?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://team.desarrollosnea.com.ar/aggbug.aspx?PostID=163" width="1" height="1"&gt;</description><category domain="http://team.desarrollosnea.com.ar/blogs/dmorales/archive/tags/Team/default.aspx">Team</category><category domain="http://team.desarrollosnea.com.ar/blogs/dmorales/archive/tags/ISO+9001/default.aspx">ISO 9001</category></item></channel></rss>
