<?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/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>Geeks•ms</title><link>http://geeks.ms/blogs/</link><description>Todo lo que los geeks de Windows y .Net tienen que contar</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><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>1</slash: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;Video: 02 PLINQ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Parallel static class&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;Luces, c&amp;aacute;mara&amp;hellip; Action!&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>[UOC] WebCast sobre Async y Await</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/02/08/uoc-webcast-sobre-async-y-await.aspx</link><pubDate>Wed, 08 Feb 2012 10:44:33 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203254</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.idlebit.es"&gt;Alex Casquete&lt;/a&gt; me preguntó hace un tiempo si me apetecía dar una charlita sobre el nuevo paradigma de programación asíncrona, que se va a introducir con C# 5.0 y que ya podemos probar con VS 11 y la Async CTP 11, ASYNC y AWAIT.&lt;/p&gt;  &lt;p&gt;Mi respuesta fue que si :D&lt;/p&gt;  &lt;p&gt;Así que se queréis ver de que va todo esto el Jueves 23 de Febrero haré este WebCast en colaboración con &lt;a href="http://uoc.dotnetclubs.com/"&gt;UoC Dot Net Club&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Enlace al registro del evento. &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032505781&amp;amp;Culture=es-ES"&gt;Registro&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=203254" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/WebCast/default.aspx">WebCast</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/UOC/default.aspx">UOC</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Async/default.aspx">Async</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Await/default.aspx">Await</category></item><item><title>SignalR (II): Conexiones persistentes</title><link>http://geeks.ms/blogs/jmaguilar/archive/2012/02/08/signalr-ii-conexiones-persistentes.aspx</link><pubDate>Wed, 08 Feb 2012 07:49:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203209</guid><dc:creator>José M. Aguilar</dc:creator><slash:comments>0</slash:comments><description>Hace poco estuvimos viendo por aqu&amp;iacute; conceptos b&amp;aacute;sicos sobre SignalR , el componente que nos permite crear espectaculares aplicaciones en las que m&amp;uacute;ltiples usuarios pueden estar colaborando de forma simult&amp;aacute;nea, as&amp;iacute;ncrona, y en tiempo real . Entre otras cosas, coment&amp;aacute;bamos que SignalR crea una capa de abstracciones sobre una conexi&amp;oacute;n virtual permanente entre cliente y servidor, sobre la que podemos trabajar de diferentes formas: mediante conexiones persistentes...(&lt;a href="http://geeks.ms/blogs/jmaguilar/archive/2012/02/08/signalr-ii-conexiones-persistentes.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203209" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/desarrollo/default.aspx">desarrollo</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/aspnetmvc/default.aspx">aspnetmvc</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/signalr/default.aspx">signalr</category></item><item><title>Office 365: Versiones de Office soportadas!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/08/office-365-versiones-de-office-soportadas.aspx</link><pubDate>Wed, 08 Feb 2012 07:12:25 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203252</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Una duda bastante común es la relativa a las versiones de Office soportadas para trabajar de forma óptima con Office 365. A este respecto, Microsoft especifica las versiones soportadas en &lt;a href="http://onlinehelp.microsoft.com/office365-enterprises/ff652534.aspx"&gt;este enlace&lt;/a&gt;. Básicamente las versiones son:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Office 2010. &lt;/li&gt;    &lt;li&gt;Microsoft Office 2007 con Service Pack 2. &lt;/li&gt;    &lt;li&gt;Microsoft Office para Mac 2011 con Service Pack 1. &lt;/li&gt;    &lt;li&gt;Microsoft Office 2008 para Mac versión 12.2.9. &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Si nos centramos en la versión de Office 2010, tendremos que tener en cuenta además que debería ser Office 2010 Standard e idealmente Office 2010 Professional tal y como se apunta en et enlace: &lt;a title="http://technet.microsoft.com/en-us/library/gg702619.aspx" href="http://technet.microsoft.com/en-us/library/gg702619.aspx"&gt;http://technet.microsoft.com/en-us/library/gg702619.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203252" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/Office+365/default.aspx">Office 365</category></item><item><title>Patrón repetido en MVC. Mi propuesta</title><link>http://geeks.ms/blogs/lontivero/archive/2012/02/08/patr-243-n-repetido-en-mvc-mi-propuesta.aspx</link><pubDate>Wed, 08 Feb 2012 06:20:43 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203251</guid><dc:creator>Lucas Ontivero</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Cuando usamos ASP.MVC uno de los patrones que debemos respetar es el de “Un modelo entra, un modelo sale” y otro muy común es el de validar el modelo y si este no es válido devolverle la misma vista al usuario para que corrija los datos de entrada. Por esto es común ver el siguiente patrón:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_6921C6C4.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_6A36AFE3.png" width="489" height="179" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;¿Qué está mal aquí? ¿Lo ves?&lt;/p&gt;  &lt;p&gt;Lo que está mal es que este patrón se repite en cada una de las acciones de cada uno de los controladores de cada una de las aplicaciones que hacemos con MVC Framework y eso huele muy pero muy mal (DRY).&lt;/p&gt;  &lt;p&gt;Este es el tipo de casos en los que puede ayudarnos AOP, y MVC framework hace un trabajo espectacular al posibilitarnos implementar AOP mediante filtros. Entonces mi idea es que esto debería hacerse así:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_47263E73.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_22D13424.png" width="462" height="115" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora sí el método hace lo que tiene que hacer, ni más ni menos. Para esto (y solo para demostrar mi punto) he creado el atributo ModelValidationAttribute (necesita un mejor nombre!) como sigue:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_463DB2BC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_1797840D.png" width="544" height="288" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y esto funciona a la perfección! Ojo, no recomiendo usarlo sin antes hacer una buena implementación ya que le faltan cosas al ViewResult como TempData entre otras (y el OnActionExecuted vacio tiene un olorcito medio feo – pero no es culpa mia! ¿por qué el creador de la interface IActionFilter me obliga a incumplir el contrato? ¿No serán 2 interfaces distintas [LSP]?)&lt;/p&gt;  &lt;p&gt;Bueno, esto como les dije funciona a la perfección. La prueba:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_71257AF4.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_125570D1.png" width="440" height="80" /&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=203251" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Dise_26002300_241_3B00_o/default.aspx">Dise&amp;#241;o</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/.Net/default.aspx">.Net</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Patrones/default.aspx">Patrones</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Conceptos/default.aspx">Conceptos</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Refactoring/default.aspx">Refactoring</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Clean+Code/default.aspx">Clean Code</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/ASP.MVC/default.aspx">ASP.MVC</category></item><item><title>Office 365: Microsoft Dynamics CRM Online ya forma parte de la suite de productividad de Microsoft en la nube!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/07/office-365-microsoft-dynamics-crm-online-ya-forma-parte-de-la-suite-de-productividad-de-microsoft-en-la-nube.aspx</link><pubDate>Tue, 07 Feb 2012 21:14:15 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203250</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Tal y como se puede leer en este &lt;a href="http://community.office365.com/en-us/b/office_365_technical_blog/archive/2012/02/07/crm-integration-with-office-365-benefits-and-installation.aspx"&gt;post&lt;/a&gt; del blog técnico de Office 365, desde ya Microsoft Dynamics CRM Online forma parte de la familia de servicios que forman parte de Office 365 ya tenemos la posibilidad de adquirir suscripciones desde el portal de administración de la plataforma:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://www.ciin.es/imagenes/Office-365-CRM-Online-ya-forma-parte-de-_13762/image.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://www.ciin.es/imagenes/Office-365-CRM-Online-ya-forma-parte-de-_13762/image_thumb.png" width="244" height="222" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Y por supuesto, y ya conocido, CRM Online y SharePoint Online se pueden integrar de forma sencilla a través de &lt;a href="http://www.microsoft.com/download/en/details.aspx?displayLang=en&amp;amp;id=5283"&gt;este componente de listas&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203250" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/Office+365/default.aspx">Office 365</category></item><item><title>[#KINECT] Pregunta: Puedo utilizar el sensor de XBox360 con el nuevo #KinectSDK?</title><link>http://geeks.ms/blogs/elbruno/archive/2012/02/07/kinect-pregunta-puedo-utilizar-el-sensor-de-xbox360-con-el-nuevo-kinectsdk.aspx</link><pubDate>Tue, 07 Feb 2012 20:54:38 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203248</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/kinectforwindows/"&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-49-metablogapi/4477.image_5F00_120a4003_2D00_b2d6_2D00_4d77_2D00_968a_2D00_86926c743f75.png" width="590" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;esta es una pregunta que más de uno me ha hecho y la respuesta es muy simple:&lt;/p&gt;  &lt;blockquote&gt;   &lt;h1&gt;SI&lt;/h1&gt; &lt;/blockquote&gt;  &lt;p&gt;Pero hay que tener en cuenta que no podrás disfrutar de &lt;a href="http://elbruno.com/2012/02/04/kinect-aclaraciones-sobre-el-nuevo-sensor-kinect-para-pc/" target="_blank"&gt;las novedades que ofrece el sensor para PC&lt;/a&gt; y que además si creas una aplicación comercial, deberás distribuirla con el sensor para PC. &lt;/p&gt;  &lt;p&gt;Para todo lo demás, development, test, etc; es posible utilizar el sensor para Xbox 360.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;  &lt;p&gt;&lt;img title="El Bruno on facebook" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img243.imageshack.us/img243/9364/facebook24x24.jpg" alt="" /&gt;&amp;#160; &lt;img title="El Bruno o facebook" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img37.imageshack.us/img37/5712/twiiter24x24.jpg" alt="" /&gt;&amp;#160;&lt;a href="http://es.linkedin.com/in/elbruno"&gt;&lt;img title="El Bruno in LinkedIn" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img59.imageshack.us/img59/3462/linkedin24x24.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Descarga SDK &lt;a href="http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx"&gt;http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203248" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Kinect/default.aspx">Kinect</category></item><item><title>SharePoint 2010: Cómo eliminar propiedades rastreadas y administradas del buscador</title><link>http://geeks.ms/blogs/lmanez/archive/2012/02/07/sharepoint-2010-c-243-mo-eliminar-propiedades-rastreadas-y-administradas-del-buscador.aspx</link><pubDate>Tue, 07 Feb 2012 18:00:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203239</guid><dc:creator>Luis Mañez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;    En este post vamos a ver cómo podemos eliminar propiedades rastreadas del buscador de SharePoint, lo que os puede ser muy útil si estás trasteando con crear propiedades rastreadas y administradas desde código.&lt;/p&gt;  &lt;p&gt;Si estamos haciendo una aplicación de búsquedas, seguramente conoceremos lo que son las propiedades rastreadas (Crawled properties), y las propiedades administradas (Managed properties). Si no es el caso, en futuros posts hablaremos de estas propiedades y su importancia en las búsquedas.&lt;/p&gt;  &lt;p&gt;El caso es que borrar una propiedad administrada, es muy sencillo, y se puede hacer desde la propia administración central:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_1B6DCC94.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_30B809D7.png" width="563" height="354" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sin embargo, eliminar una propiedad rastreada, ya no lo es tanto, y no tenemos posibilidad de hacerlo, ni desde la administración central, ni desde el modelo de objetos (no he mirado muy a fondo desde power-shell, pero tampoco he encontrado nada a primera vista).&lt;/p&gt;  &lt;p&gt;Ahora bien, tenemos una alternativa para poder eliminar estas propiedades. El precio a pagar, es que podemos eliminar otras propiedades rastreadas que no estén mapeadas a propiedades administradas /yo no le he visto mucha utilidad a una propiedad rastreada, que no está mapeada a ninguna propiedad administrada).&lt;/p&gt;  &lt;p&gt;La forma de eliminarlas sería:&lt;/p&gt;  &lt;p&gt;Primero, eliminar la propiedad administrada a la que está mapeada la propiedad rastreada. Partimos de que tenemos una propiedad rastreada llamada: &lt;em&gt;ows_content&lt;/em&gt; que está mapeada con la propiedad administrada: &lt;em&gt;QuestionContent&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_4A9BA42C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_1BB59FF0.png" width="478" height="249" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez eliminada, editamos la propiedad rastreada, y nos aseguramos de desmarcar “Include values for this property in the search index”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_3652163C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_7CEB3DDF.png" width="466" height="206" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Tras esto, habremos conseguido que la propiedad rastreada, sea “susceptible” de ser eliminada. Para eliminarla totalmente, tendremos que ir a la pantalla de configuración de la categoría a la que pertenece la propiedad rastreada.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_47CE88E2.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_790D4D75.png" width="464" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Seleccionamos “Edit category” (sobre el desplegable que nos aparecerá al pasar por encima) de la categoría a la que pertenece la propiedad rastreada (podemos ver la categoría en la anterior pantalla de edición de propiedad rastreada):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_32EC6A95.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_41D399AF.png" width="412" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Marcamos la opción “Delete all unmapped crawled properties”&lt;/p&gt;   &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_12C1380B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_3525A0F9.png" width="438" height="145" /&gt;&lt;/a&gt;  &lt;p&gt;Pinchamos sobre OK, y listo!!&lt;/p&gt;  &lt;p&gt;Recordad que esto eliminará todas las propiedades rastreadas que no estén marcadas como “incluir en índice”, y no tengan ninguna propiedad mapeada. Yo de momento no he encontrado ningún daño colateral de hacerlo así.&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=203239" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lmanez/archive/tags/Sharepoint+2010/default.aspx">Sharepoint 2010</category><category domain="http://geeks.ms/blogs/lmanez/archive/tags/Search/default.aspx">Search</category></item><item><title>El caso de los volcados de memoria en Windows Server 2008 R2 con adplus.vbs</title><link>http://geeks.ms/blogs/juank/archive/2012/02/07/volcados-memoria-server-2008-r2-adplus.aspx</link><pubDate>Tue, 07 Feb 2012 16:08:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203244</guid><dc:creator>Juan Carlos Ruiz Pacheco</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;adplus.vbs ahora fue reemplazado con adplus_old.vbs &amp;nbsp;y adicionalmente el script falla cuando se ejecuta en x64&lt;/p&gt;...(&lt;a href="http://geeks.ms/blogs/juank/archive/2012/02/07/volcados-memoria-server-2008-r2-adplus.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203244" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/juank/archive/tags/codigo/default.aspx">codigo</category><category domain="http://geeks.ms/blogs/juank/archive/tags/windows/default.aspx">windows</category><category domain="http://geeks.ms/blogs/juank/archive/tags/API/default.aspx">API</category><category domain="http://geeks.ms/blogs/juank/archive/tags/Sistemas+Operativos/default.aspx">Sistemas Operativos</category><category domain="http://geeks.ms/blogs/juank/archive/tags/windbg/default.aspx">windbg</category></item><item><title>16/02/2012 :: MAD.NUG :: NoSQL: Introducción a RavenDB</title><link>http://geeks.ms/blogs/jorge/archive/2012/02/07/16-02-2012-mad-nug-nosql-introducci-243-n-a-ravendb.aspx</link><pubDate>Tue, 07 Feb 2012 15:30:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203242</guid><dc:creator>Jorge Serrano</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;img border="0" alt="" src="http://www.elavefenix.net/images/Cronicas/MadNug.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;El próximo día &lt;strong&gt;16 de Febrero de 2012 de 19:00 a 21:00&lt;/strong&gt;, nuestro amigo &lt;a href="http://geeks.ms/blogs/unai/"&gt;Unai Zorrilla&lt;/a&gt; nos dará una charla sobre algo que está muy de moda,… los &lt;a href="http://en.wikipedia.org/wiki/NoSQL"&gt;NoSQL&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;De hecho, aprovechará este evento para hablarnos de un producto o software &lt;a href="http://en.wikipedia.org/wiki/NoSQL"&gt;NoSQL&lt;/a&gt; como es &lt;a href="http://www.ravendb.net/"&gt;RavenDb&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pAfkxv2CChGhv3hVyzi_ljTiMbIFg1vlJffS6aH8g2PhYhX_WLX_tyoJHE_NDj6A05OarQEhYMq0ErzVZ764C6A/RavenDb.jpg?psid=1" width="273" height="74" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;En el evento, Unai nos comentará detalles acerca de los modelos de documentos, map-reduce, índices y boundles.&lt;/p&gt;  &lt;p&gt;Es una fantástica oportunidad para conocer más acerca de los NoSQL y de RavenDb en concreto. RavenDb está siendo comúnmente usado por la Comunidad .NET especialmente. Existen otros como MongoDb, etc., pero creo que resultará interesante que Unai nos cuente detalles de todo esto.&lt;/p&gt;  &lt;p&gt;No te olvides que el evento es gratuito y tendrá lugar en las oficinas de Madrid de Microsoft en La Finca (Pozuelo de Alarcón).&lt;/p&gt;  &lt;p&gt;Podrás registrarte &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032505275&amp;amp;Culture=es-ES"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Puedes acceder a la información oficial del evento &lt;a href="http://madriddotnet.wordpress.com/2012/02/07/evento-nosql-introduccion-a-ravendb/"&gt;en este otro enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;¡Te esperamos!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203242" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jorge/archive/tags/MAD.NUG/default.aspx">MAD.NUG</category></item><item><title>Usuario Contento paga Nuestro Sustento</title><link>http://geeks.ms/blogs/mojeda/archive/2012/02/06/usuario-contento-paga-nuestro-sustento.aspx</link><pubDate>Mon, 06 Feb 2012 22:01:31 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203238</guid><dc:creator>M@rTIn's</dc:creator><slash:comments>0</slash:comments><description>En varios lugares donde me ha tocado ver los procesos de resolución de incidente ver la misma situación estamos tan acostumbrados a apagar incendios que nos olvidamos de la prevención, entonces comienzan mas amagos de incendios y vamos a apagarlos con un alto desgaste. Todo comienza en la mesa de ayuda el agente de soporte es la cara visible del servicio algo así como la primera trinchera este debería recopilar la mayor cantidad de información evidencia, pantallazos todo lo que sirva por si este...(&lt;a href="http://geeks.ms/blogs/mojeda/archive/2012/02/06/usuario-contento-paga-nuestro-sustento.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203238" width="1" height="1"&gt;</description></item><item><title>SharePoint 2010: Como inventariar componentes en nuestro entorno (I)!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/06/sharepoint-2010-como-inventariar-componentes-en-nuestro-entorno-i.aspx</link><pubDate>Mon, 06 Feb 2012 21:47:50 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203237</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Cunado queremos mover nuestras soluciones de SharePoint 2010 de un entorno a otro o bien vamos a hacer una migración de SharePoint 2007 a SharePoint 2010, es muy importante poder inventariar de alguna forma todos aquellos componentes que hemos desplegado en nuestro entorno y que tendremos que llevarnos al nuevo entorno. Estoy pensando en WebParts, definiciones de sitios, controles, etc. Por suerte, para poder hacer este inventario contamos con distintas opciones y una de ellas es el uso de la herramienta de línea de comandos &lt;a href="http://technet.microsoft.com/en-us/library/dd789634(office.12).aspx"&gt;stsadm con la opción enumallwebs&lt;/a&gt; que además dispone de una serie de opciones que nos permiten listar las WebParts disponibles, los manejadores de eventos, etc. Para hacer uso de esta opción:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Lo primero que haremos es consultar las opciones disponibles mediante la ejecución: stsadm –help enumallwebs &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Si ejecutamos el comando con todas las opciones de información que se puede obtener, obtendremos una primera salida de pantalla con toda la información disponible que para el caso de un único sitio es mucha como podéis ver.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Por suerte, esta información la podemos volcar a un archivo en formato xml por ejemplo sin más que poner &amp;gt; Nombre_Archivo.xml a continuación de las opciones de ejecución de la operación.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div align="center"&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="750" align="center"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="250"&gt;&lt;a href="http://www.ciin.es/imagenes/aed820511f3e_A619/image.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://www.ciin.es/imagenes/aed820511f3e_A619/image_thumb.png" width="244" height="124" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="250"&gt;&lt;a href="http://www.ciin.es/imagenes/aed820511f3e_A619/image_3.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://www.ciin.es/imagenes/aed820511f3e_A619/image_thumb_3.png" width="204" height="244" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="250"&gt;&lt;a href="http://www.ciin.es/imagenes/aed820511f3e_A619/image_4.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://www.ciin.es/imagenes/aed820511f3e_A619/image_thumb_4.png" width="244" height="123" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;Y este es el resultado que se obtendría:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ciin.es/imagenes/aed820511f3e_A619/image_5.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://www.ciin.es/imagenes/aed820511f3e_A619/image_thumb_5.png" width="244" height="121" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203237" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2010/default.aspx">SharePoint Foundation 2010</category></item><item><title>[#RESHARPER] El panel ToDo Explorer, útil como una navaja suiza</title><link>http://geeks.ms/blogs/elbruno/archive/2012/02/06/resharper-el-panel-todo-explorer-250-til-como-una-navaja-suiza.aspx</link><pubDate>Mon, 06 Feb 2012 20:14:57 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203235</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/27253355@N07/4454466743/"&gt;&lt;img title="image47dd1de4" border="0" alt="image47dd1de4" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image47dd1de4_5F00_5D24718D.png" width="606" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;si trabajas con Visual Studio en cualquiera de sus versiones es muy probable que conozcas el panel de tareas (ToDo). Pues bien, &lt;a href="http://www.jetbrains.com/resharper" target="_blank"&gt;ReSharper&lt;/a&gt; ha tomado esta idea y la evolucionado bastante hasta definir un panel de Tareas muy potente. En primer lugar veamos la configuración de los elementos que se muestran en el panel:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_783E259A.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_72EF3EE9.png" width="596" height="156" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cada elemento se corresponde con una expresión regular que se analiza en el IDE de Visual Studio, dentro del código, comentarios, etc. De esta forma, tenemos un panel de tareas mucho más “inteligente” que el posee Visual Studio. Además, obviamente, podemos configurar el icono con el que aparece en el panel, el color del texto,&amp;#160; y otras opciones más.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_43BD5352.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_7B236480.png" width="500" height="366" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cuando, por ejemplo hemos definido los ítems de tipo NotImplementedException como elementos a mostrar en el panel, el siguiente código nos mostrará elementos interesantes.&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div id="codeSnippet" style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;     &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; ConsoleApplication2&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Sample : ISample&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; DoSomething()&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.NotImplementedException();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Foo()&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.NotImplementedException();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Bar()&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.NotImplementedException();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt; }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; MyNamespace&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; ConsoleApplication2;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Sample2 : ISample&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; DoSomething()&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.NotImplementedException();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum27" style="color:#606060;"&gt;  27:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum28" style="color:#606060;"&gt;  28:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Foo()&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum29" style="color:#606060;"&gt;  29:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum30" style="color:#606060;"&gt;  30:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.NotImplementedException();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum31" style="color:#606060;"&gt;  31:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum32" style="color:#606060;"&gt;  32:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Bar()&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum33" style="color:#606060;"&gt;  33:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum34" style="color:#606060;"&gt;  34:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.NotImplementedException();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum35" style="color:#606060;"&gt;  35:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;"&gt;&lt;span id="lnum36" style="color:#606060;"&gt;  36:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;border-bottom-style:none;color:black;overflow:visible;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;"&gt;&lt;span id="lnum37" style="color:#606060;"&gt;  37:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Organizando los elementos por Namespaces and Types, &lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_0E641B20.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_0527DFDF.png" width="611" height="269" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;o mostrando solamente los tipos&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_0DC8386B.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_2E6F0210.png" width="613" height="271" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;También podemos exportar los contenidos en formato plano, formato XML o HTML. Pero tal vez la faceta más interesante es que al momento de guardar la configuración de los elementos a mostrar como ToDos, lo podremos guardar en un ámbito local, en un ámbito compartido del proyecto o inclusive a nivel ordenador para todos los proyectos. Vamos que es una opción más que interesante para esas pequeñas “notas” que dejamos en nuestro código y que no queremos olvidar.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_305C5119.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_5D050AF2.png" width="458" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos @ Home&lt;/p&gt;

