<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/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>Lluís Franco on Geeks.ms</title><link>http://geeks.ms/blogs/lfranco/default.aspx</link><description>El Framework y yo...</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Office365 actualizado a 2013 para nuevas suscripciones</title><link>http://geeks.ms/blogs/lfranco/archive/2013/03/12/office365-actualizado-a-2013-para-nuevas-suscripciones.aspx</link><pubDate>Tue, 12 Mar 2013 14:04:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:208844</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=208844</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2013/03/12/office365-actualizado-a-2013-para-nuevas-suscripciones.aspx#comments</comments><description>&lt;p&gt;Buenas not&amp;iacute;cias! :)&lt;/p&gt;
&lt;p&gt;Hace d&amp;iacute;as que andaba buscando como un loco la fecha de actualizaci&amp;oacute;n de Office365 a 2013. Como nadie (ni siquiera de la propia Microsoft) pudo darme una respuesta clara al final me decid&amp;iacute; a adquirir una suscripci&amp;oacute;n E1 y&amp;hellip; sorpresa! Todo el entorno de administraci&amp;oacute;n y los productos de servidor ya estaban migrados a la versi&amp;oacute;n 2013.&lt;/p&gt;
&lt;p&gt;As&amp;iacute; que si al igual que yo estabas esperando este momento&amp;hellip; ya ha llegado! Las suscripciones nuevas vienen con 2013 ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ventana de administraci&amp;oacute;n:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_01_5F00_52B8CB24.png"&gt;&lt;img height="484" width="628" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_01_5F00_thumb_5F00_7BE06362.png" alt="O365_01" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" title="O365_01" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correo:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_02_5F00_19DE7157.png"&gt;&lt;img height="484" width="628" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_02_5F00_thumb_5F00_4C61CEC9.png" alt="O365_02" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" title="O365_02" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calendario:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_03_5F00_4AB102F5.png"&gt;&lt;img height="484" width="628" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_03_5F00_thumb_5F00_13F3A7F1.png" alt="O365_03" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" title="O365_03" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contactos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_04_5F00_676A780A.png"&gt;&lt;img height="484" width="628" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/O365_5F00_04_5F00_thumb_5F00_37CC597E.png" alt="O365_04" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" title="O365_04" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Saludos,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=208844" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/News/default.aspx">News</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Office365/default.aspx">Office365</category></item><item><title>Serializar listas genéricas en aplicaciones WinRT</title><link>http://geeks.ms/blogs/lfranco/archive/2013/03/08/serializar-listas-gen-233-ricas-en-aplicaciones-winrt.aspx</link><pubDate>Fri, 08 Mar 2013 11:26:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:208813</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=208813</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2013/03/08/serializar-listas-gen-233-ricas-en-aplicaciones-winrt.aspx#comments</comments><description>&lt;p align="justify"&gt;Hola a todos,&lt;/p&gt;
&lt;p align="justify"&gt;He publicado otro post&amp;nbsp;en mi &lt;span style="color:#3399ff;"&gt;otro blog&lt;/span&gt;, de modo que publico aqu&amp;iacute; el enlace del mismo:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;Serializar listas gen&amp;eacute;ricas en aplicaciones&amp;nbsp;WinRT:&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;a href="http://lluisfranco.com/2013/03/08/serializar-listas-genricas-en-aplicaciones-winrt/"&gt;http://lluisfranco.com/2013/03/08/serializar-listas-genricas-en-aplicaciones-winrt/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;Resumen&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Rompiendo un poco con la serie de posts sobre las &amp;lsquo;&lt;a href="http://lluisfranco.com/category/task-parallel-library/"&gt;Parallel Series&lt;/a&gt;&amp;rsquo;, hoy quiero escribir acerca de algo totalmente distinto. Y es que ando haciendo mis pinitos con mi primera aplicaci&amp;oacute;n Windows Store, y me estoy encontrando con bastantes cosas que no conozco, y que desde mi absoluto desconocimiento de la plataforma, encuentro bastante tediosas de realizar.&lt;/p&gt;
&lt;p align="justify"&gt;Hoy por ejemplo estaba tratando de almacenar ciertos datos en local -ya que para esta aplicaci&amp;oacute;n no quiero depender de ninguna base de datos porque en realidad son cuatro datos- y no he encontrado una forma directa de persistir listas gen&amp;eacute;ricas en el sistema de ficheros local.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/andorraenamora.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/andorraenamora.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Te ha gustado hasta ahora? &lt;span style="color:#3399ff;"&gt;&lt;a href="http://lluisfranco.com/2013/03/08/serializar-listas-genricas-en-aplicaciones-winrt/"&gt;Sigue leyendo el post en mi otro blog&amp;hellip;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;Porque no publico aqu&amp;iacute; tambi&amp;eacute;n el post?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Pues b&amp;aacute;sicamente es debido a que el sistema para comentar el c&amp;oacute;digo es muy diferente entre ambos blogs. De modo que cada vez que publico un post en ambos blogs tengo que rehacer toda la parte referente al c&amp;oacute;digo, que no es poca!&amp;hellip; y como es un pe&amp;ntilde;azo al final he decidido publicar los posts completos en mi otro blog, y s&amp;oacute;lo un link en este de aqu&amp;iacute; ;)&lt;/p&gt;
&lt;p align="justify"&gt;Saludos,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=208813" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2012/default.aspx">2012</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Development/default.aspx">Development</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>[TPL] Problemas de concurrencia</title><link>http://geeks.ms/blogs/lfranco/archive/2013/03/04/tpl-problemas-de-concurrencia.aspx</link><pubDate>Mon, 04 Mar 2013 14:55:30 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:208738</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=208738</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2013/03/04/tpl-problemas-de-concurrencia.aspx#comments</comments><description>&lt;p align="justify"&gt;Hola a todos,&lt;/p&gt;  &lt;p align="justify"&gt;He publicado otro post de las &lt;a href="http://lluisfranco.com/category/task-parallel-library/"&gt;Parallel Series&lt;/a&gt; en mi &lt;a href="http://lluisfranco.com/"&gt;otro blog&lt;/a&gt;, de modo que publico aquí el enlace del mismo:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Problemas de concurrencia:&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a title="http://lluisfranco.com/2013/03/01/problemas-de-concurrencia/" href="http://lluisfranco.com/2013/03/01/problemas-de-concurrencia/"&gt;http://lluisfranco.com/2013/03/01/problemas-de-concurrencia/&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Resumen&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;En un mundo en el que los procesos ya no son secuenciales sino paralelos, es cada vez más posible encontrarnos con problemas de concurrencia al acceder a recursos compartidos. Conceptualmente hablando, esto es algo a los que los desarrolladores ya estamos acostumbrados cuando trabajamos con gestores de bases de datos como Oracle o SQL Server, ya que varios usuarios pueden acceder o modificar la información al mismo.&lt;/p&gt;  &lt;p align="justify"&gt;Sin embargo, la gran mayoría de los desarrolladores pocas veces hemos tenido que lidiar con bloqueos en colecciones en menoria, ya que no todo el mundo crea aplicaciones en las que varios threads acceden a recursos compartidos. De hecho, si alguna vez has lo tenido que hacer sabrás perfectamente que antes de la aparición de la &lt;a href="http://msdn.microsoft.com/en-us/library/dd460717.aspx"&gt;TPL&lt;/a&gt; era una de las disciplinas más complejas dentro del desarrollo de software. Algo que favorece la calvície :)&lt;/p&gt;  &lt;p align="justify"&gt;Sin embargo, desde la aparición de la &lt;a href="http://msdn.microsoft.com/en-us/library/dd460717.aspx"&gt;TPL&lt;/a&gt; en el .NET Framework 4.0 es mucho más sencillo desarrollar aplicaciones que ejecuten procesos en paralelo o de forma asíncrona, pero esto conlleva que en ocasiones nos olvidemos que hay algunos threads que se ejecutan al mismo tiempo, y esto podría llevar a producir efectos no deseados cuando se trata de acceder a recursos compartidos, como una colección de elementos en memoria.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lluisfranco.files.wordpress.com/2013/03/image2.png"&gt;&lt;img title="image" border="0" alt="image" src="http://lluisfranco.files.wordpress.com/2013/03/image_thumb2.png?w=770&amp;amp;h=535" width="240" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Te ha gustado hasta ahora? &lt;a href="http://lluisfranco.com/2013/03/01/problemas-de-concurrencia/"&gt;Sigue leyendo el post en mi otro blog…&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Porque no publico aquí también el post?&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Pues básicamente es debido a que el sistema para comentar el código es muy diferente entre ambos blogs. De modo que cada vez que publico un post en ambos blogs tengo que rehacer toda la parte referente al código, que no es poca!… y como es un peñazo al final he decidido publicar los posts completos en mi otro blog, y sólo un link en este de aquí ;)&lt;/p&gt;  &lt;p align="justify"&gt;Saludos,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=208738" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Development/default.aspx">Development</category></item><item><title>MVP por décimo año (Frodo, voy a por tí)</title><link>http://geeks.ms/blogs/lfranco/archive/2012/10/01/mvp-por-d-233-cimo-a-241-o-frodo-voy-a-por-t-237.aspx</link><pubDate>Mon, 01 Oct 2012 15:30:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:206952</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=206952</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/10/01/mvp-por-d-233-cimo-a-241-o-frodo-voy-a-por-t-237.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/MVP_5F00_BlueOnly_5F00_34C85BAC.png"&gt;&lt;img height="176" width="115" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/MVP_5F00_BlueOnly_5F00_thumb_5F00_48E17835.png" align="left" alt="MVP_BlueOnly" border="0" title="MVP_BlueOnly" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;:-) &lt;br /&gt;Hola a todo el mundo!&lt;/p&gt;
&lt;p align="justify"&gt;Pues eso, que me acaba de llegar &lt;strong&gt;EL CORREO&lt;/strong&gt;. Y a diferencia de otros a&amp;ntilde;os, la verdad es que no me acordaba de que hoy era el d&amp;iacute;a D, el d&amp;iacute;a en el que se nombran o renuevan a los MVPs de Octubre&amp;hellip; y la verdad es que me he ahorrado algunos nervios. Bueno, al menos hasta hace 2 &amp;oacute; 3 horas, porque la inefable &lt;a href="https://twitter.com/palelmvp"&gt;Pilar&lt;/a&gt; (que tambi&amp;eacute;n es de Octubre) me lo ha recordado&amp;hellip; Gracias por los nervios! Te debo una! :D&lt;/p&gt;
&lt;p align="justify"&gt;Sin embargo, al final ha llegado:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;em&gt;Estimado/a Lluis Franco i Montanyes, &lt;br /&gt;Enhorabuena. Nos complace presentarle el programa de nombramiento MVP de Microsoft&amp;reg; de 2012. Este nombramiento se concede a los l&amp;iacute;deres excepcionales de la comunidad t&amp;eacute;cnica que comparten de forma activa su experiencia de alta calidad y de la vida real con otras personas. Le agradecemos especialmente la contribuci&amp;oacute;n que ha realizado en las comunidades t&amp;eacute;cnicas en el &amp;aacute;rea de Visual C# a lo largo del pasado a&amp;ntilde;o.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="justify"&gt;La verdad es que este a&amp;ntilde;o me hace especial ilusi&amp;oacute;n porque se trata de mi 10&amp;ordm; a&amp;ntilde;o perteneciendo al programa, y caramba, y eso es una jart&amp;aacute; de tiempo! Adem&amp;aacute;s, este a&amp;ntilde;o toca &lt;a href="http://www.facebook.com/photo.php?fbid=1063063383934&amp;amp;l=023b33d03d"&gt;un anillo especial&lt;/a&gt; (como cada 5 a&amp;ntilde;os) as&amp;iacute; que cuando llegue ya os pondr&amp;eacute; una foto... aunque yo hubiese preferido un jam&amp;oacute;n ;)&lt;/p&gt;
&lt;p align="justify"&gt;No quiero ponerme sentimental, pero si quiero agradecer a qui&amp;eacute;n sea (nadie sabe exactamente como funciona esto de las nominaciones) el que hay pensado que&amp;nbsp; merezco pertenecer a este grupo de monstruos. Y quiero decirlo as&amp;iacute;: Monstruos, porque la gente que pertenece al programa son unos verdaderos cracks t&amp;eacute;cnicos, pero adem&amp;aacute;s -salvo raras excepciones- son gente realmente cojonuda. Lo que se llama buena gente, vamos... No es extra&amp;ntilde;o que a muchos de mis mejores amigos los haya conocido aqu&amp;iacute;.&lt;/p&gt;
&lt;p&gt;Dicho esto, como no quiero hacer un post que sea un tocho, os dejo algunos enlaces a los posts de antiguas renovaciones, en los que podr&amp;eacute;is ver desde fotos de lo mal que lo pasamos cuando nos juntamos, hasta alg&amp;uacute;n video de los bautizos de los nuevos.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/blogs/lfranco/archive/2011/10/01/mvp-por-noveno-a-241-o-y-cambio-de-categor-237-a-d.aspx"&gt;MVP Award 2011&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/blogs/lfranco/archive/2010/10/04/mvp-por-octavo-a-241-o-gracias-a-todos.aspx"&gt;MVP Award 2010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/blogs/lfranco/archive/2009/10/01/mvp-por-s-233-ptimo-a-241-o-consecutivo-d.aspx"&gt;MVP Award 2009&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/blogs/lfranco/archive/2008/10/01/otro-a-241-o-m-225-s-dando-la-vara.aspx"&gt;MVP Award 2008&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Muchas gracias a todos! :D&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=206952" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/MVP/default.aspx">MVP</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Award/default.aspx">Award</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2012/default.aspx">2012</category></item><item><title>Parallel Series: Tasks, la 8ª maravilla</title><link>http://geeks.ms/blogs/lfranco/archive/2012/09/26/parallel-series-tasks-la-8-170-maravilla.aspx</link><pubDate>Wed, 26 Sep 2012 07:05:50 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:206866</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=206866</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/09/26/parallel-series-tasks-la-8-170-maravilla.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://lluisfranco.files.wordpress.com/2012/09/taskclass.png"&gt;&lt;img title="TaskClass" border="0" alt="TaskClass" src="http://lluisfranco.files.wordpress.com/2012/09/taskclass_thumb.png?w=664&amp;amp;h=369" width="240" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ayer publiqué en mi otro blog otro artículo de las ‘Parallel Series’, dedicado a la clase Task.&lt;/p&gt;  &lt;p&gt;Para no duplicar todo el post, aquí os dejo un enlace al mismo:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://lluisfranco.com/2012/09/24/parallel-series-tasks-la-8-maravilla/" href="http://lluisfranco.com/2012/09/24/parallel-series-tasks-la-8-maravilla/"&gt;http://lluisfranco.com/2012/09/24/parallel-series-tasks-la-8-maravilla/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y un enlace al índice de la serie:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://lluisfranco.com/2011/01/25/parallel-series-indice-de-contenidos/" href="http://lluisfranco.com/2011/01/25/parallel-series-indice-de-contenidos/"&gt;http://lluisfranco.com/2011/01/25/parallel-series-indice-de-contenidos/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Saludos,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=206866" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category></item><item><title>Lanzamiento de Visual Studio 2012 en España</title><link>http://geeks.ms/blogs/lfranco/archive/2012/09/26/lanzamiento-de-visual-studio-2012-en-espa-241-a.aspx</link><pubDate>Wed, 26 Sep 2012 06:43:30 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:206865</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=206865</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/09/26/lanzamiento-de-visual-studio-2012-en-espa-241-a.aspx#comments</comments><description>&lt;p&gt;¡Ya está aquí Visual Studio 2012!&lt;/p&gt;  &lt;p&gt;Te invitamos el próximo 2 de Octubre al lanzamiento de VS2012 en Madrid.&lt;/p&gt;  &lt;p&gt;El lanzamiento tendrá lugar en:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Teatro Goya Madrid&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Calle Sepúlveda 3   &lt;br /&gt;28011 Madrid &lt;/p&gt;  &lt;p&gt;No esperes más y registrate porque será complicado encontrar sitio… se prevee un lleno hasta la bandera de geeks ;)&lt;/p&gt;  &lt;p&gt;Aquí tienes información del evento. Nos vemos allí!&lt;/p&gt;   &lt;table border="0" cellspacing="5" width="600" align="center"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;img alt="" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/head-vs.jpg" width="599" /&gt;           &lt;table border="0" cellspacing="5" width="100%"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td valign="top" width="63%"&gt;                 &lt;p class="head"&gt;&lt;strong&gt;Estás invitado.&lt;/strong&gt;&lt;/p&gt;                  &lt;p&gt;&lt;a style="text-decoration:none;" class="sub-head"&gt;Agenda&lt;/a&gt; | &lt;a style="text-decoration:none;" class="sub-head"&gt;Dónde y Cuando&lt;/a&gt; | &lt;a style="text-decoration:none;" class="sub-head"&gt;Registro&lt;/a&gt;&lt;/p&gt;                  &lt;p class="parrafo"&gt;Desde hace tiempo se libra una batalla secreta entre IT y el consumidor... y poco a poco va &lt;strong&gt;ganando el consumidor&lt;/strong&gt;. Los consumidores esperan que sus aplicaciones estén conectadas, vinculadas a las redes sociales, siempre alerta, siempre actualizadas, de forma intuitiva y asequible continuamente. En una palabra: &lt;strong&gt;&lt;u&gt;AHORA&lt;/u&gt;&lt;/strong&gt;. Los consumidores han sido entrenados para tener necesidades y seguir la búsqueda de lo bueno que viene. &lt;strong&gt;¿Está su empresa preparada para librar esta batalla?&lt;/strong&gt;&lt;/p&gt;                  &lt;p class="parrafo"&gt;&lt;strong&gt;&lt;span class="sub-head"&gt;¡¡Alcanza la nueva &lt;/span&gt;&lt;/strong&gt;&lt;span class="sub-head"&gt;&lt;strong&gt;norma!!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;                  &lt;p class="parrafo"&gt;La consumerización de las IT se traduce en que nuestros clientes tienen las ideas y expectativas más altas que nunca. Van a trabajar con sus propias tabletas, sus propios dispositivos móviles y ordenadores portátiles, y están exigiendo a interactuar con las aplicaciones de negocio en todas las plataformas. ¿Estás preparado para el reto?                    &lt;br /&gt;Si se hace correctamente&lt;strong&gt;, las aplicaciones dentro de los sistemas empresariales&lt;/strong&gt; pueden incitar a importantes avances al mismo tiempo que ofrece un retorno de la inversión sólido. Sólo hace falta el talento adecuado, las herramientas y la dedicación. Es hora de conocer como poner en marcha y adaptarse &lt;strong&gt;a la nueva &lt;/strong&gt;&lt;strong&gt;norma&lt;/strong&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;                  &lt;p class="parrafo"&gt;¡Te esperamos para unirte a nosotros en este evento!.&lt;/p&gt;                  &lt;p id="01" class="head"&gt;&lt;strong&gt;Agenda&lt;/strong&gt;&lt;/p&gt;               &lt;/td&gt;                &lt;td valign="top" width="37%"&gt;                 &lt;p id="02" class="sub-head"&gt;&lt;strong&gt;Eventos&lt;/strong&gt;&lt;/p&gt;                  &lt;p style="margin-left:5px;"&gt;&lt;span class="parrafo"&gt;&lt;strong&gt;Lanzamiento de Visual Studio 2012 en España&lt;/strong&gt;                       &lt;br /&gt;Madrid, 2 de Octubre &lt;/span&gt;                    &lt;br /&gt;&lt;span&gt;&lt;a style="text-decoration:none;" class="a" href="http://microsoft.com/spain/Msdn/visualstudio/images-launchVS12/LanzamientodeVisualStudio2012enES-MD.ics"&gt;Reserva el día en tu agenda &lt;/a&gt;                      &lt;br /&gt;&lt;a style="text-decoration:none;" class="a" href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=74-28-D6-14-E4-09-B5-51-45-75-1B-2A-27-94-D9-10&amp;amp;Culture=es-ES&amp;amp;community=0&amp;quot;"&gt;Registro &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;                  &lt;p style="margin-left:5px;"&gt;&lt;span class="parrafo"&gt;&lt;strong&gt;Lanzamiento de Visual Studio 2012 en España&lt;/strong&gt;                       &lt;br /&gt;Barcelona, 4 de Octubre &lt;/span&gt;                    &lt;br /&gt;&lt;span&gt;&lt;a style="text-decoration:none;" class="a" href="http://microsoft.com/spain/Msdn/visualstudio/images-launchVS12/LanzamientodeVisualStudio2012enES-BCN.ics"&gt;Reserva el día en tu agenda&lt;/a&gt;                       &lt;br /&gt;&lt;a style="text-decoration:none;" class="a" href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=74-28-D6-14-E4-09-B5-51-40-0E-23-BF-1B-EF-37-5E&amp;amp;Culture=es-ES&amp;amp;community=0"&gt;Registro&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;                  &lt;h2 class="sub-head"&gt;Recursos&lt;/h2&gt;                  &lt;h2 class="parrafo"&gt;&lt;a style="text-decoration:none;" class="a" href="http://www.microsoft.com/visualstudio/esn"&gt;Visita la Nueva web Visual Studio&lt;/a&gt;&lt;/h2&gt;                  &lt;p class="parrafo"&gt;&lt;a style="text-decoration:none;" class="a" href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=14267337-ce5f-41c7-b0ba-1a620a7fe9a1&amp;amp;lcid=1034&amp;amp;ci=1083"&gt;Regístrate para recibir la nueva News de Visual Studio&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;          &lt;table border="0" cellspacing="0" cellpadding="0" width="588" align="center"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td valign="top" width="588"&gt;                 &lt;table cellspacing="0" cellpadding="0" width="590"&gt;&lt;tbody&gt;                     &lt;tr&gt;                       &lt;td height="20" valign="middle" width="46"&gt;&lt;span style="margin-left:5px;" class="titagenda"&gt;&lt;strong&gt;Horario&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;                        &lt;td bgcolor="#984f96" valign="middle" width="291"&gt;&lt;span style="margin-left:5px;" class="titagenda"&gt;&lt;strong&gt;Título &lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle" width="251"&gt;&lt;span style="margin-left:5px;" class="titagenda"&gt;&lt;strong&gt;Ponentes&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="20" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;9:00&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Recepción&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&amp;#160;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="41" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;9:30&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Bienvenida &lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Gonzalo Díe. Director División Desarrollo y Plataforma Microsoft España (Madrid)&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="41" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;9:45&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Keynote: Desarrollo de aplicaciones modernas + Caso Studio Acciona (10Min)&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;David Carmona. Director Developer Tools MS Corp.&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="27" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;11:00&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Modern ALM.Entrega contínua. Prácticas ágiles&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Partner ALM: Plain Concepts&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr class="titagenda"&gt;                       &lt;td height="20" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;"&gt;11:45&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" align="center"&gt;&lt;strong&gt;CAFÉ&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&amp;#160;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="24" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;12:15&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Habilitando la calidad continua&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Partner ALM: GlobeTesting&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="35" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;13:00&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;DevOps: Mejorando la interacción de los equipos&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Partner ALM: Kabel (Madrid) / Certia (Barcelona)&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="20" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="titagenda"&gt;14:00&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="titagenda"&gt;&lt;strong&gt;COMIDA&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&amp;#160;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="20" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;15:00&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Feedback Continuo.&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Partner: Danysoft&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="20" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;15:45&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Construcción de App de Negocio en una Nube Híbrida&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;David Salgado . Azure Evangelist Microsoft&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="40" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;16:45&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Modern Apps : Desarrollo Web / desarrollo Win8 / Desarrollo Phone&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="agenda"&gt;Partner: Icinetic + Microsoft&lt;/span&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                       &lt;td height="36" valign="middle" align="left"&gt;&lt;span style="margin-left:5px;" class="titagenda"&gt;17:30&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&lt;span style="margin-left:5px;" class="titagenda"&gt;&lt;strong&gt;Ethel GarcíaSimon (Product Manager Visual Studio y Canal) &lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;                        &lt;td valign="middle"&gt;&amp;#160;&lt;/td&gt;                     &lt;/tr&gt;                   &lt;/tbody&gt;&lt;/table&gt;                  &lt;p class="sub-head"&gt;Colaboran:&lt;/p&gt;                  &lt;table border="0" cellspacing="2" cellpadding="1" width="100%" align="center"&gt;&lt;tbody&gt;                     &lt;tr valign="top" align="center"&gt;                       &lt;td width="34%"&gt;&lt;a href="http://www.certia.net/"&gt;&lt;img title="" border="0" alt="Certia" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/certia.jpg" width="198" height="53" /&gt;&lt;/a&gt;&lt;/td&gt;                        &lt;td width="37%"&gt;&amp;#160;&lt;a href="http://www.danysoft.com/Visualstudio"&gt;&lt;img title="" border="0" alt="Danysoft" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/danysoft.jpg" width="149" height="49" /&gt;&lt;/a&gt;&lt;/td&gt;                        &lt;td width="29%"&gt;&lt;a href="http://www.globetesting.com/"&gt;&lt;img title="" border="0" alt="Globetesting" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/globe.png" width="160" height="45" /&gt;&lt;/a&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr valign="top" align="center"&gt;                       &lt;td&gt;&lt;a href="http://www.Ilitia.com"&gt;&lt;img border="0" alt="Ilita" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/ilitia.jpg" width="121" height="58" /&gt;&lt;/a&gt;&lt;/td&gt;                        &lt;td&gt;&lt;a href="http://www.kabel.es/"&gt;&lt;img title="" border="0" alt="Kabel" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/kabel.png" width="150" height="54" /&gt;&lt;/a&gt;&lt;/td&gt;                        &lt;td&gt;&lt;a href="http://www.plainconcepts.com/"&gt;&lt;img title="" border="0" alt="Plain Concepts" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/plain.jpg" width="192" height="48" /&gt;&lt;/a&gt;&lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr valign="top" align="center"&gt;                       &lt;td&gt;&amp;#160;&lt;/td&gt;                        &lt;td&gt;&amp;#160;&lt;a href="http://www.radarc.net/"&gt;&lt;img title="" border="0" alt="Radarc" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/radarc.png" width="150" height="49" /&gt;&lt;/a&gt;&lt;/td&gt;                        &lt;td&gt;&amp;#160;&lt;/td&gt;                     &lt;/tr&gt;                   &lt;/tbody&gt;&lt;/table&gt;                  &lt;p style="margin-left:5px;"&gt;&lt;a href="http://www.microsoft.com/visualstudio/esn/downloads"&gt;&lt;img border="0" src="http://www.microsoft.com/Spain/msdn/architecture/news2012/download.jpg" width="599" height="90" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=206865" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Evento/default.aspx">Evento</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2012/default.aspx">2012</category></item><item><title>Tienes Suscripción MSDN? Pues a publicar en la Store!</title><link>http://geeks.ms/blogs/lfranco/archive/2012/09/05/tienes-suscripci-243-n-msdn-pues-a-publicar-en-la-store.aspx</link><pubDate>Wed, 05 Sep 2012 10:57:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:206659</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=206659</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/09/05/tienes-suscripci-243-n-msdn-pues-a-publicar-en-la-store.aspx#comments</comments><description>&lt;p&gt;Good news!&lt;/p&gt;
&lt;p align="justify"&gt;Acabo de enterarme en tweetland gracias al colega &lt;a href="http://twitter.com/wasat"&gt;@wasat&lt;/a&gt; de que todos aquellos poseedores de una &lt;a href="https://msdn.microsoft.com/es-es/subscriptions/buy/buy.aspx"&gt;suscripci&amp;oacute;n MSDN&lt;/a&gt; (y no me refiero s&amp;oacute;lo a la ultimate, si no a todas aquellas que incluyen Visual Studio) tambi&amp;eacute;n disponen de un beneficio adicional:&lt;/p&gt;
&lt;p align="justify"&gt;Se trata de una cuenta para desarrollar aplicaciones y publicarlas en la Windows Store, adem&amp;aacute;s de la ya conocida cuenta para publicar aplicaciones para Windows Phone 7. WOW!&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/msdn01_5F00_6ACE00A9.png"&gt;&lt;img height="484" width="515" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/msdn01_5F00_thumb_5F00_08CC0E9E.png" alt="msdn01" border="0" title="msdn01" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;De este modo, todos aquellos que hemos empezado a hacer nuestras primeras aplicaciones lo tenemos m&amp;aacute;s facil que nunca. Basta con ir al perfil de vuestra suscripci&amp;oacute;n (&amp;lsquo;Mi cuenta&amp;rsquo; en el men&amp;uacute; superior) y verificar si dispon&amp;eacute;is de la opci&amp;oacute;n Cuenta para desarrolladores de Windows Store, en la que podreis solicitar un c&amp;oacute;digo de registro.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/msdn_5F00_store_5F00_account_5F00_1964098C.png"&gt;&lt;img height="446" width="648" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/msdn_5F00_store_5F00_account_5F00_thumb_5F00_7F23A067.png" alt="msdn_store_account" border="0" title="msdn_store_account" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;A partir de aqu&amp;iacute;, os recomiendo un vistazo a &lt;a href="https://msdn.microsoft.com/subscriptions/windevcenter"&gt;este art&amp;iacute;culo&lt;/a&gt; en el que indicaa c&amp;oacute;mo registrar el c&amp;oacute;digo en la store y aclara algunos de los t&amp;eacute;rminos sobre el uso del c&amp;oacute;digo de registro, como por ejemplo que de momento s&amp;oacute;lo se pueden registrar empresas y no desarrolladores:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;En este momento solo se pueden registrar cuentas del tipo Empresa. No se podr&amp;aacute; completar el registro si selecciona Persona como tipo de cuenta.&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Peeeeero que esto no os frene ni un momento&amp;hellip; me ha dicho un pajarito que si ten&amp;eacute;is lista vuestra aplicaci&amp;oacute;n para Windows 8 os pod&amp;eacute;is poner en contacto con el propio Jos&amp;eacute; Bonnin (&lt;a href="http://twitter.com/wasat"&gt;@wasat&lt;/a&gt;) o con la cuenta oficial de MSDN Espa&amp;ntilde;a (&lt;a href="http://en.twitter.com/esmsdn"&gt;@esmsdn&lt;/a&gt;) y os ayudar&amp;aacute;n a pasar un excelence lab y publicar vuestra aplicaci&amp;oacute;n en la store.&lt;/p&gt;
&lt;p align="justify"&gt;As&amp;iacute; que&amp;hellip; Espartanos! A desarrollar! :-D&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;Nota para Microsoft MVPS:&lt;/strong&gt; Supongo que todos sab&amp;eacute;is que uno de los beneficios de pertenecer al programa es una suscripci&amp;oacute;n Visual Studio Ultimate with MSDN, as&amp;iacute; que chavales&amp;hellip; let&amp;rsquo;s dev! ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=206659" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Development/default.aspx">Development</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/News/default.aspx">News</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Store/default.aspx">Store</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Registro/default.aspx">Registro</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Suscripci_26002300_243_3B00_n/default.aspx">Suscripci&amp;#243;n</category></item><item><title>El misterio de Visual Studio 2010 y el proxy</title><link>http://geeks.ms/blogs/lfranco/archive/2012/08/23/el-misterio-de-visual-studio-2010-y-el-proxy.aspx</link><pubDate>Thu, 23 Aug 2012 11:25:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:206540</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=206540</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/08/23/el-misterio-de-visual-studio-2010-y-el-proxy.aspx#comments</comments><description>&lt;p align="justify"&gt;En la empresa en la que trabajo utilizamos un proxy para acceder a Internet: Microsoft Forefront, y como todos los proxies tiene cosas buenas y no tan buenas. Pero en el caso que hoy nos ocupa, resulta que hoy el proxy me estaba jugando una mala pasada.&lt;/p&gt;
&lt;p align="justify"&gt;La cuesti&amp;oacute;n es que en el proyecto que estaba desarrollando ten&amp;iacute;a que conectarme a un web service, pero cuando he ido a agregar la referencia al servicio me ha saltado el siguiente error:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_0084C042.png"&gt;&lt;img height="514" width="635" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_thumb_5F00_46294A60.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;(*) Obviamente la URL del servicio no es esa, aunque sirve perfectamente para ilustrar el proceso (al menos mi proxy tampoco deja agregar esta URL).&lt;/p&gt;
&lt;p align="justify"&gt;Si vemos el error en m&amp;aacute;s detalle podremos apreciar claramente que el error es de autenticaci&amp;oacute;n:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_24C9A4C4.png"&gt;&lt;img height="288" width="462" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_thumb_5F00_0E938972.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Sin embargo, al intentar acceder a la URL con el navegador, &amp;eacute;ste accede perfectamente:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_02256649.png"&gt;&lt;img height="558" width="777" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_thumb_5F00_64D00E7E.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Uhm&amp;hellip; que raro. &lt;/p&gt;
&lt;p align="justify"&gt;De modo que s&amp;oacute;lo queda suponer que Visual Studio no est&amp;aacute; utilizando las caracter&amp;iacute;sticas de proxy definidas en las propiedades de Internet en el panel de control. Mal rollo porque hasta d&amp;oacute;nde yo se no hay ning&amp;uacute;n sitio en el que se puedan especificar. Sin embargo, despu&amp;eacute;s de investigar un poco he visto c&amp;oacute;mo se puede &amp;lsquo;forzar&amp;rsquo; a Visual Studio a que utilice estas credenciales por defecto.&lt;/p&gt;
&lt;p align="justify"&gt;Basta con ir al path en el que teng&amp;aacute;is instalado Visual Studio (por defecto &amp;ldquo;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE&amp;rdquo;), editar el fichero devenv.exe.config con privilegios de administrador y en la secci&amp;oacute;n &amp;lt;system.net&amp;gt; agregar el siguiente fragmento XML:&lt;/p&gt;
&lt;div align="justify"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;defaultProxy&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;useDefaultCredentials&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;proxy&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;usesystemdefault&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;True&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;defaultProxy&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p align="justify"&gt;De este modo:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_23555C25.png"&gt;&lt;img height="343" width="605" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_thumb_5F00_0261E97E.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Una vez realizado el cambio, reiniciar Visual Studio si estaba ejecut&amp;aacute;ndose y ya podremos conectar con el servicio y agregar la referencia:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_1D2E0F8A.png"&gt;&lt;img height="514" width="635" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_thumb_5F00_6DFC23F2.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Saludos,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=206540" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Configuracion/default.aspx">Configuracion</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Tip/default.aspx">Tip</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2010/default.aspx">2010</category></item><item><title>Alucina: Premiado C# MVP of the year!</title><link>http://geeks.ms/blogs/lfranco/archive/2012/02/15/alucina-premiado-c-mvp-of-the-year.aspx</link><pubDate>Wed, 15 Feb 2012 09:06:08 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203364</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=203364</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/02/15/alucina-premiado-c-mvp-of-the-year.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/mvplogohor_5F00_4444AE95.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="mvplogohor" border="0" alt="mvplogohor" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/mvplogohor_5F00_thumb_5F00_681D6022.png" width="227" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sorprendido. Perplejo. Flipado. Esas son ahora mismo las palabras que mejor pueden definir mi estado actual.&lt;/p&gt;  &lt;p align="justify"&gt;No obstante, a medida que voy escribiendo estas líneas y lo voy realizando voy experimentando una alegría enorme, que ya está se empezando a transformar en una sonrisa beatífica, por no decir estúpida. Y es que he recibido un mail de &lt;a href="http://twitter.com/#!/lisafeig"&gt;Lisa Feigenbaum&lt;/a&gt; (Microsoft Community Program Manager) con un mensaje que dice: &lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;&lt;em&gt;“Congratulations on being awarded C# MVP of the Year based on your contributions in 2011!”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;WOW! Mola mucho, aunque la verdad y aunque suene a tópico no me lo esperaba ni de coña...&lt;/p&gt;  &lt;p align="justify"&gt;Durante los últimos 9 años he tenido la suerte de ser reconocido como &lt;a href="http://mvp.support.microsoft.com/"&gt;Microsoft MVP&lt;/a&gt; y eso es algo que valoro mucho. No tanto por ser reconocido como ‘experto’ (cuesta mucho emplear esa palabra habiendo gente tan condenadamente buena), sino por el hecho que se reconozca la labor de ayudar a la comunidad. Que al fin y al cabo es lo que debería contar en el programa MVP, y -seamos sinceros- no siempre es lo único que cuenta.&lt;/p&gt;  &lt;p align="justify"&gt;Pues bien, ahora resulta que en una votación entre los 234 compañeros MVP de la categoría de C# repartidos por todo el mundo y el equipo de producto han decidido nombrarme MVP de C# del año, sea lo que sea eso, que la verdad, todavía no lo tengo muy claro.&lt;/p&gt;  &lt;p align="justify"&gt;De entrada el próximo 2 de Marzo, hay una cena en Seattle con S. Somasegar (“Soma”), Senior Vice President de la división de desarrollo en Microsoft, así como otros peces gordos y miembros destacados de la comunidad. Para mi desgracia, no voy a poder asistir pues vuelvo de Seattle en mismo día por la mañana pero durante mi estancia en el campus de Microsoft trataré de al menos tomarme una cerveza con alguno de estos personajes :-)&lt;/p&gt;  &lt;p align="justify"&gt;Desde aquí quiero dar la enhorabuena al resto de premiados (he contado 29 en todas las categorías) y a todos mis compañeros. De verdad gente, sois grandes! :-D&lt;/p&gt;  &lt;p align="justify"&gt;Un abrazo a todos,&lt;/p&gt;  &lt;p align="justify"&gt;PD – La semana que viene ya os empezaré a contar mis batallitas en Seattle, en directo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203364" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/MVP/default.aspx">MVP</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Award/default.aspx">Award</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2012/default.aspx">2012</category></item><item><title>Parallel Series: La clase estática Parallel</title><link>http://geeks.ms/blogs/lfranco/archive/2012/02/14/parallel-series-la-clase-est-225-tica-parallel.aspx</link><pubDate>Tue, 14 Feb 2012 10:32:46 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203344</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=203344</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/02/14/parallel-series-la-clase-est-225-tica-parallel.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/parallel_5F00_class_5F00_0428053C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="parallel_class" border="0" alt="parallel_class" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/parallel_5F00_class_5F00_thumb_5F00_42411FED.png" width="504" height="346" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Acabo de publicar otro post relacionado con las ‘Parallel Series’:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3 métodos para los reyes elfos bajo el cielo&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Hoy quiero hablaros de la &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks.parallel.aspx"&gt;clase estática Parallel&lt;/a&gt;. Esta clase provee soporte para paralelizar bucles y regiones, y al igual que PLINQ su uso es muy sencillo. Cabe destacar que está especialmente optimizada para iteraciones, y que en este contexto se desenvuelve un poco mejor que PLINQ. No hay una diferencia significativa en tiempos absolutos, pero puede verse perfectamente si utilizamos el magnífico profiler de Visual Studio 2010. No obstante, pueden existir situaciones en las que si se necesita afinar mucho el rendimiento en iteraciones, y aquí es dónde tiene más sentido utilizar dos de los tres métodos de esta clase: &lt;strong&gt;For&lt;/strong&gt; y &lt;strong&gt;ForEach&lt;/strong&gt;. Al tercero lo llamaremos &lt;a href="http://es.wikipedia.org/wiki/C%C3%ADrdan"&gt;Cirdan&lt;/a&gt; y apenas aparecerá en esta historia (en realidad me refiero a Invoke pero tampoco aparecerá por aquí)...&lt;/p&gt;  &lt;p&gt;Podéis acceder al artículo completo aquí:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://lluisfranco.com/2011/06/26/parallel-series-la-clase-esttica-parallel/" href="http://lluisfranco.com/2011/06/26/parallel-series-la-clase-esttica-parallel/"&gt;http://lluisfranco.com/2011/06/26/parallel-series-la-clase-esttica-parallel/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Un saludo,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203344" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Serie/default.aspx">Serie</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2010/default.aspx">2010</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Codigo/default.aspx">Codigo</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Parallel Series: Video – 02 PLINQ</title><link>http://geeks.ms/blogs/lfranco/archive/2012/02/13/parallel-series-video-02-plinq.aspx</link><pubDate>Mon, 13 Feb 2012 08:44:29 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203327</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=203327</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/02/13/parallel-series-video-02-plinq.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/claqueta_5F00_5C889192.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="claqueta" border="0" alt="claqueta" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/claqueta_5F00_thumb_5F00_7A1A6C91.jpg" width="244" height="242" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Acabo de publicar otro vídeo de las las ‘Parallel Series’. Os dejo aquí también el enlace:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://lluisfranco.wordpress.com/2011/07/01/parallel-series-video-02-plinq/" href="http://lluisfranco.wordpress.com/2011/07/01/parallel-series-video-02-plinq/"&gt;http://lluisfranco.wordpress.com/2011/07/01/parallel-series-video-02-plinq/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En este segundo vídeo de las Parallel Series haremos un breve recorrido por las principales características de Parallel LINQ.&lt;/p&gt;  &lt;p&gt;Un saludo,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203327" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Serie/default.aspx">Serie</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2010/default.aspx">2010</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Codigo/default.aspx">Codigo</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Luces, cámara… Action!</title><link>http://geeks.ms/blogs/lfranco/archive/2012/02/10/luces-c-225-mara-action.aspx</link><pubDate>Fri, 10 Feb 2012 16:30:11 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203288</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=203288</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/02/10/luces-c-225-mara-action.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/Action2_5F00_7B21430D.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="Action2" border="0" alt="Action2" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/Action2_5F00_thumb_5F00_7898114F.jpg" width="204" height="204" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Acabo de publicar otro post relacionado con las ‘Parallel Series’. Os dejo aquí también el enlace:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://lluisfranco.com/2012/02/08/luces-camara-action/" href="http://lluisfranco.com/2012/02/08/luces-camara-action/"&gt;http://lluisfranco.com/2012/02/08/luces-camara-action/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Un saludo,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203288" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Serie/default.aspx">Serie</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2010/default.aspx">2010</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Codigo/default.aspx">Codigo</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Nacen las Parallel Series</title><link>http://geeks.ms/blogs/lfranco/archive/2012/02/08/nacen-las-parallel-series.aspx</link><pubDate>Wed, 08 Feb 2012 12:55:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203256</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=203256</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2012/02/08/nacen-las-parallel-series.aspx#comments</comments><description>&lt;p align="justify"&gt;Como ya os promet&amp;iacute; a algunos de vosotros, he empezado a publicar una nueva serie que promete ser la m&amp;aacute;s larga de las que he publicado hasta ahora. El tema a tratar va a ser la programaci&amp;oacute;n paralela mediante la &lt;a href="http://msdn.microsoft.com/en-us/library/dd460693.aspx"&gt;Task Parallel Library&lt;/a&gt; incorporada en .NET 4.0 y Visual Studio 2010.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/parallelism_5F00_0281FFE9.png"&gt;&lt;img height="172" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/parallelism_5F00_thumb_5F00_46098B3E.png" alt="parallelism" border="0" title="parallelism" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Cuento con la ventaja de haber estado creando material durante el &amp;uacute;ltimo a&amp;ntilde;o y medio, en el que he publicado algunos documentos, varios v&amp;iacute;deos y hasta un webcast con los chicos de SecondNug. Todo este material y alguno m&amp;aacute;s que tengo en mente formar&amp;aacute; parte de las &lt;a href="http://lluisfranco.com/2011/01/25/parallel-series-indice-de-contenidos/"&gt;Parallel Series&lt;/a&gt;, que ser&amp;aacute;n publicadas en mi &lt;a href="http://lluisfranco.com"&gt;otro blog&lt;/a&gt; y no aqu&amp;iacute;, porque la publicaci&amp;oacute;n cruzada entre WordPress y Community Server es un autentico drama.&lt;/p&gt;
&lt;p align="justify"&gt;Sin embargo, prometo avisar aqu&amp;iacute; cada vez que publique un nuevo post se la serie. De momento tengo unos cinco o seis art&amp;iacute;culos publicados (la serie posiblemente llegar&amp;aacute; a los 20) y mi intenci&amp;oacute;n es ir publicando al menos uno por semana, y si puedo dos mucho mejor :-)&lt;/p&gt;
&lt;p align="justify"&gt;Os dejo con el &amp;iacute;ndice de contenidos de la serie:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;a href="http://lluisfranco.com/2011/01/25/parallel-series-indice-de-contenidos/"&gt;&amp;Iacute;ndice de contenidos&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Y algunos de los art&amp;iacute;culos ya publicados (y los que faltan):&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;Iacute;ndice de contenidos de las Parellel Series&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2011/01/10/task-parallel-library-el-alfa/"&gt;El Alfa (Pr&amp;oacute;logo)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2011/02/21/parallel-series-un-poco-de-historia/"&gt;Un poco de historia&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2011/03/03/parallel-series-aclarando-conceptos-base/"&gt;Aclarando conceptos base&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2011/03/07/parallel-series-video-01-bases/"&gt;Video: 01 Bases&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2011/05/31/parallel-series-parallel-linq-plinq/"&gt;PLINQ: Parallel LINQ&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.wordpress.com/2011/07/01/parallel-series-video-02-plinq/"&gt;Video: 02 PLINQ&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2011/06/26/parallel-series-la-clase-esttica-parallel/"&gt;Parallel static class&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Video: 03 Parallel Class&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tasks, la 8&amp;ordf; maravilla&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Video: 04 Tasks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Problemas de concurrencia&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Video: 05 Concurrent collections&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;El depurador: Tu fiel amigo&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Video: Debugging &amp;amp; profiling&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Webcast con los chicos de SecondNug&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Materiales y presentaciones de mis eventos&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;C# futures: async &amp;amp; await&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Art&amp;iacute;culos relacionados&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2012/02/08/programacin-funcional-para-el-resto-de-nosotros/"&gt;Programaci&amp;oacute;n funcional para el resto de nosotros&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://lluisfranco.com/2012/02/08/luces-camara-action/"&gt;Luces, c&amp;aacute;mara&amp;hellip; Action!&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;A medida que vaya publicando en el otro blog ir&amp;eacute; actualizando tambi&amp;eacute;n este de aqu&amp;iacute;. &lt;/p&gt;
&lt;p align="justify"&gt;Un saludo!&lt;/p&gt;
&lt;p align="justify"&gt;PD &amp;ndash; Me encantar&amp;iacute;a recibir feedback vuestro, as&amp;iacute; que se agradecer&amp;aacute;n comentarios de todo tipo (en el otro blog).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203256" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Serie/default.aspx">Serie</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2010/default.aspx">2010</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Codigo/default.aspx">Codigo</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Abandona tus DataSets. Ellos no van a tener piedad de ti.</title><link>http://geeks.ms/blogs/lfranco/archive/2011/12/28/abandona-tus-datasets-ellos-no-van-a-tener-piedad-de-ti.aspx</link><pubDate>Wed, 28 Dec 2011 12:25:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:202350</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=202350</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2011/12/28/abandona-tus-datasets-ellos-no-van-a-tener-piedad-de-ti.aspx#comments</comments><description>&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/add_5F00_dataset_5F00_51B1C8BF.jpg"&gt;&lt;img height="149" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/add_5F00_dataset_5F00_thumb_5F00_35C093C7.jpg" alt="add_dataset" border="0" title="add_dataset" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;iquest;Todav&amp;iacute;a est&amp;aacute;s usando DataSets en tu aplicaci&amp;oacute;n .NET?&lt;/p&gt;
&lt;p align="justify"&gt;&amp;iquest;Eres consciente de que los DataSets son actualmente unas p&amp;eacute;simas herramientas para trabajar con datos?&lt;/p&gt;
&lt;p align="justify"&gt;&amp;iquest;No utilizas tecnolog&amp;iacute;as m&amp;aacute;s modernas porque te falta capacitaci&amp;oacute;n para ello?&lt;/p&gt;
&lt;p align="justify"&gt;Entonces est&amp;aacute;s de enhorabuena! :-D&lt;/p&gt;
&lt;p align="justify"&gt;Hartos como estamos del uso de los infames DataSets, &lt;a href="http://twitter.com/_PedroHurtado"&gt;Pedro Hurtado&lt;/a&gt;, &lt;a href="http://twitter.com/lluisfranco"&gt;un servidor&lt;/a&gt; y otros compa&amp;ntilde;eros, con la colaboraci&amp;oacute;n de Microsoft, hemos decidido crear un concurso en el que los ganadores podr&amp;aacute;n acceder a capacitaci&amp;oacute;n gratuita, para de este modo poder utilizar las tecnolog&amp;iacute;as m&amp;aacute;s modernas en sus aplicaciones: LINQ to SQL, Entity Framework 4.0, NHibernate o incluso RDO.Resultsets.&lt;/p&gt;
&lt;p align="justify"&gt;Para acceder al concurso basta con participar en esta encuesta (son s&amp;oacute;lo unas pocas preguntas):&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://apps.facebook.com/mis-encuestas/535kd442" title="http://apps.facebook.com/mis-encuestas/535kd442"&gt;http://apps.facebook.com/mis-encuestas/535kd442&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;S&amp;oacute;lo necesitas un par de minutos y podr&amp;aacute;s acceder al sorteo.&lt;/p&gt;
&lt;p align="justify"&gt;An&amp;iacute;mate y no tengas piedad de los DataSets&amp;hellip; Ellos no la van a tener contigo :-)&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;*** Edici&amp;oacute;n: &amp;lt;comunicado de los organizadores de la broma&amp;gt; ***&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Hola de nuevo,&lt;/p&gt;
&lt;p align="justify"&gt;Bueno transcurrido el tiempo de finalizaci&amp;oacute;n del concurso de &amp;quot;Matemos al DataSet&amp;quot;. El ganador para optar a la capacitaci&amp;oacute;n es &lt;strong&gt;Leandro Tuttini&lt;/strong&gt; (aunque realmente no la necesite), puesto que nadie m&amp;aacute;s que el se dio cuenta de que se trataba de una bonita inocentada. &amp;iquest;O es que los dataset os tienen tan inmersos en exception que nadie sab&amp;iacute;a que ayer en Espa&amp;ntilde;a era 28 de Diciembre de 2011, dia de los Santos Inocentes?&lt;/p&gt;
&lt;p align="justify"&gt;La broma estaba oculta en este parrafo:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;em&gt;&amp;quot;...para de este modo poder utilizar las tecnolog&amp;iacute;as m&amp;aacute;s modernas en sus aplicaciones: LINQ to SQL, Entity Framework 4.0, NHibernate o incluso RDO.Resultsets.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Y como bien mencion&amp;oacute; Leandro, los ResultSets de RDO son antiguos artefactos de Visual Basic, anteriores incluso a los RecordSets de ADO.&lt;/p&gt;
&lt;p align="justify"&gt;En fin, feliz d&amp;iacute;a de los santos inocentes++;&lt;/p&gt;
&lt;p align="justify"&gt;Nota personal: Viendo el debate y la atenci&amp;oacute;n que se ha creado, creo que podr&amp;iacute;a ser interesante plantearnos ayudar a todos aquellos que deseen conocer estos artefactos del diablo que son los DataSets (eso desgraciadamente, no es ninguna inocentada).&lt;/p&gt;
&lt;p align="justify"&gt;Como lo veis? :-D&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202350" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Tecnologia/default.aspx">Tecnologia</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/DataSets/default.aspx">DataSets</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Encuesta/default.aspx">Encuesta</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2011/default.aspx">2011</category></item><item><title>Xbox 720 integrará Kinect con Windows Phone de forma nativa</title><link>http://geeks.ms/blogs/lfranco/archive/2011/12/28/xbox-720-integrar-225-kinect-con-windows-phone-de-forma-nativa.aspx</link><pubDate>Wed, 28 Dec 2011 08:12:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:202344</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=202344</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2011/12/28/xbox-720-integrar-225-kinect-con-windows-phone-de-forma-nativa.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/Xbox_5F00_720_5F00_2C73B298.png"&gt;&lt;img height="213" width="350" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/Xbox_5F00_720_5F00_thumb_5F00_29EA80DA.png" alt="Xbox_720" border="0" title="Xbox_720" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Hola a todos,&lt;/p&gt;
&lt;p align="justify"&gt;Se est&amp;aacute; hablando mucho de la pr&amp;oacute;xima consola Xbox, la llamada 720 que supuestamente &lt;a href="http://www.videogamesblogger.com/2007/03/13/next-xbox-720-to-launch-in-2011-2012-according-to-microsoft.htm"&gt;aparecer&amp;aacute; en verano del a&amp;ntilde;o que viene&lt;/a&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;Una de las caracter&amp;iacute;sticas m&amp;aacute;s esperadas ser&amp;aacute; la total integraci&amp;oacute;n con Windows Phone (ya veremos si &lt;a href="http://www.pcworld.com/article/242788/windows_phone_apollo_what_we_know_so_far.html"&gt;Apollo&lt;/a&gt;, 8 o como quiera que se llame entonces), permitiendo jugar partidas simult&amp;aacute;neas en ambos dispositivos, usarlo como mando, o usar la propia Xbox (o m&amp;aacute;s bien el dispositivo sensor de movimiento &lt;a href="http://www.xbox.com/es-ES/kinect"&gt;Kinect&lt;/a&gt;) para realizar acciones t&amp;iacute;picas del tel&amp;eacute;fono.&lt;/p&gt;
&lt;p align="justify"&gt;Por ejemplo, ser&amp;aacute; posible iniciar una llamada por voz o utilizando gestures, y lo m&amp;aacute;s divertido es que &amp;eacute;stos podr&amp;aacute;n personalizarse en funci&amp;oacute;n del contacto. De este modo, podr&amp;iacute;amos hacer una llamada a casa de un amigo rasc&amp;aacute;ndonos una oreja, o levantando el pulgar. Aunque sin duda lo m&amp;aacute;s divertido puede ser cortar una llamada indeseada haciendo una &lt;a href="https://www.google.com/search?hl=en&amp;amp;q=peineta&amp;amp;gs_sm=e&amp;amp;gs_upl=41731l42598l4l42762l7l7l0l0l0l0l289l546l2-2l2l0&amp;amp;bav=on.2,or.r_gc.r_pw.,cf.osb&amp;amp;biw=1280&amp;amp;bih=968&amp;amp;wrapid=tlif132505894333610&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;tbm=isch&amp;amp;source=og&amp;amp;sa=N&amp;amp;tab=wi&amp;amp;ei=pM76Tuy8FsmYhQfas4ifAQ#um=1&amp;amp;hl=en&amp;amp;tbm=isch&amp;amp;sa=1&amp;amp;q=peineta+dedo&amp;amp;oq=peineta+dedo&amp;amp;aq=f&amp;amp;aqi=g-S3&amp;amp;aql=&amp;amp;gs_sm=e&amp;amp;gs_upl=3354l3981l0l4251l5l4l0l0l0l0l150l219l1.1l2l0&amp;amp;bav=on.2,or.r_gc.r_pw.,cf.osb&amp;amp;fp=5de1039133936c7&amp;amp;biw=1280&amp;amp;bih=968"&gt;&amp;lsquo;peineta&amp;rsquo;&lt;/a&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;En fin, un mundo nuevo de posibilidades, no cre&amp;eacute;is?&lt;/p&gt;
&lt;p align="justify"&gt;Saludos y feliz d&amp;iacute;a,&lt;/p&gt;
&lt;p&gt;&lt;iframe width="560" frameborder="0" src="http://www.youtube.com/embed/0J_Achk3_ZQ" height="315"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Microsoft Source Claims Xbox 720 Arriving in 2013:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.tomsguide.com/us/Microsoft-Xbox-Kinect-Gaming-Console-Windows-8,news-13537.html" title="http://www.tomsguide.com/us/Microsoft-Xbox-Kinect-Gaming-Console-Windows-8,news-13537.html"&gt;http://www.tomsguide.com/us/Microsoft-Xbox-Kinect-Gaming-Console-Windows-8,news-13537.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Next Xbox to launch in 2013 according to Microsoft:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.videogamesblogger.com/2007/03/13/next-xbox-720-to-launch-in-2011-2012-according-to-microsoft.htm" title="http://www.videogamesblogger.com/2007/03/13/next-xbox-720-to-launch-in-2011-2012-according-to-microsoft.htm"&gt;http://www.videogamesblogger.com/2007/03/13/next-xbox-720-to-launch-in-2011-2012-according-to-microsoft.htm&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202344" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Futures/default.aspx">Futures</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Gadgets/default.aspx">Gadgets</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/xBox/default.aspx">xBox</category></item><item><title>Materiales del Webcast de ayer sobre Programación Paralela</title><link>http://geeks.ms/blogs/lfranco/archive/2011/11/30/materiales-del-webcast-de-ayer-sobre-programaci-243-n-paralela.aspx</link><pubDate>Wed, 30 Nov 2011 21:34:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:201946</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=201946</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2011/11/30/materiales-del-webcast-de-ayer-sobre-programaci-243-n-paralela.aspx#comments</comments><description>&lt;p style="padding-left:30px;"&gt;&lt;strong&gt;Edit (07/12/2011):&lt;/strong&gt; Ya se ha publicado el webcast, por si algun insensato lo quiere ver.&lt;br /&gt; (recomiendo &amp;#39;Presentaci&amp;oacute;n de alta fidelidad de Microsoft Office Live Meeting&amp;#39;):&lt;br /&gt;&lt;a href="http://www.secondnug.com/EventosDesarrollo/tabid/57/Default.aspx"&gt;http://www.secondnug.com/EventosDesarrollo/tabid/57/Default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;:-)&lt;br /&gt;Hola de nuevo,Como ya os hab&amp;iacute;a &lt;a href="http://geeks.ms/blogs/lfranco/archive/2011/11/21/webcast-mejora-el-rendimiento-con-programaci-243-n-paralela.aspx"&gt;anunciado anteriormente&lt;/a&gt;, ayer realizamos un webcast con los chicos de &lt;a href="http://www.secondnug.com/"&gt;SecondNug&lt;/a&gt; sobre programaci&amp;oacute;n paralela.&lt;/p&gt;
&lt;p&gt;Tengo que deciros que realmente me lo pas&amp;eacute; como un enano, tanto que de hecho ya se me han ocurrido un par de ideas para otros eventos de este tipo :-D&lt;/p&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032498453&amp;amp;Culture=es-AR"&gt;&lt;img height="337" width="454" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/banner_5F00_parallel_5F00_795FD1A8.jpg" alt="banner_parallel" border="0" title="banner_parallel" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px;border-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En estos momentos todav&amp;iacute;a no se puede descargar el evento grabado aunque me comentan que es cuesti&amp;oacute;n de pocas horas, de modo que en cuanto est&amp;eacute; disponible editar&amp;eacute; este post y os dejar&amp;eacute; la direcci&amp;oacute;n por si alg&amp;uacute;n insensato se lo quiere descargar.&lt;/p&gt;
&lt;p&gt;Por mi parte, como ha habido bastante gente que me ha preguntado por la presentaci&amp;oacute;n y -sobre todo- por el c&amp;oacute;digo, os dejo en enlace para que lo descargu&amp;eacute;is y jugu&amp;eacute;is con &amp;eacute;l. Y si ten&amp;eacute;is alguna &lt;a href="http://geeks.ms/blogs/lfranco/contact.aspx"&gt;mandarme un mensaje&lt;/a&gt; o mejor, un &lt;a href="http://twitter.com/#!/lluisfranco"&gt;tweet&lt;/a&gt; ;)&lt;/p&gt;
&lt;p&gt;En la soluci&amp;oacute;n he incluido algunos de los ejemplos que no di&amp;oacute; tiempo de ver, como una comparativa secuencial versus paralelo al calcular la serie de FIbonacci, o algunos ejemplos sobre las colecciones concurrentes. Particularmente os recomiendo darle un vistazo al ejemplo de uso de las BlockingCollection.&lt;/p&gt;
&lt;p&gt;No hay copyright de ning&amp;uacute;n tipo, as&amp;iacute; que pod&amp;eacute;is hacer con &amp;eacute;l lo que quer&amp;aacute;is (aunque si os apetece mandarme un jam&amp;oacute;n, no os dir&amp;eacute; que no :-P). En fin, espero que os sirva para introduciros en este apasionante mundo de la TPL.&lt;/p&gt;
&lt;p&gt;&lt;iframe scrolling="no" marginwidth="0" width="165" frameborder="0" src="https://skydrive.live.com/embed?cid=F3A970280830B5FE&amp;amp;resid=F3A970280830B5FE%21617&amp;amp;authkey=AOz-Eu8-KilU4G8" marginheight="0" height="128" title="Preview" style="padding:0;background-color:#fcfcfc;"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Si no funciona el frame de arriba tambi&amp;eacute;n pod&amp;eacute;is acceder haciendo click en este &lt;a href="https://skydrive.live.com/redir.aspx?cid=f3a970280830b5fe&amp;amp;resid=F3A970280830B5FE!617&amp;amp;parid=F3A970280830B5FE!616&amp;amp;authkey=!AM2vuRtx1HHY9Vc"&gt;enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Un saludo y nos vemos,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=201946" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2010/default.aspx">2010</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Codigo/default.aspx">Codigo</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Evento/default.aspx">Evento</category></item><item><title>Webcast: Mejora el rendimiento con Programación Paralela</title><link>http://geeks.ms/blogs/lfranco/archive/2011/11/21/webcast-mejora-el-rendimiento-con-programaci-243-n-paralela.aspx</link><pubDate>Mon, 21 Nov 2011 11:19:55 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:201800</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=201800</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2011/11/21/webcast-mejora-el-rendimiento-con-programaci-243-n-paralela.aspx#comments</comments><description>&lt;p align="justify"&gt;El próximo 29 de Noviembre montaremos un webcast con los chicos de &lt;a href="http://www.secondnug.com/"&gt;SecondNug&lt;/a&gt; sobre programación paralela.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032498453&amp;amp;Culture=es-AR"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="banner_parallel" border="0" alt="banner_parallel" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/banner_5F00_parallel_5F00_795FD1A8.jpg" width="454" height="337" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;La idea es empezar mostrando el porqué de la programación paralela: Que es? Cómo hemos llegado a esta singularidad? Y en que casos puede sernos útil -que son muchos más de los que os podéis imaginar-. Además, como vais a ver en el webcast esto cada vez va a ir a más. Y no sólo a largo plazo… pero no os quiero avanzar mucho más, mejor ya lo veréis :-D&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_72601F23.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_thumb_5F00_105E2D18.png" width="244" height="184" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_00DB1B49.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/image_5F00_thumb_5F00_2CAB6F38.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;A partir de las 19h30 empezaremos nuestro viaje por las principales características de la nueva Task Parallel Library (TPL). Comenzaremos por una breve introducción para asentar algunos conceptos (y para picaros el gusanillo), y posteriormente pasaremos a hacer demos por un tubo. Que al fin y al cabo somos developers y es lo que nos gusta!&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032498453&amp;amp;Culture=es-AR"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="foro_parallel" border="0" alt="foro_parallel" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/foro_5F00_parallel_5F00_35B7FAB9.jpg" width="472" height="64" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Puedes registrarte aquí:    &lt;br /&gt;&lt;a title="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032498453&amp;amp;Culture=es-AR" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032498453&amp;amp;Culture=es-AR"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032498453&amp;amp;Culture=es-AR&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Nos vemos pronto,&lt;/p&gt;  &lt;p align="justify"&gt;L&lt;/p&gt;  &lt;p align="justify"&gt;PD – Mi idea era llamarlo ‘Paralelízate o muere’ pero tal vez era un poco demasiado bestia… o no? Júzgalo tu mismo :-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=201800" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2010/default.aspx">2010</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Evento/default.aspx">Evento</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Webcast/default.aspx">Webcast</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/SecondNug/default.aspx">SecondNug</category></item><item><title>[HowTo] Modificar cadena de conexión, la eterna pregunta</title><link>http://geeks.ms/blogs/lfranco/archive/2011/10/20/howto-modificar-cadena-de-conexi-243-n-la-eterna-pregunta.aspx</link><pubDate>Thu, 20 Oct 2011 10:27:09 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:201276</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=201276</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2011/10/20/howto-modificar-cadena-de-conexi-243-n-la-eterna-pregunta.aspx#comments</comments><description>&lt;p align="justify"&gt;Si no la he leído 200 veces en los foros MSDN no la he leído ninguna :-) vayan unos ejemplos:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;Es posible modificar el App.config de una aplicación C# en tiempo de ejecución?&lt;/p&gt;    &lt;p align="justify"&gt;Cómo hago para cambiar los datos de conexión en tiempo de ejecución?&lt;/p&gt;    &lt;p align="justify"&gt;Cadena de conexión Dinámica, ¿cómo debo hacer esta modificación desde un windows form en el mismo aplicativo?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;Y así unas cuantas. De hecho una búsqueda me ha arrojado más de 3.000 resultados :-S&lt;/p&gt;  &lt;p align="justify"&gt;De todos modos lo que me sorprende no es tanto el alto número de veces que se hace esta pregunta, sino que cada vez que la respondo me digo a mi mismo: Haz un post y publícalo para referenciar a la gente... y siempre se me olvida :-P&lt;/p&gt;  &lt;p align="justify"&gt;Bueno, pues de hoy no pasa. Y es que curiosamente me ha llegado la misma pregunta por dos medios distintos. Uhm… casualidad? No lo creo. Sin duda es una señal divina: El &lt;a href="http://es.wikipedia.org/wiki/Pastafarismo"&gt;MEV&lt;/a&gt; me está hablando y yo -pobre mortal- debo obedecer.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;App.config y Machine.config&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;A ver, el quid de la cuestión es que la primera vez que usamos una cadena de conexión (en un DataSource, Contexto de datos, etc.) el propio Visual Studio genera en el fichero app.config una entrada con nombre para nuestra aplicación. Esta entrada es parecida a esto:&lt;/p&gt;  &lt;div align="justify"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;clear&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;add&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;YourApp.Properties.Settings.YourAppConnectionString&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#ff0000;"&gt;connectionString&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Data Source=.\sqlexpress;Initial Catalog=YourDataBase;Integrated Security=True&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#ff0000;"&gt;providerName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;System.Data.SqlClient&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Y sirve para que si alguna vez deseamos cambiar el nombre del servidor, o la base de datos, o cualquier otro atributo, lo hagamos en un único sitio.&lt;/p&gt;

