<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Carlos Walzer : .NET</title><link>http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx</link><description>Tags: .NET</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Libro en Español: Visual Basic.NET - Programe con Visual Studio 2008</title><link>http://msmvps.com/blogs/cwalzer/archive/2009/04/20/libro-visual-basic-net-visual-studio-2008.aspx</link><pubDate>Mon, 20 Apr 2009 13:56:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1689160</guid><dc:creator>cwalzer</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1689160</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2009/04/20/libro-visual-basic-net-visual-studio-2008.aspx#comments</comments><description>&lt;p&gt;La &lt;a href="http://www.ediciones-eni.com/?partner=ES10003&amp;amp;xtor=AL-10003"&gt;&lt;strong&gt;Editorial Eni&lt;/strong&gt;&lt;/a&gt; public&amp;oacute; en este mes el libro &lt;strong&gt;&lt;a target="_blank" href="http://www.editions-eni.fr/Libros/Visual-Basic-NET-VB-NET-Programe-con-Visual-Studio-2008/.5_93cbd8bd-93f5-4b81-85c1-b1b2a79b732b_cb207c23-666a-4737-bffb-443d2fd0c3de_e9db69da-a0c3-440f-abb7-0e271b4f75a5_6_0_6782c292-9e0b-46fc-a5f2-1aabff858726.html?partner=ES10003&amp;amp;xtor=AL-10003"&gt;Visual Basic .NET (VB.NET) Programe con Visual Studio 2008&lt;/a&gt;&lt;/strong&gt; del cual particip&amp;eacute; en la traducci&amp;oacute;n y adaptaci&amp;oacute;n del Franc&amp;eacute;s al Espa&amp;ntilde;ol.&lt;/p&gt;
&lt;p&gt;Autor : &lt;strong&gt;Thierry GROUSSARD&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Adaptaci&amp;oacute;n al Espa&amp;ntilde;ol: &lt;strong&gt;Carlos WALZER&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cwalzer.Imagenes/VB2008Big.gif" alt="" /&gt;&lt;/p&gt;
&lt;h5&gt;Presentaci&amp;oacute;n&lt;/h5&gt;
&lt;p&gt;Este libro sobre VB.Net est&amp;aacute; dirigido a los desarrolladores, incluso principiantes, que quieran dominar Visual Basic.NET. Despu&amp;eacute;s de la descripci&amp;oacute;n del entorno de desarrollo (&lt;b&gt;Visual Studio 2008&lt;/b&gt;), el lector descubrir&amp;aacute; las bases de la &lt;b&gt;programaci&amp;oacute;n orientada a objetos&lt;/b&gt; con VB.NET y evolucionar&amp;aacute; progresivamente hacia su uso con el desarrollo de aplicaciones &lt;b&gt;Windows Forms&lt;/b&gt;. Los numerosos ejemplos y los consejos sobre la utilizaci&amp;oacute;n de las herramientas de depuraci&amp;oacute;n le proporcionar&amp;aacute;n una valiosa ayuda durante el desarrollo de una aplicaci&amp;oacute;n. &lt;br /&gt;Un cap&amp;iacute;tulo dedicado al acceso a las bases de datos con ayuda de &lt;b&gt;ADO.NET 2.0&lt;/b&gt; y de &lt;b&gt;SQL&lt;/b&gt; le permitir&amp;aacute; evolucionar hacia el desarrollo de aplicaciones usuario-servidor. Se presentan y detallan las &lt;b&gt;potentes funcionalidades de LINQ&lt;/b&gt; que facilitan el acceso y la manipulaci&amp;oacute;n de datos. Igualmente, se presenta el lenguaje &lt;b&gt;XML&lt;/b&gt;, que facilita el intercambio de informaci&amp;oacute;n con otras aplicaciones. Los usuarios de las versiones anteriores descubrir&amp;aacute;n las novedades y mejoras en esta versi&amp;oacute;n 2008 (&lt;b&gt;tipos que aceptan valores NULL, m&amp;eacute;todos parciales, clases an&amp;oacute;nimas&lt;/b&gt;,...) permitiendo desarrollar a&amp;uacute;n m&amp;aacute;s r&amp;aacute;pida y f&amp;aacute;cilmente las aplicaciones para el &lt;b&gt;framework .NET 3.5&lt;/b&gt; y para &lt;b&gt;Windows Vista&lt;/b&gt;. &lt;br /&gt;La distribuci&amp;oacute;n de una aplicaci&amp;oacute;n tambi&amp;eacute;n se presenta con el uso de &lt;b&gt;Windows Installer&lt;/b&gt; y de la tecnolog&amp;iacute;a &lt;b&gt;ClickOnce&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.editions-eni.fr/Libros/Visual-Basic-NET-VB-NET-Programe-con-Visual-Studio-2008/.5_93cbd8bd-93f5-4b81-85c1-b1b2a79b732b_cb207c23-666a-4737-bffb-443d2fd0c3de_e9db69da-a0c3-440f-abb7-0e271b4f75a5_6_0_6782c292-9e0b-46fc-a5f2-1aabff858726.html?partner=ES10003&amp;amp;xtor=AL-10003"&gt;Mas infomaci&amp;oacute;n...&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Nota: No hay un distribuidor en Sudam&amp;eacute;rica, con lo que la editorial recomienda dos opciones:&lt;/em&gt;&lt;em&gt; &lt;br /&gt;&lt;/em&gt;&lt;em&gt;1 )cursar una solicitud de presupuesto a trav&amp;eacute;s de nuestra web (tras lo cual se cotizan los gastos de env&amp;iacute;o, y el cliente acepta o no el pedido) &lt;br /&gt;2) comprarlo a trav&amp;eacute;s de Celesa, &lt;a href="http://www.celesa.com/"&gt;www.celesa.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1689160" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/libro/default.aspx">libro</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VB/default.aspx">VB</category></item><item><title>Materiales: Arquitecturas de presentacion WPF</title><link>http://msmvps.com/blogs/cwalzer/archive/2009/03/25/materiales-arquitecturas-de-presentacion-wpf.aspx</link><pubDate>Wed, 25 Mar 2009 15:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1681392</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1681392</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2009/03/25/materiales-arquitecturas-de-presentacion-wpf.aspx#comments</comments><description>&lt;p&gt;Aqui est&amp;aacute;n los materiales de la charla que dimos con&amp;nbsp;&lt;a target="_blank" href="http://weblogs.shockbyte.com.ar/rodolfof/Default.aspx"&gt;&lt;span style="color:#3399ff;"&gt;Rodolfo Finochietti&lt;/span&gt;&lt;/a&gt;&amp;nbsp;en el &lt;a href="http://www.puertadeenlace.net/run09"&gt;Run 09&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arquitecturas de presentaci&amp;oacute;n de WPF&lt;br /&gt;&lt;/strong&gt;WPF no es solo un framework para desarrollar aplicaciones de gran riqueza visual, tambi&amp;eacute;n incorpora caracter&amp;iacute;sticas que facilitan la implementaci&amp;oacute;n de patrones que simplifican el desarrollo en la capa de presentaci&amp;oacute;n. En esta charla veremos c&amp;oacute;mo implementar arquitecturas de presentaci&amp;oacute;n que utilizando dichas caracter&amp;iacute;sticas permiten desarrollar aplicaciones mas escalables y mantenibles. &lt;/p&gt;
&lt;p&gt;Descargar&amp;nbsp;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cwalzer.conferencias/ArcPresWpfSilverlight.zip"&gt;Presentaci&amp;oacute;n&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;El contenido de la presentaci&amp;oacute;n fue basado en dos art&amp;iacute;culos de la revista MSND Magazine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx"&gt;WPF Apps With The Model-View-ViewModel Design Pattern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx"&gt;Model-View-ViewModel in Silverlight 2 Apps&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gracias a todos por escucharnos :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1681392" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Arquitectura/default.aspx">Arquitectura</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/MVP/default.aspx">MVP</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/WPF/default.aspx">WPF</category></item><item><title>CodeCamp - Buenos Aires 2008</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/09/10/code-camp-buenos-aires-2008.aspx</link><pubDate>Thu, 11 Sep 2008 00:29:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1647444</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1647444</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/09/10/code-camp-buenos-aires-2008.aspx#comments</comments><description>&lt;div class="event_profile_title"&gt;
&lt;h3&gt;Evento Acad&amp;eacute;mico gratuito con m&amp;aacute;s de 40 conferencias sobre tecnolog&amp;iacute;as Microsoft dicatadas por referentes de la industria.&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="event_profile_information"&gt;
&lt;table cellspacing="0" class="info_table"&gt;