&lt;p&gt;El Bruno&lt;/p&gt;

&lt;p&gt;&lt;img title="El Bruno on facebook" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img243.imageshack.us/img243/9364/facebook24x24.jpg" alt="" /&gt;&amp;#160; &lt;img title="El Bruno o facebook" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img37.imageshack.us/img37/5712/twiiter24x24.jpg" alt="" /&gt;&amp;#160;&lt;a href="http://es.linkedin.com/in/elbruno"&gt;&lt;img title="El Bruno in LinkedIn" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img59.imageshack.us/img59/3462/linkedin24x24.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Descarga: &lt;a href="http://www.jetbrains.com/resharper"&gt;http://www.&lt;/a&gt;&lt;a href="http://www.jetbrains" target="_blank"&gt;jetbrains&lt;/a&gt;.com/resharper&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203235" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/ReSharper/default.aspx">ReSharper</category></item><item><title>[Windows Phone 7.5] Acceso a la Cámara (I)</title><link>http://geeks.ms/blogs/jyeray/archive/2012/02/06/wp75-acceso-camara-1.aspx</link><pubDate>Mon, 06 Feb 2012 19:07:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203233</guid><dc:creator>Josué Yeray Julián Ferreiro</dc:creator><slash:comments>0</slash:comments><description>Hola a todos! Hoy vamos a hacer un alto en nuestra series de art&amp;iacute;culos sobre Expression Blend 4 para ver como, con Windows Phone 7.5, podemos tener acceso a la c&amp;aacute;mara de nuestro dispositivo de dos modos distintos. Veremos como sacar fotos, ajustar par&amp;aacute;metros de la c&amp;aacute;mara y como grabar v&amp;iacute;deos. Dos apis, un hardware En Windows Phone 7.5 tenemos acceso a la c&amp;aacute;mara de nuestro dispositivo a trav&amp;eacute;s de dos apis diferentes: La api de c&amp;aacute;mara de Windows...(&lt;a href="http://geeks.ms/blogs/jyeray/archive/2012/02/06/wp75-acceso-camara-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203233" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jyeray/archive/tags/wpdev/default.aspx">wpdev</category><category domain="http://geeks.ms/blogs/jyeray/archive/tags/WP75/default.aspx">WP75</category><category domain="http://geeks.ms/blogs/jyeray/archive/tags/eswp7/default.aspx">eswp7</category></item><item><title>Pedir una cosa y recibir otra - Parte I: Redirect y RedirectPermanent</title><link>http://geeks.ms/blogs/jalarcon/archive/2012/02/06/pedir-una-cosa-y-recibir-otra-parte-i-redirect-y-redirectpermanent.aspx</link><pubDate>Mon, 06 Feb 2012 13:31:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203182</guid><dc:creator>José M. Alarcón Aguín</dc:creator><slash:comments>0</slash:comments><description>Post original en JASoft.org: http://www.jasoft.org/Blog/post/Pedir-una-cosa-y-recibir-otra-Parte-I-Redirect-y-RedirectPermanent.aspx En ASP.NET existen muchos m&amp;eacute;todos para conseguir que cuando un usuario solicita una p&amp;aacute;gina en el servidor, acabe obteniendo el resultado de ejecutar otra p&amp;aacute;gina o recurso diferente. &amp;iquest;Para qu&amp;eacute; querr&amp;iacute;amos hacer algo as&amp;iacute;? Por m&amp;uacute;ltiples motivos, y en realidad es algo que se usa constantemente: Redirigir a los usuarios...(&lt;a href="http://geeks.ms/blogs/jalarcon/archive/2012/02/06/pedir-una-cosa-y-recibir-otra-parte-i-redirect-y-redirectpermanent.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203182" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jalarcon/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Usar la red de un PC a través de Windows Phone 7</title><link>http://geeks.ms/blogs/jorge/archive/2012/02/06/usar-la-red-de-un-pc-a-trav-233-s-de-windows-phone-7.aspx</link><pubDate>Mon, 06 Feb 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203203</guid><dc:creator>Jorge Serrano</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;Como ya sabemos, cuando conectamos nuestro Windows Phone al PC, &amp;eacute;ste arranca Zune de forma autom&amp;aacute;tica.&lt;/p&gt;
&lt;p&gt;Otra posibilidad es que tengamos Zune ya arrancado, para lo cu&amp;aacute;l &amp;eacute;ste, detectar&amp;aacute; que hemos conectado nuestro Windows Phone 7 al PC y se sincronizar&amp;aacute; con &amp;eacute;l.&lt;/p&gt;
&lt;p&gt;Ahora bien, imaginemos que lo que queremos es conectar nuestro Windows Phone 7 al PC y poder navegar por Internet, recibir WhatsApp, acceder al marketplace, o acceder a la radio con aplicaciones como TuneIn Radio (de la cu&amp;aacute;l estoy enganchado a m&amp;aacute;s no poder).&lt;/p&gt;
&lt;p&gt;&amp;iquest;C&amp;oacute;mo poder llevarlo a cabo?.&lt;/p&gt;
&lt;p&gt;Basta con acudir a la ruta en la que tendremos instaladas las herramientas del SDK de Windows Phone (si no las has instalado, tendr&amp;aacute;s que instalarlas).&lt;/p&gt;
&lt;p&gt;La ruta de mi PC es la siguiente:&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color:#ffff00;"&gt;C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\WPConnect\x86&amp;gt;     &lt;br /&gt;&lt;/span&gt;&amp;oacute;    &lt;br /&gt;&lt;span style="background-color:#ffff00;"&gt;C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\WPConnect\x64&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;All&amp;iacute; encontraremos una aplicaci&amp;oacute;n de nombre &lt;strong&gt;&lt;em&gt;WPConnect.exe&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Bastar&amp;aacute; con ejecutar esta aplicaci&amp;oacute;n, la cu&amp;aacute;l tratar&amp;aacute; de conectarse a nuestro dispositivo m&amp;oacute;vil.&lt;/p&gt;
&lt;p&gt;Una vez hecho esto, desde nuestro m&amp;oacute;vil Windows Phone conectado al PC, podremos acceder a la red a trav&amp;eacute;s de la red Ethernet, WiFi, etc., que est&amp;eacute; utilizando el ordenador.&lt;/p&gt;
&lt;p&gt;Para m&amp;iacute; que estoy trabajando todos los d&amp;iacute;as con mi ordenador y que tengo mi m&amp;oacute;vil de apoyo, me viene fenomenal este planteamiento, ya que me permite escuchar la radio penalizando un poco el consumo de red pero no interfiriendo el funcionamiento de mi ordenador.&lt;/p&gt;
&lt;p&gt;Espero que este peque&amp;ntilde;o truco le venga bien a m&amp;aacute;s de uno.&lt;/p&gt;
&lt;p&gt;Por cierto, aunque no lo he mencionado, la ventaja de conectar nuestro Windows Phone 7 de esta manera, es que adem&amp;aacute;s estaremos recarg&amp;aacute;ndo su bater&amp;iacute;a. ;)&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=203203" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jorge/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category></item><item><title>Cambios y expectativas (Plain Concepts +1)</title><link>http://geeks.ms/blogs/aarroyo/archive/2012/02/06/cambios-y-expectativas-plain-concepts-1.aspx</link><pubDate>Mon, 06 Feb 2012 07:00:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203190</guid><dc:creator>Andoni Arroyo</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;Es tiempo de cambios para mí. Dejo de trabajar en &lt;a href="http://www.pandasecurity.com/" target="_blank"&gt;Panda Security&lt;/a&gt; para comenzar una nueva etapa en &lt;a href="http://www.plainconcepts.com/" target="_blank"&gt;Plain Concepts&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Haciendo balance de mi paso por Panda Security, el resultado es francamente positivo. He aprendido mucho, trabajando en equipos formados por gente muy diferente (alemanes, cubanos, americanos…) lo cual me ha permitido evolucionar como profesional y como persona. Tópico, pero verdad…   &lt;br /&gt;    &lt;br /&gt;Entonces, por que cambiar?&lt;/p&gt;  &lt;p&gt;Pues porque es mucho lo que espero de mi nueva empresa:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Gestión ágil (de verdad), con todo lo que eso implica.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Proyectos interesantes, avanzados tecnológicamente y con requerimientos exigentes.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Compañeros motivados, capaces de compartir sus conocimientos y estar abiertos siempre a la mejora. Conozco hace tiempo a mucho de ellos de la comunidad, eventos y otro saraos. Son el tipo de gente con el que da gusto trabajar.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Conocer un montón de gente interesante de la que aprender, tanto dentro como fuera de la empresa. Trabajando duro para ser el peor, como comentaba Dawn Cannan en su articulo: Be the Worst en &lt;a href="http://www.agilerecord.com/" target="_blank"&gt;Agile Record&lt;/a&gt;)      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Un sitio definitivamente donde poder trabajar con alta motivación, que me ayude a evolucionar aportando mi esfuerzo y plantee retos que sean beneficiosos para ambas partes.&lt;/p&gt;  &lt;p&gt;Estoy seguro que esto y mucho más va a ser lo que voy a encontrar allí.&lt;/p&gt;  &lt;p&gt;Estamos en contacto.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203190" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/aarroyo/archive/tags/Personal/default.aspx">Personal</category><category domain="http://geeks.ms/blogs/aarroyo/archive/tags/OffTopic/default.aspx">OffTopic</category><category domain="http://geeks.ms/blogs/aarroyo/archive/tags/Trabajo/default.aspx">Trabajo</category></item><item><title>[#KINECTSDK] Un par de detalles sobre el nuevo “Near Mode” y sobre como funciona con el sensor de profundidad</title><link>http://geeks.ms/blogs/elbruno/archive/2012/02/05/kinectsdk-un-par-de-detalles-sobre-el-nuevo-near-mode-y-sobre-como-funciona-con-el-sensor-de-profundidad.aspx</link><pubDate>Sun, 05 Feb 2012 22:07:36 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203195</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_10921B37.png"&gt;&lt;img title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_24633A35.png" width="720" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;alguno me ha preguntado que es eso del “Near Mode” que se incorpora en el nuevo &lt;a href="http://www.kinectforwindows.org/" target="_blank"&gt;Kinect&lt;/a&gt; For Windows (algo comenté &lt;a href="http://elbruno.com/2012/02/04/kinect-aclaraciones-sobre-el-nuevo-sensor-kinect-para-pc/" target="_blank"&gt;aquí&lt;/a&gt;). Obviamente la descripción oficial es que ahora podemos reconocer skeletons a menor distancia que con el sensor para Xbox pero el tema es bastante más interesante. &lt;/p&gt;  &lt;p&gt;Veamos algunos datos que pueden aportar luz al respecto sobre como funciona el &lt;strong&gt;&lt;em&gt;Depth Sensor&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;El Sensor de profundidad trabaja con una resolución de 320x240 pixels. &lt;/li&gt;    &lt;li&gt;Esto nos da un total de 76800 pixels &lt;/li&gt;    &lt;li&gt;Cada pixel posee una posición en área de pintado y la distancia al sensor &lt;a href="http://www.kinectforwindows.org/" target="_blank"&gt;Kinect&lt;/a&gt; en milímetros.       &lt;ul&gt;       &lt;li&gt;&lt;img class="wlEmoticon wlEmoticon-winkingsmile" style="border-top-style:none;border-bottom-style:none;border-right-style:none;border-left-style:none;" alt="Guiño" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/wlEmoticon_2D00_winkingsmile_5F00_7222C352.png" /&gt; En lugar de identificar un color como sucede en el array que retorna la cámara. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Esta información está asociada también a los elementos de los 6 skeletons que puede reconocer &lt;a href="http://www.kinectforwindows.org/" target="_blank"&gt;Kinect&lt;/a&gt; For Windows. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ahora bien, con el nuevo &lt;a href="http://www.kinectforwindows.org/" target="_blank"&gt;Kinect&lt;/a&gt; For Windows es posible trabajar con 2 modelos&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Default Mode &lt;/li&gt;      &lt;li&gt;Near Mode &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Para poder comenzar a trabajar con estos modos de trabajo podemos tomar en cuenta los valores de la siguiente gráfica para entender en qué rangos nos movemos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_5C58DAF5.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_3616819D.png" width="632" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pero no todas las capacidades de &lt;a href="http://www.kinectforwindows.org/" target="_blank"&gt;Kinect&lt;/a&gt; están disponibles en ambos modos, he aquí una tabla que nos muestra lo que podemos identificar en cada modo&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_1F080061.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_24767105.png" width="666" height="110" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So … no es que el “Near Mode” nos de todas las capacidades de trabajo a partir de 40 cms, sino que tendremos la capacidad de identificar 1 a 6 skeletons, pero no con todos los puntos de cada uno.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;  &lt;p&gt;&lt;img title="El Bruno on facebook" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img243.imageshack.us/img243/9364/facebook24x24.jpg" alt="" /&gt;&amp;#160; &lt;img title="El Bruno o facebook" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img37.imageshack.us/img37/5712/twiiter24x24.jpg" alt="" /&gt;&amp;#160;&lt;a href="http://es.linkedin.com/in/elbruno"&gt;&lt;img title="El Bruno in LinkedIn" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" src="http://img59.imageshack.us/img59/3462/linkedin24x24.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fuente: &lt;a href="http://channel9.msdn.com/Series/KinectQuickstart/Working-with-Depth-Data"&gt;http://channel9.msdn.com/Series/KinectQuickstart/Working-with-Depth-Data&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;PD: los datos de la gráfica de distancia se utilizan en el ejemplo de DepthViewer que proporciona el equipo de CodingForFun &lt;img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-top-style:none;border-bottom-style:none;border-right-style:none;border-left-style:none;" alt="Risa" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/wlEmoticon_2D00_openmouthedsmile_5F00_62FBBEAB.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203195" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Kinect/default.aspx">Kinect</category></item><item><title>SharePoint Online: Publicación de tipos de contenido!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/05/sharepoint-online-publicaci-243-n-de-tipos-de-contenido.aspx</link><pubDate>Sun, 05 Feb 2012 21:55:43 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203194</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;En SharePoint Online (para planes E) como en SharePoint On-Premise tenemos disponibles muchas de las capacidades ECM (Enterprise Content Management) que vienen de serie en la plataforma. Una de dichas capacidades es la de &lt;a href="http://www.cmswire.com/cms/document-management/sharepoint-2010-share-content-types-across-site-collections-007445.php"&gt;tipos de contenido empresariales&lt;/a&gt; (Enterprise Content Types) que nos permite definir una colección de sitios como hub centralizado en el qué residen los tipos de contenidos que van a ser usados por toda una organización en el resto de colecciones de sitios disponibles. Básicamente, para un SharePoint 2010 On-Premise la idea es la siguiente:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Configurar la sindicación de tipos de contenido en la aplicación de servicios de metadatos administrados. Aquí especificaremos la colección de sitios que va a actuar como hub de tipos de contenido.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;En la colección de sitios hub y en las colecciones de sitios consumidoras, habilitar la característica de sindicación de tipos de contenido.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Crear los tipos de contenido en la colección de sitios hub y publicarlos para que estén disponibles en las colecciones de sitios consumidoras una vez que se ejecuten los correspondientes Timer Jobs.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;¿Y en SharePoint Online? Pues los pasos son los mismos, excepto el primero que no existe ya que no podemos especificar que la colección de sitios hub sea una concreta sino que por defecto se configura una colección de sitios como dicho hub y lo que tenemos que hacer es preparar el resto de colecciones para que consuman los tipos de contenido creados. Podéis encontrar más información al respecto en &lt;a href="http://blogs.msdn.com/b/sharepoint__cloud/archive/2012/01/27/content-type-publishing-in-sharepoint-online.aspx"&gt;este enlace&lt;/a&gt;. Como se comenta en el mismo, hay una colección de sitios oculta en nuestro tenant de Office 365 en la ruta &lt;a title="https://miccantabria.sharepoint.com/sites/contentTypeHub" href="https://&amp;lt;Dominio&amp;gt;.sharepoint.com/sites/contentTypeHub"&gt;.sharepoint.com/sites/contentTypeHub&amp;quot;&amp;gt;.sharepoint.com/sites/contentTypeHub&amp;quot;&amp;gt;https://&amp;lt;Dominio&amp;gt;.sharepoint.com/sites/contentTypeHub&lt;/a&gt;. Este sitio:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Es un simple sitio de grupo.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;En él se ha habilitado la característica de sindicación de tipos de contenido,&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div align="center"&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="677" align="center"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="374"&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-Online-Publicacin-de-tipos-de_11DAC/image.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-Online-Publicacin-de-tipos-de_11DAC/image_thumb.png" width="244" height="118" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="301"&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-Online-Publicacin-de-tipos-de_11DAC/image_3.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://www.ciin.es/imagenes/SharePoint-Online-Publicacin-de-tipos-de_11DAC/image_thumb_3.png" width="244" height="130" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p align="justify"&gt;Un último detalle a tener en cuenta es qué para poder suscribirnos a los tipos de contenido publicados, tendremos que esperar a que los Timer Jobs correspondientes se ejecuten ya que en SharePoint Online no tenemos posibilidad de forzar su ejecución. En el caso de publicación de tipos de contenido, la frecuencia de ejecución de los correspondientes Timer Jobs es de 15 minutos.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203194" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Online/default.aspx">SharePoint Online</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/Office+365/default.aspx">Office 365</category></item><item><title>Viendo la web como en 2006</title><link>http://geeks.ms/blogs/lontivero/archive/2012/02/05/viendo-la-web-como-en-2006.aspx</link><pubDate>Sun, 05 Feb 2012 19:26:40 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203192</guid><dc:creator>Lucas Ontivero</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Muchas veces uno tuvo un sitio que dejó en el olvido y quisiera verlo nuevamente o quizás recordar cómo se veía Geeks.ms en el 2006. Bueno, para los segundos les muestro cómo se veía esto en 206. Que lindos tiempos! las fechas de los artículos en inglés, nada de publicidad, un artículo de Carlos Fouz sobre la batalla que Microsoft la daría a Google y las 18 visitas que tuvo, algo que hoy tenemos en 15 minutos.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_414E0F16.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_65531E0B.png" width="1000" height="694" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bueno, la verdad es que esta entrada es solo para mostrar algo que probablemente ya muchos conocen pero que para aquellos que no, les resultará interesante. Se trata de &lt;a href="http://web.archive.org"&gt;http://web.archive.org&lt;/a&gt; donde podemos ver el contenido de la web en las fechas que queramos.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203192" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Investigaciones/default.aspx">Investigaciones</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Herramientas/default.aspx">Herramientas</category></item><item><title>10 consejos para que no te crackeen tan fácil</title><link>http://geeks.ms/blogs/lontivero/archive/2012/02/05/10-consejos-para-que-no-te-crackeen-tan-f-225-cil.aspx</link><pubDate>Sun, 05 Feb 2012 18:10:33 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203191</guid><dc:creator>Lucas Ontivero</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Crackear una aplicación tiene algo de arte y de ingenio pero crackear una aplicación .Net es demasiado sencillo para mi gusto, y representa un problema para la empresa o desarrollador que la comercializa y vive de mantener y mejorar el producto. Ya no vale eso de “total quien se va a dar cuenta”, eso no es válido para ninguna aplicación pero esto es aún peor cuando se trata de herramientas de desarrollo de software las cuales serán utilizadas por profesionales que conocen como pueden saltearse los sistemas de licencias.&lt;/p&gt;  &lt;p&gt;Hoy, con todas las herramientas de que disponemos en .Net (ILSpy y sus addins de debugging, Cecil, RegSpy, entre otros) saltearse estas validaciones es demasiado sencillo. Por eso quiero hacer algunas pocas recomendaciones que si bien no pueden por si solas detener a quien se lo proponga, por lo menos le dificultará un poco la tarea. Esto es importante desde mi punto de vista ya que si debo invertir una semana para crackear una aplicación quizás me convenga comprarla.&lt;/p&gt;  &lt;p&gt;Aquí van:&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;1. Firma los ensamblados&lt;/strong&gt;&lt;/font&gt;. Esto hará que no puedan reemplazarlo por otro o reescribirlo; caso contrario lo único que debe hacer alguien para saltearse las validaciones es reescribir algún método y listo. Para ilustrar esto veamos un ejemplo, imaginemos que tenemos una clase encargada de verificar la licencia del usuario llamada &lt;em&gt;&lt;strong&gt;LicenseChecker&lt;/strong&gt;&lt;/em&gt; la cual tiene un método &lt;strong&gt;&lt;em&gt;CheckLicense&lt;/em&gt;&lt;/strong&gt; que retorna TRUE si la licencia es válida y FALSE en caso contrario. En este caso, solo bastaría con reescribir el método insertándole un &lt;strong&gt;&lt;em&gt;return true. (ldc.i4.1 ret) &lt;/em&gt;&lt;/strong&gt;Abajo puede verse lo ridículamente sencillo que es lograr esto con Cecil.&lt;strong&gt;&lt;em&gt;&amp;#160;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_288F7750.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_2F9E8DFB.png" width="528" height="255" /&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;Del mismo modo, no guardes información valiosa en constantes publicas ya que de la misma manera, se puede modificar sus valores. Por ejemplo, imagina que en una clase &lt;strong&gt;&lt;em&gt;LicenseConstants&lt;/em&gt;&lt;/strong&gt; tenemos un field llamado TrialDays con un valor de 30 que se asigna en el constructor estático en la instrucción nro. 10. en este caso, lo más sencillo será sobrescribir el assembly para asignarle un valor mayor y así extender el período de prueba tanto como queramos. El código sería así:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_71E18071.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_26522CED.png" width="509" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;2. Nombres de identificadores&lt;/strong&gt;&lt;/font&gt;. Nada va a salvarte de ti mismo, si la clase que verifica la licencia se llama LicenseChecker, LicenseValidator o de alguna otra forma altamente sugestiva, cualquiera con medio dedo de frente comenzará por ahí. Simplemente buscará con Reflector o ILSpy la pablabra “License” y listo!    &lt;br /&gt;Recuerda que los ofuscadores no pueden cambiar los nombres de los identificadores que forman parte de la superficie pública porque de lo contrario el assembly quedaría inutilizable. Sabiendo esto, te darás cuenta que todo lo que suene altamente sugestivo no puede formar parte de la superficie pública.&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;3. Ofusca&lt;/strong&gt;&lt;/font&gt; los ensamblados como parte del proceso de Build. Si bien esto tiene pros y contras, con esto no solo dificultas un poco la tarea de examinar el código mediante Reflector, ILSpy u otros sino que además proteges un poco el código de copias ya que la mayoría de estas herramientas permiten extraer el código fuente en proyectos compilables. &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;4. Strings&lt;/strong&gt;&lt;/font&gt;. Los strings con mensajes que se muestran en la UI referidos a temas de licencias deben estar encriptados de alguna manera. Por ejemplo, si alguien quisiera romper con el componente de validación de licencias y ve que en la UI dice “Enter License Number:”, lo primero que hará será buscar ese string en los assemblies y una vez que lo encuentre se fijará en donde se usa, y desde allí llegará a donde quiera.&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;5. Encriptación&lt;/strong&gt;&lt;/font&gt;. Encriptar datos no detendrá a nadie aunque sí hará más lento el proceso de cracking y quizás llegue a frustrar a la persona que intenta saltearse la licencia. Lo que hay que tener en cuenta es que no debe ser la clave pública fácil de encontrar. Otro punto aún más importante es que los métodos que encriptan y desencriptan no deben nunca estar en assemblies separados de donde se usan porque de lo contrario estos tendrán que ser públicos y con esto ya arruinamos todo. Es decir, nunca poner estos métodos en un assembly “Utils” con nombres tales como Encript y Decrypt y hacerlos públicos, de lo contrario, cualquiera creará un proyecto de consola, referenciará a ese assembly y buscará las en el registro aquellas claves creadas por la aplicación que se ven claramente como encriptadas. Es decir, aquellas que se ven como sigue “9L3a1IQLzZFOmlU/3GkYu5Dm1ijRA+”, todo el mundo sabe que ésta es una cadena que ha sido encriptada.&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;6. Registro de windows&lt;/strong&gt;&lt;/font&gt;. Ya sea que el código esté o no ofuscado, los strings con las claves del registro no deben reconocerse fácilmente. Si en alguna parte tenemos un string que comienza con “HKCU\Software\”, ya está! Si además ponemos públicos los algoritmos de desencriptación ni siquiera será necesario buscar la clave de desencriptación, solo será necesario hacer algo así:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_09F4C500.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lontivero/image_5F00_thumb_5F00_6175E2EB.png" width="442" height="71" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Luego modificamos el valor que obtuvimos por consola y lo encriptamos nuevamente (gracias a los métodos que nos brinda el mismo producto) y lo escribimos en el registro.&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;7. Períodos de prueba&lt;/strong&gt;&lt;/font&gt;. La mayoría de los productos permiten ser usados por un período de prueba, este es uno de los puntos más débiles de casi todos los productos que conozco ya que para lograrlo, por lo general deben guardar la información de activación, días de prueba o fecha de finalización en alguna parte de nuestros equipos (por lo general, en el registro de windows). Suele ser muy sencillo manipular las claves del registro para que ese período de evaluación se extienda ad infinitum. Recuerda que quien intenta saltearse la licencia, tiene el código a su disposición por lo que encontrará la manera de burlar el mecanismo.&lt;/p&gt;  &lt;p&gt;Ten en cuenta que puede espiarse la actividad que el sistema realiza en el registro al momento de aceptar la licencia de evaluación con lo que encontrar qué es lo que hay que modificar no es el problema sino el cómo hay que modificarla. Ahí es donde debe ponerse toda la inteligencia.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;8. Datetime.Now&lt;/strong&gt;&lt;/font&gt;. Restringe al máximo el uso de Datetime.Now para checkear las diferencias de días que le quedan antes de que expire el período de evaluación, ya que este devuelve la fecha del sistema y esta es modificable por el usuario. Es decir, le damos al usuario una variable que él puede modificar a su antojo.&amp;#160; Por lo tanto verifica todos los casos posibles, piensa que el usuario puede cambiar la fecha del sistema al momento de la instalación, piensa en lo valores límites, piensa si la diferencia (DateTime.Now – InstallationDate) es positiva y si es negativa, piensa que lo más fácil para el que menos sabe será jugar con la fecha del sistema.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;9. Prueba&lt;/font&gt;&lt;/strong&gt;. Muchas empresas desarrollan sus sistemas de licencias y realizan pruebas funcionales sobre estas para comprobar su correcto funcionamiento. Esto es necesario pero es solo una prueba de caja negra; sobre estos sistemas deben realizarse pruebas de caja blanca y dedicar al menos un día de, al menos, uno de los mejores desarrolladores a probar si puede vulnerar el sistema.&lt;/p&gt;  &lt;p&gt;10. Dedicarle el esfuerzo y la inteligencia necesaria. Si no querés que las instrucciones de cómo vulnerar tu sistema se encuentren al otro día de realizado el release&amp;#160; accesibles en toda la internet, si no querés que los seriales estén por todos lados, si no querés perder ventas, entonces dedicale el tiempo, esfuerzo, inteligencia y recursos necesarios. Quizás te convenga contratar a un experto en el tema.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203191" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lontivero/archive/tags/.Net/default.aspx">.Net</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Investigaciones/default.aspx">Investigaciones</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Conceptos/default.aspx">Conceptos</category></item><item><title>Ejecutar Instrucción SQL con WiX</title><link>http://geeks.ms/blogs/rduarte/archive/2012/02/04/ejecutar-instrucci-243-n-sql-con-wix.aspx</link><pubDate>Sat, 04 Feb 2012 21:13:24 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203187</guid><dc:creator>Romny</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Buenas&amp;#160; a todos.&lt;/p&gt;  &lt;p&gt;Después de nuestro anterior post &lt;a href="http://geeks.ms/blogs/rduarte/archive/2012/02/02/creando-instalador-con-wix.aspx" target="_blank"&gt;Creando Instalador con WiX&lt;/a&gt; he decidido jugar un poco mas con esta tecnología, que se ve prometedora.&lt;/p&gt;  &lt;p&gt;Antes de empezar les recuerdo los link principales para leer sobre el tema.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://wix.sourceforge.net/" target="_blank"&gt;http://wix.sourceforge.net/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://wix.codeplex.com/" target="_blank"&gt;http://wix.codeplex.com/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://wix.tramontana.co.hu/tutorial" href="http://wix.tramontana.co.hu/tutorial" target="_blank"&gt;http://wix.tramontana.co.hu/tutorial&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Para este post vamos a ejecutar una instrucción SQL desde nuestro instalador.&lt;/p&gt;  &lt;p&gt;Como sabrán, WiX usa XML para hacer las definiciones de nuestro instalador. Para poder ejecutar la instrucción SQL tenemos que hacer lo siguiente.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Añadir los espacios de nombres correspondientes.&lt;/li&gt; &lt;/ul&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:89px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" 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:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Wix&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/wix/2006/wi&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:#606060;" id="lnum2"&gt;   2:&lt;/span&gt;      &lt;span style="color:#ff0000;"&gt;xmlns:util&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/wix/UtilExtension&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:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;      &lt;span style="color:#ff0000;"&gt;xmlns:sql&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/wix/SqlExtension&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;En la definición de nuestro del directorio principal colocamos lo siguiente.&lt;/li&gt;
&lt;/ul&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" 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:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ProgramFilesFolder&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:#606060;" id="lnum2"&gt;   2:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationRootDirectory&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&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: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:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;           &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Component&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SqlComponent&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Guid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;2a57840e-49a3-412c-8602-1f0f6eda1b8e&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;KeyPath&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&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:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;util:User&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SQLUser&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;[SQLUSER]&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Password&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;[SQLPASSWORD]&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: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:#606060;" id="lnum5"&gt;   5:&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:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;sql:SqlDatabase&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SqlDatabase&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Database&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Server&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;[SQLSERVER]&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:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;               &lt;span style="color:#ff0000;"&gt;CreateOnInstall&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;DropOnUninstall&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;User&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SQLUser&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:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;               &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;sql:SqlScript&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CreateTable&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;BinaryKey&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CreateTable&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ExecuteOnInstall&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&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: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:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;sql:SqlDatabase&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:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;           &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Component&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:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&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:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&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&gt;Los anteriores espacios de nombres era para poder definir un usuario para conectarnos a nuestro server, También para definir nuestra bd y cual script ejecutar.&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:40px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" 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:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Binary&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CreateTable&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;SourceFile&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CreateTable.sql&amp;quot;&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&gt;Además defino las propiedades siguientes.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_56B87B4D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_thumb_5F00_6AD197D6.png" width="270" height="56" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ya después de ejecutar el instalador en el server de SQL queda así.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_0E1E8C7C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_thumb_5F00_4971F23A.png" width="198" height="109" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Algo interesante es que uno define el nombre de la BD y el se encarga de crearla, también si desinstalamos el la elimina. según esto.&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" 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:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;sql:SqlDatabase&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SqlDatabase&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Database&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Server&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;[SQLSERVER]&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:#606060;" id="lnum2"&gt;   2:&lt;/span&gt;               &lt;span style="color:#ff0000;"&gt;CreateOnInstall&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;DropOnUninstall&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;User&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SQLUser&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: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:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;               &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;sql:SqlScript&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CreateTable&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;BinaryKey&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CreateTable&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ExecuteOnInstall&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&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:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;sql:SqlDatabase&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&gt;Como puede ver es bastante versátil la herramienta. Ya solo queda probar la parte grafica del instalador.&lt;/p&gt;