&lt;p align="justify"&gt;Antes de seguir un detalle: ¿Os habéis fijado si en vuestro app.config tenéis un clear antes de la cadena de conexión? Si no lo tenéis, os aconsejo añadirlo. Este clear lo que hace es no cargar las cadenas de conexión&amp;#160; del fichero machine.config, que es común a todas las aplicaciones.&lt;/p&gt;

&lt;p align="justify"&gt;Y es que cuando se inicia una aplicación de .NET, se cargan las secciones comunes del machine.config y a continuación se añaden las propias de la aplicación definidas en el app.config.&lt;/p&gt;

&lt;p align="justify"&gt;Como por defecto en el machine.config tenemos esto:&lt;/p&gt;

&lt;div align="justify"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;add&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;LocalSqlServer&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;connectionString&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;data source=.\SQLEXPRESS;Integrated Security=SSPI;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;providerName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;System.Data.SqlClient&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Si no usamos el tag clear, al ejecutar nuestra aplicación tendremos dos cadenas de conexión, y la primera será la del machine.config… y eso no nos gusta :-P&lt;/p&gt;

&lt;p align="justify"&gt;Así que asumiendo que ya habéis agregado el tag clear, vamos al turrón.&lt;/p&gt;

&lt;p align="justify"&gt;&lt;strong&gt;System.Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;p align="justify"&gt;En este ensamblado encontraremos todo lo necesario para la gestión de nuestras cadenas de configuración (y muchas cosas más).&lt;/p&gt;