&lt;tr&gt;
&lt;td class="label"&gt;Fecha:&lt;/td&gt;
&lt;td&gt;
&lt;div class="datawrap"&gt;Saturday, October 4, 2008&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="label"&gt;Hora:&lt;/td&gt;
&lt;td&gt;
&lt;div class="datawrap"&gt;10:00am - 7:00pm&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="label"&gt;Lugar:&lt;/td&gt;
&lt;td&gt;
&lt;div class="datawrap"&gt;UAI&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="label"&gt;Direcci&amp;oacute;n:&lt;/td&gt;
&lt;td&gt;
&lt;div class="datawrap"&gt;San Juan 983&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="label"&gt;Ciudad:&lt;/td&gt;
&lt;td&gt;
&lt;div class="datawrap"&gt;Buenos Aires, Argentina&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="label"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;
&lt;div class="datawrap"&gt;
&lt;div class="clearfix"&gt;
&lt;div style="DISPLAY:none;" id="maps_options_menu"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="DISPLAY:none;"&gt;&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;/div&gt;
&lt;div class="UIProfileBox_Container"&gt;
&lt;div class="UIProfileBox_Box"&gt;
&lt;h3 class="UIProfileBox_Header clearfix"&gt;&lt;span class="UIProfileBox_Title"&gt;Descripci&amp;oacute;n&lt;/span&gt;&lt;/h3&gt;
&lt;div class="UIProfileBox_Content"&gt;
&lt;div class="description UIOneOff_Container"&gt;&amp;bull; Novedades en Tecnolog&amp;iacute;as Microsoft&lt;br /&gt;&amp;bull; M&amp;aacute;s de 40 conferencias t&amp;eacute;cnicas de Referentes de la Industria&lt;br /&gt;&amp;bull; Sorteos entre los asistentes&lt;br /&gt;&lt;br /&gt;M&amp;aacute;s detalles en el sitio del evento: &lt;a rel="nofollow" target="_blank" href="http://www.microsoft.com.ar/codecamp/"&gt;&lt;span style="color:#3b5998;"&gt;http://www.microsoft.com.ar/codecamp/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agenda&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;10:00 a 10:30 Registraci&amp;oacute;n - Recepci&amp;oacute;n&lt;br /&gt;&lt;br /&gt;10:30 a 11:00 Apertura y revisi&amp;oacute;n de agenda&lt;br /&gt;&lt;br /&gt;11:15 a 12:15 &lt;br /&gt;Programando por un sue&amp;ntilde;o - Patricio Jutard &lt;br /&gt;Introducci&amp;oacute;n a ASP.NET MVC - Pablo Cibraro &lt;br /&gt;Videojuegos Multiplataforma con XNA - Augusto Chesini &lt;br /&gt;Todo Lo Que Hay Que Saber Acerca De Linq - Mat&amp;iacute;as Bonaventura &lt;br /&gt;&lt;strong&gt;Mejoras De Desempe&amp;ntilde;o De Aplicaciones .Net - Carlos Walzer &lt;br /&gt;&lt;/strong&gt;Gesti&amp;oacute;n De Proyectos De Software: Un Enfoque Pr&amp;aacute;ctico - Maximiliano Menasches e Ignacio L&amp;oacute;pez &lt;br /&gt;Windows Presentation Foundation Para Desarrolladores - Andres Aguiar &lt;br /&gt;Python En La Plataforma .Net - Mart&amp;iacute;n Sal&amp;iacute;as &lt;br /&gt;Introducci&amp;oacute;n A Grafos - Pablo Gauna &lt;br /&gt;Wamp - Maximo Naccarato &lt;br /&gt;IIS7 4x4 - Alberto Ortega Y Horacio Gonzalez&lt;br /&gt;&lt;br /&gt;12:30 a 13:30 &lt;br /&gt;Andamios en la web: Desarrollo &amp;aacute;gil con ASP.NET Dynamic Data - Miguel Saez &lt;br /&gt;Desarrollo web multi-capa con Volta: un paso hacia adelante - Pablo Zaidenvoren Y Rodolfo Finochietti &lt;br /&gt;Wpf 3d Y F&amp;iacute;sica - Dami&amp;aacute;n Galletini &lt;br /&gt;Microsoft Sql Server 2008 &amp;ndash; Introducci&amp;oacute;n A &amp;ldquo;Microsoft Sql Server Data Platform&amp;rdquo; - Johnny Halife &lt;br /&gt;Patrones De Arquitectura Con C# - Mat&amp;iacute;as Iacono &lt;br /&gt;Vsts Y Scrum - Daniel Zacharias &lt;br /&gt;Creando Aplicaciones En Wpf - Jos&amp;eacute; Villagr&amp;aacute;n &lt;br /&gt;Parallel Extensions - Nicol&amp;aacute;s Padula Y Mauricio Lopez &lt;br /&gt;Entorno De Desarrollo Para Windows Mobile 6 - Leonardo Natale &lt;br /&gt;Windows Server 2008 + Iis 7 - Augusto Alvarez &lt;br /&gt;Desmitificando Windows Vista - Mariano Rempel&lt;br /&gt;&lt;br /&gt;13:30 a 14:45 &lt;br /&gt;Almuerzo &amp;ndash; Demo Fest&lt;br /&gt;&lt;br /&gt;15:00 a 16:00 &lt;br /&gt;El futuro de la ingenier&amp;iacute;a de software - Santiago Ceria &lt;br /&gt;Silverlight 2.0 Beta 2 - Construyendo Aplicaciones Web Atractivas Utilizando Microsoft Silverlight - Ivana Tilca &lt;br /&gt;3d Games Technology: Computer Animation - Diego Park &lt;br /&gt;Ado.Net Entity Framework En Acci&amp;oacute;n - Maximiliano Menasches Y Hern&amp;aacute;n Nobile &lt;br /&gt;T&amp;eacute;cnicas Para Mejorar La Performance En Sitios Web - Juan Ladetto &lt;br /&gt;Scrum - Patricio Jutard &lt;br /&gt;&amp;iquest;Qu&amp;eacute; Es &amp;quot;Wpf/E&amp;quot;? - Luis Perdomo &lt;br /&gt;Reconocimiento Facial - Armando Meabe &lt;br /&gt;Novedades De Vs 2008 Y Cf 3.5 Para Wm6 - Leonardo Natale &lt;br /&gt;Introducci&amp;oacute;n A La Administraci&amp;oacute;n De Sucursales Con Windows Server 2008 - Leonardo Amaya &lt;br /&gt;Seguridad En Windows Server 2008 - Leandro Amore&lt;br /&gt;&lt;br /&gt;16:15 a 17:15 &lt;br /&gt;Hyper-V en acci&amp;oacute;n - Alejandro Ponicke Y Leandro Amore &lt;br /&gt;Expression Blend - Marcelo Quevedo &lt;br /&gt;Qu&amp;eacute; Es Linq? - Guillermo Delfino &lt;br /&gt;Programaci&amp;oacute;n Intuitiva De Xml En El Marco .Net (Xlinq) - Mauricio Grimberg &lt;br /&gt;Howto: Performance Y Load Testing - Matias Woloski Y Federico Boerr &lt;br /&gt;&amp;iquest;C&amp;oacute;mo Lograr Un Proyecto Exitoso? - Patricia Scalzone &lt;br /&gt;Construcci&amp;oacute;n De Servicios Rest Con Wcf - Pablo Cibraro &lt;br /&gt;Microsoft Robotics Studio - Mauro Castagnasso &lt;br /&gt;Introducci&amp;oacute;n A Los Conceptos De Generics Y Delegates - Ezequiel Cura &lt;br /&gt;Monitoreo De Aplicaciones Heterog&amp;eacute;neas - Alberto Ortega &lt;br /&gt;Instalando Windows Vista - Francisco Moura&lt;br /&gt;&lt;br /&gt;17:15 a 18:30 &lt;br /&gt;Break &amp;ndash; Demo Fest&lt;br /&gt;&lt;br /&gt;18:45 a 20:00 &lt;br /&gt;Cierre del Evento y Sorteos&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647444" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Video: Metricas de Código en Visual Studio 2008</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/08/06/metricas_5F00_codigo_5F00_visual_5F00_studio_5F00_2008.aspx</link><pubDate>Wed, 06 Aug 2008 14:39:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1643640</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1643640</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/08/06/metricas_5F00_codigo_5F00_visual_5F00_studio_5F00_2008.aspx#comments</comments><description>&lt;p&gt;Este v&amp;iacute;deo muestra como medir y cuantificar el c&amp;oacute;digo de nuestra aplicaciones, contando cantidad de l&amp;iacute;neas, estructuras de control, para poder definir cierto grado de complejidad.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://video.msn.com/video.aspx?vid=888bada0-b744-4baa-87c7-1fa146b2a49a"&gt;&lt;img width="431" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cwalzer.Videos/VideoMetricasCodigo.jpg" height="363" style="border:0;" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Duraci&amp;oacute;n: 4:06&lt;/p&gt;
&lt;p&gt;Extra&amp;iacute;do del &lt;a target="_self" href="http://msmvps.com/blogs/cwalzer/archive/2008/06/25/v-237-deo-herramientas-para-asegurar-la-calidad-utilizando-visual-studio-team-system-2008.aspx"&gt;&lt;span style="color:#3399ff;"&gt;Lanzamiento de Visual Studio 2008&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/08/06/metricas_5F00_codigo_5F00_visual_5F00_studio_5F00_2008.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1643640" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VS+Team+Systems/default.aspx">VS Team Systems</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Video/default.aspx">Video</category></item><item><title>Video: Análisis de Código (FxCop) con Visual Studio 2008 </title><link>http://msmvps.com/blogs/cwalzer/archive/2008/07/29/Analisis_5F00_Codigo_5F00_FxCop_5F00_Visual_5F00_Studio_5F00_2008.aspx</link><pubDate>Wed, 30 Jul 2008 01:43:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1642703</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1642703</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/07/29/Analisis_5F00_Codigo_5F00_FxCop_5F00_Visual_5F00_Studio_5F00_2008.aspx#comments</comments><description>&lt;p&gt;&lt;span class="videoDetailsDescription"&gt;Como Analizar C&amp;oacute;digo (FxCop) con Visual Studio Team Systems 2008&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://video.msn.com/video.aspx?vid=cfd137b3-99f0-4805-b2a7-440ac403c9b3"&gt;&lt;img width="432" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cwalzer.Videos/VideoFxCop.jpg" height="364" style="border:0;margin-top:0px;margin-bottom:0px;" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Duraci&amp;oacute;n: 4:29&lt;/p&gt;
&lt;p&gt;Extra&amp;iacute;do del &lt;a target="_self" href="http://msmvps.com/blogs/cwalzer/archive/2008/06/25/v-237-deo-herramientas-para-asegurar-la-calidad-utilizando-visual-studio-team-system-2008.aspx"&gt;Lanzamiento de Visual Studio 2008&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/07/30/Analisis_5F00_Codigo_5F00_FxCop_5F00_Visual_5F00_Studio_5F00_2008.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1642703" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VS+Team+Systems/default.aspx">VS Team Systems</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Video/default.aspx">Video</category></item><item><title>Video: Mejora de Desempeño (Performance Tuning) con Visual Studio 2008 Team Systems</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/07/28/Performance-tuning-visual-studio.aspx</link><pubDate>Mon, 28 Jul 2008 08:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1642484</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1642484</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/07/28/Performance-tuning-visual-studio.aspx#comments</comments><description>&lt;p&gt;Este video muestra como mejorar el desempe&amp;ntilde;o (Perfoemance Tuning)&amp;nbsp;de las aplicaciones .NET detectando cuellos de botella con Visual Studio Team System 2008&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://video.msn.com/video.aspx?vid=5dd93b43-68c7-4e55-a192-621fba042188"&gt;&lt;img width="431" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cwalzer.Videos/VideoTuningVSTS.jpg" height="366" style="border:0;" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Duraci&amp;oacute;n: 7:51&lt;/p&gt;
&lt;p&gt;Extra&amp;iacute;do del &lt;a target="_self" href="http://msmvps.com/blogs/cwalzer/archive/2008/06/25/v-237-deo-herramientas-para-asegurar-la-calidad-utilizando-visual-studio-team-system-2008.aspx"&gt;Lanzamiento de Visual Studio 2008&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/07/28/Performance-tuning-visual-studio.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1642484" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VS+Team+Systems/default.aspx">VS Team Systems</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Rendimiento/default.aspx">Rendimiento</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Video/default.aspx">Video</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Tuning/default.aspx">Tuning</category></item><item><title>Conferencia: Arquitectura de Aplicaciones .NET</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/06/26/conferencia-arquitectura-de-aplicaciones-net.aspx</link><pubDate>Thu, 26 Jun 2008 08:57:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1637957</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1637957</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/06/26/conferencia-arquitectura-de-aplicaciones-net.aspx#comments</comments><description>&lt;p&gt;Como es habitual, desde hace un par de a&amp;ntilde;os, hoy brindo una charla de Arquitecura de Aplicaciones .NET para alumnos de la Tecnicatura de Sistemas de &lt;a target="_blank" href="http://www.fra.utn.edu.ar/"&gt;Universidad Tecnol&amp;oacute;gica Nacional - Facultad Regional Avellaneda&lt;/a&gt; a punto de graduarse.&lt;/p&gt;
&lt;p&gt;Revisando el material me encontr&amp;eacute; con la grata sorpresa de que el documento &lt;a target="_blank" href="http://msdn.microsoft.com/es-es/library/ms954595.aspx"&gt;Arquitectura de aplicaciones de .NET: Dise&amp;ntilde;o de aplicaciones y servicios&lt;/a&gt;, en el cual se basa la charla, ha sido traducido al Espa&amp;ntilde;ol nuevamente.&lt;/p&gt;
&lt;p&gt;Aqu&amp;iacute; les dejo los links a los materiales actualizados: &lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/Conferencias/Arquitectura%20de%20Aplicaciones%20.NET.zip"&gt;&lt;strong&gt;Materiales&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Y el audio de la presentaci&amp;oacute;n que ocurri&amp;oacute; el a&amp;ntilde;o pasado: &lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/archive/2007/12/04/podcastarqnet.aspx"&gt;&lt;strong&gt;Audio&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/06/26/conferencia-arquitectura-de-aplicaciones-net.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1637957" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Arquitectura/default.aspx">Arquitectura</category></item><item><title>Performance: Datos en Memoria con ADO.NET IV</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/05/20/performance_5F00_memoria_5F00_ado_5F00_net.aspx</link><pubDate>Tue, 20 May 2008 23:50:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1608472</guid><dc:creator>cwalzer</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1608472</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/05/20/performance_5F00_memoria_5F00_ado_5F00_net.aspx#comments</comments><description>&lt;p&gt;En este art&amp;iacute;culo quisiera mostrarles cual es el consumo de memoria de algunas t&amp;eacute;cnicas de acceso a datos. En art&amp;iacute;culos anteriores hemos estudiado y optimizado performance&amp;nbsp;mejorando el tiempo de procesamiento. Como colorario veremos algunos gr&amp;aacute;ficos que siempre ayudan a la comparaci&amp;oacute;n. &lt;/p&gt;
&lt;p&gt;Este art&amp;iacute;culo est&amp;aacute; relacionado con: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msmvps.com/blogs/cwalzer/archive/2007/09/24/anti-pr-225-cticas-i-acceso-a-datos-con-ado-net.aspx"&gt;Performance: Lectura de Datos con ADO.NET&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msmvps.com/blogs/cwalzer/archive/2007/09/24/anti-pr-225-cticas-i-acceso-a-datos-con-ado-net.aspx"&gt;Performance: Lectura de Datos con ADO.NET II&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msmvps.com/blogs/cwalzer/archive/2007/09/24/anti-pr-225-cticas-i-acceso-a-datos-con-ado-net.aspx"&gt;Performance: Lectura de Datos con ADO.NET III&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Presentaci&amp;oacute;n del escenario&lt;/h3&gt;
&lt;p&gt;Este es el contexto en el que estoy haciendo las mediciones: &lt;/p&gt;
&lt;p&gt;Una aplicaci&amp;oacute;n Windows Forms, que utiliza 4 mecanismos para recuperar datos &amp;ldquo;de solo lectura&amp;rdquo; de la base de datos AdvertureWorks alojada en SQL Server 2005: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DataReader cargado en una lista gen&amp;eacute;rica de objetos de entidad&lt;/li&gt;
&lt;li&gt;DataSet&lt;/li&gt;
&lt;li&gt;DataTable&lt;/li&gt;
&lt;li&gt;DataSet tipificado creado con el asistente de Visual Studio 2005&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aqu&amp;iacute; subrayo &amp;ldquo;&lt;span style="text-decoration:underline;"&gt;solo lectura&lt;/span&gt;&amp;rdquo; porque, justamente solo quiero recuperar los datos, y no hacer ninguna operaci&amp;oacute;n sobre ellos. &lt;/p&gt;
&lt;h3&gt;Memoria y Garbage Collector&lt;/h3&gt;
&lt;p&gt;Si bien sabemos que la administraci&amp;oacute;n de la memoria en .NET es un trabajo que le compete al Garbage Collector y que no es terreno en el que debamos hurgar, a no ser que sea por administraci&amp;oacute;n de memoria no manejada, siempre es bueno saber que uso hacemos de &amp;eacute;l. Si bien el Garbage Collector es un mecanismo muy optimizado, y hace un muy buen trabajo de recolecci&amp;oacute;n de basura (memoria no utilizada), tiene sus limitaciones y su costo. Ser&amp;iacute;a una buena actitud de parte nuestra considerar al Garbage Collector como un recurso m&amp;aacute;s, as&amp;iacute; como lo es la memoria. Teniendo en cuenta esto lograr&amp;iacute;amos minimizar su trabajo, lo cual redundar&amp;iacute;a en un mejor rendimiento de nuestra aplicaci&amp;oacute;n. &lt;/p&gt;
&lt;h3&gt;El C&amp;oacute;digo&lt;/h3&gt;
&lt;p&gt;La versi&amp;oacute;n completa del c&amp;oacute;digo podr&amp;aacute;s bajarla de aqu&amp;iacute;. De todas formas d&amp;eacute;mosle un vistazo: &lt;/p&gt;
&lt;p&gt;Esta es la sentencia sql a ejecutar en la base de datos AdventureWorks: &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;Select&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;HumanResources.Employee.EmployeeID, Person.Contact.FirstName,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Person.Contact.MiddleName, Person.Contact.LastName,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HumanResources.Employee.Title, HumanResources.Employee.BirthDate,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Person.Address.AddressLine1, Person.Address.AddressLine2,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Person.Address.City, Person.Address.PostalCode, Person.Contact.EmailAddress,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Person.Contact.Phone, HumanResources.Employee.MaritalStatus, HumanResources.Employee.Gender&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;HumanResources.Employee&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INNER JOIN &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;Person.Contact &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;ON &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;HumanResources.Employee.ContactID = Person.Contact.ContactID&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INNER JOIN &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;HumanResources.EmployeeAddress &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;ON &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;HumanResources.Employee.EmployeeID = HumanResources.EmployeeAddress.EmployeeID&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INNER JOIN &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;Person.Address &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;ON &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;HumanResources.EmployeeAddress.AddressID = Person.Address.AddressID&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;HumanResources.EmployeeAddress.AddressID = Person.Address.AddressID&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;La clase DataAccess &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DataAccess&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;readonly&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; _connString;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;readonly&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; _sqlCmd;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; DataAccess()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _connString = &lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;Password=;User ID=sa;Initial Catalog=AdventureWorks;Data Source=WALZER3&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#008000;"&gt;&lt;span style="font-size:x-small;color:#008000;"&gt;//Obtengo la sentencia SQL que est&amp;aacute; en el archivo de texto Consulta.sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;StreamReader&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; sr = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;StreamReader&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.GetExecutingAssembly().GetManifestResourceStream(&lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;Walzer.Antipracticas.Consulta.sql&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _sqlCmd = sr.ReadToEnd();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DataSet&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; TraerDataSet()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DataSet&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; ds = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; (&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; conn = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(_connString))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlCommand&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; cmd = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlCommand&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.CommandText = &lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;GetEmployees&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Connection = conn;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.CommandType = &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;CommandType&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.StoredProcedure;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlDataAdapter&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; da = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlDataAdapter&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(cmd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ds = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DataSet&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; da.Fill(ds);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; ds;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Employee&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;gt; TraerEmployeesOptimizado()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;List&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Employee&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;gt; employees = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Employee&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;try&lt;br /&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; (&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; conn = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(_connString))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlCommand&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; cmd = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlCommand&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;cmd.CommandText = &lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;GetEmployees&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;cmd.Connection = conn;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;cmd.CommandType = &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;CommandType&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.StoredProcedure;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;conn.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; (&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlDataReader&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; dr = cmd.ExecuteReader())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; colEmployeeId = dr.GetOrdinal(&lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;EmployeeId&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; colFirstName = dr.GetOrdinal(&lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;FirstName&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size:x-small;color:#008000;"&gt;&lt;span style="font-size:x-small;color:#008000;"&gt;// Omito las l&amp;iacute;neas similares por cuesti&amp;oacute;n de lectura&lt;br /&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; colCount = dr.FieldCount;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;[] values = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;[colCount];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; (dr.Read())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Employee&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; employee = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Employee&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dr.GetValues(values);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; employee.EmployeeID = &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Convert&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.ToInt32(values[colEmployeeId]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; employee.FirstName = &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Convert&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.ToString(values[colFirstName]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;"&gt;employees.Add(employee);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;catch&lt;br /&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; employees;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DataTable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; TraerDataTableOptimizado()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#008000;"&gt;&lt;span style="font-size:x-small;color:#008000;"&gt;//Este m&amp;eacute;todo est&amp;aacute; optimizado para cargar un DataTable con datos de SOLO LECTURA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DataTable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; dt = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; (&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; conn = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(_connString))&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Open();&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlCommand&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; cmd = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlCommand&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;();&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;cmd.CommandText = &lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;GetEmployees&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Connection = conn;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.CommandType = &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;CommandType&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.StoredProcedure;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlDataAdapter&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; da = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;SqlDataAdapter&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(cmd);&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;dt = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DataTable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;();&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; da.Fill(dt);&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;catch&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; dt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;El DataSet tipificado fue creado arrastrando la consulta SQL sobre la superficie de dise&amp;ntilde;o del DataSet, lo &amp;uacute;nico que escrib&amp;iacute; fue las siguientes l&amp;iacute;neas para cargar el DataSet tipificado:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;DsEmployeesTableAdapters.&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;GetEmployeesTableAdapter&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; da = &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; Walzer.Antipracticas.DsEmployeesTableAdapters.&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;GetEmployeesTableAdapter&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;();&lt;br /&gt;_dsEmployees = da.GetData();&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Lectura del uso de Memoria&lt;/h3&gt;
&lt;p&gt;Vamos medir el uso de memoria de cada una de estas t&amp;eacute;cnicas de acceso a datos utilizando 3 herramientas: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.jetbrains.com/profiler/"&gt;JetBrains DotTrace 3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://memprofiler.com/"&gt;.NET Memory Profiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/Downloads/details.aspx?familyid=A362781C-3870-43BE-8926-862B40AA0CD0&amp;amp;displaylang=en"&gt;CLR Profiler 2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El CLR Profiler nos revela en una primera lectura de 290 registros representados en memoria por cada una de las t&amp;eacute;cnicas.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV02.png"&gt;&lt;img border="0" width="922" src="http://msmvps.com/blogs/cwalzer/AP/APIV02.png" height="611" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img border="0" width="1" src="http://msmvps.com/controlpanel/blogs/posteditor.aspx/AP/APIV01.png" height="1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;En este gr&amp;aacute;fico podemos observar que el objeto del tipo AntiPracticas.frmMemoria, que es nuestra ventana, y sus referenciados consumen 836 Kb. Aunque la variable que apunta a esta estructura es de solo 368 bytes. &lt;/p&gt;
&lt;p&gt;AntiPracticas.frmMemoria tiene cuatro campos privados que apuntan a: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un DataSet Tipado (DsEmployees.GetEmployeesDataTable): 313 Kb&lt;/li&gt;
&lt;li&gt;un DataSet (Data.DataSet): 185 Kb&lt;/li&gt;
&lt;li&gt;un DataTable (Data.DataTable ): 184 Kb&lt;/li&gt;
&lt;li&gt;una colecci&amp;oacute;n gen&amp;eacute;rica de objetos del tipo Employee (Generic.List&amp;lt;T&amp;gt;): 138 Kb&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aqu&amp;iacute; mismo podemos apreciar que el DataSetTipado es la estructura m&amp;aacute;s costosa en cuanto a consumo de memoria. Que no hay casi diferencia entre un DataSet y un DataTable, y que la colecci&amp;oacute;n de objetos es la m&amp;aacute;s barata. No est&amp;aacute; dem&amp;aacute;s destacar que todas las estructuras contienen &amp;ldquo;los mismos datos&amp;rdquo;. &lt;/p&gt;
&lt;p&gt;La misma informaci&amp;oacute;n podemos verla en JetBrains DotTrace.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV03.png"&gt;&lt;img border="0" width="1009" src="http://msmvps.com/blogs/cwalzer/AP/APIV03.png" height="519" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/WindowsLiveWriter/AntiPrcticas.NETDatosenMemoriaconADO.NET_A660/clip_image004_2.jpg"&gt;&lt;img border="0" width="1" src="http://msmvps.com/blogs/cwalzer/AP/APIV02.png" height="1" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Observen la columna &amp;ldquo;Held Memory, bytes&amp;rdquo;, que es la memoria referenciada por cada instancia: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;_dsEmployees (Walzer.Antipracticas.DsEmployees.GetEmployeesDataTable)&lt;/li&gt;
&lt;li&gt;_ds (System.Data.DataSet)&lt;/li&gt;
&lt;li&gt;_dt (System.Data.DataTable)&lt;/li&gt;
&lt;li&gt;_employees (System.Collection.Generic.List&amp;lt;Employee&amp;gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Estructura de Objetos en memoria&lt;/h3&gt;
&lt;p&gt;Comparemos en las siguientes dos capturas la complejidad de una y otra estructura, las cuales almacenan los mismos datos, de solo lectura en nuestro caso. &lt;/p&gt;
&lt;p&gt;La primera figura nos muestra la lista gen&amp;eacute;rica _employees, la cual est&amp;aacute; implementada internamente por un vector de _items, que contiene un conjunto de objetos Employee, la cual contiene finalmente los datos. &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV04.png"&gt;&lt;img border="0" width="1009" src="http://msmvps.com/blogs/cwalzer/AP/APIV04.png" height="636" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Observemos ahora la estructura de un DataSet tipificado, y el camino para llegar al dato final. &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV05.png"&gt;&lt;img border="0" width="1009" src="http://msmvps.com/blogs/cwalzer/AP/APIV05.png" height="720" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;La estructura es mucho m&amp;aacute;s compleja, pero no perdamos de vista que un DataSet fue dise&amp;ntilde;ado con la premisa de prop&amp;oacute;sito general, y mucho de su funcionalidad es &amp;uacute;til. Debemos usar nuestro criterio a la hora de decidir que es mejor para nuestro sistema. &lt;/p&gt;
&lt;h3&gt;Inspeccionado contenido de las variables&lt;/h3&gt;
&lt;p&gt;Usemos ahora la herramienta .NET Memory Profiler para ver el contenido de un objeto del tipo Employee. Esta figura nos muestra las referencias a la que hace este objeto, que son System.String. &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV06.png"&gt;&lt;img border="0" width="1000" src="http://msmvps.com/blogs/cwalzer/AP/APIV06.png" height="543" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Pero, &amp;iquest;d&amp;oacute;nde est&amp;aacute; el campo _idEmployee que es del tipo int o _birthDate que es de tipo DateTime? Bien, estos est&amp;aacute;n contenidos en el mismo espacio de memoria que el objeto del tipo Employee ya que son tipos b&amp;aacute;sicos, int y ulong respectivamente. En cambio System.String es una referencia al espacio de memoria donde est&amp;aacute; guardada la cadena de caracteres. La solapa Field Values nos muestra el contenido de la instancia #12,729 del objeto del tipo Employee. Adem&amp;aacute;s de esta informaci&amp;oacute;n podemos apreciar, cuales son los caminos al Root de este objeto, y cu&amp;aacute;l fue el Call Stack que instanci&amp;oacute; este objeto en memoria. &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV07.png"&gt;&lt;img border="0" width="1000" src="http://msmvps.com/blogs/cwalzer/AP/APIV07.png" height="543" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;Cantidad de Objetos referenciados&lt;/h3&gt;
&lt;p&gt;Un dato que no es menor aqu&amp;iacute; es el que nos muestra la columna &amp;ldquo;Held Objects&amp;rdquo;. Esta nos dice cuantos objetos son referenciados en toda la estructura en memoria. &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV08.png"&gt;&lt;img border="0" width="1009" src="http://msmvps.com/blogs/cwalzer/AP/APIV08.png" height="500" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;En este caso la cantidad de filas en memoria para cada estructura es de 10, valor que se asemeja m&amp;aacute;s a la realidad, ya que no es buena pr&amp;aacute;ctica pasar todas las filas del resultado entre capas, sino usar t&amp;eacute;cnicas de paginaci&amp;oacute;n. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;_dsEmployees (Walzer.Antipracticas.DsEmployees.GetEmployeesDataTable): 320&lt;/li&gt;
&lt;li&gt;_ds (System.Data.DataSet): 213&lt;/li&gt;
&lt;li&gt;_dt (System.Data.DataTable): 206&lt;/li&gt;
&lt;li&gt;_employees (System.Collection.Generic.List&amp;lt;Employee&amp;gt;): 122&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;M&amp;aacute;s all&amp;aacute; de la cantidad de memoria en bytes, la cantidad de objetos referenciados nos da una idea del trabaj&amp;oacute; que tendr&amp;aacute; el Garbage Collector al momento de deshacerse de estos objetos. Cuantas m&amp;aacute;s referencias en memoria, m&amp;aacute;s recursos consumidos por este algoritmo. &lt;/p&gt;
&lt;h3&gt;Comparaci&amp;oacute;n de resultados&lt;/h3&gt;
&lt;p&gt;Veamos una serie de gr&amp;aacute;ficos que resumen las lecturas realizadas. Tom&amp;eacute; lecturas de 290 registros, 10 registros (que es el t&amp;iacute;pico caso del tama&amp;ntilde;o de una p&amp;aacute;gina cuando se realiza paginaci&amp;oacute;n) y 1 registro.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" style="MARGIN-LEFT:-0.9pt;WIDTH:291pt;BORDER-COLLAPSE:collapse;" class="MsoNormalTable"&gt;

&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:windowtext 1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;Bytes en Memoria&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;290 reg&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;10 reg&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;1 reg&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;DataSet&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;189112&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;19028&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;14856&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;DataTable&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;188848&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;18764&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;14588&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;List&amp;lt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;141774&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;4790&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;514&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15.75pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;DataSet Tipado (wizard)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;319478&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;33114&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span style="color:#000000;"&gt;28902&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;i&gt;Fig1: Tabla Comparativa de Bytes en Memoria&lt;/i&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV09.png"&gt;&lt;img border="0" width="500" src="http://msmvps.com/blogs/cwalzer/AP/APIV09.png" height="300" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Fig2: Bytes en memoria para 290 registros&lt;/i&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV010.png"&gt;&lt;img border="0" width="500" src="http://msmvps.com/blogs/cwalzer/AP/APIV010.png" height="300" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Fig3: Bytes en memoria de 10 y 1 registro.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" style="MARGIN-LEFT:-0.9pt;WIDTH:291pt;BORDER-COLLAPSE:collapse;" class="MsoNormalTable"&gt;

&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:windowtext 1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;Referencias&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;290 reg&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;10 reg&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#4f81bd 0% 50%;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;b&gt;&lt;span&gt;1 reg&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;DataSet&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;3581&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;213&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;105&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;DataTable&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;3574&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;206&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;98&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;List&amp;lt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;3477&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;122&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15pt;"&gt;&lt;b&gt;&lt;span&gt;13&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15.75pt;"&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:1pt solid;WIDTH:146pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span&gt;DataSet Tipado (wizard)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:49pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span&gt;3788&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span&gt;300&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT:1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;WIDTH:48pt;PADDING-TOP:0in;BORDER-BOTTOM:1pt solid;HEIGHT:15.75pt;"&gt;&lt;b&gt;&lt;span&gt;192&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;p&gt;&lt;i&gt;Fig4: Tabla Comparativa de Objetos Referenciados&lt;/i&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV011.png"&gt;&lt;img border="0" width="502" src="http://msmvps.com/blogs/cwalzer/AP/APIV011.png" height="300" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Fig5: Instancias referenciadas para 290 registros&lt;/i&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/AP/APIV012.png"&gt;&lt;img border="0" width="500" src="http://msmvps.com/blogs/cwalzer/AP/APIV012.png" height="300" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Fig6: Instancias referenciadas para 10 y 1 registro&lt;/i&gt; &lt;/p&gt;
&lt;p&gt;Estos gr&amp;aacute;ficos muestran claramente que la t&amp;eacute;cnica m&amp;aacute;s econ&amp;oacute;mica es pasar entre capas una lista gen&amp;eacute;rica de un tipo espec&amp;iacute;fico. Y que la ferreter&amp;iacute;a utilizada por las estructuras del tipo DataSet se puede despreciar cuanto mayor es el volumen que contienen. &lt;/p&gt;
&lt;h3&gt;Conclusi&amp;oacute;n&lt;/h3&gt;
&lt;p&gt;Hemos comprobado que el uso correcto de las t&amp;eacute;cnicas de acceso a datos en ADO.NET nos permite lograr un mayor rendimiento en nuestras aplicaciones. Tambi&amp;eacute;n hemos aprendido algo de c&amp;oacute;mo funciona internamente ADO.NET, y como son las estructuras en memoria y el uso que se hace de ellas. &lt;/p&gt;
&lt;p&gt;Siempre es bueno conocer c&amp;oacute;mo funcionan internamente los frameworks que utilizamos para construir nuestras aplicaciones para poner en la balanza, facilidad y agilidad de uso contra rendimiento y consumo de recursos.&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/05/21/performance_5F00_memoria_5F00_ado_5F00_net.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1608472" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Anti+Practicas/default.aspx">Anti Practicas</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Cazador+de+Mitos+.NET/default.aspx">Cazador de Mitos .NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item><item><title>Herramientas para asegurar la calidad utilizando Visual Studio Team Systems</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/04/29/herramientas-para-asegurar-la-calidad-utilizando-visual-studio-team-systems.aspx</link><pubDate>Tue, 29 Apr 2008 12:43:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1608595</guid><dc:creator>cwalzer</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1608595</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/04/29/herramientas-para-asegurar-la-calidad-utilizando-visual-studio-team-systems.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Est&amp;aacute; ocuriendo ahora en l&amp;iacute;nea&amp;nbsp;el &lt;a target="_blank" href="http://www.microsoft.com/latam/lanzamientoedicionespecial2008"&gt;Lanzamiento de Visual Studio 2008&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;En &amp;eacute;l podr&amp;aacute;n ver mi charla:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;strong&gt;Herramientas para asegurar la calidad utilizando Visual Studio Team Systems&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Descripci&amp;oacute;n:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Aseguramiento de Calidad con Visual Studio 2008. Web Testing, An&amp;aacute;lisis de Rendimiento, Profiling de C&amp;oacute;digo, An&amp;aacute;lisis y M&amp;eacute;tricas de C&amp;oacute;digo&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Materiales: &lt;a href="http://msmvps.com/blogs/cwalzer/Conferencias/Walzer-QAconTeamSystem-Launch2008.zip"&gt;Bajar de aqu&amp;iacute;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/04/29/herramientas-para-asegurar-la-calidad-utilizando-visual-studio-team-systems.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1608595" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VS+Team+Systems/default.aspx">VS Team Systems</category></item><item><title>Como saber si un assembly esta compilado en modo Debug o Release [Ampliado]</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/04/28/assemblydebugrelease.aspx</link><pubDate>Mon, 28 Apr 2008 08:20:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1578322</guid><dc:creator>cwalzer</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1578322</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/04/28/assemblydebugrelease.aspx#comments</comments><description>&lt;p&gt;En estos d&amp;iacute;as me top&amp;eacute; con la necesidad de conocer cual era el modo en el cual fue compilado cierto assembly. La primer herramienta a la que acud&amp;iacute; me di&amp;oacute; una respuesta: &lt;a target="_blank" href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector de Lutz Roeder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;El compilador agrega el attributo DebuggableAttribute como informaci&amp;oacute;n del assembly. Los modos de debug fijados por el compilador depender&amp;aacute;n de los par&amp;aacute;metros que le pasemos al compilador por l&amp;iacute;nea de comandos o el tipo de compilaci&amp;oacute;n que definamos en el proyecto de Visual Studio.&lt;/p&gt;
&lt;p&gt;En el caso de haber compilado con Visual Studio 2005 &amp;oacute; 2008 en modo &lt;strong&gt;Release&lt;/strong&gt;, nos encontraremos con la siguiente l&amp;iacute;nea:&lt;br /&gt;&lt;br /&gt;[&lt;span style="color:#1000a0;"&gt;assembly:&lt;/span&gt; &lt;span style="color:#006018;"&gt;Debuggable&lt;/span&gt;(&lt;span style="color:#006018;"&gt;DebuggableAttribute&lt;/span&gt;.&lt;span style="color:#006018;"&gt;DebuggingModes&lt;/span&gt;.&lt;span style="color:#006018;"&gt;IgnoreSymbolStoreSequencePoints&lt;/span&gt;)]&lt;br /&gt;&lt;br /&gt;En caso de haber compilado en modo &lt;strong&gt;Debug&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;[&lt;span style="color:#1000a0;"&gt;assembly:&lt;/span&gt; &lt;span style="color:#006018;"&gt;Debuggable&lt;/span&gt;(&lt;span style="color:#006018;"&gt;DebuggableAttribute&lt;/span&gt;.&lt;span style="color:#006018;"&gt;DebuggingModes&lt;/span&gt;.&lt;span style="color:#006018;"&gt;DisableOptimizations&lt;/span&gt; | &lt;span style="color:#006018;"&gt;DebuggableAttribute&lt;/span&gt;.&lt;span style="color:#006018;"&gt;DebuggingModes&lt;/span&gt;.&lt;span style="color:#006018;"&gt;EnableEditAndContinue&lt;/span&gt; | &lt;span style="color:#006018;"&gt;DebuggableAttribute&lt;/span&gt;.&lt;span style="color:#006018;"&gt;DebuggingModes&lt;/span&gt;.&lt;span style="color:#006018;"&gt;IgnoreSymbolStoreSequencePoints&lt;/span&gt; | &lt;span style="color:#006018;"&gt;DebuggableAttribute&lt;/span&gt;.&lt;span style="color:#006018;"&gt;DebuggingModes&lt;/span&gt;.&lt;span style="color:#006018;"&gt;Default&lt;/span&gt;)]&lt;/p&gt;
&lt;p&gt;Les recomiendo la lectura de la documnetaci&amp;oacute;n correspondiente a los&amp;nbsp;valores del enumerado&amp;nbsp;&lt;a target="_blank" href="http://msdn2.microsoft.com/es-es/library/system.diagnostics.debuggableattribute.debuggingmodes.aspx"&gt;&lt;strong&gt;System.Diagnostics.DebuggableAttributes.DebuggingModes&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A continuaci&amp;oacute;n un ejemplo de c&amp;oacute;digo que revela&amp;nbsp;el modo de compilaci&amp;oacute;n:&lt;br /&gt;La propiedad &lt;strong&gt;&lt;a target="_blank" href="http://msdn2.microsoft.com/es-es/library/system.diagnostics.debuggableattribute.isjittrackingenabled.aspx"&gt;DebuggableAttributes.IsJITTrackingEnabled&lt;/a&gt;&lt;/strong&gt; controla si en tiempo de ejecuci&amp;oacute;n el CLR&amp;nbsp;hace un seguimiento de la informaci&amp;oacute;n que es importante para el depurador mientras se genera el c&amp;oacute;digo. Esta informaci&amp;oacute;n contribuye a que el depurador mejore la depuraci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;
&lt;p&gt;static&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; Main(&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;[] args)&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; filePath = args[0]; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assembly&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; asm = &lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.LoadFile(&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Path&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.GetFullPath(filePath));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; (&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;Attribute&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; att &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; asm.GetCustomAttributes(&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; (att &lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;is&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; System.Diagnostics.&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DebuggableAttribute&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.WriteLine(&lt;/span&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&lt;span style="font-size:x-small;color:#a31515;"&gt;&amp;quot;Modo Debug: {0}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;,((&lt;/span&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;&lt;span style="font-size:x-small;color:#2b91af;"&gt;DebuggableAttribute&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;)att).IsJITTrackingEnabled);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/04/28/assemblydebugrelease.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1578322" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>MSDN Briefing: Lanzamiento Visual Studio 2008, SQL Server 2008, Windows 2008</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/04/25/msdn-briefing-lanzamiento-visual-studio-2008-sql-server-2008-windows-2008.aspx</link><pubDate>Fri, 25 Apr 2008 10:25:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1604012</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1604012</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/04/25/msdn-briefing-lanzamiento-visual-studio-2008-sql-server-2008-windows-2008.aspx#comments</comments><description>&lt;p&gt;Este a&amp;ntilde;o Technet y MSDN organizan un lanzamiento en l&amp;iacute;nea para p&amp;uacute;blico de habla hispana el cual tendr&amp;aacute; lugar el d&amp;iacute;a 29 de Abril.&lt;/p&gt;
&lt;p&gt;Ya puedes &lt;a target="_blank" href="http://www.microsoft.com/latam/lanzamientoedicionespecial2008/preshow.aspx"&gt;ingresar&lt;/a&gt; si quieres y ver el material de lectura previa.&lt;/p&gt;
&lt;p&gt;El d&amp;iacute;a del evento, adem&amp;aacute;s de poder ver las presentaciones multimedia, podr&amp;aacute;s interactuar en un chat con los expertos de las diversas tecnolog&amp;iacute;as presentadas.&lt;/p&gt;
&lt;p&gt;Yo estar&amp;eacute; ah&amp;iacute; hablando de &lt;strong&gt;Herramientas para Asegurar la Calidad utilizando Visual Studio Team System 2008&lt;/strong&gt;. &lt;a target="_blank" href="http://download.microsoft.com/download/4/2/D/42D36502-7770-4220-AEA7-7A7765BD3719/Walzer-QAconTeamSystem-Launch2008.pdf"&gt;Lectura previa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cualquier duda que pueda surgir de esta presentaci&amp;oacute;n podr&amp;aacute;n charlar conmigo el mismo d&amp;iacute;a 29 de Abril:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.microsoft.com/latam/lanzamientoedicionespecial2008/preshowagenda.aspx"&gt;Descubre las novedades de Visual Studio 2008 y el .net Framework en desarrollo Web&lt;/a&gt;&lt;/strong&gt; (Silverlight 2.0, ASP.NET 3.5, ASP.NET AJAX, MVC, IIS 7.0)&lt;img width="4" src="http://www.microsoft.com/latam/lanzamientoedicionespecial2008/images/bullet.gif" height="9" alt="" /&gt;&lt;br /&gt;&lt;strong&gt;M&amp;eacute;xico, Costa Rica: &lt;/strong&gt;&lt;br /&gt;10 am (GMT -6) &lt;br /&gt;&lt;img width="4" src="http://www.microsoft.com/latam/lanzamientoedicionespecial2008/images/bullet.gif" height="9" alt="" /&gt;&lt;strong&gt;Per&amp;uacute;, Colombia, Panam&amp;aacute;:&lt;/strong&gt;&lt;br /&gt;11 am (GMT -5) &lt;img width="4" src="http://www.microsoft.com/latam/lanzamientoedicionespecial2008/images/bullet.gif" height="9" alt="" /&gt;&lt;br /&gt;&lt;strong&gt;Venezuela:&lt;/strong&gt;&lt;br /&gt;11.30 am (GMT -4.30) &lt;img width="4" src="http://www.microsoft.com/latam/lanzamientoedicionespecial2008/images/bullet.gif" height="9" alt="" /&gt;&lt;br /&gt;&lt;strong&gt;Chile, Rep. Dominicana y Miami:&lt;/strong&gt;&lt;br /&gt;12 pm (GMT -4) &lt;img width="4" src="http://www.microsoft.com/latam/lanzamientoedicionespecial2008/images/bullet.gif" height="9" alt="" /&gt;&lt;br /&gt;&lt;strong&gt;Argentina, Uruguay, Paraguay y Bolivia:&lt;/strong&gt;&lt;br /&gt;13 hs. (GMT -3) &lt;/p&gt;
&lt;p&gt;Los espero&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/04/25/msdn-briefing-lanzamiento-visual-studio-2008-sql-server-2008-windows-2008.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1604012" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VS+Team+Systems/default.aspx">VS Team Systems</category></item><item><title>C# Desarrollo con Visual Studio 2005 [Extracto del Libro]</title><link>http://msmvps.com/blogs/cwalzer/archive/2008/04/12/c-desarrollo-con-visual-studio-2005-extracto-del-libro.aspx</link><pubDate>Sat, 12 Apr 2008 12:39:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1584462</guid><dc:creator>cwalzer</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1584462</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2008/04/12/c-desarrollo-con-visual-studio-2005-extracto-del-libro.aspx#comments</comments><description>&lt;p&gt;La &lt;a target="_blank" href="http://msmvps.com/controlpanel/blogs/:%20http://www.ediciones-eni.com/?partner=ES10003&amp;amp;xtor=AL-10003"&gt;&lt;strong&gt;Editorial Eni&lt;/strong&gt;&lt;/a&gt; public&amp;oacute;&amp;nbsp;el libro de &lt;a target="_blank" href="http://www.editions-eni.fr/Libros/C--Desarrollo-con-Visual-Studio-2005/.5_93cbd8bd-93f5-4b81-85c1-b1b2a79b732b_c1e438c9-38f4-47b1-b953-c838755dbffa_e4ea762d-30e4-40b4-868c-9d0b4e24bed6_6_0_6782c292-9e0b-46fc-a5f2-1aabff858726.html?partner=ES10003&amp;amp;xtor=AL-10003"&gt;&lt;strong&gt;C# Desarrollo con Visual Studio 2005&lt;/strong&gt;&lt;/a&gt;, el cual traduje y adapt&amp;eacute; del Franc&amp;eacute;s al Espa&amp;ntilde;ol.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.editions-eni.fr/Libros/C--Desarrollo-con-Visual-Studio-2005-Contenido/.20_82734322-4720-4a35-86da-2874562c636b_0_0.pdf?partner=ES10003&amp;amp;xtor=AL-10003"&gt;&lt;strong&gt;Contenido del Libro&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.editions-eni.fr/Libros/C--Desarrollo-con-Visual-Studio-2005-Descargar-los-ejemplos-del-libro-1-05-Mo/.21_313ee960-2fd3-4b55-920b-d52288c0efe2_93cbd8bd-93f5-4b81-85c1-b1b2a79b732b_e4ea762d-30e4-40b4-868c-9d0b4e24bed6_6_0_6782c292-9e0b-46fc-a5f2-1aabff858726_0.zip?partner=ES10003&amp;amp;xtor=AL-10003"&gt;&lt;strong&gt;Descargar los ejemplos del libro (1,05 Mo)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Aqui podr&amp;aacute;n ver un extracto del libro &lt;a target="_blank" href="http://www.editions-eni.fr/_Download/ed3346c7-67b1-4d9e-b088-28fa8e345f71/C-_(Extracto-del-Libro).pdf?partner=ES10003&amp;amp;xtor=AL-10003"&gt;&lt;strong&gt;Cap&amp;iacute;tulo 7&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;que trata de Windows Forms.&lt;/p&gt;
&lt;p&gt;&lt;img border="0" width="1" src="http://msmvps.com/blogs/cwalzer/ENI/c20052.jpg" height="1" alt="" /&gt;&lt;img border="0" width="194" src="http://msmvps.com/blogs/cwalzer/ENI/c20052.jpg" height="240" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#1f497d;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;em&gt;&lt;span style="font-size:small;"&gt;Nota: N&lt;/span&gt;&lt;span style="font-size:11pt;color:#1f497d;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;o hay un distribuidor en Sudam&amp;eacute;rica, con lo que&amp;nbsp;la editorial recomienda&amp;nbsp;dos opciones:&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span&gt;&amp;nbsp;&lt;br /&gt;1 )cursar una solicitud de presupuesto a trav&amp;eacute;s de nuestra web (tras lo cual se cotizan los gastos de env&amp;iacute;o, y el cliente acepta o no el pedido)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:11pt;color:#1f497d;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;2) comprarlo a trav&amp;eacute;s de Celesa, &lt;a target="_blank" href="http://www.celesa.com/"&gt;www.celesa.com&lt;/a&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2008/04/12/c-desarrollo-con-visual-studio-2005-extracto-del-libro.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1584462" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Podcast: Arquitectura de Aplicaciones .NET</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/12/04/podcastarqnet.aspx</link><pubDate>Tue, 04 Dec 2007 12:46:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1378263</guid><dc:creator>cwalzer</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1378263</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/12/04/podcastarqnet.aspx#comments</comments><description>&lt;p&gt;Este es el audio correspondiente a la &lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/archive/2007/11/07/arqnetutn.aspx"&gt;conferencia dictada en la Universidad Tecnol&amp;oacute;gica Nacional de Argentina&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.box.net/shared/54nc1h05v4"&gt;Audio&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Agradecer&amp;iacute;a tus comentarios, para saber si este tipo de material es &amp;uacute;til.&amp;nbsp; Si pudiste seguir el audio con las ppts y el ejemplo, o cualquier sugerencia que puedas hacerme.&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2007/12/04/podcastarqnet.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1378263" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Arquitectura/default.aspx">Arquitectura</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/podcast/default.aspx">podcast</category></item><item><title>Conferencia: Arquitectura de Aplicaciones .Net</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/11/07/arqnetutn.aspx</link><pubDate>Wed, 07 Nov 2007 17:29:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1286696</guid><dc:creator>cwalzer</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1286696</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/11/07/arqnetutn.aspx#comments</comments><description>&lt;p&gt;En el marco de una serie de conferencias extracurriculares para la Tecnicatura Superior en Programaci&amp;oacute;n&amp;nbsp;de la &lt;a target="_blank" href="http://www.fra.utn.edu.ar/"&gt;Universidad Tecnol&amp;oacute;gica Nacional - Facultad Regional Avellaneda&lt;/a&gt;, dicto hoy una conferencia titulada:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arquitectura de Aplicaciones .NET&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La charla est&amp;aacute; basada en el documento &lt;a target="_blank" href="http://msdn2.microsoft.com/en-us/library/ms954595.aspx"&gt;Application Architecture for .NET: Designing Applications and Services&lt;/a&gt;. Adem&amp;aacute;s presenta un ejemplo que implementa lo especificado en dicho documento.&lt;/p&gt;
&lt;p&gt;Material de descarga:&lt;br /&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/cwalzer/Conferencias/Arquitectura%20de%20Aplicaciones%20.NET.zip"&gt;Presentaci&amp;oacute;n y C&amp;oacute;digo Ejemplo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2007/11/07/arqnetutn.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1286696" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Arquitectura/default.aspx">Arquitectura</category></item><item><title>Clonación de objetos de estructura compleja</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/10/29/clonacion-de-objetos.aspx</link><pubDate>Mon, 29 Oct 2007 14:31:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1273754</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1273754</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/10/29/clonacion-de-objetos.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Introducci&amp;oacute;n:&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;La asignaci&amp;oacute;n de una variable en otra, de tipos complejos, como son la mayor&amp;iacute;a de los objetos instanciados de clases del .NET Framework o clases desarrollados por nosotros, dan por resultado dos variables referenciando al mismo objeto. Este concepto es conocido en otros lenguajes de programaci&amp;oacute;n como punteros.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Siendo as&amp;iacute; que al modificar el atributo de un objeto apuntado por dos variables, veremos reflejados el cambio en ambas variables, ya que las dos apuntan a la misma instancia de la clase. Es decir el objeto vive en memoria una vez sola y tiene dos variables que apuntan a &amp;eacute;l. &lt;span&gt;Por circunstancias de las reglas de negocio es necesario a veces obtener una copia en memoria de un objeto, teniendo as&amp;iacute; dos variables apuntando a 2 objetos distintos que contienen los mismos valores.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Como todos los tipos&amp;nbsp; que desarrollamos en.NET son serializables, podemos usar serializaci&amp;oacute;n de objetos para clonarlos. A continuaci&amp;oacute;n veremos un ejemplo donde utilizamos la t&amp;eacute;cnica de seralizaci&amp;oacute;n de un objeto en un espacio de memoria adicional o &lt;b&gt;MemoryStream&lt;/b&gt;, y creamos una copia del objeto deserializandolo en una nueva instancia.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;a href="http://msmvps.com/blogs/cwalzer/pages/clonaci-243-n-de-objetos-de-estructura-compleja.aspx"&gt;&lt;strong&gt;Art&amp;iacute;culo completo...&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2007/10/29/clonacion-de-objetos.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1273754" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>MSDN Radio en Vivo: Discusión: Técnicas y Herramientas para Mejorar el Rendimiento de Aplicaciones y Bases de Datos</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/10/26/msdn-radio-en-vivo-discusi-243-n-t-233-cnicas-y-herramientas-para-mejorar-el-rendimiento-de-aplicaciones-y-bases-de-datos.aspx</link><pubDate>Fri, 26 Oct 2007 14:44:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1265488</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1265488</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/10/26/msdn-radio-en-vivo-discusi-243-n-t-233-cnicas-y-herramientas-para-mejorar-el-rendimiento-de-aplicaciones-y-bases-de-datos.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:ES;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Durante el &amp;uacute;ltimo mes los expertos de Solid Quality Mentors han estado discutiendo t&amp;eacute;cnicas para medir y mejorar el rendimiento de las aplicaciones. Durante este show de MSDN Radio &amp;uacute;nase a una discusi&amp;oacute;n en vivo sobre c&amp;oacute;mo optimizar sus aplicaciones, herramientas para medir el rendimiento, mejores t&amp;eacute;cnicas de acceso a datos, tips de optimizaci&amp;oacute;n de c&amp;oacute;digo en SQL Server y c&amp;oacute;mo mejorar el rendimiento de OLAP y Analysis Server.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Te esperamos para que puedas evacuar tus dudas y debatir acerca de como mejorar el rendimiento de tus aplicaciones .NET y bases de datos.&lt;br /&gt;&lt;a target="_blank" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?EventID=1032357579&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR"&gt;&lt;strong&gt;http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?EventID=1032357579&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Aprovecho la oportunidad para invitarlos a que vean el WebCast de Gustavo Larriera sobre el tema:&lt;br /&gt;&lt;a target="_blank" href="http://blogs.solidq.com/ES/glarriera/Lists/Posts/Post.aspx?ID=51"&gt;&lt;strong&gt;T&amp;eacute;cnicas de ajuste de rendimiento en SQL Server 2005&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2007/10/26/msdn-radio-en-vivo-discusi-243-n-t-233-cnicas-y-herramientas-para-mejorar-el-rendimiento-de-aplicaciones-y-bases-de-datos.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1265488" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ADO.NET/default.aspx">ADO.NET</category></item><item><title>Accediendo a datos en Excel utilizando ADO.NET y ASP.NET</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/10/24/accediendo-a-datos-en-excel-utilizando-ado-net-y-asp-net.aspx</link><pubDate>Wed, 24 Oct 2007 18:40:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1262329</guid><dc:creator>cwalzer</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1262329</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/10/24/accediendo-a-datos-en-excel-utilizando-ado-net-y-asp-net.aspx#comments</comments><description>&lt;p&gt;No es un hecho poco com&amp;uacute;n el que nos encontremos con la necesidad de acceder desde nuestras aplicaciones, ya sean estas de escritorio (Win32) o de Internet (ASP.NET), a datos almacenados en otros formatos que no sean bases de datos. En este articulo les mostraremos como leer una planilla &lt;b&gt;Excel&lt;/b&gt; subida por un usuario a un sitio Web utilizando &lt;b&gt;ADO.NET&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/blogs/cwalzer/pages/exceladoaspnet.aspx"&gt;Ver art&amp;iacute;culo completo....&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2007/10/24/accediendo-a-datos-en-excel-utilizando-ado-net-y-asp-net.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1262329" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Excel/default.aspx">Excel</category></item><item><title>Jornada en Bs As: Mejoras de desempeño de aplicaciones .NET</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/10/22/jornada-en-bs-as-mejoras-de-desempe-241-o-de-aplicaciones-net.aspx</link><pubDate>Mon, 22 Oct 2007 17:18:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1258517</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1258517</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/10/22/jornada-en-bs-as-mejoras-de-desempe-241-o-de-aplicaciones-net.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;&lt;span id="_ctl0__ctl0__ctl0_Briefdescription1" class="Event_Date"&gt;&lt;span id="_ctl0__ctl0__ctl0_Briefdescription1" class="Event_Date"&gt;Veremos c&amp;oacute;mo detectar y diagnosticar problemas de desempe&amp;ntilde;o y mal uso de la memoria de aplicaciones .NET.&lt;/span&gt;&amp;nbsp;&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id="_ctl0__ctl0__ctl0_Eventfulldescription1" class="Event_FullDescription"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;DETALLES DE CONTENIDOS:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;Uno de los desaf&amp;iacute;os a tener en cuenta a la hora de desarrollar medianas y grandes aplicaciones, es lograr una buen desempe&amp;ntilde;o de las mismas en un ambiente de producci&amp;oacute;n, y la posibilidad de escalabilidad que la misma tenga al presentarse el crecimiento del negocio. Por lo tanto, es importante tener en cuenta estos aspectos en el ciclo de vida de una aplicaci&amp;oacute;n conociendo las t&amp;eacute;cnicas y herramientas disponibles para lograrlo. Veremos c&amp;oacute;mo detectar y diagnosticar problemas de desempe&amp;ntilde;o y mal uso de la memoria de aplicaciones .NET, utilizando t&amp;eacute;cnicas como: lectura de informaci&amp;oacute;n de instrumentaci&amp;oacute;n, profiling de c&amp;oacute;digo, profiling de memoria, depuraci&amp;oacute;n de HTTP, ejecuci&amp;oacute;n de test de carga y stress y Tracing de ASP.NET y SQl Server.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span id="_ctl0__ctl0__ctl0_Eventdate1" class="Event_Date"&gt;&lt;span style="font-family:Verdana;"&gt;Viernes 2 de Noviembre de 2007 de 18.00 a 22.00 hs.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="_ctl0__ctl0__ctl0_Eventlocation1" class="Event_Date"&gt;Lugar: Auditorio MUG - Rivadavia 1479 1&amp;ordm; Piso - Oficina A, Buenos Aires - Argentina&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;&lt;a href="http://www.mug.org.ar/Eventos/2828.aspx"&gt;&lt;strong&gt;Registrate&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://feeds.feedburner.com/~s/cWalzer?i=http://msmvps.com/blogs/cwalzer/archive/2007/10/22/jornada-en-bs-as-mejoras-de-desempe-241-o-de-aplicaciones-net.aspx" type="text/javascript"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1258517" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VS+Team+Systems/default.aspx">VS Team Systems</category></item><item><title>Capacitación en Línea Gratuita</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/10/19/capacitaci-243-n-en-l-237-nea-gratuita.aspx</link><pubDate>Fri, 19 Oct 2007 20:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1251549</guid><dc:creator>cwalzer</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1251549</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/10/19/capacitaci-243-n-en-l-237-nea-gratuita.aspx#comments</comments><description>&lt;p&gt;En Solid Quality Learning estamos probando&amp;nbsp;una nueva modalidad de cursos en línea, utilizando LiveMeeting 2007, de la misma forma que lo hace Microsoft con sus Webcasts.&lt;/p&gt;
&lt;p&gt;Para poder probar la experiencia, hemos abierto 5 entrenamientos gratuitos de 4 horas de duracion (2 sesiones de 2 horas cada uno).&lt;/p&gt;
&lt;p&gt;Los temas a escoger son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Mejoras de desempeño de aplicaciones (dictado por Carlos Walzer,&amp;nbsp;el 21 de noviembre)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Opciones para la Administración de Transacciones en .NET Framework y SQL Server (dictado por Adolfo Wiernik el 3 de diciembre)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Bodegas de Datos (Data Warehouse) e Inteligencia de Negocios para DBAs (dictado por Javier Loria&amp;nbsp;el 4 y 6 de diciembre)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Guía Práctica de Optimización de Código de Acceso a Datos en .NET Framework (dictado por Adolfo Wiernik el 6 de diciembre)&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Hemos habilitado solamente 20 cupos por curso por ahora.&lt;/p&gt;
&lt;p&gt;Para inscribirse: &lt;a href="http://learning.solidq.com/la/"&gt;http://learning.solidq.com/la/&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://msmvps.com/aggbug.aspx?PostID=1251549" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ADO.NET/default.aspx">ADO.NET</category></item><item><title>Mes de Mejoras de Desempeño en MSDN por Solid Quality Mentors</title><link>http://msmvps.com/blogs/cwalzer/archive/2007/10/18/mes-del-buen-desempeno-en-msdn-por-solid-quality-mentors.aspx</link><pubDate>Thu, 18 Oct 2007 15:04:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1250902</guid><dc:creator>cwalzer</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/cwalzer/rsscomments.aspx?PostID=1250902</wfw:commentRss><comments>http://msmvps.com/blogs/cwalzer/archive/2007/10/18/mes-del-buen-desempeno-en-msdn-por-solid-quality-mentors.aspx#comments</comments><description>&lt;p&gt;En el transcurso de este mes los mentores de Solid Quality Mentors hemos difundido nuestros conocimientos en MSDN Latino América, acerca de las técnicas disponibles para Mejora de Desempeño de aplicaciones Microsoft.&lt;/p&gt;
&lt;p&gt;Aquí podrás encontrar la información del wecast que dí, el mismo está en línea para que lo puedas ver a demanda:&lt;br /&gt;&lt;a class="" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032354007&amp;amp;Culture=es-AR" target="_blank"&gt;&lt;strong&gt;Herramientas para mejorar el desempeño de las aplicaciones .NET Framework&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Material relacionado con este webcast:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://blogs.solidq.com/ES/cwalzer/Recursos/WebCast_HerrMejoraDesempNET_200710/HerrDesempAppNET.pdf" target="_blank"&gt;&lt;strong&gt;Presentación&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://blogs.solidq.com/ES/cwalzer/Recursos/WebCast_HerrMejoraDesempNET_200710/HerrDesempAppNET.zip" target="_blank"&gt;&lt;strong&gt;Ejemplos de código&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Aquí podrás consultar las otras presentaciones relacionadas con este tema:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://blogs.solidq.com/ES/dseara/Lists/Posts/Post.aspx?ID=38" target="_blank"&gt;¿Hablamos del rendimiento de las aplicaciones?&lt;/a&gt; por Daniel Seara&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032355951&amp;amp;Culture=es-AR" target="_blank"&gt;Measuring Performance in ASP.NET Applications&lt;/a&gt; por Eugenio Serrano&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032355952&amp;amp;Culture=es-AR" target="_blank"&gt;Techniques for Performance Tuning ADO.NET Data Access Code&lt;/a&gt; por Adolfo Wiernik&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Y como el mes no terminó, aún queda más material por venir&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;script type="text/javascript"&gt;
digg_url = &amp;#39;http://msmvps.com/blogs/cwalzer&amp;#39;;
digg_bgcolor = &amp;#39;#ff9900&amp;#39;;
digg_skin = &amp;#39;compact&amp;#39;;
digg_window = &amp;#39;new&amp;#39;;
&lt;/script&gt;

&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://msmvps.com/blogs/cwalzer"&gt;&lt;img alt="Agregar a Technorati" src="http://static.technorati.com/pix/fave/btn-fave2.png" border="0" /&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1250902" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Capacitacion/default.aspx">Capacitacion</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/VS+Team+Systems/default.aspx">VS Team Systems</category><category domain="http://msmvps.com/blogs/cwalzer/archive/tags/ADO.NET/default.aspx">ADO.NET</category></item></channel></rss>