&lt;p&gt;Espero que les haya gustado.&lt;/p&gt;

&lt;p&gt;Saludos.&lt;/p&gt;

&lt;p&gt;Romny&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203187" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Integracion/default.aspx">Integracion</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Installer/default.aspx">Installer</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Tools/default.aspx">Tools</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/CodePlex/default.aspx">CodePlex</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/WiX/default.aspx">WiX</category></item><item><title>[#KINECT] Aclaraciones sobre el nuevo sensor Kinect para PC</title><link>http://geeks.ms/blogs/elbruno/archive/2012/02/04/kinect-aclaraciones-sobre-el-nuevo-sensor-kinect-para-pc.aspx</link><pubDate>Sat, 04 Feb 2012 17:32:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203186</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/kinectforwindows/"&gt;&lt;img height="202" width="590" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-49-metablogapi/4477.image_5F00_120a4003_2D00_b2d6_2D00_4d77_2D00_968a_2D00_86926c743f75.png" alt="image" border="0" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Buenas,&lt;/p&gt;
&lt;p&gt;como hay un poco de dudas sobre las diferencias entre el sensor &lt;a target="_blank" href="http://www.kinectforwindows.org/"&gt;KINECT&lt;/a&gt; para Xbox360 y el nuevo sensor &lt;a target="_blank" href="http://www.kinectforwindows.org/"&gt;Kinect&lt;/a&gt; para PC. Voy a explicar un poco lo que s&amp;eacute; al respecto para diferenciarlos.&lt;/p&gt;
&lt;p&gt;En primer lugar las diferencias m&amp;aacute;s significativas del nuevo sensor para PC&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Near Mode. El nuevo sensor posee un nuevo firmware que permite trabajar identificando cuerpos a partir de los 40 cms, con un alcance m&amp;aacute;ximo de 4 metros. &lt;/li&gt;
&lt;li&gt;Cable USB m&amp;aacute;s corto. Parece una tonter&amp;iacute;a, pero el hecho de tener solo un conector USB y no el mega conector que posee ahora el sensor, se agradece bastante. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahora bien, la principal diferencia est&amp;aacute; en que el nuevo hardware/Sensor est&amp;aacute; espec&amp;iacute;ficamente dise&amp;ntilde;ado para PC. Soporta todas las caracter&amp;iacute;sticas del SDK que podemos utilizar con el actual sensor de Xbox, pero es SOLO CON ESTE DISPOSITIVO que tendr&amp;aacute;s soporte, actualizaciones, etc. &lt;/p&gt;
&lt;p&gt;El sensor de XBOX&amp;nbsp; NO ESTA SOPORTADO PARA ENTORNOS PC; el nuevo sensor si. Adem&amp;aacute;s, la capacidad de near mode, el nuevo soporte para speech, etc.; solo est&amp;aacute; disponible para el sensor para PC.&lt;/p&gt;
&lt;p&gt;Finalmente, no est&amp;aacute; permitido ni soportado el desarrollo con el sensor para XBOX. Parece algo obvio, pero si pensamos que las pruebas se han realizado con otro SDK (el de XBOX), sobre otro entorno; es normal que este sensor no sea homologado para PC. En cambio el nuevo sensor, si est&amp;aacute; soportado para entornos PC, si posee garant&amp;iacute;a, actualizaciones, etc.&lt;/p&gt;
&lt;p&gt;A ver si comienzo una serie de minoposts con datos del nuevo SDK. Eso, cuando Amazon, me ayude y me haga llegar el nuevo sensor &lt;img src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/wlEmoticon_2D00_openmouthedsmile_5F00_622C9C44.png" alt="Risa" style="border-top-style:none;border-bottom-style:none;border-right-style:none;border-left-style:none;" class="wlEmoticon wlEmoticon-openmouthedsmile" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Saludos @ Home&lt;/p&gt;
&lt;p&gt;El Bruno&lt;/p&gt;
&lt;p&gt;&lt;img src="http://img243.imageshack.us/img243/9364/facebook24x24.jpg" border="0" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" title="El Bruno on facebook" alt="" /&gt;&amp;nbsp; &lt;img src="http://img37.imageshack.us/img37/5712/twiiter24x24.jpg" border="0" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" title="El Bruno o facebook" alt="" /&gt;&amp;nbsp;&lt;a href="http://es.linkedin.com/in/elbruno"&gt;&lt;img src="http://img59.imageshack.us/img59/3462/linkedin24x24.jpg" border="0" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" title="El Bruno in LinkedIn" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Descarga SDK &lt;a href="http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx"&gt;http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203186" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Kinect/default.aspx">Kinect</category></item><item><title>Office 365: Transición desde Office Live Small Business!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/04/office-365-transici-243-n-desde-office-live-small-business.aspx</link><pubDate>Sat, 04 Feb 2012 08:57:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203180</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Como sab&amp;eacute;is, y a groso modo, Office 365 cuenta con dos tipos generales de planes cuyo target depende bastante de las caracter&amp;iacute;sticas y necesidades particulares de una empresa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;a href="http://www.microsoft.com/es-es/office365/online-software.aspx"&gt;Office 365 para profesionales y peque&amp;ntilde;as empresas&lt;/a&gt; (normalmente con hasta 50 usuarios de la plataforma).&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;a href="http://www.microsoft.com/es-es/office365/hosted-solutions.aspx"&gt;Office 365 para medianas y grandes empresas&lt;/a&gt; (hablamos de m&amp;aacute;s de 50 posibles usuarios y de una mayor necesidad de los servicios incluidos en la plataforma y de sus capacidades).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Y antes de la llegada de Office 365, y de acuerdo a esta diferenciaci&amp;oacute;n, podemos decir que Microsoft ten&amp;iacute;a tambi&amp;eacute;n dos offerings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Por una parte Office Live Small Business, que ser&amp;iacute;a equivalente a Office 365 para profesionales y peque&amp;ntilde;as empresas.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Por otro, BPOS (Business Productivity Online Suite) que inclu&amp;iacute;a las versiones previas de los servicios incluidos en Office 365.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Por supuesto, la idea es que usuarios que vengan de ambos tipos de escenarios acaben actualiz&amp;aacute;ndose&amp;nbsp; a Office 365. En el caso de BPOS, es Microsoft (o la propia organizaci&amp;oacute;n) quien realiza esa actualizaci&amp;oacute;n&amp;hellip;&amp;iquest;Y en el caso de Office Live Small Business? Pues el propio usuario y realizando un proceso de migraci&amp;oacute;n un tanto manual&amp;hellip;b&amp;aacute;sicamente se trata de adquirir Office 365 y mover toda la informaci&amp;oacute;n de Office Live Small Business all&amp;iacute;. Os dejo varias referencias al respecto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ask.officelive.com/smallbusiness/wiki/articles/common-questions-about-microsoft-office-365-and-office-live-small-business.aspx" title="http://ask.officelive.com/smallbusiness/wiki/articles/common-questions-about-microsoft-office-365-and-office-live-small-business.aspx"&gt;http://ask.officelive.com/smallbusiness/wiki/articles/common-questions-about-microsoft-office-365-and-office-live-small-business.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/office/olsb/FAQ-EN-US.html" title="http://www.microsoft.com/office/olsb/FAQ-EN-US.html"&gt;http://www.microsoft.com/office/olsb/FAQ-EN-US.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gu&amp;iacute;a de transici&amp;oacute;n: &lt;a href="http://ask.officelive.com/smallbusiness/media/p/133772/download.aspx" title="self-transition guide"&gt;self-transition guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203180" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/Office+365/default.aspx">Office 365</category></item><item><title>SharePoint 2010: Cómo comprobar si un ensamblado de terceros tiene alguna fuga de memoria!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/03/sharepoint-2010-c-243-mo-comprobar-si-un-ensamblado-de-terceros-tiene-alguna-fuga-de-memoria.aspx</link><pubDate>Fri, 03 Feb 2012 19:26:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203177</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Cuando nos encontramos con problemas de fugas de memoria en nuestro despliegue de SharePoint y sospechamos que se puede deber a un ensamblado de terceros, podemos ayudarnos de la herramienta SPDisposeCheck para verificar si dichas fugas de memoria se deben a que no se ha hecho el disposado correcto de objetos SPWeb y SPSite que se est&amp;eacute;n instanciando, comprobando as&amp;iacute; que se est&amp;aacute; liberando el uso de memoria que utilizan cuando entran en funcionamiento. SPDisposeCheck se integra en Visual Studio 2010 de forma que en tiempo de desarrollo podemos comprobar si estamos siguiendo las buenas pr&amp;aacute;cticas en el disposado de objetos, pero tambi&amp;eacute;n se puede ejecutar mediante l&amp;iacute;nea de comandos y hacer dichas comprobaciones contra un ensamblado:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2010-Cmo-comprobar-si-un-ensa_9861/image.png"&gt;&lt;img height="244" width="176" src="http://www.ciin.es/imagenes/SharePoint-2010-Cmo-comprobar-si-un-ensa_9861/image_thumb.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finalmente, os dejo varias referencias relativas a SPDisposeCheck y a las reglas de disposado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Reglas del disposado de objetos: &lt;a href="http://msdn2.microsoft.com/en-us/library/aa973248.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa973248.aspx&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;SPDisposeCheck:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Uso contra una dll: &lt;a href="http://www.sharepointdevwiki.com/display/public/How+to+integrate+SP+Dispose+Check+into+Visual+Studio+Solutions"&gt;http://www.sharepointdevwiki.com/display/public/How+to+integrate+SP+Dispose+Check+into+Visual+Studio+Solutions&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;P&amp;aacute;gina de descarga de la herramienta: &lt;a href="http://archive.msdn.microsoft.com/SPDisposeCheck"&gt;http://archive.msdn.microsoft.com/SPDisposeCheck&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;a href="http://blogs.msdn.com/b/rogerla/archive/2010/12/13/announcing-spdisposecheck-v14-0-4762-1000-update-for-sharepoint-development.aspx"&gt;http://blogs.msdn.com/b/rogerla/archive/2010/12/13/announcing-spdisposecheck-v14-0-4762-1000-update-for-sharepoint-development.aspx&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203177" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2010/default.aspx">SharePoint Foundation 2010</category></item><item><title>La “Cuenta fantasma” que quería iniciar sesión, Process Monitor y su solución.</title><link>http://geeks.ms/blogs/checho/archive/2012/02/03/la-cuenta-fantasma-que-quer-237-a-iniciar-sesi-243-n-process-monitor-y-su-soluci-243-n.aspx</link><pubDate>Fri, 03 Feb 2012 12:20:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203174</guid><dc:creator>Checho</dc:creator><slash:comments>0</slash:comments><description>&lt;h3&gt;El problema&lt;/h3&gt;  &lt;p&gt;Normalmente, suelo tener algunas máquinas virtuales en las que me apoyo para los diferentes artículos que escribo aquí, o bien para las pruebas que requiera hacer, sea reproduciendo problemas, o tratando de entender comportamientos de Windows.&lt;/p&gt;  &lt;p&gt;Las máquinas virtuales las administro desde &lt;strong&gt;VMware&lt;/strong&gt;, y una de las características de éste gran Gestor, es que si se instala Windows utilizando el asistente, sea con los pasos básicos o avanzados, al darle el usuario que sea quiere crear, además de que no lo pregunta en la instalación (Lo hace de forma desatendida), es que Windows siempre hará autologon con el usuario.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;*Nota:&lt;/strong&gt; Pueden ver más a fondo los procesos de Autologon en &lt;a href="http://geeks.ms/blogs/checho/archive/2011/08/31/establecer-inicio-autom-225-tico-de-cuenta-de-usuario-autologon-en-windows-7.aspx" target="_blank"&gt;Este artículo.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lamentablemente, en una de las máquinas, tuve que eliminar una de las cuentas porque la dañé completamente; no tuve problema con este proceso, el problema empezó al empezar a reiniciar normalmente el equipo, ya que cada que entraba, obtenía un mensaje de error con respecto a una contraseña:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E1_5F00_349858BA.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="E1" border="0" alt="E1" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E1_5F00_thumb_5F00_19EBBCA1.png" width="277" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al darle al botón Ok, mi sorpresa fue que Windows todavía estaba intentando ingresar con el usuario que yo había borrado (&lt;strong&gt;WinBoy&lt;/strong&gt;):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E2_5F00_183AF0CD.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="E2" border="0" alt="E2" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E2_5F00_thumb_5F00_146D2630.png" width="244" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por supuesto, no podía iniciar de ninguna forma sesión con el usuario, por lo que siempre tenía que darle al botón de Cambiar de usuario, escribir manualmente alguno de los otros usuarios e iniciar sesión.&lt;/p&gt;  &lt;p&gt;Lo primero que hice fue ir hasta la ventana de Administración de usuarios, pero la cuenta (Tal como debía ser), no aparecía por ningún lado:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E3_5F00_65C6F780.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="E3" border="0" alt="E3" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E3_5F00_thumb_5F00_2F099C7C.png" width="503" height="305" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Los archivos de usuario, a pesar de que yo pensé haberlos borrado también, seguían existiendo en el directorio de &lt;strong&gt;C:\Users&lt;/strong&gt;, pero esta no debería ser razón para que iniciara, puesto que la cuenta no estaba creada.&lt;/p&gt;  &lt;p&gt;¿Cuál era el problema entonces?&lt;/p&gt;  &lt;h3&gt;La causa&lt;/h3&gt;  &lt;p&gt;El problema estaba sucediendo antes de que se iniciara Windows, por lo menos el escritorio; sólo existe una herramienta capaz de darme un diagnóstico de lo que sucede antes, por supuesto, me refiero a Process Monitor de Sysinternals.&lt;/p&gt;  &lt;p&gt;Process Monitor tiene una característica llamada “&lt;strong&gt;Enable Boot Logging&lt;/strong&gt;” que, permite ubicar el controlador de Process Monitor (&lt;strong&gt;PROCMON20.SYS&lt;/strong&gt;) para que inicie antes que todo, por lo que generará un log que irá incrementandose hasta que se abra nuevamente dentro de Windows y se guarde.&lt;/p&gt;  &lt;p&gt;Gracias a esto, podemos ver las Operaciones que suceden incluso desde el Winlogon, cosa que no es posible ni con el mismo sistema operativo.&lt;/p&gt;  &lt;p&gt;Para habilitar la característica, basta con Abrir &lt;strong&gt;Process Monitor&lt;/strong&gt;, e ir al menú &lt;strong&gt;Options&lt;/strong&gt; y seleccionar “&lt;strong&gt;Enable Boot Logging&lt;/strong&gt;”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_05462189.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_2B3BD1DF.png" width="241" height="261" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lo habilité, abrí Process Monitor para empezar a analizar el log, y empecé a buscar por la palabra clave que pudiera darme más ayuda, en este caso, por supuesto, el nombre de usuario: “&lt;strong&gt;WinBoy&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;Después de algunos resultados que me decían que las claves del usuario en ProfileList todavía existían, encontré esto:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_49A612C8.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_219363A9.png" width="539" height="75" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;*Nota:&lt;/strong&gt; Clic en la imagen para verla en tamaño real.&lt;/p&gt;  &lt;p&gt;Windows estaba abriendo la clave Winlogon que contiene todas las claves y subclaves que hacen referencia a alguna operación en el proceso de inicio de sesión; a continuación estaba haciendo unas consultas a unos valores llamados &lt;strong&gt;DefaultUserName&lt;/strong&gt;, &lt;strong&gt;DefaultDomainName&lt;/strong&gt; y DefaultPassword. En el artículo acerca del Autologon, vimos un poco de lo que trataban estos valores, pero básicamente, junto con AutoAdminLogon, habilitan el Inicio automático (&lt;strong&gt;Autologon&lt;/strong&gt;) y además establecen el nombre de usuario, dominio y contraseña que debe utilizarse.&lt;/p&gt;  &lt;p&gt;DefaultUserName, en este caso estaba todavía haciendo referencia a la cuenta que estaba eliminada:    &lt;br /&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_06E6C790.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_6D129160.png" width="509" height="29" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;*Nota:&lt;/strong&gt; “&lt;strong&gt;Data&lt;/strong&gt;” es el contenido que tendrá, en este caso “&lt;strong&gt;WinBoy&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;Esta era la primera respuesta del por qué intentaba iniciar con una cuenta que ya no existía, al estarla referenciando, y todavía existir sus claves correspondientes, Windows aún la referenciaba.&lt;/p&gt;  &lt;p&gt;DefaultDomanName no tenía valor, por lo que estaba tomando el Grupo de Trabajo predeterminado que tenía Windows.&lt;/p&gt;  &lt;p&gt;Ahora, el valor de &lt;strong&gt;DefaultPassword&lt;/strong&gt;, a diferencia de los anteriores, tenía como resultado &lt;strong&gt;NAME NOT FOUND&lt;/strong&gt;, esto quiere decir que, a pesar de tener el Autologon indicado, Windows no encontraba la contraseña por ninguna parte; esto nos da la respuesta del por qué el primer mensaje de que el nombre de usuario o contraseña eran incorrectos.&lt;/p&gt;  &lt;h3&gt;La solución&lt;/h3&gt;  &lt;p&gt;Ya tenía detectado el problema, la solución consistía en evitar que Windows suigiera intentando hacer el Autologon, para esto entonces, desde &lt;strong&gt;Process Monitor&lt;/strong&gt; utilicé la característica de “&lt;strong&gt;Jump to&lt;/strong&gt;” para ir directamente a la clave de Registro de Winlogon y ubicar los valores que estaban causando el problema:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/auto_5F00_59F164B4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="auto" border="0" alt="auto" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/auto_5F00_thumb_5F00_18E2E550.png" width="428" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lo que hice fue primero, modificar el contenido de AutoAdminLogon para cambiarlo de “1” a “0” y que se desactivara, y posteriormente eliminé el valor de &lt;strong&gt;DefaultUserName&lt;/strong&gt; para que no tuviera nada que buscar ahí =)&lt;/p&gt;  &lt;p&gt;Al reiniciar el equipo, el agradable resultado fue:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_6EB33767.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_19AB256D.png" width="314" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El inicio de sesión común en Windows había retornado a su normalidad.&lt;/p&gt;  &lt;p&gt;¡Problema solucionado! &lt;/p&gt;  &lt;p&gt;Saludos,&lt;/p&gt;  &lt;p align="center"&gt;Checho&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203174" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/checho/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Soluci_26002300_243_3B00_n+a+problemas/default.aspx">Soluci&amp;#243;n a problemas</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Windows+Sysinternals/default.aspx">Windows Sysinternals</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Process+Monitor/default.aspx">Process Monitor</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Autologon/default.aspx">Autologon</category></item><item><title>[#RESHARPER] HowTo: Convertir string + string en string.format()</title><link>http://geeks.ms/blogs/elbruno/archive/2012/02/03/resharper-howto-convertir-string-string-en-string-format.aspx</link><pubDate>Fri, 03 Feb 2012 09:18:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203162</guid><dc:creator>El Bruno</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/27253355@N07/4454466743/"&gt;&lt;img height="167" width="606" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image47dd1de4_5F00_5D24718D.png" alt="image47dd1de4" border="0" title="image47dd1de4" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Buenas,&lt;/p&gt;
&lt;p&gt;despu&amp;eacute;s de las 12 horas de Visual Studio del pasado martes, me agarro un virus que casi me mata. Pero de a poco voy a sacar los pendientes, empezamos por algunos correos.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Buenas, estuve el otro d&amp;iacute;a viendo con mis compa&amp;ntilde;eros de trabajo las 12 horas de Visual Studio, y a parte de parecernos muy interesantes los temas que ense&amp;ntilde;asteis, nos quedamos con la duda de como hacer un &amp;quot;truco&amp;quot; que nos pareci&amp;oacute; bastante &amp;uacute;til en el d&amp;iacute;a a d&amp;iacute;a... como convertir un string del tipo &amp;quot;hola &amp;quot; + &amp;lt;variable&amp;gt; + &amp;quot; que tal&amp;quot; en string.Format(&amp;quot;hola {0} que tal&amp;quot;,&amp;lt;variable&amp;gt;) autom&amp;aacute;ticamente. Te vimos hacerlo en la charla, pero no sabemos como, jeje.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pues bien, eso que queda tan bien en vivo y adem&amp;aacute;s mucho mejor en el c&amp;oacute;digo se debemos agradecer a &lt;a target="_blank" href="http://www.jetbrains.com/resharper"&gt;ReSharper&lt;/a&gt;. Para muestra un ejemplo, tengo una aplicaci&amp;oacute;n de Consola con el siguiente c&amp;oacute;digo:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; ConsoleApplication2&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Program&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;const&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Name = &lt;span style="color:#006080;"&gt;@&amp;quot;Valentino&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;             var msg = &lt;span style="color:#006080;"&gt;&amp;quot;Hola mi nombre es &amp;quot;&lt;/span&gt; + Name;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;             Console.WriteLine(msg);&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Si nos posicionamos sobre la l&amp;iacute;nea 9, veremos que &lt;a target="_blank" href="http://www.jetbrains.com/resharper"&gt;ReSharper&lt;/a&gt; nos ofrece la posibilidad de utilizar format string para la concatenaci&amp;oacute;n de cadenas.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_32A68CC3.png"&gt;&lt;img height="220" width="351" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_3F3439DF.png" alt="image" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px 0px 3px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Una vez seleccionada esta opci&amp;oacute;n, ya no tenemos m&amp;aacute;s una suma de strings&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; ConsoleApplication2&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Program&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;const&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Name = &lt;span style="color:#006080;"&gt;@&amp;quot;Valentino&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;             var msg = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;Hola mi nombre es {0}&amp;quot;&lt;/span&gt;, Name);&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;             Console.WriteLine(msg);&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Pero esto no es todo, la segunda opci&amp;oacute;n que nos ofrece &lt;a target="_blank" href="http://www.jetbrains.com/resharper"&gt;ReSharper&lt;/a&gt; tambi&amp;eacute;n es interesante, &amp;ldquo;Compute constant value&amp;rdquo;. En la misma R# identifica que estamos trabajando con una constante y nos ofrece la posibilidad de utilizar el valor de la misma en lugar de trabajar con una cadena. El resultado final ser&amp;iacute;a el siguiente:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; ConsoleApplication2&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Program&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;const&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Name = &lt;span style="color:#006080;"&gt;@&amp;quot;Valentino&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;             var msg = &lt;span style="color:#006080;"&gt;&amp;quot;Hola mi nombre es Valentino&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;             Console.WriteLine(msg);&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;width:100%;color:black;overflow:visible;direction:ltr;text-align:left;margin:0em;line-height:12pt;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Obviamente, si cambiamos el valor de la constante estamos m&amp;aacute;s frito que los Chicago Bulls sin &lt;a target="_blank" href="http://es.wikipedia.org/wiki/Derrick_Rose"&gt;Derrick Rose&lt;/a&gt;, pero ese tema para otro post.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Saludos @ Home&lt;/p&gt;
&lt;p&gt;El Bruno&lt;/p&gt;
&lt;p&gt;&lt;img src="http://img243.imageshack.us/img243/9364/facebook24x24.jpg" border="0" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" title="El Bruno on facebook" alt="" /&gt;&amp;nbsp; &lt;img src="http://img37.imageshack.us/img37/5712/twiiter24x24.jpg" border="0" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" title="El Bruno o facebook" alt="" /&gt;&amp;nbsp;&lt;a href="http://es.linkedin.com/in/elbruno"&gt;&lt;img src="http://img59.imageshack.us/img59/3462/linkedin24x24.jpg" border="0" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" title="El Bruno in LinkedIn" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203162" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/HowTo/default.aspx">HowTo</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Code+Sample/default.aspx">Code Sample</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/ReSharper/default.aspx">ReSharper</category></item><item><title>Charla de Paralelismo con ASP.NET MVC</title><link>http://geeks.ms/blogs/eortuno/archive/2012/02/02/charla-de-paralelismo-con-asp-net-mvc.aspx</link><pubDate>Fri, 03 Feb 2012 03:16:08 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203160</guid><dc:creator>Enrique Ortuño</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;El Dia Jueves 26 de Enero tuve el placer de compartir con los miembros del CUTMS &lt;a href="http://cutmsc.com/publicopencutm/b/cutm-sc/archive/2012/01/24/este-jueves-26-a-las-19-30-iniciamos-el-2012-con-nuevas-charlas.aspx" target="_blank"&gt;aqui en Cochabamba&lt;/a&gt;, una charla acerca de las ventajas de usar paralelismo con ASP.NET MVC.&lt;/p&gt;  &lt;p&gt;Aqui les dejo algunas fotografias:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eortuno/WP_5F00_000016_5F00_21709B1D.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="WP_000016" border="0" alt="WP_000016" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eortuno/WP_5F00_000016_5F00_thumb_5F00_75AC58FB.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eortuno/WP_5F00_000013_5F00_59BB2403.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="WP_000013" border="0" alt="WP_000013" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eortuno/WP_5F00_000013_5F00_thumb_5F00_7F142FFD.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Aqui pueden descargarse el codigo de demostracion que utilice en esa presentacion:&lt;/p&gt;  &lt;p&gt;https://skydrive.live.com/redir.aspx?cid=e46b27f9dbbd40a1&amp;amp;resid=E46B27F9DBBD40A1!429&amp;amp;parid=E46B27F9DBBD40A1!379&amp;amp;authkey=!ADcs8NahlPigLD0&lt;/p&gt;  &lt;p&gt;Un abrazo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203160" width="1" height="1"&gt;</description></item><item><title>Código libre de NULLs</title><link>http://geeks.ms/blogs/lontivero/archive/2012/02/02/c-243-digo-libre-de-nulls.aspx</link><pubDate>Thu, 02 Feb 2012 20:02:23 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203159</guid><dc:creator>Lucas Ontivero</dc:creator><slash:comments>16</slash:comments><description>&lt;p&gt;En este video explico los problemas que causan las referencias nulas en nuestro código y planteo cómo debemos crear un código libre de NULLs.&lt;/p&gt; &lt;object style="height:390px;width:640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vnO5whrfx9M?version=3&amp;amp;feature=player_detailpage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vnO5whrfx9M?version=3&amp;amp;feature=player_detailpage" type="application/x-shockwave-flash" allowscriptaccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203159" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Dise_26002300_241_3B00_o/default.aspx">Dise&amp;#241;o</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Series/default.aspx">Series</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/.Net/default.aspx">.Net</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Languages/default.aspx">Languages</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Conceptos/default.aspx">Conceptos</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Refactoring/default.aspx">Refactoring</category></item><item><title>Office 365: Documento corrupto, cuando me descargo algún documento Office del sitio de grupo o Exchange online</title><link>http://geeks.ms/blogs/lmanez/archive/2012/02/02/office-365-documento-corrupto-cuando-me-descargo-alg-250-n-documento-office-del-sitio-de-grupo-o-exchange-online.aspx</link><pubDate>Thu, 02 Feb 2012 17:40:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203098</guid><dc:creator>Luis Mañez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Cuando empiezas a trabajar con Office 365, seguramente te encontrarás con un problema a la hora de intentar abrir un documento Office, que te has descargado desde el Exchange Online, o el sitio de grupo. El error tiene esta pinta:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_13E2A3FC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_3BC5A35B.png" width="415" height="239" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La solución es muy sencilla, basta con editar las propiedades del fichero descargado, y pinchar sobre “Desbloquear”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_4ED6AA3A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_392C4BD0.png" width="258" height="360" /&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=203098" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lmanez/archive/tags/Office365/default.aspx">Office365</category></item><item><title>La Subclave de Registro que no quería eliminarse, el pequeño bug de PowerShell, Process Monitor y su solución</title><link>http://geeks.ms/blogs/checho/archive/2012/02/02/la-subclave-de-registro-que-no-quer-237-a-eliminarse-el-peque-241-o-bug-de-powershell-process-monitor-y-su-soluci-243-n.aspx</link><pubDate>Thu, 02 Feb 2012 13:41:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203158</guid><dc:creator>Checho</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Hola a todos,&lt;/p&gt;  &lt;p&gt;Este no iba a ser el artículo que iba a poner de primero, pero resultó y es para mí, de lo más interesante porque personalmente, aprendí y eso le da un buen sentido.&lt;/p&gt;  &lt;h3&gt;El problema&lt;/h3&gt;  &lt;p&gt;Estoy tratando de conocer y comprender, hasta donde sea capaz mi conocimiento, un poco más a fondo el funcionamiento de la Asociación de archivos en &lt;strong&gt;Windows &lt;/strong&gt;(En esta semana pondré el artículo completo refiriendome al tema). &lt;/p&gt;  &lt;p&gt;Una de las formas más sencillas de aprender sobre Windows, es dañando y tratando de arreglar, por lo que modifiqué para reproducir el problema común de la perdida de asociación a los accesos directos, lo que causa que todo se abra con un solo programa:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_640D347E.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_22FEB51A.png" width="244" height="44" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A continuación, estaba tratando de utilizar PowerShell, para hacer uso de un cmdlet para eliminar la subclave de registro que causa este problema, es decir:    &lt;br /&gt;    &lt;br /&gt;&lt;u&gt;&lt;font size="1"&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Como PowerShell trabaja las claves de registro de la misma forma que lo hace con los archivos, bastaba con hacer referencia a una pequeña línea de comandos utilizando &lt;strong&gt;Remove-Item&lt;/strong&gt;, así:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Remove-Item –Path HCKU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;El problema, es que cada que ejecutaba la línea anterior, recibía un mensaje un poco extraño de PowerShell:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_37228957.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_21E45DE2.png" width="555" height="188" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Según el mensaje que PowerShell me daba, &lt;strong&gt;Remove-Item&lt;/strong&gt; no podía eliminar la subclave de Registro porque no existía, aunque efectivamente la clave estaba:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_1E82C63A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_04AE900B.png" width="186" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Aunque PowerShell estaba reconociendo la excepción, no necesariamente estaba entregando el mensaje que correspondía, ¿Cuál era el problema entonces si la clave existía?&lt;/p&gt;  &lt;h3&gt;La causa&lt;/h3&gt;  &lt;p&gt;Como PowerShell no era capaz de indicar qué era lo que realmente le pasaba, había que pasar a preguntarle directamente a Windows, y para hacer esto, como siempre, nada mejor que &lt;a href="http://technet.microsoft.com/es-co/sysinternals/bb896645" target="_blank"&gt;Process Monitor&lt;/a&gt; de &lt;strong&gt;Windows Sysinternals.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Después de correr Process Monitor e intentar ejecutar la línea de comandos, bastó con volver a Procmon, parar el monitoreo y buscar directamente por la subclave UserChoice, como se recomienda, de abajo hacia arriba; esto fue lo que encontré:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E1_5F00_448AB81E.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="E1" border="0" alt="E1" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/E1_5F00_thumb_5F00_186DBB2D.png" width="552" height="52" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;*Nota:&lt;/strong&gt; Clic para ver la imagen en tamaño completo.&lt;/p&gt;  &lt;p&gt;El proceso &lt;strong&gt;powershell.exe&lt;/strong&gt; estaba tratando de abrir la clave de &lt;strong&gt;UserChoice&lt;/strong&gt;, pero como ven, el resultado era &lt;strong&gt;ACCESS DENIED&lt;/strong&gt;, lo que llevaba a la respuesta, &lt;strong&gt;el problema estaba en permisos, ¡No en ausencia de la clave!&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Process Monitor permite saltar directamente a la clave, así que lo hice, y después de esto entré a la ventana de Permisos de la clave haciendo clic derecho, &lt;strong&gt;Permisos&lt;/strong&gt;, y en primera instancia, todo estaba bien para los usuarios de los grupos Administradores; el único y más importante problema, es que el usuario con el que había iniciado sesión, y con el que estaba tratando de eliminar la clave, tenía un permiso especial que me estaba denegando algo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_7597B130.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_2CFDC25F.png" width="400" height="331" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;*Nota:&lt;/strong&gt; Los Permisos Especiales en Windows contienen un filtro mucho más completo de denegación o aprobación en las operaciones que se pueden hacer a nivel de sistema de archivos, o bien sobre claves y valores del Registro de Windows.&lt;/p&gt;  &lt;p&gt;Para poder ver los permisos especiales, basta con hacer clic en el botón inferior de Avanzado (No visto en la captura anterior), detecté el usuario que tenía los permisos especiales denegados e hice clic en el botón Editar para verlos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_1EDED362.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_2F76CE50.png" width="447" height="334" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Mi usuario tenía en blanco todo lo que fuera permitir, eso quiere decir que los tomaría de los permisos predeterminados, pero tenía como Denegado el permiso a establecer valores (Set Value), lo que equivale a escribir:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_01A9058B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_474D8FA9.png" width="378" height="219" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;La solución&lt;/h3&gt;  &lt;p&gt;Con el problema detectado, ya la solución sería un poco más sencilla, al saber que tenía problemas de permisos, específicante de escritura, PowerShell no iba a ser capaz de eliminar la clave (No podía escribir nada encima); así que para no modificar mucho los permisos, símplemente cambié el de Denegar para &lt;strong&gt;Establecer Valor (Set Value)&lt;/strong&gt; a &lt;strong&gt;Permitir (Allow):&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_0904C538.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_4EA94F56.png" width="374" height="218" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finalmente, volví a ejecutar la línea de comandos en PowerShell y este fue el resultado:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_4BB3EAA3.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_31DFB474.png" width="538" height="51" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;¡Todo blanco! Lo que indica que se había ejecutado correctamente, y además la clave se elimino en efecto sin ningun problema:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_1CB3CA8D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_3BF67160.png" width="194" height="72" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El pequeño Bug sobre los mensajes de información en las excepciones de &lt;strong&gt;PowerShell &lt;/strong&gt;ya llegó al Equipo de &lt;strong&gt;PowerShell&lt;/strong&gt; para mejorarlo en futuras actualizaciones.&lt;/p&gt;  &lt;p&gt;Saludos,&lt;/p&gt;  &lt;p align="center"&gt;Checho&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203158" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/checho/archive/tags/Art_26002300_237_3B00_culos+t_26002300_233_3B00_cnicos/default.aspx">Art&amp;#237;culos t&amp;#233;cnicos</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Soluci_26002300_243_3B00_n+a+problemas/default.aspx">Soluci&amp;#243;n a problemas</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Windows+Sysinternals/default.aspx">Windows Sysinternals</category><category domain="http://geeks.ms/blogs/checho/archive/tags/Process+Monitor/default.aspx">Process Monitor</category><category domain="http://geeks.ms/blogs/checho/archive/tags/PowerShell/default.aspx">PowerShell</category></item><item><title>Nuberos.NET: Retomamos la actividad con fuerza, cuál Ave Fenix!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/02/nuberos-net-retomamos-la-actividad-con-fuerza-cu-225-l-ave-fenix.aspx</link><pubDate>Thu, 02 Feb 2012 07:47:28 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203154</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Hace tiempo que al grupo de usuarios .NET de Cantabria (&lt;a href="http://www.nuberos.es"&gt;Nuberos.NET&lt;/a&gt;) no se le oye por estos lares y no realiza quedadas frikis ya sea para participar en algún evento chulo, tomarse unas cervecitas hablando de temas tequis o simplemente pasar un buen rato con gente que vive por y para la tecnología. Por eso, tras algunos meses hablando sobre el tema, el amigo &lt;a href="http://geeks.ms/blogs/rserna/"&gt;Rafa Serna&lt;/a&gt; y un servidor hemos pensado en volver a darle dinamismo al grupo empezando con la creación en LinkedIn de un grupo en el que compartir ideas, experiencias, conocimientos y proponer actividades a realizar en esta nueva andadura. Por eso, si vives en Cantabria o alrededores, o eres oriundo de allí te animo a que te unas al grupo y a que entre todos empecemos a hacer que de nuevo la rueda empiece a girar. El enlace del grupo en LinkedIn es el siguiente: &lt;a title="http://www.linkedin.com/groups?home=&amp;amp;gid=4279967&amp;amp;trk=anet_ug_hm&amp;amp;goback=%2Eanp_4279967_1328098445826_1" href="http://www.linkedin.com/groups?home=&amp;amp;gid=4279967&amp;amp;trk=anet_ug_hm&amp;amp;goback=%2Eanp_4279967_1328098445826_1"&gt;http://www.linkedin.com/groups?home=&amp;amp;gid=4279967&amp;amp;trk=anet_ug_hm&amp;amp;goback=%2Eanp_4279967_1328098445826_1&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://www.ciin.es/imagenes/Nuberos.NET_BB39/image.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://www.ciin.es/imagenes/Nuberos.NET_BB39/image_thumb.png" width="244" height="169" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203154" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/Nuberos.Net/default.aspx">Nuberos.Net</category></item><item><title>Creando Instalador con WiX</title><link>http://geeks.ms/blogs/rduarte/archive/2012/02/02/creando-instalador-con-wix.aspx</link><pubDate>Thu, 02 Feb 2012 03:14:11 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203153</guid><dc:creator>Romny</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Hola a todos.&lt;/p&gt;  &lt;p&gt;Esta noche quiero comentarles de esta poderosa herramienta para generar instaladores con Visual Studio, Actualmente esta en la versión 3.5, para descargarla la podremos hacer desde &lt;a title="http://wix.codeplex.com/releases/view/60102" href="http://wix.codeplex.com/releases/view/60102" target="_blank"&gt;http://wix.codeplex.com/releases/view/60102&lt;/a&gt;, para mas información de esta herramienta la encuentran en &lt;a title="http://wix.codeplex.com/" href="http://wix.codeplex.com/" target="_blank"&gt;http://wix.codeplex.com/&lt;/a&gt; y en &lt;a title="http://wix.sourceforge.net/" href="http://wix.sourceforge.net/" target="_blank"&gt;http://wix.sourceforge.net/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Realmente es una poderosa herramienta que usa el lenguaje XML para hacer los paquetes de instalación, lo único es que el aprendizaje es algo lento, pero bueno eso es manejable.&lt;/p&gt;  &lt;p&gt;Para instalarlo lo podremos hacer desde codeplex o desde el administrador de complementos, queda a su gusto.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_20F614FD.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:5px 5px 5px 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/rduarte/image_5F00_thumb_5F00_5A98AEE7.png" width="445" height="122" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lo primero es generar un proyecto Windows Forms y generar lo que deseemos. por mi parte una app sencilla.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_2B66C350.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_thumb_5F00_7C34D7B8.png" width="266" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Después de eso vamos a agregar un proyecto nuevo, Como se muestra la grafica.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_7B7BD192.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:5px 5px 5px 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/rduarte/image_5F00_thumb_5F00_5290BC89.png" width="381" height="228" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lo primero es agregar la referencia a nuestro proyecto.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_663DA61D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_thumb_5F00_65654033.png" width="230" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El código seria algo así &lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" 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:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#800000;"&gt;xml&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;UTF-8&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:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Wix&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/wix/2006/wi&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: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:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Product&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;03e2a616-21e0-44b2-b0e2-7e87f2dc6b4c&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Language&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1033&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:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;            &lt;span style="color:#ff0000;"&gt;Version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Manufacturer&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;UpgradeCode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;9c7b876a-4ee5-4a23-a5b3-2a2120602f46&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: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:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Package&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;InstallerVersion&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;200&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Compressed&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&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:#606060;" id="lnum6"&gt;   6:&lt;/span&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:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Media&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Cabinet&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;media1.cab&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;EmbedCab&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&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:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;&amp;lt;!--Definir el directorio--&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:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;TARGETDIR&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SourceDir&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:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ProgramFilesFolder&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: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:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationRootDirectory&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&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:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&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:#606060;" id="lnum13"&gt;  13:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ProgramMenuFolder&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:#606060;" id="lnum14"&gt;  14:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationProgramsFolder&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&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: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:#606060;" id="lnum15"&gt;  15:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&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:#606060;" id="lnum16"&gt;  16:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;DesktopFolder&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Desktop&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: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:#606060;" id="lnum17"&gt;  17:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Directory&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:#606060;" id="lnum18"&gt;  18:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;&amp;lt;!--Defenir el contenido del directorio--&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:#606060;" id="lnum19"&gt;  19:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;DirectoryRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationRootDirectory&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:#606060;" id="lnum20"&gt;  20:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Component&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationFile&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Guid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;9c7b876a-4ee5-4a23-a5b3-2a2120602f46&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: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:#606060;" id="lnum21"&gt;  21:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;File&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationFile&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;$(var.WiXApp.TargetFileName)&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:#606060;" id="lnum22"&gt;  22:&lt;/span&gt;               &lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;$(var.WiXApp.TargetPath)&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;DiskId&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;KeyPath&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&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: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:#606060;" id="lnum23"&gt;  23:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Component&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:#606060;" id="lnum24"&gt;  24:&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:#606060;" id="lnum25"&gt;  25:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;DirectoryRef&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:#606060;" id="lnum26"&gt;  26:&lt;/span&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:#606060;" id="lnum27"&gt;  27:&lt;/span&gt;      &lt;span style="color:#008000;"&gt;&amp;lt;!--Defenir el contenido del menu inicio--&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:#606060;" id="lnum28"&gt;  28:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;DirectoryRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationProgramsFolder&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: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:#606060;" id="lnum29"&gt;  29:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Component&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationShortcut&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Guid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;a89a25ab-31ef-4ba1-8b2f-e07a80eb00f3&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:#606060;" id="lnum30"&gt;  30:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Shortcut&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationStartMenuShortcut&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Description&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&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:#606060;" id="lnum31"&gt;  31:&lt;/span&gt;                   &lt;span style="color:#ff0000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;[ApplicationRootDirectory]WiXApp.exe&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:#606060;" id="lnum32"&gt;  32:&lt;/span&gt;                   &lt;span style="color:#ff0000;"&gt;WorkingDirectory&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationRootDirectory&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: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:#606060;" id="lnum33"&gt;  33:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Shortcut&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;UninstallProduct&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:#606060;" id="lnum34"&gt;  34:&lt;/span&gt;                           &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Desinstalar WiXApp&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:#606060;" id="lnum35"&gt;  35:&lt;/span&gt;                           &lt;span style="color:#ff0000;"&gt;Description&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Desinstalar WiXApp&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:#606060;" id="lnum36"&gt;  36:&lt;/span&gt;                           &lt;span style="color:#ff0000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;[System64Folder]msiexec.exe&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:#606060;" id="lnum37"&gt;  37:&lt;/span&gt;                           &lt;span style="color:#ff0000;"&gt;Arguments&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;/x [ProductCode]&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:#606060;" id="lnum38"&gt;  38:&lt;/span&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:#606060;" id="lnum39"&gt;  39:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RemoveFolder&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationProgramsFolder&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;On&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;uninstall&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:#606060;" id="lnum40"&gt;  40:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;RegistryValue&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Root&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;HKCU&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Software\Microsoft\WiXApp&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;installed&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;integer&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;KeyPath&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;yes&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: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:#606060;" id="lnum41"&gt;  41:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Component&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:#606060;" id="lnum42"&gt;  42:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;DirectoryRef&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:#606060;" id="lnum43"&gt;  43:&lt;/span&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:#606060;" id="lnum44"&gt;  44:&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:#606060;" id="lnum45"&gt;  45:&lt;/span&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:#606060;" id="lnum46"&gt;  46:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Feature&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ProductFeature&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WiXApp&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Level&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&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: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:#606060;" id="lnum47"&gt;  47:&lt;/span&gt;             &lt;span style="color:#008000;"&gt;&amp;lt;!-- TODO: Remove the comments around this ComponentRef element and the Component above in order to add resources to this installer. --&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:#606060;" id="lnum48"&gt;  48:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComponentRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationFile&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: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:#606060;" id="lnum49"&gt;  49:&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:#606060;" id="lnum50"&gt;  50:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComponentRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ApplicationShortcut&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: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:#606060;" id="lnum51"&gt;  51:&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:#606060;" id="lnum52"&gt;  52:&lt;/span&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:#606060;" id="lnum53"&gt;  53:&lt;/span&gt;       &lt;span style="color:#008000;"&gt;&amp;lt;!-- Note: The following ComponentGroupRef is required to pull in generated authoring from project references. --&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:#606060;" id="lnum54"&gt;  54:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComponentGroupRef&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Product.Generated&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: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:#606060;" id="lnum55"&gt;  55:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Feature&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:#606060;" id="lnum56"&gt;  56:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Product&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:#606060;" id="lnum57"&gt;  57:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Wix&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&gt;Después compilamos. luego vamos al bin/DEbug y ejecutamos el instalador.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_6B3FE3CC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_thumb_5F00_237E5AE5.png" width="267" height="112" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_5BBCD1FD.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/rduarte/image_5F00_thumb_5F00_6D2D32D5.png" width="222" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ejecutamos.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_1A421FA4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:5px 5px 5px 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/rduarte/image_5F00_thumb_5F00_4037CFFA.png" width="203" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora si queremos desinstalar, lo podemos hacer desde la carpeta o vamos a desinstalar programas.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_585B3A55.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rduarte/image_5F00_thumb_5F00_50CFCAE8.png" width="267" height="43" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como pueden ver es una poderos suite para generar instaladores.&lt;/p&gt;