&lt;p align="justify"&gt;Lo primero es agregar una referencia a este ensamblado a nuestro proyecto:&lt;/p&gt;

&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/References_5F00_system_5F00_configuration_5F00_7BEF0FA3.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="References_system_configuration" border="0" alt="References_system_configuration" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/References_5F00_system_5F00_configuration_5F00_thumb_5F00_637BA9EE.png" width="606" height="500" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Y a continuación crearemos una clase con un par de métodos para leer y guardar las cadenas de conexión en el app.config:&lt;/p&gt;

&lt;div align="justify"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; ConnectionStringManager&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetConnectionString(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionStringName)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        Configuration appconfig =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;            ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        ConnectionStringSettings connStringSettings = appconfig.ConnectionStrings.ConnectionStrings[connectionStringName];&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; connStringSettings.ConnectionString;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; SaveConnectionString(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionStringName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionString)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        Configuration appconfig =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;            ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        appconfig.ConnectionStrings.ConnectionStrings[connectionStringName].ConnectionString = connectionString;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        appconfig.Save();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Básicamente, al primero se le pasa el nombre de la cadena de conexión a recuperar (por si tenemos varias) y nos devuelve la cadena de conexión. Al segundo se le pasa el nombre de la cadena de conexión y la nueva cadena de conexión modificada.&lt;/p&gt;

&lt;p align="justify"&gt;Para hacerlo un poco más sencillo y no tener que recordar el nombre de las cadenas de conexión, vamos a crear algunos métodos más en la clase. Uno que retorne la lista de nombres de las cadenas de conexión del fichero de configuración, y otro que retorne sólo el nombre de la primera (muy útil si sólo tenemos una).&lt;/p&gt;

&lt;div align="justify"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; List&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt; GetConnectionStringNames()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    List&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt; cns = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Configuration appconfig =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (ConnectionStringSettings cn &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; appconfig.ConnectionStrings.ConnectionStrings)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        cns.Add(cn.Name);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; cns;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetFirstConnectionStringName()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; GetConnectionStringNames().FirstOrDefault();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Incluso, basándonos en este último podemos crear otro que nos devuelva la primera cadena de conexión:&lt;/p&gt;

&lt;div align="justify"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetFirstConnectionString()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; GetConnectionString(GetFirstConnectionStringName());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;&lt;strong&gt;Let’s play!&lt;/strong&gt;&lt;/p&gt;

&lt;p align="justify"&gt;A partir de esta clase, trabajar con las cadenas de conexión es muy sencillo. Supongamos que tenemos un formulario similar a esto:&lt;/p&gt;

&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/form_5F00_sqlserver_5F00_settings_5F00_5E5920A5.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="form_sqlserver_settings" border="0" alt="form_sqlserver_settings" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/form_5F00_sqlserver_5F00_settings_5F00_thumb_5F00_4D81502A.png" width="415" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Leer los valores de la cadena de conexión y mostrarlos es tan sencillo como esto:&lt;/p&gt;