&lt;p&gt;Espero que les haya gustado.&lt;/p&gt;

&lt;p&gt;Saludes.&lt;/p&gt;

&lt;p&gt;Romny&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203153" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Integracion/default.aspx">Integracion</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Installer/default.aspx">Installer</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/Tools/default.aspx">Tools</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/CodePlex/default.aspx">CodePlex</category><category domain="http://geeks.ms/blogs/rduarte/archive/tags/WiX/default.aspx">WiX</category></item><item><title>SharePoint 2010: Resumen de posts (XXVII)!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/01/sharepoint-2010-resumen-de-posts-xxvii.aspx</link><pubDate>Wed, 01 Feb 2012 21:40:54 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203122</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Como siempre , después del recopilatorio de enlaces interesantes sobre SharePoint 2010 os dejo el resumen de posts sobre la plataforma que se han publicado en el blog durante el último mes. Este es el resumen del mes de enero.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Capacidades&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/26/sharepoint-2010-niveles-de-arquitectura-i.aspx"&gt;SharePoint 2010: Niveles de arquitectura (I)!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/24/sharepoint-2010-191-uno-o-varios-grupos-de-aplicaciones.aspx"&gt;SharePoint 2010: ¿Uno o varios grupos de aplicaciones?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/23/sharepoint-2010-191-una-o-varias-aplicaciones-web.aspx"&gt;SharePoint 2010: ¿Una o varias aplicaciones web?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/19/sharepoint-2010-permisos-niveles-de-permisos-y-dependencias-ii.aspx"&gt;SharePoint 2010: Permisos, niveles de permisos y dependencias (II)!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/10/sharepoint-2010-como-conocer-los-niveles-de-permisos-asignados-en-mi-sitio-i.aspx"&gt;SharePoint 2010: Como conocer los niveles de permisos asignados en mi sitio (I)!&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Desarrollo&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/20/sharepoint-2010-como-usar-el-spsecuritytrimmedcontrol-en-una-webpart.aspx"&gt;SharePoint 2010: Como usar el SPSecurityTrimmedControl en una WebPart!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/18/sharepoint-2010-191-se-pueden-copiar-flujos-de-trabajo-entre-colecciones-de-sitios-diferentes.aspx"&gt;SharePoint 2010: ¿Se pueden copiar flujos de trabajo entre colecciones de sitios diferentes?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/16/sharepoint-2010-como-mostrar-los-datos-sociales-del-usuario-conectado-i.aspx"&gt;SharePoint 2010: Como mostrar los datos “sociales” del usuario conectado (I)!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/12/sharepoint-2010-como-realizar-redirecciones-en-eventos-de-tipo-as-237-ncrono.aspx"&gt;SharePoint 2010: Como realizar redirecciones en eventos de tipo asíncrono!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/11/sharepoint-2010-como-crear-y-desplegar-un-http-module.aspx"&gt;SharePoint 2010: Como crear y desplegar un HTTP Module!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/08/sharepoint-2010-como-crear-formularios-personalizados-de-lista-iii.aspx"&gt;SharePoint 2010: Como crear formularios personalizados de lista (III)!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/06/sharepoint-2010-como-determinar-el-espacio-ocupado-de-un-sitio-i.aspx"&gt;SharePoint 2010: Como determinar el espacio ocupado de un sitio (I)!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/05/sharepoint-2010-como-leer-y-modificar-el-archivo-web-config-de-una-aplicaci-243-n-web.aspx"&gt;SharePoint 2010: Como leer y modificar el archivo web.config de una aplicación web!&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;&lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;IT&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/29/sharepoint-2010-error-the-trial-period-of-this-product-has-expired-despu-233-s-de-instalar-search-server-express.aspx"&gt;SharePoint 2010: Error “The trial period of this product has expired” después de instalar Search Server Express!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/25/sharepoint-2010-191-qu-233-bd-s-puedo-mover-y-como.aspx"&gt;SharePoint 2010: ¿Qué BD’s puedo mover y como?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/21/sharepoint-2010-como-configurar-la-b-250-squeda-de-archivos-pdf.aspx"&gt;SharePoint 2010: Como configurar la búsqueda de archivos PDF!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/09/sharepoint-2010-como-realizar-una-b-250-squeda-con-varios-criterios-sin-usar-la-b-250-squeda-avanzada.aspx"&gt;SharePoint 2010: Como realizar una búsqueda con varios criterios sin usar la búsqueda avanzada!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/04/sharepoint-2010-administraci-243-n-delegada-de-aplicaciones-de-servicio.aspx"&gt;SharePoint 2010: Administración delegada de aplicaciones de servicio!&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Recursos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/02/01/sharepoint-2010-recopilatorio-de-enlaces-interesantes-xxviii.aspx"&gt;SharePoint 2010: Recopilatorio de enlaces interesantes (XXVIII)!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/03/sharepoint-2010-los-reyes-se-adelantan-por-la-comunidad.aspx"&gt;SharePoint 2010: Los reyes se adelantan por la comunidad!&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Otros&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/31/suges-disponibles-los-materiales-sobre-el-webcast-de-gobernanza.aspx"&gt;SUGES: Disponibles los materiales sobre el WebCast de Gobernanza!&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Y hasta aquí llega este nueva entrega del resumen de los posts publicados en el blog del CIIN sobre plataforma SharePoint.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203122" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2010/default.aspx">SharePoint Foundation 2010</category></item><item><title>SharePoint 2010: Recopilatorio de enlaces interesantes (XXVIII)!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/01/sharepoint-2010-recopilatorio-de-enlaces-interesantes-xxviii.aspx</link><pubDate>Wed, 01 Feb 2012 19:44:57 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203121</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>1</slash:comments><description>&lt;p align="justify"&gt;Aquí os dejo la nueva entrega del recopilatorio de enlaces interesantes del mes pasado sobre SharePoint 2010…en unos meses pasará a mejor vida y empezaremos ya a hablar de la nueva versión de SharePoint, es increíble lo rápido que pasa el tiempo y como van llegando nuevas versiones de SharePoint…en mi caso será la cuarta que pase por mis manos.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Capacidades&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/CoreysDotNetTipOfTheDay/~3/T2u_pamN_-M/how-to-query-people-search-in-sharepoint-online-and-other-sharepoint-platforms-too.aspx"&gt;How to: Query People Search in SharePoint Online (and other SharePoint platforms too!) &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sharepoint.microsoft.com/Blogs/GetThePoint/Lists/Posts/ViewPost.aspx?ID=316"&gt;Create list relationships by using lookup and unique columns (SharePoint 2010) &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/bsimser/~3/9kU40jwWNC8/the-big-dummies-guide-to-building-a-sharepoint-internet-site.aspx"&gt;The Big Dummies Guide to Building a SharePoint Internet Site &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://moresharepoint.wordpress.com/2011/07/20/dynamic-item-permissions-from-sharepoint-designer-workflow/"&gt;Dynamic Item Permissions from SharePoint Designer Workflow &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/karang/archive/2012/01/27/add-a-bi-semantic-model-connection-content-type-to-a-library-powerpivot-for-sharepoint.aspx"&gt;Add a BI Semantic Model Connection Content Type to a Library (PowerPivot for SharePoint)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/sharepoint__cloud/archive/2012/01/27/content-type-publishing-in-sharepoint-online.aspx"&gt;Blog Post: Content Type Publishing in SharePoint Online &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/blogspot/VXsL/~3/7lrGpQys__Y/few-tips-to-improve-business.html"&gt;Few Tips to improve Business Productivity with SharePoint 2010 and Office 2010 &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://community.office365.com/en-us/b/office_365_technical_blog/archive/2012/01/30/features-of-a-sharepoint-online-publishing-site.aspx"&gt;Features of a SharePoint Online Publishing Site&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Desarrollo&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/TechTrainingNotes/~3/XtzkKPwQxlA/sharepoint-not-all-column-types-can-be.html"&gt;SharePoint: Not all column types can be used in Calculated or Lookup columns (plus a trick to add back four of them!) &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://aleemsheikh.wordpress.com/2011/07/08/remove-hyperlink-from-lookup-column-in-sharepoint/"&gt;Remove hyperlink from Lookup column in SharePoint &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://farhanfaiz.wordpress.com/2012/01/05/sharepoint-associate-workflow-with-a-list-programmatically"&gt;SharePoint: Associate Workflow with a list programmatically &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.thesharepointblog.net/Lists/Posts/ViewPost.aspx?ID=101"&gt;Adding video to your Document Set Welcome Pages &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sharepointchick.com/archive/2012/01/07/setting-a-default-value-for-a-managed-metadata-field.aspx"&gt;Setting a Default Value for a Managed Metadata Column &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://techtrainingnotes.blogspot.com/2012/01/sharepoint-move-add-new-link-to-top-of.html"&gt;SharePoint: Move the “Add New” Link to the Top of the Web Part&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeproject.com/Article.aspx?tag=377141287134884438"&gt;Camlex.NET 3.0 and Camlex Online: CAML Reverse Engineering&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/blogspot/VXsL/~3/BfSfLKX1gU0/step-by-step-learning-for-workflow.html"&gt;Step by Step Learning for Workflow using SharePoint Designer 2010 &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/TechTrainingNotes/~3/ZrYV179vY8E/sharepoint-hide-list-and-library-column.html"&gt;SharePoint: Hide List and Library Column Headings &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/sharepoint-tips/ToIC/~3/81BLlNwGoTQ/importance-of-synchronous-event.html"&gt;The importance of synchronous event handlers &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mvpawardprogram/archive/2012/01/16/how-to-create-a-lightswitch-application-that-works-with-sharepoint-data.aspx"&gt;How to Create a LightSwitch Application that Works with SharePoint Data &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sharepointjavascript.wordpress.com/2012/01/19/dynamic-forms-for-sharepoint/"&gt;Dynamic Forms for SharePoint &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/johnwpowell/archive/2012/01/21/create-a-sharepoint-custom-action-to-zip-and-download-a-document-set.aspx"&gt;Create a SharePoint Custom Action to Zip and Download a Document Set &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/kaevans/archive/2012/01/20/sharepoint-2010-caml-list-joins.aspx"&gt;2010 CAML List Joins &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ybbest.wordpress.com/2012/01/25/populate-people-picker-with-current-user-in-infopath2010"&gt;Populate people picker with current user in InfoPath2010 &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://chrisstahl.wordpress.com/2012/01/27/customize-the-ui-of-web-parts-in-sharepoint-2010/"&gt;Customize the UI of web parts in SharePoint 2010&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;IT&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.toddklindt.com/blog/Lists/Posts/ViewPost.aspx?ID=304"&gt;Move your SharePoint 2010 logs off of your C drive &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/b/tothesharepoint/archive/2011/12/19/find-active-databases-used-by-sharepoint-server-2010.aspx"&gt;Find active databases used by SharePoint Server 2010 &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/MatthewMcDermott/~3/9HwZygrCk5c/"&gt;Troubleshooting SharePoint Search iFilter Registration &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/besidethepoint/archive/2012/01/08/the-sharepoint-administration-service-and-spadministrationservicejobdefinition.aspx"&gt;The SharePoint Administration Service and SPAdministrationServiceJobDefinition &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/CoreysDotNetTipOfTheDay/~3/0j5OJlvgsLU/how-to-query-site-and-site-collections-using-sharepoint-search.aspx"&gt;How to: Query site and site collections using SharePoint Search &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/chandru/archive/2012/01/22/managing-user-profile-service-application-permissions-using-powershell.aspx"&gt;Managing User Profile Service Application permissions using PowerShell &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/b/tothesharepoint/archive/2012/01/23/how-does-microsoft-it-do-it-check-out-these-it-showcase-resources-for-sharepoint-server-2010.aspx"&gt;How does Microsoft IT do it? Check out these IT Showcase resources for SharePoint Server 2010 &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/ritazh/archive/2012/01/23/install-and-configure-reporting-services-for-sharepoint-2010-integration.aspx"&gt;Blog Post: Install and configure Reporting Services for SharePoint 2010 Integration &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/kaevans/archive/2012/01/24/creating-sharepoint-folders-and-items-with-powershell.aspx"&gt;Creating SharePoint Folders and Items with PowerShell &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feedproxy.google.com/~r/SharepointKings/~3/b9mazF4eIMk/masking-fields-in-sharepoint-2010-list.html"&gt;Masking fields in SharePoint 2010 list and libraries &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/varun_malhotra/archive/2012/01/29/sharepoint-2010-clear-sharepoint-cache.aspx"&gt;SharePoint 2010 | Clear SharePoint Cache&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Nickname Search in SharePoint 2010" href="http://www.chakkaradeep.com/post.aspx?id=89b712e7-6c64-47a5-817a-7f7904282875"&gt;Nickname Search in SharePoint 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/erobillard/archive/2012/01/30/thoughts-on-sharepoint-application-pools-recycling-and-quot-jit-lag-quot.aspx"&gt;Thoughts on SharePoint Application Pools, Recycling and &amp;quot;JIT Lag&amp;quot; &lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Y hasta aquí llega esta nueva entrega del recopilatorio de enlaces interesantes sobre SharePoint 2010.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203121" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2010/default.aspx">SharePoint Foundation 2010</category></item><item><title>SharePoint: 15 !! Technical preview SDK disponible</title><link>http://geeks.ms/blogs/lmanez/archive/2012/02/01/sharepoint-15-technical-preview-sdk-disponible.aspx</link><pubDate>Wed, 01 Feb 2012 17:47:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203116</guid><dc:creator>Luis Mañez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="2"&gt;Tal y como nos avanzaba Juan Carlos en este &lt;/font&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/01/30/office-15-comienza-el-baile-con-la-technical-preview-y-para-verano-la-primera-beta-p-250-blica.aspx" target="_blank"&gt;&lt;font size="2"&gt;post&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;. Siguen llegando novedades alrededor de Office 15. En este caso se trata del SDK. No, no nos hagamos ilusiones. En realidad es una parte pequeña de ese SDK. Tal y como lo describe Microsoft:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;&lt;font size="1"&gt;SharePoint 15 Technical Preview Managed Object Model SDK: This compiled help (.chm) file contains reference topics focusing only on types and members that are called by other Microsoft applications. This reference does not document the full SharePoint 15 managed object model. That documentation will accompany a later release of SharePoint 15.&lt;/font&gt;&lt;/em&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2"&gt;Lo podéis descargar en este enlace:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/download/en/details.aspx?id=28768" href="http://www.microsoft.com/download/en/details.aspx?id=28768"&gt;http://www.microsoft.com/download/en/details.aspx?id=28768&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Le he echado un ojo a los NameSpaces. Os paso pantallazo:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_65069052.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmanez/image_5F00_thumb_5F00_43A6EAB6.png" width="357" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Me ha llamado mucho la atención el namespace:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Microsoft.SharePoint.IdentityModel.OAuth2&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Como sabréis, OAuth es un protocolo estándar de autenticación que utilizan sistemas como Facebook, Yammer, Google API, y un largo etcétera.&lt;/p&gt;  &lt;p&gt;¿Podremos logarnos en SharePoint con nuestra cuenta de Facebook? …&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=203116" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lmanez/archive/tags/Sharepoint+2010/default.aspx">Sharepoint 2010</category><category domain="http://geeks.ms/blogs/lmanez/archive/tags/Office365/default.aspx">Office365</category></item><item><title>[WebCast] Todo lo que deberías saber sobre XML</title><link>http://geeks.ms/blogs/secondnug/archive/2012/02/01/webcast-todo-lo-que-deber-237-as-saber-sobre-xml.aspx</link><pubDate>Wed, 01 Feb 2012 14:22:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203110</guid><dc:creator>Fran Díaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;El próximo &lt;strong&gt;martes 7 de Febrero&lt;/strong&gt;, Second Nug trata uno de los temas de programación que casi nunca faltan en nuestros desarrollos: &lt;strong&gt;XML (eXtensible Markup Language)&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Hablaremos de todo o casi todo, desde qué es XML, su gramática, transformaciones con XSLT, XPath, el DOM con su parser, los readers y los writers, su utilización en Web Services (SOAP, WSDL), hasta XML en SQL Server y Linq para XML. Todos estos conceptos irán acompañados de un gran número de ejemplos donde se irá poniendo en práctica todo lo aprendido.&lt;/p&gt;  &lt;p&gt;No te pierdas este evento que nos dará &lt;strong&gt;Javier Alia&lt;/strong&gt;, Senior Consultant en Avanade con una larga experiencia trabajando en proyectos de integración y con distintas versiones de Biztalk.&lt;/p&gt;  &lt;p&gt;Url Registro: &lt;a title="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032504099&amp;amp;Culture=es-ES" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032504099&amp;amp;Culture=es-ES"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032504099&amp;amp;Culture=es-ES&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032504099&amp;amp;Culture=es-ES" target="_blank"&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_xml_2" border="0" alt="foro_xml_2" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/secondnug/foro_5F00_xml_5F00_2_5F00_64E2D03A.jpg" width="472" height="64" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Además, todos los eventos anteriores de este año así como sus materiales están aqui disponibles: &lt;/p&gt;  &lt;p&gt;- &lt;a href="http://www.secondnug.com/EventosDesarrollo/tabid/57/Default.aspx%20"&gt;Eventos Desarrollo&lt;/a&gt;     &lt;br /&gt;Y dispones de nuestro &lt;a href="http://www.secondnug.com/Hist%C3%B3ricodeEventos/tabid/87/Default.aspx"&gt;Histórico de Eventos,&lt;/a&gt; con los eventos desde 2008 a 2011:     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Esperamos veros allí &lt;img alt="Guiño" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/secondnug/wlEmoticon_2D00_winkingsmile_5F00_1B62A53F.png" /&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=203110" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/secondnug/archive/tags/WebCast/default.aspx">WebCast</category><category domain="http://geeks.ms/blogs/secondnug/archive/tags/SecondNUG/default.aspx">SecondNUG</category><category domain="http://geeks.ms/blogs/secondnug/archive/tags/SNUG/default.aspx">SNUG</category><category domain="http://geeks.ms/blogs/secondnug/archive/tags/XML/default.aspx">XML</category></item><item><title>Introducción a SignalR (I): Conceptos básicos</title><link>http://geeks.ms/blogs/jmaguilar/archive/2012/02/01/introducci-243-n-a-signalr-i-conceptos-b-225-sicos.aspx</link><pubDate>Wed, 01 Feb 2012 12:08:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203108</guid><dc:creator>José M. Aguilar</dc:creator><slash:comments>0</slash:comments><description>Una aplicaci&amp;oacute;n que mezcla internet, asincron&amp;iacute;a, y m&amp;uacute;ltiples usuarios colaborando e interactuando al mismo tiempo siempre es merecedora de un &amp;ldquo;&amp;iexcl;uau!&amp;rdquo;. Seguro que, al igual que un servidor, en alg&amp;uacute;n momento os hab&amp;eacute;is quedado maravillados con la interactividad que presentan algunos sistemas web modernos, como Facebook, Google Docs, o muchos otros, en las que estamos recibiendo actualizaciones, pr&amp;aacute;cticamente en tiempo real, sin necesidad de...(&lt;a href="http://geeks.ms/blogs/jmaguilar/archive/2012/02/01/introducci-243-n-a-signalr-i-conceptos-b-225-sicos.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203108" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/desarrollo/default.aspx">desarrollo</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/ajax/default.aspx">ajax</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/aspnetmvc/default.aspx">aspnetmvc</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/signalr/default.aspx">signalr</category></item><item><title>ORAPOCO: V2.0</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/02/01/orapoco-v2-0.aspx</link><pubDate>Wed, 01 Feb 2012 12:03:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203106</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>4</slash:comments><description>&lt;h4&gt;Introducci&amp;oacute;n&lt;/h4&gt;
&lt;p&gt;
&lt;p&gt;Bueno, como habr&amp;eacute;is podido notar ando creando un ORM &amp;ldquo;ligero&amp;rdquo; para trabajar contra Oracle (Serie &lt;a href="http://geeks.ms/blogs/tags/jtorrecilla/ORAPOCO/default.aspx"&gt;ORAPOCO&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Bien, en la segunda &lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2012/01/30/orapoco-update-2.aspx"&gt;actualizaci&amp;oacute;n&lt;/a&gt;, tanto &lt;a href="https://twitter.com/#!/eiximenis"&gt;@Eiximenis&lt;/a&gt; como @Juanma, me indicaban algo que las clases POCO no deb&amp;iacute;a implementar ninguna clase Base, algo que a mi tampoco me convenc&amp;iacute;a haberlo agregado.&lt;/p&gt;
&lt;p&gt;Adem&amp;aacute;s de ello Eduard comentaba la posibilidad de hacer configuraci&amp;oacute;n de los Mapeos, para evitar hacer uso de Atributos en las clases POCO y que est&amp;aacute;n sean completamente POCO. El tema de los mapeos es parecido a lo que se ve en &lt;a href="http://wiki.fluentnhibernate.org/Getting_started"&gt;FluentNhibernate&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Por otro lado &lt;a href="https://twitter.com/#!/_PedroHurtado"&gt;@_PedroHurtado&lt;/a&gt;, me comentaba que era posible hacer Sql Injection, y me propuso que modificara los par&amp;aacute;metros String por &lt;a href="http://msdn.microsoft.com/en-us/library/bb397951.aspx"&gt;Expression&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bueno por estos motivos nace est&amp;aacute; nueva versi&amp;oacute;n de ORAPOCO.&lt;/p&gt;
&lt;/p&gt;
&lt;h4&gt;Cambios&lt;/h4&gt;
&lt;h5&gt;&lt;span style="text-decoration:underline;"&gt;Modificaci&amp;oacute;n de la Plantilla T4&lt;/span&gt;&lt;/h5&gt;
&lt;p&gt;He modificado la plantilla T4, de tal forma que va a generar objetos POCO, sin ning&amp;uacute;n tipo de atributo:&lt;/p&gt;
&lt;p&gt;Objeto POCO:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&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;span id="lnum1" style="color:#606060;"&gt;1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; BL_BLOQUEO_PANTALLA
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum2" style="color:#606060;"&gt;2:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum3" style="color:#606060;"&gt;3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; System.Int32 BLPA_ID {get;set;}
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum4" style="color:#606060;"&gt;4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; System.String BLPA_PANTALLA {get;set;}
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum5" style="color:#606060;"&gt;5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; System.String BLPA_FECHA {get;set;}
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum6" style="color:#606060;"&gt;6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; System.String BLPA_HORA {get;set;}
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum7" style="color:#606060;"&gt;7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; System.String BLPA_USUARIO {get;set;}
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum8" style="color:#606060;"&gt;8:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Del mismo modo se van a generar unas nuevas clases, que ser&amp;aacute;n los Mapeadores por defecto:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&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;span id="lnum1" style="color:#606060;"&gt;1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; BL_BLOQUEO_PANTALLAMapper : GenericMapper&amp;lt;BL_BLOQUEO_PANTALLA&amp;gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum2" style="color:#606060;"&gt;2:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum3" style="color:#606060;"&gt;3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Type GetMappedType()
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum4" style="color:#606060;"&gt;4:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum5" style="color:#606060;"&gt;5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(BL_BLOQUEO_PANTALLA);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum6" style="color:#606060;"&gt;6:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum7" style="color:#606060;"&gt;7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; BL_BLOQUEO_PANTALLAMapper() : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;()
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum8" style="color:#606060;"&gt;8:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum9" style="color:#606060;"&gt;9:&lt;/span&gt; AddColumnMapping(x=&amp;gt; x.BLPA_ID);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum10" style="color:#606060;"&gt;10:&lt;/span&gt; SetPrimaryKeyField(x =&amp;gt; x.BLPA_ID);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum11" style="color:#606060;"&gt;11:&lt;/span&gt; AddColumnMapping(x=&amp;gt; x.BLPA_PANTALLA);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum12" style="color:#606060;"&gt;12:&lt;/span&gt; SetNullable(x=&amp;gt; x.BLPA_PANTALLA);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum13" style="color:#606060;"&gt;13:&lt;/span&gt; AddColumnMapping(x=&amp;gt; x.BLPA_FECHA);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum14" style="color:#606060;"&gt;14:&lt;/span&gt; SetNullable(x=&amp;gt; x.BLPA_FECHA);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum15" style="color:#606060;"&gt;15:&lt;/span&gt; AddColumnMapping(x=&amp;gt; x.BLPA_HORA);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum16" style="color:#606060;"&gt;16:&lt;/span&gt; SetNullable(x=&amp;gt; x.BLPA_HORA);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum17" style="color:#606060;"&gt;17:&lt;/span&gt; AddColumnMapping(x=&amp;gt; x.BLPA_USUARIO);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum18" style="color:#606060;"&gt;18:&lt;/span&gt; SetNullable(x=&amp;gt; x.BLPA_USUARIO);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum19" style="color:#606060;"&gt;19:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum20" style="color:#606060;"&gt;20:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h5&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Creaci&amp;oacute;n de los Objetos OracleColumnInfo,Mapper, IGenericMapper&amp;lt;T&amp;gt; y GenericMapper&amp;lt;T&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Para facilitar el mapeo de datos, he creado las siguientes clases e interfaz:&lt;/p&gt;
&lt;p&gt;Clase OraceColumnInfo para representar la informaci&amp;oacute;n relativa a cada columna de los objetos POCO.&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&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;span id="lnum1" style="color:#606060;"&gt;1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; OracleColumnInfo
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum2" style="color:#606060;"&gt;2:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum3" style="color:#606060;"&gt;3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; OracleColumnInfo()
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum4" style="color:#606060;"&gt;4:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum5" style="color:#606060;"&gt;5:&lt;/span&gt; IsPk = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum6" style="color:#606060;"&gt;6:&lt;/span&gt; Nullable = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum7" style="color:#606060;"&gt;7:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum8" style="color:#606060;"&gt;8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; IsPk { get; set; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum9" style="color:#606060;"&gt;9:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ColumnName { get; set; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum10" style="color:#606060;"&gt;10:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; Nullable { get; set; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum11" style="color:#606060;"&gt;11:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; DefaultValue { get; set; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum12" style="color:#606060;"&gt;12:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; SequenceName { get; set; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum13" style="color:#606060;"&gt;13:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;La Interfaz IGenericMapper&amp;lt;T&amp;gt;:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&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;span id="lnum1" style="color:#606060;"&gt;1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;interface&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum2" style="color:#606060;"&gt;2:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum3" style="color:#606060;"&gt;3:&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetPrimaryKeyField(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum4" style="color:#606060;"&gt;4:&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; AddColumnMapping(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum5" style="color:#606060;"&gt;5:&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetNullable(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum6" style="color:#606060;"&gt;6:&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetDefaultValue(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; DefaultValue);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum7" style="color:#606060;"&gt;7:&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetSequence(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; SequenceName);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum8" style="color:#606060;"&gt;8:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;La clase Mapper: Va a servir para representar el conjunto de columnas de un objeto POCO.&lt;/p&gt;
&lt;p&gt;La clase: GenericMapper&amp;lt;T&amp;gt;, va a extender a Mapper e implementar a IGenericMapper:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&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;span id="lnum1" style="color:#606060;"&gt;1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; GenericMapper&amp;lt;T&amp;gt; : Mapper,IGenericMapper&amp;lt;T&amp;gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum2" style="color:#606060;"&gt;2:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum3" style="color:#606060;"&gt;3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; GenericMapper()
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum4" style="color:#606060;"&gt;4:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum5" style="color:#606060;"&gt;5:&lt;/span&gt; Columns = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;OracleColumnInfo&amp;gt;();
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum6" style="color:#606060;"&gt;6:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum7" style="color:#606060;"&gt;7:&lt;/span&gt;&amp;nbsp;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum8" style="color:#606060;"&gt;8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; AddColumnMapping(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum9" style="color:#606060;"&gt;9:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum10" style="color:#606060;"&gt;10:&lt;/span&gt; PropertyInfo propertyInfo = GetProperty(property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum11" style="color:#606060;"&gt;11:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum12" style="color:#606060;"&gt;12:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum13" style="color:#606060;"&gt;13:&lt;/span&gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum14" style="color:#606060;"&gt;14:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetPrimaryKeyField(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum15" style="color:#606060;"&gt;15:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum16" style="color:#606060;"&gt;16:&lt;/span&gt; PropertyInfo propertyInfo = GetProperty(property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum17" style="color:#606060;"&gt;17:&lt;/span&gt; AddColumn(propertyInfo);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum18" style="color:#606060;"&gt;18:&lt;/span&gt; Columns.Where(col =&amp;gt; col.ColumnName.Equals(propertyInfo.Name)).FirstOrDefault().IsPk = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum19" style="color:#606060;"&gt;19:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum20" style="color:#606060;"&gt;20:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum21" style="color:#606060;"&gt;21:&lt;/span&gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum22" style="color:#606060;"&gt;22:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetNullable(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum23" style="color:#606060;"&gt;23:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum24" style="color:#606060;"&gt;24:&lt;/span&gt; PropertyInfo propertyInfo = GetProperty(property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum25" style="color:#606060;"&gt;25:&lt;/span&gt; AddColumn(propertyInfo);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum26" style="color:#606060;"&gt;26:&lt;/span&gt; Columns.Where(col =&amp;gt; col.ColumnName.Equals(propertyInfo.Name)).FirstOrDefault().Nullable = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum27" style="color:#606060;"&gt;27:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum28" style="color:#606060;"&gt;28:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum29" style="color:#606060;"&gt;29:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetDefaultValue(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; DefaultValue)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum30" style="color:#606060;"&gt;30:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum31" style="color:#606060;"&gt;31:&lt;/span&gt; PropertyInfo propertyInfo = GetProperty(property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum32" style="color:#606060;"&gt;32:&lt;/span&gt; AddColumn(propertyInfo);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum33" style="color:#606060;"&gt;33:&lt;/span&gt; Columns.Where(col =&amp;gt; col.ColumnName.Equals(propertyInfo.Name)).FirstOrDefault().DefaultValue = DefaultValue;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum34" style="color:#606060;"&gt;34:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum35" style="color:#606060;"&gt;35:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum36" style="color:#606060;"&gt;36:&lt;/span&gt;&amp;nbsp;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum37" style="color:#606060;"&gt;37:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; AddColumn(PropertyInfo propertyInfo)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum38" style="color:#606060;"&gt;38:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum39" style="color:#606060;"&gt;39:&lt;/span&gt; var column = Columns.Where(col =&amp;gt; col.ColumnName.Equals(propertyInfo.Name)).FirstOrDefault();
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum40" style="color:#606060;"&gt;40:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (column == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum41" style="color:#606060;"&gt;41:&lt;/span&gt; Columns.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OracleColumnInfo { ColumnName = propertyInfo.Name });
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum42" style="color:#606060;"&gt;42:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum43" style="color:#606060;"&gt;43:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; PropertyInfo GetProperty(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum44" style="color:#606060;"&gt;44:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum45" style="color:#606060;"&gt;45:&lt;/span&gt; PropertyInfo propertyInfo = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum46" style="color:#606060;"&gt;46:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (property.Body &lt;span style="color:#0000ff;"&gt;is&lt;/span&gt; MemberExpression)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum47" style="color:#606060;"&gt;47:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum48" style="color:#606060;"&gt;48:&lt;/span&gt; propertyInfo = (property.Body &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; MemberExpression).Member &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; PropertyInfo;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum49" style="color:#606060;"&gt;49:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum50" style="color:#606060;"&gt;50:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum51" style="color:#606060;"&gt;51:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum52" style="color:#606060;"&gt;52:&lt;/span&gt; propertyInfo = (((UnaryExpression)property.Body).Operand &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; MemberExpression).Member &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; PropertyInfo;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum53" style="color:#606060;"&gt;53:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum54" style="color:#606060;"&gt;54:&lt;/span&gt;&amp;nbsp;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum55" style="color:#606060;"&gt;55:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; propertyInfo;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum56" style="color:#606060;"&gt;56:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum57" style="color:#606060;"&gt;57:&lt;/span&gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum58" style="color:#606060;"&gt;58:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IGenericMapper&amp;lt;T&amp;gt; SetSequence(Expression&amp;lt;Func&amp;lt;T, &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; property, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; SequenceName)
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum59" style="color:#606060;"&gt;59:&lt;/span&gt; {
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum60" style="color:#606060;"&gt;60:&lt;/span&gt; PropertyInfo propertyInfo = GetProperty(property);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum61" style="color:#606060;"&gt;61:&lt;/span&gt; AddColumn(propertyInfo);
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum62" style="color:#606060;"&gt;62:&lt;/span&gt; Columns.Where(col =&amp;gt; col.ColumnName.Equals(propertyInfo.Name)).FirstOrDefault().SequenceName = SequenceName;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum63" style="color:#606060;"&gt;63:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum64" style="color:#606060;"&gt;64:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum65" style="color:#606060;"&gt;65:&lt;/span&gt;
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum66" style="color:#606060;"&gt;66:&lt;/span&gt; }
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h5&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Creaci&amp;oacute;n de ConfigureMapping y AutoConfigureMapping&lt;/span&gt;&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Ambos m&amp;eacute;todos van&amp;nbsp; a servir para configurar los Mapeos, y ser&amp;aacute;n invocados de forma Manual.&lt;/p&gt;
&lt;p&gt;AutoConfigureMapping, va a registrar todas aquellas clases que Implementen AutoConfigureMapping dentro del Assembly en el que nos encontremos.&lt;/p&gt;
&lt;h4&gt;C&amp;oacute;digo:&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Primer Ejemplo: Como crear y registrar un nuevo Mapeo:&lt;/strong&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&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;span id="lnum1" style="color:#606060;"&gt;1:&lt;/span&gt; db.ConfigureMapping&amp;lt;SAMPLE&amp;gt;(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; GenericMapper&amp;lt;SAMPLE&amp;gt;().
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum2" style="color:#606060;"&gt;2:&lt;/span&gt; SetPrimaryKeyField(x =&amp;gt; x.ID).
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum3" style="color:#606060;"&gt;3:&lt;/span&gt; AddColumnMapping(x =&amp;gt; x.NOMBRE).
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum4" style="color:#606060;"&gt;4:&lt;/span&gt; SetDefaultValue(x =&amp;gt; x.ID, &lt;span style="color:#006080;"&gt;&amp;quot;SysGuid()&amp;quot;&lt;/span&gt;));
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;El Mapeo permite llevar a cabo:&lt;/p&gt;
&lt;p&gt;- Creaci&amp;oacute;n de columnas.&lt;/p&gt;
&lt;p&gt;- Establecer PK Simple o Compuesta.&lt;/p&gt;
&lt;p&gt;- Establecer Valor Por Defecto.&lt;/p&gt;
&lt;p&gt;- Establecer Nulos.&lt;/p&gt;
&lt;p&gt;- Establecer Secuencias.&lt;/p&gt;
&lt;p&gt;A la hora de realizar una inserci&amp;oacute;n, actualizaci&amp;oacute;n o borrado, se va a comprobar si existe un mapeo Configurado, en caso de no existir se intentar&amp;aacute; ejecutar como si tuviese Atributos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nuevas formas de Ejecutar Consultas:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Al haber sustituido string por Expression, se ejecutar&amp;aacute;n las consultas del siguiente modo:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&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;span id="lnum1" style="color:#606060;"&gt;1:&lt;/span&gt; var data = db.Query&amp;lt;EMPRESA&amp;gt;(columns:
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum2" style="color:#606060;"&gt;2:&lt;/span&gt; (x) =&amp;gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; { x.EMPR_NOMBRE_CORTO, x.EMPR_NOMBRE_EMPRESA },
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum3" style="color:#606060;"&gt;3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;where&lt;/span&gt;:
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum4" style="color:#606060;"&gt;4:&lt;/span&gt; (x =&amp;gt; ( x.EMPR_NOMBRE_EMPRESA.Contains(&lt;span style="color:#006080;"&gt;&amp;quot;D&amp;quot;&lt;/span&gt;) ||
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum5" style="color:#606060;"&gt;5:&lt;/span&gt; x.EMPR_CODIGO_EMPRESA != 101 ||
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum6" style="color:#606060;"&gt;6:&lt;/span&gt; x.EMPR_A&amp;Ntilde;O &amp;gt;= 2008 ) &amp;amp;&amp;amp; (
&lt;pre&gt;&lt;/pre&gt;

&lt;span id="lnum7" style="color:#606060;"&gt;7:&lt;/span&gt; x.EMPR_MES == 1 )));
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Los valores esperados para los par&amp;aacute;metros &amp;ldquo;Columns&amp;rdquo;, &amp;ldquo;Where&amp;rdquo; y &amp;ldquo;Order&amp;rdquo;, van a ser expresiones lambda.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Finally&lt;/h4&gt;
&lt;p&gt;Bien como siempre ten&amp;eacute;is las descargas en:&lt;/p&gt;
&lt;p&gt;- &lt;a href="https://github.com/Jtorrecilla/POCO.ORA.TP"&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href="https://nuget.org/packages/ORAPOCO/2.0"&gt;Nuget&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Y como siempre cualquier feedback ser&amp;aacute; bien recibido.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203106" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/VS/default.aspx">VS</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Oracle/default.aspx">Oracle</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/ORM/default.aspx">ORM</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/ORAPOCO/default.aspx">ORAPOCO</category></item><item><title>Office 365: Disponible Blackberry Cloud Services para Office 365…y es gratis!</title><link>http://geeks.ms/blogs/ciin/archive/2012/02/01/office-365-disponible-blackberry-cloud-services-para-office-365-y-es-gratis.aspx</link><pubDate>Wed, 01 Feb 2012 07:02:33 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:203101</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>1</slash:comments><description>&lt;p align="justify"&gt;Tal y como podéis leer en &lt;a href="http://richfrombechtle.wordpress.com/2012/01/30/blackberry-cloud-services-launches-for-microsoft-office-365/"&gt;este post&lt;/a&gt;, por fin tenemos disponible Blackberry Cloud Services para Office 365 y sin coste adicional. Estos servicios aseguran enlaces directos de Exchange Online a dispositivos Blackberry dotando a los usuarios de este tipo de smartphones de una buena integración en el acceso a correo electrónico, calendario, contactos y tareas de Exchange Online.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://richfrombechtle.files.wordpress.com/2012/01/image5.png"&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" border="0" alt="image" src="http://richfrombechtle.files.wordpress.com/2012/01/image_thumb5.png?w=216&amp;amp;h=244" width="216" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Podéis encontrar más información en este enlace:&lt;a href="http://us.blackberry.com/business/software/cloudservices/"&gt;http://us.blackberry.com/business/software/cloudservices/&lt;/a&gt; y una descripción de las capacidades disponibles en este otro enlace: &lt;a title="View the Feature and Technical Overview" href="http://docs.blackberry.com/en/admin/deliverables/28623/BlackBerry_Business_Cloud_Services-Feature_and_Technical_Overview-T305802-1276566-0510091604-001-1.0-US.pdf"&gt;View the Feature and Technical Overview&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203101" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/Office+365/default.aspx">Office 365</category></item></channel></rss>