&lt;div align="justify"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; showSavedConnectionSettings()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    SqlConnectionStringBuilder builder =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(ConnectionStringManager.GetFirstConnectionString());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    connectionServerComboBox.EditValue = builder.DataSource.ToUpper();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    connectionDatabaseComboBox.EditValue = builder.InitialCatalog.ToUpper();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (builder.IntegratedSecurity)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        connectionAuthenticationModeRadioGroup.EditValue = 0;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        connectionUsernameTextEdit.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        connectionPasswordTextEdit.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        connectionAuthenticationModeRadioGroup.EditValue = 1;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        connectionUsernameTextEdit.Text = builder.UserID;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        connectionPasswordTextEdit.Text = builder.Password;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Es decir, creamos un SqlConnectionStringBuilder a partir de la primera cadena de conexión del fichero de configuración y a partir de aquí, trabajamos por separado con cada una de las partes de la cadena, accediendo a las propiedades del builder (Datasource, InitialCatalog, IntegratedSecurity, etc.). De este modo las mostramos en el form, o dónde queramos...&lt;/p&gt;

&lt;p align="justify"&gt;&lt;strong&gt;Guardando que es gerundio&lt;/strong&gt;&lt;/p&gt;

&lt;p align="justify"&gt;La siguiente pregunta lógica es: ¿Y para guardar sólo uno de los valores en el fichero de configuración? El típico ejemplo es modificar el nombre del servidor al instalar en el cliente final. Para ello vamos a usar también un builder, y vamos a ampliar la clase anterior con algunos métodos más. Para obtener los valores de las propiedades de la cadena de conexión y para guardarlos:&lt;/p&gt;

&lt;p align="justify"&gt;Obtener valores de propiedades de la cadena de conexión:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetSqlServerServerName()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs = GetConnectionString(GetFirstConnectionStringName());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (cs != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        SqlConnectionStringBuilder builder = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(cs);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.DataSource;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetSqlServerDatabaseName()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs = GetConnectionString(GetFirstConnectionStringName());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (cs != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        SqlConnectionStringBuilder builder = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(cs);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.InitialCatalog;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetSqlServerUserName()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs = GetConnectionString(GetFirstConnectionStringName());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (cs != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        SqlConnectionStringBuilder builder = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(cs);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.UserID;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetSqlServerPassword()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs = GetConnectionString(GetFirstConnectionStringName());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (cs != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        SqlConnectionStringBuilder builder = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(cs);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.Password;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt;? GetSqlServerIntegratedSecurity()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs = GetConnectionString(GetFirstConnectionStringName());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (cs != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        SqlConnectionStringBuilder builder = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(cs);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.IntegratedSecurity;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Guardar valores de propiedades en la cadena de conexión:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; SetConnectionStringServerName(&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionString, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; serverName)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    SqlConnectionStringBuilder builder =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(connectionString);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    builder.DataSource = serverName;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.ConnectionString;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; SetConnectionStringAutenticationIntegrated(&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionString)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    SqlConnectionStringBuilder builder =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(connectionString);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    builder.IntegratedSecurity = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.ConnectionString;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; SetConnectionStringAutenticationSQLServer(&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionString, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; username, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    SqlConnectionStringBuilder builder =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(connectionString);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    builder.IntegratedSecurity = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    builder.UserID = username;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    builder.Password = password;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.ConnectionString;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; SetConnectionStringDatabaseName(&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionString, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; databaseName)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    SqlConnectionStringBuilder builder =&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(connectionString);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    builder.InitialCatalog = databaseName;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; builder.ConnectionString;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Así pues, para cambiar el nombre del servidor en el app.config bastaría con:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;div align="justify"&gt;Leer la cadena de conexión actual&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Cambiar el nombre del server &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Volver a guardar la cadena de conexión&lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs = ConnectionStringManager.GetFirstConnectionString();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; newConStr = ConnectionStringManager.SetConnectionStringServerName(cs, &lt;span style="color:#006080;"&gt;&amp;quot;MyNewServer&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;ConnectionStringManager.SaveConnectionString(&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    ConnectionStringManager.GetFirstConnectionStringName(), newConStr);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Me han quedado bastantes cosas en el tintero (recuperar los servidores SQL Server de nuestra red local, mostrar las bases de datos de un server, o crear un formulario para el usuario final). Si hay tiempo y pensáis que es un tema de interés lo veremos en futuros posts.&lt;/p&gt;

&lt;p align="justify"&gt;Nos vemos! :-D&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=201276" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/HowTo/default.aspx">HowTo</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/4.0/default.aspx">4.0</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Config/default.aspx">Config</category></item><item><title>[HowTo] Obtener fechas de principio y final de mes… y de trimestre</title><link>http://geeks.ms/blogs/lfranco/archive/2011/10/05/howto-obtener-fechas-de-principio-y-final-e-mes-y-de-trimestre.aspx</link><pubDate>Wed, 05 Oct 2011 02:22:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:201000</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=201000</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2011/10/05/howto-obtener-fechas-de-principio-y-final-e-mes-y-de-trimestre.aspx#comments</comments><description>&lt;p&gt;Vale, lo se. Es una chorrada :-)&lt;/p&gt;  &lt;p&gt;Pero es una de esas cosas que no puedes creer que no está implementado en el framework ‘de fábrica’, y si lo está debe estar escondido porque yo no lo he encontrado. Y la cuestión es que ayer necesitaba calcular (a partir de una fecha) las fechas de inicio y final de mes, así como las fechas de inicio y final de trimestre.&lt;/p&gt;  &lt;p&gt;Aquí está el código por si alguien se encuentra con el mismo problema:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; BaseTypesExtensions&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; GetQuarter(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; DateTime d)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ((d.Month - 1) / 3) + 1;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; DateTime GetMonthFirstDate(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; DateTime d)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DateTime(d.Year, d.Month, 1);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; DateTime GetMonthLastDate(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; DateTime d)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; d.GetMonthFirstDate().AddMonths(1).AddDays(-1);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; DateTime GetQuarterFirstDate(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; DateTime d)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DateTime(d.Year, (d.GetQuarter() * 3) - 2, 1);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; DateTime GetQuarterLastDate(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; DateTime d)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; d.GetQuarterFirstDate().AddMonths(3).AddDays(-1);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Y lo usaríamos de este modo:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;var basedate = DateTime.Today.AddYears(-1);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 23; i++)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    basedate = basedate.AddMonths(1);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    var logline = &lt;span style="color:#006080;"&gt;&amp;quot;Date: {0}, Month {1}-{2}, Quarter: {3}-{4}&amp;quot;&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Console.WriteLine(logline, basedate.ToShortDateString(),&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        basedate.GetMonthFirstDate().ToShortDateString(), &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        basedate.GetMonthLastDate().ToShortDateString(),&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        basedate.GetQuarterFirstDate().ToShortDateString(), &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;        basedate.GetQuarterLastDate().ToShortDateString());&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Produciendo este resultado:&lt;/p&gt;

&lt;p&gt;Date: 05/11/2010, Month 01/11/2010-30/11/2010, Quarter: 01/10/2010-31/12/2010 
  &lt;br /&gt;Date: 05/12/2010, Month 01/12/2010-31/12/2010, Quarter: 01/10/2010-31/12/2010 

  &lt;br /&gt;Date: 05/01/2011, Month 01/01/2011-31/01/2011, Quarter: 01/01/2011-31/03/2011 

  &lt;br /&gt;Date: 05/02/2011, Month 01/02/2011-28/02/2011, Quarter: 01/01/2011-31/03/2011 

  &lt;br /&gt;Date: 05/03/2011, Month 01/03/2011-31/03/2011, Quarter: 01/01/2011-31/03/2011 

  &lt;br /&gt;Date: 05/04/2011, Month 01/04/2011-30/04/2011, Quarter: 01/04/2011-30/06/2011 

  &lt;br /&gt;Date: 05/05/2011, Month 01/05/2011-31/05/2011, Quarter: 01/04/2011-30/06/2011 

  &lt;br /&gt;Date: 05/06/2011, Month 01/06/2011-30/06/2011, Quarter: 01/04/2011-30/06/2011 

  &lt;br /&gt;Date: 05/07/2011, Month 01/07/2011-31/07/2011, Quarter: 01/07/2011-30/09/2011 

  &lt;br /&gt;Date: 05/08/2011, Month 01/08/2011-31/08/2011, Quarter: 01/07/2011-30/09/2011 

  &lt;br /&gt;Date: 05/09/2011, Month 01/09/2011-30/09/2011, Quarter: 01/07/2011-30/09/2011 

  &lt;br /&gt;Date: 05/10/2011, Month 01/10/2011-31/10/2011, Quarter: 01/10/2011-31/12/2011 

  &lt;br /&gt;Date: 05/11/2011, Month 01/11/2011-30/11/2011, Quarter: 01/10/2011-31/12/2011 

  &lt;br /&gt;Date: 05/12/2011, Month 01/12/2011-31/12/2011, Quarter: 01/10/2011-31/12/2011 

  &lt;br /&gt;Date: 05/01/2012, Month 01/01/2012-31/01/2012, Quarter: 01/01/2012-31/03/2012 

  &lt;br /&gt;Date: 05/02/2012, Month 01/02/2012-29/02/2012, Quarter: 01/01/2012-31/03/2012&lt;/p&gt;

&lt;p&gt;Saludos,&lt;/p&gt;



&lt;p&gt;PD – Thx al colega &lt;a href="http://geeks.ms/blogs/omarvr"&gt;Omar del valle&lt;/a&gt; por sugerir una aproximación mucho más sencilla para GetQuarter ;-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=201000" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/HowTo/default.aspx">HowTo</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Tip/default.aspx">Tip</category></item><item><title>MVP por noveno año y cambio de categoría :-D</title><link>http://geeks.ms/blogs/lfranco/archive/2011/10/01/mvp-por-noveno-a-241-o-y-cambio-de-categor-237-a-d.aspx</link><pubDate>Sat, 01 Oct 2011 14:30:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:200884</guid><dc:creator>Lluis Franco</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lfranco/rsscomments.aspx?PostID=200884</wfw:commentRss><comments>http://geeks.ms/blogs/lfranco/archive/2011/10/01/mvp-por-noveno-a-241-o-y-cambio-de-categor-237-a-d.aspx#comments</comments><description>&lt;p&gt;:-)&lt;br /&gt;Hola a todos!&lt;/p&gt;
&lt;p&gt;Un post cortito que estoy de fin de semana.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/mvplogohor_5F00_4840ACD1.png"&gt;&lt;img height="94" width="227" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/mvplogohor_5F00_thumb_5F00_70FC121A.png" alt="mvplogohor" border="0" title="mvplogohor" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Acabo de recibir un correo (o m&amp;aacute;s bien deber&amp;iacute;a decir EL correo) que muchos de nosotros esperamos el 1 de Octubre: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Enhorabuena. Nos complace presentarle el programa de nombramiento MVP de Microsoft&amp;reg; de 2011. Este nombramiento se concede a los l&amp;iacute;deres excepcionales de la comunidad t&amp;eacute;cnica que comparten de forma activa su experiencia de alta calidad y de la vida real con otras personas. Le agradecemos especialmente la contribuci&amp;oacute;n que ha realizado en las comunidades t&amp;eacute;cnicas en el &amp;aacute;rea de Visual C# a lo largo del pasado a&amp;ntilde;o.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;El correo de la fatalidad. El correo del reconocimiento -o no- como Microsoft MVP para el pr&amp;oacute;ximo a&amp;ntilde;o. Y parece que se han vuelto a equivocar... por que alguien ha decidido que merezco estar otro a&amp;ntilde;o llevando ese pin tan chulo que nos regalan, y rodeado de toda esa gente tan cojonuda. Y perdonar que lo diga tan claro, pero realmente es as&amp;iacute;.&lt;/p&gt;
&lt;p&gt;Por encima de todo (reconocimiento, beneficios, dinero y mujeres) lo mejor de este programa es la gente. Siendo MVP conoces gente que profesionalmente son unos monstruos (de buenos), y adem&amp;aacute;s ves c&amp;oacute;mo estos t&amp;iacute;os dedican un % enorme de su tiempo a ayudar y colaborar desinteresadamente, haciendo crecer la comunidad.&amp;nbsp;Que a su vez es la madre de todos los MVPs y de muchos otros, ya que hay gente muuuuy buena y preparada que todav&amp;iacute;a no ha tenido la oportunidad de entrar en este programa.&lt;/p&gt;
&lt;p&gt;Adem&amp;aacute;s, este a&amp;ntilde;o si no he le&amp;iacute;do mal el correo se ha reconocido mi contribuci&amp;oacute;n al area de C#, en lugar de VB como hasta ahora. Supongo que es normal, ya que hace unos cuantos a&amp;ntilde;os que no toco nada de VB, pero de todos modos se agradece.&lt;/p&gt;
&lt;p&gt;Much&amp;iacute;simas gracias a todos. De verdad :-)&lt;/p&gt;
&lt;p&gt;Ahora permitirme copypastear unas fotos del post del a&amp;ntilde;o pasado... que no tengo material aqu&amp;iacute; d&amp;oacute;nde estoy de weekend&amp;nbsp;:-P&lt;/p&gt;
&lt;p&gt;&amp;lt;copypaste&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;Aqu&amp;iacute; ten&amp;eacute;is algunos momentos de estos a&amp;ntilde;os:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/DCP_5F00_1608_5F00_0A839F48.jpg"&gt;&lt;img height="164" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/DCP_5F00_1608_5F00_thumb_5F00_0EE9FA42.jpg" alt="DCP_1608" border="0" title="DCP_1608" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/DCP_5F00_1652_5F00_0DA56163.jpg"&gt;&lt;img height="164" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/DCP_5F00_1652_5F00_thumb_5F00_5FA7E8DD.jpg" alt="DCP_1652" border="0" title="DCP_1652" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/DCP_5F00_1629_5F00_0BE46FC2.jpg"&gt;&lt;img height="164" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/DCP_5F00_1629_5F00_thumb_5F00_3CF38495.jpg" alt="DCP_1629" border="0" title="DCP_1629" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/P1010037_5F00_37386AEF.jpg"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/P1010037_5F00_thumb_5F00_6EFA8945.jpg" alt="P1010037" border="0" title="P1010037" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/P1010059_5F00_58583AFE.jpg"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/P1010059_5F00_thumb_5F00_3D2F4623.jpg" alt="P1010059" border="0" title="P1010059" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/P1010029_5F00_268CF7DC.jpg"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/P1010029_5F00_thumb_5F00_791B3C3E.jpg" alt="P1010029" border="0" title="P1010029" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb1_5F00_509C5A2A.jpg"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb1_5F00_thumb_5F00_13B7B28B.jpg" alt="fb1" border="0" title="fb1" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb2_5F00_7D156443.jpg"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb2_5F00_thumb_5F00_7615B1BE.jpg" alt="fb2" border="0" title="fb2" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb3_5F00_2D7BC2ED.jpg"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb3_5F00_thumb_5F00_111E5B00.jpg" alt="fb3" border="0" title="fb3" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb6_5F00_0F6D8F2C.png"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb6_5F00_thumb_5F00_5B752773.png" alt="fb6" border="0" title="fb6" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;MARGIN:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb4_5F00_48244B07.png"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb4_5F00_thumb_5F00_687B1952.png" alt="fb4" border="0" title="fb4" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;MARGIN:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb5_5F00_47C429E0.png"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lfranco/fb5_5F00_thumb_5F00_7639E728.png" alt="fb5" border="0" title="fb5" class="wlDisabledImage" style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Son simplemente algunos momentos escogidos al azar entre tantos buenos momentos. Encontrar&amp;eacute;is a algunos de los que ya no est&amp;aacute;n, y tambi&amp;eacute;n ver&amp;eacute;is a algunos que casi no se reconocen, jejeje&amp;hellip; A ver que d&amp;iacute;a me pongo a revisar m&amp;aacute;s a fondo los cientos de archivos de fotos que tengo (sobretodo de los primeros a&amp;ntilde;os), seguro que aparecen aut&amp;eacute;nticas &amp;lsquo;perlas&amp;rsquo;:-)&lt;/p&gt;
&lt;p align="justify"&gt;Un abrazo enorme a todos, los que son MVP, los que no, y en general a todos aquellos que dedican su tiempo a hacer m&amp;aacute;s grande la comunidad. Todos son MVP, tengan o no tengan la distinci&amp;oacute;n. Chavales, entre todos estamos contribuyendo a hacer algo grande.&lt;/p&gt;
&lt;p&gt;&amp;lt;/copypaste&amp;gt;&lt;/p&gt;
&lt;p&gt;PD - Tengo que deciros que cada a&amp;ntilde;o que pasa lo llevo mejor, hoy s&amp;oacute;lo hab&amp;iacute;a entrado a consultar el correo 3 veces :-D&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200884" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lfranco/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/MVP/default.aspx">MVP</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/Award/default.aspx">Award</category><category domain="http://geeks.ms/blogs/lfranco/archive/tags/2011/default.aspx">2011</category></item></channel></rss>