<?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>Crear manualmente proxies de Hubs Signalr</title><link>http://geeks.ms/blogs/jmaguilar/archive/2013/05/23/crear-manualmente-proxies-de-hubs-signalr.aspx</link><pubDate>Thu, 23 May 2013 15:13:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209454</guid><dc:creator>José M. Aguilar</dc:creator><slash:comments>0</slash:comments><description>Cuando desde un cliente javascript consumimos los servicios suministrados por un Hub de SignalR, lo habitual es usemos los proxies generados autom&amp;aacute;ticamente, para lo que solemos incluir en nuestra p&amp;aacute;gina una referencia al script &amp;ldquo;/Signalr/Hubs&amp;rdquo; seg&amp;uacute;n la ruta por defecto. Sin embargo, puede haber casos en los que no nos interesa este comportamiento y preferimos generarlo de forma manual para, por ejemplo, incluirlo en un bundle o distribuir el archivo a trav&amp;eacute;s...(&lt;a href="http://geeks.ms/blogs/jmaguilar/archive/2013/05/23/crear-manualmente-proxies-de-hubs-signalr.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209454" 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/trucos/default.aspx">trucos</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/signalr/default.aspx">signalr</category></item><item><title>[#KINECT] Que hay de nuevo en Kinect 2.0 (se llamará así?)</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/23/kinect-que-hay-de-nuevo-en-kinect-2-0-se-llamar-225-as-237.aspx</link><pubDate>Thu, 23 May 2013 11:11:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209518</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Buenas,&lt;/p&gt;
&lt;p&gt;hace 2 d&amp;iacute;as que se present&amp;oacute; la nueva XBox One, y una de las cosas que m&amp;aacute;s nos ten&amp;iacute;a intrigados era QUE TEN&amp;Iuml;A EL NUEVO KINECT. &lt;/p&gt;
&lt;p&gt;Si todav&amp;iacute;a no est&amp;aacute;s al tanto, te lo resumo en los puntos que yo considero que son los m&amp;aacute;s importantes.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_5DA783C7.png"&gt;&lt;img height="465" width="620" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_3F995006.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Hardware&lt;/h2&gt;
&lt;p&gt;Pues la nueva XBox One es m&amp;aacute;s fea que morder arena. Y el nuevo Kinect no se queda atr&amp;aacute;s. Lo bueno es que detr&amp;aacute;s de la apariencia de gadget cutre de una pel&amp;iacute;cula de los 80&amp;rsquo;s el nuevo kinect tiene&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;M&amp;aacute;s resoluci&amp;oacute;n en el sensor de profuncidad (pero mucha m&amp;aacute;s), detecta hasta los botones de una camisa si estas suficientemente cerca &lt;/li&gt;
&lt;li&gt;Mucha m&amp;aacute;s resoluci&amp;oacute;n en la c&amp;aacute;mara, ahora tenemos una HD Video Camera, 1080p &lt;/li&gt;
&lt;li&gt;Active IR, un sensor activo de InfraRojos que permite identificar objetos y personas en entornos con poca o nula luminosidad (nula es ZERO, con las luces apagadas) &lt;/li&gt;
&lt;li&gt;No han dicho nada del motor y creo que no hay m&amp;aacute;s. Ahora con el gran angular que posee el nuevo Kinect no hace falta moverlo hacia arriba o abajo para poder enfocar mejor &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y ahora vamos con las features &amp;hellip;&lt;/p&gt;
&lt;h2&gt;Skeleton Tracking&lt;/h2&gt;
&lt;p&gt;Si hablamos del Skeleton tracking, el kinect ha pasado de una versi&amp;oacute;n 1.0 a una version 2.0. Ahora se detectan mas Joints, se puede detectar la &lt;strong&gt;&lt;em&gt;rotaci&amp;oacute;n de los mismos&lt;/em&gt;&lt;/strong&gt;, se detectan dedos, etc. Vamos que es impresionante&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_7C6DD1D8.png"&gt;&lt;img height="268" width="352" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_7409FC81.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Force detector&lt;/h2&gt;
&lt;p&gt;Otra feature interesante es la capacidad de analizar las fuerzas que actuan sobre cada Joint. La siguiente imagen muestra como al pasar el peso de un pie al otro, el mismo se pone de color rojo para indicar un exceso de la fuerza en el mismo (si che, suena a Jedi)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_4EA00913.png"&gt;&lt;img height="268" width="353" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_5884FA7E.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_10573EA2.png"&gt;&lt;img height="284" width="736" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_30FE0847.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Impactos = Muscle + Force&lt;/h3&gt;
&lt;p&gt;Aqui va otra de las buenas, analizando la aceleraci&amp;oacute;n de los elementos del cuerpo y cruzando esta informaci&amp;oacute;n con la fuerza que se aplica en los mismos, es posible identificar y ver algo parecido a &amp;ldquo;impactos&amp;rdquo;. En el video de WIRED el periodista hace un &amp;hellip; del Street Figther que es para morir de la alegr&amp;iacute;a!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_522DFE23.png"&gt;&lt;img height="268" width="350" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_2CC40AB5.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_2F89BFA8.png"&gt;&lt;img height="277" width="729" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_3B3F06DA.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Heart Rates&lt;/h3&gt;
&lt;p&gt;Si si si, parece un poco de ciencia ficci&amp;oacute;n pero ahora puedes tener acceso a la informaci&amp;oacute;n con los latidos del coraz&amp;oacute;n de cada user. Analizando los cambios en la piel, se puede estimar las pulsaciones por minutos, etc. Imagino aplicaciones cl&amp;iacute;nicas con esto delante :D&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_46F44E0C.png"&gt;&lt;img height="285" width="736" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_6FAFB355.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Expression platform&lt;/h2&gt;
&lt;p&gt;Reconocimiento facial avanzado&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_5B49EDCA.png"&gt;&lt;img height="108" width="131" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_4C330EF0.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Varias&lt;/h2&gt;
&lt;p&gt;Inicio de sesi&amp;oacute;n autom&amp;aacute;tico utilizando reconocimiento facial&lt;/p&gt;
&lt;p&gt;Detecci&amp;oacute;n de hasta 6 jugadores&lt;/p&gt;
&lt;p&gt;y mucho m&amp;aacute;s !!!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_18F6D587.png"&gt;&lt;img height="399" width="729" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_082F2AD9.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Por cierto, esta informaci&amp;oacute;n ES PUBLICA. Se puede ver en el siguiente video de los cracks de WIRED que me ha pasado el &lt;a target="_blank" href="http://twitter.com/edudelpozo"&gt;Edu&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Fuente: &lt;a href="http://video.wired.com/watch/new-xbox-kinect-exclusive-wired-video-398878" title="http://video.wired.com/watch/new-xbox-kinect-exclusive-wired-video-398878"&gt;http://video.wired.com/watch/new-xbox-kinect-exclusive-wired-video-398878&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Saludos @ La Finca&lt;/p&gt;
&lt;p&gt;El Bruno&lt;/p&gt;
&lt;table border="0" width="110" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="36" valign="top"&gt;&lt;a target="_blank" href="http://facebook.com/elbruno"&gt;&lt;img height="41" width="41" src="http://brunocapuano.files.wordpress.com/2012/03/image2.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="36" valign="top"&gt;&lt;a target="_blank" href="http://es.linkedin.com/in/elbruno"&gt;&lt;img height="41" width="41" src="http://brunocapuano.files.wordpress.com/2012/03/image3.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="36" valign="top"&gt;&lt;a target="_blank" href="https://twitter.com/elbruno"&gt;&lt;img height="40" width="40" src="http://brunocapuano.files.wordpress.com/2012/03/image4.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209518" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Kinect/default.aspx">Kinect</category></item><item><title>EBook gratis! CRM para Dummies</title><link>http://geeks.ms/blogs/ransino/archive/2013/05/23/ebook-gratis-crm-para-dummies.aspx</link><pubDate>Thu, 23 May 2013 08:34:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209517</guid><dc:creator>Rafael Ansino Lara</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span id="Dst[1][0:8:0:8]"&gt;Microsoft&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][10:13:10:11]"&gt;ha&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][22:32:13:23]"&gt;distribuido&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][15:20:25:34]"&gt;libremente&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][34:34:36:37]"&gt;un&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][36:38:39:43]"&gt;nuevo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][40:44:45:49]"&gt;eBook&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][46:46:51:51]"&gt;&amp;#39;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][48:50:53:55]"&gt;CRM&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][52:54:57:59]"&gt;for&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][56:62:61:67]"&gt;Dummies&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][65:71:70:78]"&gt;descubrir&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][73:75:80:81]"&gt;el&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][77:81:83:87]"&gt;valor&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][83:84:89:90]"&gt;de&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][86:88:92:95]"&gt;CRM&amp;#39;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][91:94:97:99]"&gt;que&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][96:101:101:108]"&gt;comparte&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][107:112:110:117]"&gt;consejos&lt;/span&gt;&lt;span&gt; de la &lt;/span&gt;&lt;span id="Dst[1][103:105:125:127]"&gt;CRM&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][114:116:129:129]"&gt;y&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][118:121:131:137]"&gt;mejores&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][123:130:139:147]"&gt;pr&amp;aacute;cticas&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;span id="Dst[2][0:3:0:1]"&gt;Es&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][5:6:3:5]"&gt;una&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][8:16:7:15]"&gt;excelente&lt;/span&gt;&lt;span&gt; breve &lt;/span&gt;&lt;span id="Dst[2][26:30:17:20]"&gt;gu&amp;iacute;a&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][32:34:30:33]"&gt;para&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][36:41:35:44]"&gt;cualquiera&lt;/span&gt;&lt;span&gt;&amp;nbsp;que necesites introducirse en el mundo &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span id="Dst[2][55:57:60:62]"&gt;CRM&lt;/span&gt;&lt;span&gt; e ir viendo sus &lt;/span&gt;&lt;span id="Dst[2][63:70:66:80]"&gt;caracter&amp;iacute;sticas&lt;/span&gt;&lt;span&gt; , &lt;/span&gt;&lt;span id="Dst[2][72:75:82:87]"&gt;muchas&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][77:81:89:93]"&gt;ideas&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][83:85:95:95]"&gt;y&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][87:90:97:104]"&gt;consejos&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][92:93:106:109]"&gt;para&lt;/span&gt;&lt;span&gt; ir aprendiendo &lt;/span&gt;&lt;span id="Dst[2][103:106:119:121]"&gt;con&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][108:110:123:125]"&gt;CRM&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][112:114:127:127]"&gt;y&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][116:120:129:134]"&gt;evitar&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][129:136:136:142]"&gt;errores&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][122:127:144:150]"&gt;comunes&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span id="Dst[3][0:2:0:2]"&gt;Los&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[3][4:11:4:12]"&gt;cap&amp;iacute;tulos&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[3][13:19:14:21]"&gt;incluyen&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span id="Dst[4][0:0:0:0]"&gt;&amp;bull;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[4][2:5:2:5]"&gt;&amp;iquest;Qu&amp;eacute;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[4][7:8:7:8]"&gt;es&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[4][10:12:10:12]"&gt;CRM&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span id="Dst[5][0:0:0:0]"&gt;&amp;bull;&amp;nbsp;Controles &lt;/span&gt;&lt;span&gt;&amp;nbsp;de &lt;/span&gt;&lt;span id="Dst[5][12:16:15:20]"&gt;ventas&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[5][2:10:25:30]"&gt;mejora&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[5][18:27:35:41]"&gt;gesti&amp;oacute;n&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[5][29:29:43:43]"&gt;&amp;amp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[5][31:38:45:51]"&gt;Pipeline&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span id="Dst[6][0:0:0:0]"&gt;&amp;bull;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Aprovechar sus caracter&amp;iacute;sticas para &lt;/span&gt;&lt;span&gt;&amp;nbsp;Loyalty&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[6][35:35:25:25]"&gt;&amp;amp;&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[6][25:33:30:38]"&gt;Marketing&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span id="Dst[7][0:0:0:0]"&gt;&amp;bull;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[7][2:10:2:9]"&gt;Explorar&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[7][12:17:11:16]"&gt;Social&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[7][19:21:18:20]"&gt;CRM&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[7][31:33:23:25]"&gt;CRM&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[7][24:29:27:31]"&gt;m&amp;oacute;vil&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[7][35:35:33:33]"&gt;&amp;amp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[7][37:39:35:37]"&gt;xRM&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span id="Dst[8][0:0:0:0]"&gt;&amp;bull;&lt;/span&gt;&lt;span&gt; Los &lt;/span&gt;&lt;span id="Dst[8][2:4:6:12]"&gt;mejores&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[8][6:9:14:21]"&gt;consejos&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[8][11:13:23:26]"&gt;para&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[8][15:17:28:30]"&gt;CRM&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;El libro esta realizado por Jorge Carrola Rodrigues. Os paso el link&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;a href="https://skydrive.live.com/#cid=EBF036A540D7183C&amp;amp;id=EBF036A540D7183C%212662"&gt;https://skydrive.live.com/#cid=EBF036A540D7183C&amp;amp;id=EBF036A540D7183C%212662&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209517" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ransino/archive/tags/Office+365/default.aspx">Office 365</category><category domain="http://geeks.ms/blogs/ransino/archive/tags/CRM/default.aspx">CRM</category><category domain="http://geeks.ms/blogs/ransino/archive/tags/CRM+Online/default.aspx">CRM Online</category></item><item><title>EF 6: WebCast ADO.NET Entity Framework</title><link>http://geeks.ms/blogs/unai/archive/2013/05/23/ef-6-webcast-ado-net-entity-framework.aspx</link><pubDate>Thu, 23 May 2013 08:05:14 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209514</guid><dc:creator>Unai</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;El próximo día &lt;strong&gt;30 de Mayo&lt;/strong&gt;, tendremos el placer de poder realizar un WebCast con &lt;strong&gt;Diego Vega&lt;/strong&gt;, Developer Lead de&lt;strong&gt; Entity Framework&lt;/strong&gt;, hablando de todo lo que rodea a &lt;strong&gt;EF 6&lt;/strong&gt;, desde el nuevo modelo de desarrollo OSS hasta las principales características de esta nueva versión. Sinceramente, creo que es una gran oportunidad tener con nosotros a Diego y poder ver de su mano que tendremos próximamente en EF, así como tener la posiblidad de hacerle todas las preguntas que consideréis oportunas…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Aquí os dejo el enlace de registro, espero veros a todos por allí&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032553975&amp;amp;Culture=es-ES&amp;amp;community=0" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032553975&amp;amp;Culture=es-ES&amp;amp;community=0"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032553975&amp;amp;Culture=es-ES&amp;amp;community=0&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos&lt;/p&gt;  &lt;p&gt;Unai&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209514" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/unai/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://geeks.ms/blogs/unai/archive/tags/EF+6/default.aspx">EF 6</category><category domain="http://geeks.ms/blogs/unai/archive/tags/Entity+Framework+6/default.aspx">Entity Framework 6</category><category domain="http://geeks.ms/blogs/unai/archive/tags/WebCast/default.aspx">WebCast</category></item><item><title>Manera rapida  para hacer llamadas en Microsoft CRM</title><link>http://geeks.ms/blogs/ransino/archive/2013/05/23/manera-rapida-para-hacer-llamadas-en-microsoft-crm.aspx</link><pubDate>Thu, 23 May 2013 07:51:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209515</guid><dc:creator>Rafael Ansino Lara</dc:creator><slash:comments>0</slash:comments><description>&lt;h4&gt;&lt;span id="Dst[0][0:10:0:10]"&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span&gt;Leyendo un tweet del gran maestro &lt;a target="_blank" href="https://plus.google.com/u/0/101766579051252619996?rel=&amp;quot;author&amp;quot;"&gt;Warren Butler&lt;/a&gt;. Hablaba sobre la integraci&amp;oacute;n de la comunicaci&amp;oacute;n unificada y Dynamics CRM&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Una de las mejores mas importantes fue la &amp;nbsp;Integraci&amp;oacute;n&lt;/span&gt;&lt;span&gt;&amp;nbsp;de&lt;/span&gt;&lt;span id="Dst[0][16:20:16:24]"&gt; Skype&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][59:60:60:61]"&gt;en&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][62:64:63:64]"&gt;la&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][66:71:66:73]"&gt;reciente&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][101:106:75:87]"&gt;actualizaci&amp;oacute;n&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[0][73:80:92:99]"&gt;Dynamics&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][82:84:101:103]"&gt;CRM&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][86:91:105:110]"&gt;Online&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][93:99:112:118]"&gt;Polaris&lt;/span&gt;&lt;span&gt;. Pero m&lt;/span&gt;&lt;span id="Dst[1][0:3:0:4]"&gt;enos&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][5:13:6:14]"&gt;comentado&lt;/span&gt;&lt;span&gt; ha sido&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;la &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span id="Dst[1][25:27:22:26]"&gt;nueva&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][29:39:28:38]"&gt;integraci&amp;oacute;n&lt;/span&gt;&lt;span&gt;&amp;nbsp;entre&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][46:54:44:52]"&gt;Microsoft&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][56:59:54:57]"&gt;Lync&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][61:66:59:64]"&gt;Online y CRM Online . &lt;/span&gt;&lt;span id="Dst[2][0:3:0:2]"&gt;Con&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][5:8:4:7]"&gt;Lync&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][10:15:9:14]"&gt;Online&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][17:24:16:23]"&gt;incluido&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][26:29:25:27]"&gt;con&lt;/span&gt;&lt;span&gt; la &lt;/span&gt;&lt;span id="Dst[2][31:34:32:38]"&gt;mayor&amp;iacute;a&lt;/span&gt;&lt;span&gt; los &lt;/span&gt;&lt;span id="Dst[2][57:61:44:49]"&gt;planes&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[2][36:44:54:62]"&gt;Microsoft&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][46:51:64:69]"&gt;Office&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][53:55:71:73]"&gt;365&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][63:66:75:76]"&gt;es&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][68:74:78:81]"&gt;otra&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][76:80:83:86]"&gt;gran&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][82:84:88:93]"&gt;manera&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][86:87:95:96]"&gt;de&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][89:95:98:109]"&gt;beneficiarse&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][97:100:111:112]"&gt;de&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][102:106:114:118]"&gt;estos&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[2][125:132:120:128]"&gt;servicios&lt;/span&gt;&lt;span&gt; en la &lt;/span&gt;&lt;span id="Dst[2][119:123:136:139]"&gt;nube.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span id="Dst[3][0:4:0:5]"&gt;Usando la nueva interfaz de Polaris&amp;nbsp; se puede realizar una llamada online a golpe de clic a cualquier numero de tel&amp;eacute;fono.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ransino/call_5F00_me_5F00_5.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ransino/call_5F00_me_5F00_5.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ransino/call_5F00_me_5F00_2.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ransino/call_5F00_me_5F00_2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span id="Dst[0][0:0:0:1]"&gt;Autom&amp;aacute;ticamente se abre un&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][26:28:3:8]"&gt;cuadro&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[0][17:24:13:19]"&gt;di&amp;aacute;logo&lt;/span&gt;&lt;span&gt;&amp;nbsp; en la &lt;/span&gt;&lt;span id="Dst[0][2:4:21:25]"&gt;nueva&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][6:15:27:33]"&gt;llamada &lt;/span&gt;&lt;span id="Dst[0][55:56:64:65]"&gt;en&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][58:66:67:75]"&gt;Microsoft&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][68:75:77:84]"&gt;Dynamics&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][77:79:86:88]"&gt;CRM &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span id="Dst[0][87:89:96:99]"&gt;para&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; puedas tomar&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][101:105:105:109]"&gt;notas&lt;/span&gt;&lt;span&gt; relacionadas con la &lt;/span&gt;&lt;span id="Dst[0][96:99:114:120]"&gt;llamada.&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ransino/call_5F00_me_5F00_4.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ransino/call_5F00_me_5F00_4.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;
&lt;p&gt;&lt;span id="Dst[0][12:22:0:10]"&gt;Actualmente la&amp;nbsp;integraci&amp;oacute;n&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[0][0:3:15:18]"&gt;Lync&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][5:10:20:25]"&gt;Online&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][24:25:39:40]"&gt;es&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][37:45:42:51]"&gt;compatible&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][47:50:53:55]"&gt;con&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][52:60:57:65]"&gt;Microsoft&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][62:69:67:74]"&gt;Dynamics&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][71:73:76:78]"&gt;CRM&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][75:80:80:85]"&gt;Online&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][82:86:87:96]"&gt;utilizando&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][88:90:98:99]"&gt;la&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][114:122:101:108]"&gt;interfaz&lt;/span&gt;&lt;span&gt;&amp;nbsp;mas reciente &amp;nbsp;&lt;/span&gt;&lt;span id="Dst[0][107:112:113:118]"&gt;&amp;#39;flow&amp;#39;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][99:105:120:126]"&gt;Polaris&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][124:127:141:143]"&gt;que&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][129:130:145:148]"&gt;est&amp;aacute;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][132:140:150:159]"&gt;disponible&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][142:143:161:162]"&gt;en&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][145:146:164:166]"&gt;una&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[0][155:159:168:171]"&gt;base&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[0][148:153:176:181]"&gt;opt-in&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span id="Dst[1][0:3:0:3]"&gt;Para los que us&amp;aacute;is&amp;nbsp; CRM On premise esta&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][5:13:5:12]"&gt;interfaz&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][20:21:14:15]"&gt;se&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][15:18:17:24]"&gt;liberar&amp;aacute;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][56:59:40:42]"&gt;con&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][61:63:44:45]"&gt;el&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][65:71:47:57]"&gt;lanzamiento&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][73:74:59:60]"&gt;de&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][76:78:62:63]"&gt;la&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][97:102:65:77]"&gt;actualizaci&amp;oacute;n&lt;/span&gt;&lt;span&gt; de &lt;/span&gt;&lt;span id="Dst[1][88:95:82:91]"&gt;plataforma&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][80:86:93:99]"&gt;&amp;#39;Orion&amp;#39;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span id="Dst[1][104:105:101:102]"&gt;en el proximo&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span id="Dst[1][107:108:104:105]"&gt;Q3&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ransino/call_5F00_me_5F00_5.jpg"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table border="0" class="table" id="TransContent"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:1.5%;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;td colspan="4" valign="top" id="OutputTextHtmlCell"&gt;&lt;span style="visibility:hidden;" id="AjaxWaitImage"&gt;&lt;/span&gt;
&lt;p class="force_dir"&gt;Con Microsoft Lync Online&amp;nbsp;se realiza&amp;nbsp;el servicio de llamadas por defecto , realizando un click para llamar en una ventana emergente&lt;/p&gt;
&lt;p class="force_dir"&gt;No marcado manual. No misdials.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209515" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ransino/archive/tags/Office+365/default.aspx">Office 365</category><category domain="http://geeks.ms/blogs/ransino/archive/tags/CRM+Online/default.aspx">CRM Online</category><category domain="http://geeks.ms/blogs/ransino/archive/tags/Lync+Online/default.aspx">Lync Online</category></item><item><title>Herramienta: HFS – Http File Server</title><link>http://geeks.ms/blogs/etomas/archive/2013/05/23/herramienta-hfs-http-file-server.aspx</link><pubDate>Thu, 23 May 2013 06:53:45 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209513</guid><dc:creator>Eduard Tomàs i Avellana</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Muy buenas! Cuando preparo demos de HTML5 y JS, si no hay involucrado un servidor de por medio, no suelo utilizar VS para generar el proyecto si no algún editor más liviano, como &lt;a href="http://www.sublimetext.com/"&gt;Sublime Text&lt;/a&gt; o &lt;a href="http://notepad-plus-plus.org/"&gt;Notepad++&lt;/a&gt; (personalmente prefiero el primero mil veces al segundo).&lt;/p&gt;  &lt;p&gt;El único problema reside en que algunos navegadores, por seguridad, no ejecutan Javascript cuando el origen es file:// (es decir cuando estamos cargando un fichero del sistema de ficheros). P. ej. tengo una página que usa el API de geolocalización de HTML5 para mostrar mis coordenadas y cuando la cargo desde el sistema de ficheros, Chrome deniega la petición para geolocalización automáticamente, sin preguntar:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_1E3CD13C.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_5204C78D.png" width="484" height="142" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Por otro lado IE no es tan restrictivo, pero me salta con un mensaje diciendo que los scripts (o ActiveX) se han bloqueado y un botón para permitir su ejecución:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_29F2186E.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_4FE7C8C4.png" width="484" height="194" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Bien, aunque esto personalmente me gusta (es una buena medida de seguridad) a veces, cuando preparas demos, da un poco por el saco. La solución es, obviamente, servir los ficheros via http, desde un servidor web, así que busqué la manera más sencilla de hacerlo.&lt;/p&gt;  &lt;p&gt;Una es, teniendo instalado IIS, copiar los ficheros al directorio Inetpub\wwwroot de IIS, pero hacer esto cada vez (además con un directorio protegido con derechos de administrador) es un peñazo.&lt;/p&gt;  &lt;p&gt;Otra es crear un proyecto ASP.NET en Visual Studio, meter allí los html y ejecutarlo. Pero claro, iniciar VS tan solo para ejecutar un par de htmls y javascripts me parece excesivo. Pero vaya, eso es más o menos lo que iba haciendo, hasta que un día me dije “&lt;em&gt;tiene que haber una manera más sencilla”&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Y nada, así di con &lt;a href="http://www.rejetto.com/hfs/"&gt;HFS (Http File Server)&lt;/a&gt;: un pequeño programa que al ejecutarlo crea un servidor http y empieza a servir los ficheros que tu le digas. Una vez lo descargas y ejecutas (no se instala ni nada), aparece la ventana principal:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_4064B6F5.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_57AFBB66.png" width="484" height="257" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Y luego tan solo arrastras los ficheros que quieres servir via http. P. ej. si arrastro el fichero c:\personal\geolocalizacion.html automáticamente aparece en la lista de la izquierda, indicando que ya se puede acceder a él, via http:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_2B92BE75.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_239B1C13.png" width="484" height="257" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Lo bueno: &lt;strong&gt;El fichero NO se copia en ningún otro directorio&lt;/strong&gt;, ni nada parecido. No hay nada más a configurar. Ahora ya puedo abrir un navegador y ver mi fichero servido via http:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_1BA379B1.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_5A94FA4C.png" width="484" height="167" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Fíjate como ahora, la página está servida via http y Chrome si que me pregunta si quiero compartir mi ubicación con localhost:8080 (tal y como manda la especificación de HTML5).&lt;/p&gt;  &lt;p&gt;Personalmente me parece una herramienta muy sencilla y útil y la quería compartir con todos vosotros :)&lt;/p&gt;  &lt;p&gt;Un saludo a todos!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209513" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/etomas/archive/tags/html/default.aspx">html</category><category domain="http://geeks.ms/blogs/etomas/archive/tags/javascript/default.aspx">javascript</category><category domain="http://geeks.ms/blogs/etomas/archive/tags/html5/default.aspx">html5</category><category domain="http://geeks.ms/blogs/etomas/archive/tags/herramientas/default.aspx">herramientas</category></item><item><title>[SUGES]: Componentes gratuitos de KWizCom para la comunidad - Junio: KPI Field Type!</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/23/suges-componentes-gratuitos-de-kwizcom-para-la-comunidad-junio-kpi-field-type.aspx</link><pubDate>Thu, 23 May 2013 06:38:26 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209512</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Gracias a un acuerdo de colaboración con la empresa especializada en plataforma SharePoint &lt;a href="http://www.kwizcom.com/"&gt;KWizCom&lt;/a&gt; ubicada en Canadá, desde &lt;a href="http://www.suges.es"&gt;SUGES&lt;/a&gt; tenemos la posibilidad de ofrecer de forma mensual componentes gratuitos de la misma. Para el mes de junio, el componente gratuito puesto por KWizCom a disposición de la comunidad es el &lt;a&gt;KPI Field Type&lt;/a&gt;. Como su nombre indica, este Field Type permite visualizar información de estado de elementos de listas de SharePoint de una forma muy visual para el usuario:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;img title="KWizCom KPI columns" style="float:none;margin-left:auto;display:block;margin-right:auto;" alt="KWizCom KPI columns" src="http://www.kwizcom.com/images/KpiField/kpi-1.png" width="559" height="324" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Si estás interesado en acceder a este componente de KWizCom, lo único qué tienes que hacer es enviarme un correo electrónico (&lt;a href="mailto:jgonzalez@gruposodercan.es"&gt;jgonzalez@gruposodercan.es&lt;/a&gt;) o un mensaje privado en Twitter (@jcgm1978) y me encargaré de indicarte los siguientes pasos para poder disponer del KPI Field Type. Finalmente, os dejo una pequeña descripción (en inglés) de KWizCom como referencia de la compañía:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;Since 2005, KWizCom has provided innovative solutions and services to make SharePoint even better for over 5,000 companies worldwide. KWizCom&amp;#39;s solutions and services expand Microsoft SharePoint out-of-the-box capabilities, streamline workflow, maximize efficiency and enhance over-all productivity for hundreds of thousands of users. KWizCom, a Gold Certified Microsoft Partner, is headquartered in Toronto, Canada.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.kwizcom.com/"&gt;&lt;img title="KWizCom_Master_Logo_Recortado" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="KWizCom_Master_Logo_Recortado" src="http://www.ciin.es/imagenes/SUGES_807B/KWizCom_Master_Logo_Recortado.jpg" width="644" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Y estad atentos, gracias a KWizCom tendremos regalos para sortear entre los asistentes a la &lt;a href="http://www.iberiansharepointconference.com/"&gt;&lt;strong&gt;Primera Iberian SharePoint Conference&lt;/strong&gt;&lt;/a&gt; qué realizaremos este 10 de octubre en Madrid y la que ya te puedes pre-inscribir a través de &lt;a href="http://www.iberiansharepointconference.com/es/pre-registro"&gt;este enlace&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209512" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SUGES/default.aspx">SUGES</category></item><item><title>[#EVENT] Materiales del evento de trabajo AGILE con #VS2012 y #TFS2012</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/22/event-materiales-del-evento-de-trabajo-agile-con-vs2012-y-tfs2012.aspx</link><pubDate>Wed, 22 May 2013 20:35:35 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209511</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_6BFA4AD0.png"&gt;&lt;font size="3"&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:4px 10px;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_58A96E64.png" width="957" height="284" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Buenas&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;después de pasar unos 60 minutos increíbles con la gente de MSDN Latam hablando sobre cómo es posible trabajar con &lt;/font&gt;&lt;a href="http://www.microsoft.com/visualstudio/eng#downloads" target="_blank"&gt;&lt;font size="3"&gt;Visual Studio 2012&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; y Team Foundation Server 2012, me toca cumplir con lo prometido: compartir la presentación, algunos links, etc.&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;&lt;font size="3"&gt;Definition of DONE&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="3"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2013/03/21/definition-of-done-and-knowing-when-it-is-safe-to-sleep-peacefully.aspx"&gt;&lt;font size="3"&gt;http://blogs.msdn.com/b/willy-peter_schaub/archive/2013/03/21/definition-of-done-and-knowing-when-it-is-safe-to-sleep-peacefully.aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;      &lt;br /&gt;Algo imprescindible que tiene que estar claro desde el día uno.&lt;/font&gt; &lt;/p&gt;  &lt;h2&gt;&lt;font size="3"&gt;Libros&lt;/font&gt; &lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="3"&gt;ALM con &lt;/font&gt;&lt;a href="http://www.microsoft.com/visualstudio/eng#downloads" target="_blank"&gt;&lt;font size="3"&gt;Visual Studio 2012&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; y &lt;/font&gt;&lt;a href="http://tfs.visualstudio.com/" target="_blank"&gt;&lt;font size="3"&gt;Team Foundation Service&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; (menos de 1$)        &lt;br /&gt;&lt;/font&gt;&lt;a title="http://www.amazon.es/Visual-Studio-Foundation-Service-ebook/dp/B00C4VLSEA/ref=sr_1_1?ie=UTF8&amp;amp;qid=1369254276&amp;amp;sr=8-1&amp;amp;keywords=alm+visual+studio" href="http://www.amazon.es/Visual-Studio-Foundation-Service-ebook/dp/B00C4VLSEA/ref=sr_1_1?ie=UTF8&amp;amp;qid=1369254276&amp;amp;sr=8-1&amp;amp;keywords=alm+visual+studio"&gt;&lt;font size="3"&gt;http://www.amazon.es/Visual-Studio-Foundation-Service-ebook/dp/B00C4VLSEA/ref=sr_1_1?ie=UTF8&amp;amp;qid=1369254276&amp;amp;sr=8-1&amp;amp;keywords=alm+visual+studio&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://pragprog.com/book/jtrap/the-agile-samurai" target="_blank"&gt;&lt;font size="3"&gt;The Agile Samurai&lt;/font&gt;&lt;/a&gt;       &lt;br /&gt;&lt;a title="http://www.amazon.es/The-Agile-Samurai-Programmers-ebook/dp/B00AYQNR5K/ref=sr_1_1?s=digital-text&amp;amp;ie=UTF8&amp;amp;qid=1369254323&amp;amp;sr=1-1&amp;amp;keywords=agile+samurai" href="http://www.amazon.es/The-Agile-Samurai-Programmers-ebook/dp/B00AYQNR5K/ref=sr_1_1?s=digital-text&amp;amp;ie=UTF8&amp;amp;qid=1369254323&amp;amp;sr=1-1&amp;amp;keywords=agile+samurai"&gt;&lt;font size="3"&gt;http://www.amazon.es/The-Agile-Samurai-Programmers-ebook/dp/B00AYQNR5K/ref=sr_1_1?s=digital-text&amp;amp;ie=UTF8&amp;amp;qid=1369254323&amp;amp;sr=1-1&amp;amp;keywords=agile+samurai&lt;/font&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;&lt;font size="3"&gt;WebCast TFS Express&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="3"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;a title="http://elbruno.com/2013/03/11/event-msdn-latam-webcast-msdn-todos-a-bordo-del-team-foundation-server-express/" href="http://elbruno.com/2013/03/11/event-msdn-latam-webcast-msdn-todos-a-bordo-del-team-foundation-server-express/"&gt;&lt;font size="3"&gt;http://elbruno.com/2013/03/11/event-msdn-latam-webcast-msdn-todos-a-bordo-del-team-foundation-server-express/&lt;/font&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a title="https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-AR&amp;amp;EventID=1032547149&amp;amp;CountryCode=AR" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-AR&amp;amp;EventID=1032547149&amp;amp;CountryCode=AR"&gt;&lt;font size="3"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-AR&amp;amp;EventID=1032547149&amp;amp;CountryCode=AR&lt;/font&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h2&gt;&lt;font size="3"&gt;Planning Poker Online&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="3"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;a title="http://www.planningpoker.com/" href="http://www.planningpoker.com/"&gt;&lt;font size="3"&gt;http://www.planningpoker.com/&lt;/font&gt;&lt;/a&gt;     &lt;br /&gt;&lt;font size="3"&gt;Es gratis y pueden trabajar de forma distribuida sin ningun problema.&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;&lt;font size="3"&gt;Y finalmente la presentación&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;iframe height="400" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/21701510" frameborder="0" width="476" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Saludos @ Home&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;El Bruno&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" width="110" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="36"&gt;&lt;a href="http://facebook.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image2.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="http://es.linkedin.com/in/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image3.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="https://twitter.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image4.png" width="40" height="40" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209511" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Event/default.aspx">Event</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Agile/default.aspx">Agile</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Scrum/default.aspx">Scrum</category></item><item><title>[Evento] Microsoft SharePoint sin Rodeos</title><link>http://geeks.ms/blogs/davidmartos/archive/2013/05/22/evento-microsoft-sharepoint-sin-rodeos.aspx</link><pubDate>Wed, 22 May 2013 09:57:41 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209509</guid><dc:creator>David Martos</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Mañana, 23 de Mayo, de 15:00 a 16:00 tengo el placer de participar en un evento organizado por AvePoint y SUGES que girará en torno a las nuevas características sociales que incorpora SharePoint 2013.&lt;/p&gt;  &lt;p&gt;Aquí podréis ver más información sobre el evento:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://eu.avepoint.com/resources/webinars/?tab=es"&gt;https://eu.avepoint.com/resources/webinars/?tab=es&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El evento será en forma de webcast, si queréis asistir no dudéis en registraros aquí:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032549072&amp;amp;Culture=es-ES&amp;amp;community=0"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032549072&amp;amp;Culture=es-ES&amp;amp;community=0&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209509" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/davidmartos/archive/tags/Eventos/default.aspx">Eventos</category></item><item><title>Evento en Sevilla: desarrollo de videojuegos multiplataforma con Wave Engine</title><link>http://geeks.ms/blogs/jmaguilar/archive/2013/05/22/evento-en-sevilla-desarrollo-de-videojuegos-multiplataforma-con-wave-engine.aspx</link><pubDate>Wed, 22 May 2013 09:47:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209507</guid><dc:creator>José M. Aguilar</dc:creator><slash:comments>0</slash:comments><description>Sin duda, el desarrollo de videojuegos es una de las &amp;aacute;reas m&amp;aacute;s atractivas e interesantes a las que podemos aspirar dedicarnos los desarrolladores. Y aunque hoy en d&amp;iacute;a parece estar especialmente de moda, no es algo nuevo; muchos de nosotros empezamos a interesarnos por la programaci&amp;oacute;n intentando programar nuestros propios juegos. Por este motivo espero con especial impaciencia la pr&amp;oacute;xima charla organizada por Cartuja.NET, que tratar&amp;aacute; sobre el desarrollo de...(&lt;a href="http://geeks.ms/blogs/jmaguilar/archive/2013/05/22/evento-en-sevilla-desarrollo-de-videojuegos-multiplataforma-con-wave-engine.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209507" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/eventos/default.aspx">eventos</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/waveengine/default.aspx">waveengine</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/cartujadotnet/default.aspx">cartujadotnet</category></item><item><title>[Eventos]: La nube, sobre superpoderes informáticos y por supuesto SharePoint!</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/22/eventos-la-nube-sobre-superpoderes-inform-225-ticos-y-por-supuesto-sharepoint.aspx</link><pubDate>Wed, 22 May 2013 06:29:18 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209506</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Como siempre, y ya van unos cuantos años, en el CIIN seguimos organizando eventos tanto presenciales como online (a través de WebCasts) en torno a las tecnologías con las que trabajamos habitualmente y también en torno a otras temáticas relacionadas :-). Durante lo que queda de mayo y en junio tenemos programados varios eventos en torno a Windows Azure, SharePoint (dentro de la actividad de SUGES y en colaboración con AvePoint) y uno un tanto especial y diferente de la mano de David Diego (@TresssDes): &lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/2013050SPoderes.aspx?Fecha=06-06-2013"&gt;Superpoderes para informáticos: cómo desarrollarlos en tu entorno&lt;/a&gt;. El resumen de los eventos es el siguiente:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Jornadas presenciales sobre Windows Azure:&lt;/div&gt;   &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/20130524_VNubeLectureDesarrollo.aspx?Fecha=24-05-2013"&gt;24-05-2013 - Viernes en la nube: Sesión sobre Windows Azure orientada a desarrolladores&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/20130524_VNubeHolDesarrollo.aspx?Fecha=24-05-2013"&gt;24-05-2013 - Viernes en la nube: Hols sobre Windows Azure orientados a desarrolladores&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/20130531_VNubeLectureSistemas.aspx?Fecha=31-05-2013"&gt;31-05-2013 - Viernes en la nube: Sesión sobre Windows Azure orientada a sistemas (IT)&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/20130531_VNubeHolsSistemas.aspx?Fecha=31-05-2013"&gt;31-05-2013 - Viernes en la nube: Hols sobre Windows Azure orientados a sistemas (IT)&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/20130607_VNubeLectureEmprendedor.aspx?Fecha=07-06-2013"&gt;07-06-2013 - Viernes en la nube: Sesión sobre Windows Azure para emprendedores&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/20130607_VNubeHolsEmprendedor.aspx?Fecha=07-06-2013"&gt;07-06-2013 - Viernes en la nube: Hols sobre Windows Azure para emprendedores&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;    &lt;li&gt;&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/2013050SPoderes.aspx?Fecha=06-06-2013"&gt;06-06-2013 - Superpoderes para informáticos: cómo desarrollarlos en tu entorno&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;WebCasts sobre SharePoint en SUGES en colaboración con AvePoint:&lt;a href="http://www.ciin.es/web/servicios/eventos/Paginas/SharePoint_Sin_Rodeos.aspx?Fecha=20-06-2013"&gt;SharePoint sin rodeos&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="float:none;margin-left:auto;display:block;margin-right:auto;" src="http://www.ciin.es/web/servicios/eventos/PublishingImages/superpoder.jpg" alt="" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Si queréis estar al día de las acciones que hacemos desde el CIIN, tenéis las siguientes opciones:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Daros de alta en nuestra web a través del &lt;a href="http://www.ciin.es/web/acercade/Paginas/formcontacto.aspx"&gt;formulario de contacto habilitado&lt;/a&gt;.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Seguirnos en Twitter: @MICCantabria&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Apuntaros a nuestro grupo privado de Facebook disponible en &lt;a href="https://www.facebook.com/groups/238874254062/?fref=ts"&gt;este enlace&lt;/a&gt;.&lt;/div&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=209506" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/CIIN/default.aspx">CIIN</category></item><item><title>[#EVENT] WebCast sobre #AGILE con Visual Studio 2012 y Team Foundation Server 2012 #VS2012 #ALM</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/21/event-webcast-sobre-agile-con-visual-studio-2012-y-team-foundation-server-2012-vs2012-alm.aspx</link><pubDate>Tue, 21 May 2013 19:04:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209505</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://brunocapuano.files.wordpress.com/2012/06/image1.png"&gt;&lt;span style="font-size:small;"&gt;&lt;img height="164" width="464" src="http://brunocapuano.files.wordpress.com/2012/06/image1.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;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;Buenas,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;despu&amp;eacute;s de un par de d&amp;iacute;as de oscurismo, por fin me puedo sacar las ganas y comentar como podemos trabajar de manera &amp;Aacute;GIL con &lt;/span&gt;&lt;a target="_blank" href="http://www.microsoft.com/visualstudio/eng#downloads"&gt;&lt;span style="font-size:small;"&gt;Visual Studio 2012&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt; y Team Foundation Server 2012. Los amigos de MSDN Latam me han dado un espacio de 60 minutos para comentar como es posible llevar adelante un equipo utilizando las herramientas de Visual Studio ALM. (como siempre muchas gracias!)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;Si bien 60 minutos es poco tiempo, intentar&amp;eacute; pasar por los temas b&amp;aacute;sicos&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:small;"&gt;organizaci&amp;oacute;n del trabajo&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:small;"&gt;planificaci&amp;oacute;n del trabajo&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:small;"&gt;ejecuci&amp;oacute;n del trabajo&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:small;"&gt;gesti&amp;oacute;n de cambios&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;A qu&amp;eacute; ahora lo ves m&amp;aacute;s claro, &amp;iquest;no?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_2DFA2C7C.png"&gt;&lt;span style="font-size:small;"&gt;&lt;img height="540" width="960" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_thumb_5F00_03BA58C7.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:4px 10px;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;Registro: &lt;/span&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032551090&amp;amp;Culture=es-AR&amp;amp;community=0" title="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032551090&amp;amp;Culture=es-AR&amp;amp;community=0"&gt;&lt;span style="font-size:small;"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032551090&amp;amp;Culture=es-AR&amp;amp;community=0&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;Saludos @ Home&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;El Bruno&lt;/span&gt;&lt;/p&gt;
&lt;table border="0" width="110" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="36" valign="top"&gt;&lt;a target="_blank" href="http://facebook.com/elbruno"&gt;&lt;span style="font-size:small;"&gt;&lt;img height="41" width="41" src="http://brunocapuano.files.wordpress.com/2012/03/image2.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="36" valign="top"&gt;&lt;a target="_blank" href="http://es.linkedin.com/in/elbruno"&gt;&lt;span style="font-size:small;"&gt;&lt;img height="41" width="41" src="http://brunocapuano.files.wordpress.com/2012/03/image3.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="36" valign="top"&gt;&lt;a target="_blank" href="https://twitter.com/elbruno"&gt;&lt;span style="font-size:small;"&gt;&lt;img height="40" width="40" src="http://brunocapuano.files.wordpress.com/2012/03/image4.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209505" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/ALM/default.aspx">ALM</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Team+Foundation+Service/default.aspx">Team Foundation Service</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Team+Foundation+Server+2012/default.aspx">Team Foundation Server 2012</category></item><item><title>[WaveEngine] Primeros pasos…</title><link>http://geeks.ms/blogs/etomas/archive/2013/05/21/waveengine-primeros-pasos.aspx</link><pubDate>Tue, 21 May 2013 13:20:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209504</guid><dc:creator>Eduard Tomàs i Avellana</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Buenas! Hace algunos d&amp;iacute;as, no muchos, que me estoy &lt;em&gt;pegando&lt;/em&gt; (en el buen sentido de la palabra) con &lt;a target="_blank" href="http://waveengine.net/"&gt;WaveEngine&lt;/a&gt;, esta maravilla que han creado los chicos de Plain Concepts.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; Este post (y todos los que puedan venir) no pretenden sustituir la documentaci&amp;oacute;n oficial. No me considero un experto en Wave ni de lejos, realmente soy un aprendiz de nivel 1 :) Simplemente voy a expresar mis experiencias y lo ir&amp;eacute; haciendo a medida que las vaya teniendo, as&amp;iacute; que bueno&amp;hellip; puede haber inexactitudes, errores, omisiones, etc&amp;hellip; en estos posts. As&amp;iacute; que comentarios son m&amp;aacute;s que bienvenidos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Introducci&amp;oacute;n &amp;ndash; &amp;iquest;Qu&amp;eacute; es Wave Engine?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bueno, pues b&amp;aacute;sicamente WaveEngine es un motor multiplataforma de videojuegos. No es el &amp;uacute;nico hay una larga lista de ellos (algunos m&amp;aacute;s multiplataforma que otros) como &lt;a target="_blank" href="http://cocos2d.org/"&gt;cocos2d&lt;/a&gt; (y sus derivados tales como &lt;a target="_blank" href="http://www.cocos2d-x.org/"&gt;cocos2dx&lt;/a&gt;), &lt;a target="_blank" href="http://deltaengine.net/"&gt;Delta Engine&lt;/a&gt; o el todopoderoso &lt;a target="_blank" href="http://unity3d.com/"&gt;Unity3D&lt;/a&gt;. Todos ellos nacen con filosof&amp;iacute;as distintas, lo que termina redundando en caracter&amp;iacute;sticas, y precios, distintos.&lt;/p&gt;
&lt;p&gt;Wave Engine es totalmente gratuito: la descarga es gratuita y no hay que pagar licencia de ning&amp;uacute;n tipo ni royalty por juego publicado ni nada parecido. El &amp;uacute;nico detalle a tener en cuenta es que Wave Engine permite desarrollar para iOS y Anrdoid a trav&amp;eacute;s de Monotouch y Monodroid (de &lt;a target="_blank" href="http://xamarin.com/"&gt;Xamarin&lt;/a&gt;) y esos productos no son libres. Aqu&amp;iacute; pues hay &lt;a target="_blank" href="https://store.xamarin.com/"&gt;un coste, que es la licencia de Monotouch y Monodroid&lt;/a&gt;. Por supuesto esto os aplica tan solo si quereis desplegar en Android o iOS.&lt;/p&gt;
&lt;p&gt;Como todo motor de videojuegos, Wave nos ofrece una API de relativo alto nivel para evitar tener que lidiar directamente con DirectX (o OpenGL), adem&amp;aacute;s de integrar muchas otras facetas: animaciones, motores de f&amp;iacute;sica, etc. En definitiva, un ahorro de tiempo considerable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Panorama actual del desarrollo de videojuegos en Windows 8&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En Windows 7 y anteriores la situaci&amp;oacute;n del desarrollo de videojuegos era relativamente sencilla. B&amp;aacute;sicamente, motores de terceros aparte, hab&amp;iacute;a dos opciones b&amp;aacute;sicas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usar C++ y DirectX directamente. La opci&amp;oacute;n m&amp;aacute;s potente y la menos productiva ya que DirectX es una API de bajo nivel. &lt;/li&gt;
&lt;li&gt;Usar .NET (C#) y XNA. Una opci&amp;oacute;n que ha sido muy usada por desarrolladores indie y peque&amp;ntilde;os estudios ya que XNA es una API de medio nivel, que evita que uno tenga que pegarse con DirectX directamente. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Con Windows 8 y la aparici&amp;oacute;n de las nuevas aplicaciones para la Windows Store, el panorama ha cambiado. XNA no permite realizar aplicaciones para la Windows Store y adem&amp;aacute;s MS lo ha discontinuado. No habr&amp;aacute; una futura versi&amp;oacute;n de XNA.&lt;/p&gt;
&lt;p&gt;El panorama oficial para desarrollar videojuegos para la Windows Store ahora es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usar XAML y C#. No es &amp;oacute;ptimo ni de lejos, ya que no se usa toda la potencia gr&amp;aacute;fica del ordenador. &lt;/li&gt;
&lt;li&gt;Usar C++ y DirectX&amp;hellip; Lo que despu&amp;eacute;s de venir usando XNA es un paso atr&amp;aacute;s en productividad descomunal. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por suerte, la comunidad no se est&amp;aacute; quieta, y as&amp;iacute; ha surgido el proyecto &lt;a target="_blank" href="http://sharpdx.org/"&gt;SharpDX&lt;/a&gt;. SharpDX es un wrapper en .NET para DirectX. Us&amp;aacute;ndolo podemos desarrollar videojuegos en C# y DirectX. Aunque es una mejora no te creas que es la panacea: DirectX es de bajo nivel por lo que SharpDX tambi&amp;eacute;n lo es. Otra alternativa interesante es &lt;a target="_blank" href="http://monogame.codeplex.com/"&gt;MonoGame&lt;/a&gt; que es un port de XNA. Como su nombre indica usa Mono (Monotouch y Monodroid) para permitir desarrollar videojuegos para iOS y Android y usa por debajo SharpDX para permitir hacer lo mismo para aplicaciones Windows Store.&lt;/p&gt;
&lt;p&gt;Y finalmente un escal&amp;oacute;n por encima est&amp;aacute;n los motores de videojuegos, como Wave. Por supuesto Wave por debajo usa SharpDX pero nosotros quedamos completamente al margen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Estructura de un proyecto de Wave&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando instalamos Wave Engine nos aparecen nuevas plantillas de proyecto en VS2012:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_5D24C09C.png"&gt;&lt;img height="140" width="504" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_669D7F12.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Si seleccionamos la opci&amp;oacute;n de &amp;ldquo;Game Project&amp;rdquo; VS2012 nos a&amp;ntilde;adir&amp;aacute; &lt;strong&gt;dos&lt;/strong&gt; proyectos a nuestra soluci&amp;oacute;n. Uno con el nombre que hayamos elegido y otro con el a&amp;ntilde;adido &amp;ldquo;Project&amp;rdquo; al final. No s&amp;eacute; todav&amp;iacute;a porque se crean esos dos proyectos pero realmente el primero es el ejecutable y es una lanzadora del segundo. Supongo que esto es porque el primero es espec&amp;iacute;fico por cada plataforma mientras que el segundo (que tiene realmente todo el c&amp;oacute;digo) es el mismo por todas las plataformas. Sospecho que los tiros van por ah&amp;iacute;.&lt;/p&gt;
&lt;p&gt;A partir de ah&amp;iacute; Wave usa conceptos muy simples de entender:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escena: Es toda la informaci&amp;oacute;n de nuestro juego en un momento dado. P. ej. un videojuego que tuviese varios niveles&amp;nbsp; podr&amp;iacute;a tener varias escenas. Otra opci&amp;oacute;n ser&amp;iacute;a tener una escena para el men&amp;uacute; principal y otra para el juego en s&amp;iacute;. En un momento dado se est&amp;aacute; &lt;em&gt;ejecutando&lt;/em&gt; (por decirlo de alg&amp;uacute;n modo) una escena. &lt;/li&gt;
&lt;li&gt;Componente: Es la unidad de modularizaci&amp;oacute;n de Wave. Los componentes son como &amp;ldquo;piezas&amp;rdquo; que se a&amp;ntilde;aden a las entidades. P.ej. para posicionar algo en pantalla (si estamos haciendo un juego 2D) vamos a necesitar un componente llamado Transform2D. Todas las entidades que tengan una posici&amp;oacute;n 2D tendr&amp;aacute;n una instancia de este componente. &lt;/li&gt;
&lt;li&gt;Entidad: Cada uno de los elementos de los que se compone tu juego. El h&amp;eacute;roe, la princesa o los nubarrones del fondo son entidades. &lt;/li&gt;
&lt;li&gt;Comportamientos (Behaviors): Son componentes que permiten que una entidad tenga l&amp;oacute;gica, es decir se comporte de una manera u otra. Que hace que la princesa sea una princesa indefensa y el drag&amp;oacute;n un drag&amp;oacute;n que escupa fuego? Pues sus comportamientos. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por defecto la plantilla de proyecto de Wave nos crea la clase que representa el juego y una escena vac&amp;iacute;a. Nuestra misi&amp;oacute;n es crear entidades (con sus componentes y comportamientos) y a&amp;ntilde;adirlas a la escena. Y con esto tendremos un juego :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hello World con Wave Engine&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Venga, empecemos por lo b&amp;aacute;sico de lo b&amp;aacute;sico. Vamos a crear un peque&amp;ntilde;o programa en 2D que simplemente muestre un sprite. Luego m&amp;aacute;s adelante veremos como animarlo y darle un poco de vida ;-)&lt;/p&gt;
&lt;p&gt;Lo primero que debemos hacer es crear un nuevo proyecto de tipo WaveEngine Game Project. En mi caso he llamado &amp;ldquo;Mai&amp;rdquo; al proyecto.&lt;/p&gt;
&lt;p&gt;Con esto VS2012 me va a crear los proyectos &amp;ldquo;Mai&amp;rdquo; y &amp;ldquo;MaiProject&amp;rdquo;. Como he dicho antes el segundo es el que contendr&amp;aacute; &amp;ldquo;toda la chicha&amp;rdquo; :)&lt;/p&gt;
&lt;p&gt;En MaiProject se me habr&amp;aacute;n creado los ficheros Game.cs que contiene la clase que pone en marcha el juego y MyScene.cs, la &amp;uacute;nica escena que (de momento) tiene nuestro juego.&lt;/p&gt;
&lt;p&gt;Ahora, lo &amp;uacute;nico que vamos a hacer es mostrar un gr&amp;aacute;fico en pantalla. Para ello debemos introducir otro concepto de Wave: los assets.&lt;/p&gt;
&lt;p&gt;Un asset no es nada m&amp;aacute;s que un elemento que proviene de un fichero externo y que forma parte de nuestro juego. P. ej. si quiero mostrar un fichero .png este .png ser&amp;aacute; un asset. Pero lo mismo ocurrir&amp;aacute; si tengo un modelo 3D exportado en formato .x p.ej. WaveEngine &lt;strong&gt;no&lt;/strong&gt; entiende de formatos gr&amp;aacute;ficos o de formatos 3D o de cualquier otro formato externo. Wave entiende tan solo de un formato de asset gen&amp;eacute;rico, el .wpk. Por lo tanto NO podemos usar directamente un .png, si no que debemos convertirlo antes a este formato .wpk.&lt;/p&gt;
&lt;p&gt;Para ello debemos usar la herramienta (que se instala junto con Wave) llamada Assets Exporter. Si la ponemos en marcha veremos una interfaz muy, muy negra:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_6C7822AB.png"&gt;&lt;img height="184" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_5956F5FF.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En mi caso tengo un fichero .png, llamado mai_idle (0).png y quiero convertirlo a un .wpk para poder usarlo desde Wave. Para ello, debo crear un proyecto nuevo de assets exporter. As&amp;iacute; que le doy a File-&amp;gt;New Project y selecciono una carpeta. Ello me crea un fichero .wproj y una estructura de carpetas dentro de la carpeta seleccionada. Una de esas carpetas es llamada Assets y contendr&amp;aacute; los ficheros de origen (en mi caso el .png). Para a&amp;ntilde;adir assets al proyecto basta con pulsar el bot&amp;oacute;n de &amp;ldquo;+&amp;rdquo; (el primero por la izquierda) y seleccionar el fichero. Al hacerlo el fichero es copiado autom&amp;aacute;ticamente a la carpeta Assets.&lt;/p&gt;
&lt;p&gt;Una vez tenemos todos los Assets podemos darle a exportar (Project &amp;ndash;&amp;gt; Export) y en la carpeta &amp;ldquo;Exports&amp;rdquo; dentro de la carpeta que hemos elegido al crear el proyecto del assets exporter tendremos el fichero .wpk.&lt;/p&gt;
&lt;p&gt;Ahora debemos copiar este fichero a la carpeta &amp;ldquo;Content&amp;rdquo; del proyecto de VS2102 y establecer en las propiedades del fichero &amp;ldquo;Copy to output folder&amp;rdquo; a &amp;ldquo;Always&amp;rdquo;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_11956D18.png"&gt;&lt;img height="244" width="215" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_378B1D6E.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;display:inline;padding-right:0px;border-top-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bien! Esta es la forma habitual de proceder con los assets :)&lt;/p&gt;
&lt;p&gt;A partir de ahora ya tan solo nos queda codificar. En nuestro caso vamos a mostrar tan solo una imagen. Para ello vamos a crear una entidad (todo son entidades en Wave) que va a tener varios componentes. Vamos a construirlo paso&amp;nbsp; a paso. Todo el c&amp;oacute;digo va en el m&amp;eacute;todo CreateScene de MyScene. Empezamos por crear la entidad:&lt;/p&gt;
&lt;div style="font-size:10pt;font-family:consolas;background:#1e1e1e;color:#dcdcdc;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#569cd6;"&gt;var&lt;/span&gt; &lt;span style="color:white;"&gt;mai&lt;/span&gt; &lt;span style="color:#b4b4b4;"&gt;=&lt;/span&gt; &lt;span style="color:#569cd6;"&gt;new&lt;/span&gt; &lt;span style="color:#4ec9b0;"&gt;Entity&lt;/span&gt;(&lt;span style="color:#d69d85;"&gt;&amp;quot;Mai&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Y ahora vamos a irle a&amp;ntilde;adiendo componentes. Empezaremos por una posici&amp;oacute;n. Haremos que mai aparezca en la esquina inferior izquierda de la pantalla. En Wave una posici&amp;oacute;n es un componente de tipo Transform2D (estamos en un videojuego 2D, los 3D son otro mundo):&lt;/p&gt;
&lt;div style="font-size:10pt;font-family:consolas;background:#1e1e1e;color:#dcdcdc;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:white;"&gt;mai&lt;/span&gt;&lt;span style="color:#b4b4b4;"&gt;.&lt;/span&gt;&lt;span style="color:white;"&gt;AddComponent&lt;/span&gt;(&lt;span style="color:#569cd6;"&gt;new&lt;/span&gt; &lt;span style="color:#4ec9b0;"&gt;Transform2D&lt;/span&gt;()&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:white;"&gt;X&lt;/span&gt; &lt;span style="color:#b4b4b4;"&gt;=&lt;/span&gt; &lt;span style="color:#b5cea8;"&gt;50&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:white;"&gt;Y&lt;/span&gt; &lt;span style="color:#b4b4b4;"&gt;=&lt;/span&gt; &lt;span style="color:#4ec9b0;"&gt;WaveServices&lt;/span&gt;&lt;span style="color:#b4b4b4;"&gt;.&lt;/span&gt;&lt;span style="color:white;"&gt;Platform&lt;/span&gt;&lt;span style="color:#b4b4b4;"&gt;.&lt;/span&gt;&lt;span style="color:white;"&gt;ScreenHeight&lt;/span&gt; &lt;span style="color:#b4b4b4;"&gt;-&lt;/span&gt; &lt;span style="color:#b5cea8;"&gt;46&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:white;"&gt;Origin&lt;/span&gt; &lt;span style="color:#b4b4b4;"&gt;=&lt;/span&gt; &lt;span style="color:#569cd6;"&gt;new&lt;/span&gt; &lt;span style="color:#4ec9b0;"&gt;Vector2&lt;/span&gt;(&lt;span style="color:#b5cea8;"&gt;0.5f&lt;/span&gt;, &lt;span style="color:#b5cea8;"&gt;1&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;El siguiente paso es tener un asset gr&amp;aacute;fico. De hecho Wave, como buen motor, nos da el concepto de sprite, es decir un conjunto de gr&amp;aacute;ficos:&lt;/p&gt;
&lt;div style="font-size:10pt;font-family:consolas;background:#1e1e1e;color:#dcdcdc;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:white;"&gt;mai&lt;/span&gt;&lt;span style="color:#b4b4b4;"&gt;.&lt;/span&gt;&lt;span style="color:white;"&gt;AddComponent&lt;/span&gt;(&lt;span style="color:#569cd6;"&gt;new&lt;/span&gt; &lt;span style="color:#4ec9b0;"&gt;Sprite&lt;/span&gt;(&lt;span style="color:#d69d85;"&gt;&amp;quot;Content/mai_idle (0).wpk&amp;quot;&lt;/span&gt;));&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Al constructor de Sprite se le pasa el nombre del fichero .wpk que contiene el gr&amp;aacute;fico (t&amp;eacute;cnicamente la textura). Un tema a destacar, que ya veremos en otro post, es que un fichero .wpk puede contener m&amp;aacute;s de un gr&amp;aacute;fico de nuestro sprite.&lt;/p&gt;
&lt;p&gt;Finalmente tan solo nos queda a&amp;ntilde;adir el renderizador, es decir el componente que se encarga de &amp;ldquo;dibujar&amp;rdquo; en pantalla. Te puede parecer extra&amp;ntilde;o que los renderizadores sean componentes, pero esto permite que una misma entidad se dibuje (se renderice) en pantalla de formas distintas. &amp;iexcl;Modularidad ante todo!&lt;/p&gt;
&lt;div style="font-size:10pt;font-family:consolas;background:#1e1e1e;color:#dcdcdc;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:white;"&gt;mai&lt;/span&gt;&lt;span style="color:#b4b4b4;"&gt;.&lt;/span&gt;&lt;span style="color:white;"&gt;AddComponent&lt;/span&gt;(&lt;span style="color:#569cd6;"&gt;new&lt;/span&gt; &lt;span style="color:#4ec9b0;"&gt;SpriteRenderer&lt;/span&gt;(&lt;span style="color:#4ec9b0;"&gt;DefaultLayers&lt;/span&gt;&lt;span style="color:#b4b4b4;"&gt;.&lt;/span&gt;&lt;span style="color:white;"&gt;Alpha&lt;/span&gt;));&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; No la he usado en este ejemplo, pero Wave tiene una API fluent, de forma que en lugar de ir haciendo mai.XXX cada vez, podeis encadenar las llamadas a AddComponent una tras de otra.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Finalmente debemos agregar esta entidad que hemos creado a la escena:&lt;/p&gt;
&lt;div style="font-size:10pt;font-family:consolas;background:#1e1e1e;color:#dcdcdc;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:white;"&gt;EntityManager&lt;/span&gt;&lt;span style="color:#b4b4b4;"&gt;.&lt;/span&gt;&lt;span style="color:white;"&gt;Add&lt;/span&gt;(&lt;span style="color:white;"&gt;mai&lt;/span&gt;);&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;iexcl;Y listos! Hemos terminado, ya podemos darle a F5 para ver nuestra obra de arte:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_5A6BDF1E.png"&gt;&lt;img height="192" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/etomas/image_5F00_thumb_5F00_155311E8.png" alt="image" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el siguiente post veremos como darle un poco de movimiento&amp;hellip; que si alguien se merce ser vista en pleno movimiento es Mai Shiranui :P :P&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209504" width="1" height="1"&gt;</description></item><item><title>Microsoft Virtual Academy</title><link>http://geeks.ms/blogs/amazzite/archive/2013/05/21/microsoft-virtual-academy.aspx</link><pubDate>Tue, 21 May 2013 11:57:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209390</guid><dc:creator>Alejandro Mazzitelli</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Mientras sigo de vacaciones, aquí te recomiendo que te sigas capacitándote y que mejor que hacerlo en forma gratuita. Entra al MVA (Microsoft Virtual Academy) y empezá con cualquiera de los cursos de tu gusto. Windows 8, Windows Server 2012 entre muchos mas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoftvirtualacademy.com/"&gt;http://www.microsoftvirtualacademy.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Saludos,    &lt;br /&gt;Hasta pronto.     &lt;br /&gt;Alejandro.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209390" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/amazzite/archive/tags/General/default.aspx">General</category><category domain="http://geeks.ms/blogs/amazzite/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://geeks.ms/blogs/amazzite/archive/tags/Microsoft+Virtual+Academy/default.aspx">Microsoft Virtual Academy</category></item><item><title>SharePoint 2013: Como cambiar el rango de compatibilidad a nivel de Aplicación Web!</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/21/sharepoint-2013-como-cambiar-el-rango-de-compatibilidad-a-nivel-de-aplicaci-243-n-web.aspx</link><pubDate>Tue, 21 May 2013 11:48:02 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209502</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Cómo sabéis, por defecto en SharePoint 2013 podemos crear colecciones de sitios de acuerdo a dos modos de experiencia de usuario: 2010 y 2013. Si queremos cambiar dicho comportamiento para que sólo se puedan crear colecciones de sitios de acuerdo a una experiencia, podemos hacer uso del modelo de objetos o de PowerShell.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Como-cambiar-el-rango-de_C087/image.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Como-cambiar-el-rango-de_C087/image_thumb.png" width="644" height="476" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Por ejemplo, para qué sólo esté disponible la experiencia 2013 a la hora de crear colecciones basta con ejecutar el siguiente script PowerShell:&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;/p&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$wa=Get-SPWebApplication http:&lt;span class="rem"&gt;//winsrv2012:90 &lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;$wa.CompatibilityRange = [Microsoft.SharePoint.SPCompatibilityRange]::NewVersion &lt;/pre&gt;

&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;$wa.Update() &lt;/pre&gt;

&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;$wa.CompatibilityRange &lt;/pre&gt;




&lt;p align="justify"&gt;
  &lt;br /&gt;La correspondiente salida por pantalla nos muestra que el rango de compatibilidad a nivel de aplicación web es únicamente 15. Previamente, teníamos un nivel mínimo de 14 y un máximo de 15. Como se puede deducir, el cambio viene dado por el valor qué se le especifique a la propiedad CompatibilityRange que puede tomar los siguientes valores:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div align="justify"&gt;NewVersion o modo 2013.&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;OldVersion o modo 2010.&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;AllVersions, o ambos modos (valor por defecto para cada aplicación web de SharePoint 2013).&lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Como-cambiar-el-rango-de_C087/image3.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Como-cambiar-el-rango-de_C087/image3_thumb.png" width="644" height="330" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si tratamos de crear una nueva colección de sitios en la aplicación web modificada veremos qué ya no podemos elegir dos valores de experiencia de usuario como sucedía inicialmente.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Como-cambiar-el-rango-de_C087/image_3.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Como-cambiar-el-rango-de_C087/image_thumb_3.png" width="244" height="218" /&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=209502" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2013/default.aspx">SharePoint 2013</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2013/default.aspx">SharePoint Foundation 2013</category></item><item><title>[Editado] Apuntes de Entity Framework (I) - Introducción</title><link>http://geeks.ms/blogs/lruiz/archive/2013/05/21/apuntes-de-entity-framework-i-introducci-243-n.aspx</link><pubDate>Tue, 21 May 2013 07:24:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209497</guid><dc:creator>Luis Ruiz Pavón</dc:creator><slash:comments>5</slash:comments><description>[A&amp;ntilde;ado al post las correcciones de Unai] Aprovechando que estoy estudiando un poco sobre Entity Framework para incorporarlo a mi actual proyecto, he decidido ir compartiendo los apuntes que voy tomando de diferentes fuentes. Cualquier correcci&amp;oacute;n, mejora o aportaci&amp;oacute;n ser&amp;aacute; muy bien recibida. Introducci&amp;oacute;n Desde la llegada de .NET Framework all&amp;aacute; por el 2002, muchos de nosotros hemos usado ADO.NET en nuestras aplicaciones para acceder a la base de datos. El problema...(&lt;a href="http://geeks.ms/blogs/lruiz/archive/2013/05/21/apuntes-de-entity-framework-i-introducci-243-n.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209497" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lruiz/archive/tags/Entity+Framework/default.aspx">Entity Framework</category></item><item><title>SharePoint 2013. ¿Cómo descargo SkyDrive Pro?</title><link>http://geeks.ms/blogs/adiazmartin/archive/2013/05/21/sharepoint-2013-191-c-243-mo-descargo-skydrive-pro.aspx</link><pubDate>Tue, 21 May 2013 06:54:12 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209495</guid><dc:creator>Alberto Diaz Martin</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hace unos días en &lt;a href="http://adejetec.com/" target="_blank"&gt;adejetec&lt;/a&gt;, un evento de tecnología en Tenerife, hablábamos sobre las nuevas y viejas características de Office 365. Entre todas, destacó &lt;a href="http://geeks.ms/blogs/adiazmartin/archive/2012/10/25/skydrive-pro-sincroniza-tus-bibliotecas-de-sharepoint.aspx"&gt;SkyDrive Pro&lt;/a&gt;, una vieja necesidad para SharePoint que en la última versión se ha hecho realidad.  
&lt;/p&gt;&lt;p&gt;La duda surgió cuando nos fuimos a SkyDrive en un SharePoint y no teníamos la opción de sincronizar, &lt;strong&gt;¿no debería de haber salido un asistente de instalación de SkyDrive Pro?&lt;/strong&gt; Pues al parecer no, SkyDrive Pro, de momento, hay que instalarlo antes de poder sincronizar desde SharePoint. 
&lt;/p&gt;&lt;p&gt;Nos ponemos a la búsqueda y no encontrábamos el cliente de SkyDrive Pro por ningún sitio en Microsoft.com, y lo dimos por perdido, conociendo que la instalación se realiza con el despliegue de Office 2013, pero &lt;strong&gt;¿qué pasa si mi suscripción de Office 365 no tiene la licencia de Office?&lt;/strong&gt;
	&lt;/p&gt;&lt;p&gt;Seguimos buscando en el portal de Office 365, en el software a descargar y tampoco, no aparece por ningún lado. Tuvimos que desistir, aunque parece que nos han escuchado. Ayer se publicó la instalación stand-alone del cliente de SkyDrive Pro, para aquellos que no tienen licencia de Office 2013 y quieren sincronizar SharePoint.
&lt;/p&gt;&lt;p&gt;Resumiendo, dos métodos para instalar SkyDrive Pro:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Instalando Office 2013 Professional
&lt;/li&gt;&lt;li&gt;Modo stand-alone en &lt;a href="http://www.microsoft.com/es-es/download/details.aspx?id=39050"&gt;http://www.microsoft.com/es-es/download/details.aspx?id=39050&lt;/a&gt;
		&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Saludos a todos…&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209495" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/adiazmartin/archive/tags/Office365/default.aspx">Office365</category><category domain="http://geeks.ms/blogs/adiazmartin/archive/tags/SkyDrive/default.aspx">SkyDrive</category><category domain="http://geeks.ms/blogs/adiazmartin/archive/tags/SharePoint+2013/default.aspx">SharePoint 2013</category></item><item><title>[ASPNETMVC] Atributos HTML con guiones medios… Método AnonymousObjectToHtmlAttributes (ejemplo databinding para KnockoutJS/AngularJs)</title><link>http://geeks.ms/blogs/fernandezja/archive/2013/05/20/aspnetmvc-atributos-html-con-guiones-medios-m-233-todo-anonymousobjecttohtmlattributes-ejemplo-databinding-para-knockoutjs-angularjs.aspx</link><pubDate>Mon, 20 May 2013 23:05:04 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209494</guid><dc:creator>José A. Fernández</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Armando un control personalizado necesitaba setear los valores de atributos HTML, lo de siempre class, rel, pero especialmente &lt;a href="http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes" target="_blank"&gt;atributos data&lt;/a&gt; por ejemplo los que son necesarios los binding de los frameworks javascript MVVM como &lt;a href="http://knockoutjs.com/" target="_blank"&gt;KnockoutJS&lt;/a&gt;, &lt;a href="http://angularjs.org/" target="_blank"&gt;AngularJS&lt;/a&gt;…     &lt;br /&gt;Estos atributos tienen esta forma: &lt;em&gt;data-bind, ng-mode, ng-click &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Si lo queremos insertar en un Textbox/TextboxFor en el parametro htmlAttibutes una propiedad con guion del medio en el nombre:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SNAGHTML165b12f9_5F00_01703C45.png"&gt;&lt;img title="SNAGHTML165b12f9" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="SNAGHTML165b12f9" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SNAGHTML165b12f9_5F00_thumb_5F00_5E5FCAD4.png" width="588" height="130" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;em&gt;NOTA: Aquí la @class esta para cuando en C# necesitamos utilizar una palabra reservada como nombre de propiedad de un &lt;/em&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/vstudio/bb397696.aspx" target="_blank"&gt;&lt;em&gt;objeto anónimo&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Bueno es conocido que debemos colocar con guiones bajos es decir data_bind y convertirá en un atributo data-bind&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Pero necesitaba realizarlo en un control personalizado… asi que en vez de “armar el código para realizar esto” investigue un poco como estaba armando el propio y simple textbox mirado el código fuente de NET Framework.&lt;/p&gt;  &lt;p&gt;Di con este método estático HtmlHelper.&lt;a href="http://msdn.microsoft.com/es-es/library/system.web.mvc.htmlhelper.anonymousobjecttohtmlattributes.aspx" target="_blank"&gt;&lt;strong&gt;AnonymousObjectToHtmlAttributes&lt;/strong&gt;&lt;/a&gt; (en System.Web.Mvc.HtmlHelper) dentro de&amp;#160; que en la ayuda nos explica todo… es el responsable de armar estos atributos&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SNAGHTML15b196e3_5F00_63CE3B78.png"&gt;&lt;img title="SNAGHTML15b196e3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="SNAGHTML15b196e3" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fernandezja/SNAGHTML15b196e3_5F00_thumb_5F00_366CA5A8.png" width="882" height="178" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“…Reemplaza los caracteres de subrayado (_) por guiones (-) en los atributos HTML especificados….”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;El código:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#008000;"&gt;//from System.Web.Mvc.HtmlHelper&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; RouteValueDictionary AnonymousObjectToHtmlAttributes(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; htmlAttributes)&lt;br /&gt;  {&lt;br /&gt;      RouteValueDictionary result = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; RouteValueDictionary();&lt;br /&gt; &lt;br /&gt;      &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (htmlAttributes != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (PropertyDescriptor property &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; TypeDescriptor.GetProperties(htmlAttributes))&lt;br /&gt;          {&lt;br /&gt;              result.Add(property.Name.Replace(&lt;span style="color:#006080;"&gt;&amp;#39;_&amp;#39;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;), property.GetValue(htmlAttributes));&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt; &lt;br /&gt;      &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; result;&lt;br /&gt;  }&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Entonces el código quedo algo así para armar la cadena de atributos a insertar en mi control personalizado &lt;em&gt;atributosCadenaHtml.ToString();&lt;/em&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;...&lt;br /&gt;var atributosFormateados = &lt;br /&gt;        HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);&lt;br /&gt; &lt;br /&gt;var atributosCadenaHtml = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var atributo &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; atributosFormateados)&lt;br /&gt;{&lt;br /&gt;    atributosCadenaHtml .AppendFormat(&lt;span style="color:#006080;"&gt;&amp;quot;{0}=\&amp;quot;{1}\&amp;quot;&amp;quot;&lt;/span&gt;, atributo.Key, atributo.Value);&lt;br /&gt;}&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Enlaces que pueden ayudar&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes" target="_blank"&gt;Embedding custom non-visible data with the data-* attributes&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.web.mvc.htmlhelper.anonymousobjecttohtmlattributes.aspx" target="_blank"&gt;HtmlHelper.AnonymousObjectToHtmlAttributes Método&lt;/a&gt; 

    &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:45aec457-e36c-4081-812f-b960c4367183" class="wlWriterSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt;Tags : &lt;a href="http://www.delicious.com/tag/aspnet" rel="tag"&gt;aspnet&lt;/a&gt;, &lt;a href="http://www.delicious.com/tag/aspnetmvc" rel="tag"&gt;aspnetmvc&lt;/a&gt;, &lt;a href="http://www.delicious.com/tag/asp.net%20mvc" rel="tag"&gt;asp.net mvc&lt;/a&gt;&lt;/div&gt;

&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209494" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/fernandezja/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>SharePoint 2013: ¿Cómo se licencian las Office Web Apps?</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/20/sharepoint-2013-191-c-243-mo-se-licencian-las-office-web-apps.aspx</link><pubDate>Mon, 20 May 2013 21:14:44 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209491</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Buena pregunta como diría alguno, y qué no tiene fácil respuesta dado lo complicado que resulta en muchas ocasiones entender el modelo de licenciamiento que Microsoft aplica a sus productos. En cualquier caso, gracias a &lt;a href="http://technet.microsoft.com/en-us/library/ff431682.aspx#license"&gt;este enlace de TechNet&lt;/a&gt; y sobre todo a Eva Ordoñe, voy a tratar de poner un poco de luz al asunto de como se licencian las Office Web Apps para SharePoint 2013. Básicamente tenemos dos modos de licenciamiento principales en función del uso de las Office Web Apps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Modo View Only, al comprar una licencia de SharePoint Server 2013 es posible desplegar una máquina con el rol Web o App Server con la característica de poder visualizar documentos Office en Web.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Modo Edit and View, es necesario desplegar una máquina con el rol de Office Web Apps Server:&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;div align="justify"&gt;Se descarga e instala Office Web Apps en el servidor.&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div align="justify"&gt;La licencia está englobada en la de SharePoint Server y se obtiene comprando la licencia de la suite de escritorio: Professional Plus, Standard o bien Office 365 ProPlus.&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div align="justify"&gt;Para dar permisos a los usuarios para usar la capacidad de edición, hay que asignar las licencias por medio de PowerShell. Por tanto, estamos haciendo uso de una de las novedades a nivel de licenciamiento que incorpora SharePoint 2013 como ya comenté en los siguientes artículos:&lt;/div&gt;          &lt;ul&gt;           &lt;li&gt;             &lt;div align="justify"&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2012/11/22/sharepoint-2013-cambios-en-el-modelo-de-licenciamiento-i.aspx"&gt;SharePoint 2013: Cambios en el modelo de licenciamiento (I)!&lt;/a&gt;&lt;/div&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;div align="justify"&gt;&lt;a href="http://geeks.ms/blogs/ciin/archive/2013/05/05/sharepoint-2013-cambios-en-el-modelo-de-licenciamiento-ii.aspx"&gt;SharePoint 2013: Cambios en el modelo de licenciamiento (II)!&lt;/a&gt;&lt;/div&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;¿Y para SharePoint Foundation? Pues igual qué en Server, el mecanismo de configuración de licencias mediante PowerShell está disponible.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209491" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2013/default.aspx">SharePoint 2013</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2013/default.aspx">SharePoint Foundation 2013</category></item><item><title>[#ALM] Alguna vez te has preguntado porqué utilizamos metodologías? (y de nuevo el Dolor es la solución)</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/20/alm-alguna-vez-te-has-preguntado-porqu-233-utilizamos-metodolog-237-as-y-de-nuevo-el-dolor-es-la-soluci-243-n.aspx</link><pubDate>Mon, 20 May 2013 19:50:18 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209490</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://brunocapuano.files.wordpress.com/2012/03/alm-03.png" target="_blank"&gt;&lt;font size="3"&gt;&lt;img title="ALM 03" style="margin:0px 0px 3px;display:inline;" alt="ALM 03" src="http://brunocapuano.files.wordpress.com/2012/03/alm-03_thumb.png" width="735" height="243" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Buenas,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;cuidado que no voy a entrar en si AGILE, SCRUM o la muerte del modelo Waterfall. Hoy voy a algo más básico:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;¿Porqué utilizamos metodologías durante el proceso de desarrollo de software?&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;¿Qué no te gusta la frase? pues a ver si esta te parece más adecuada&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;¿Porqué es recomendable aplicar buenas prácticas durante el proceso de desarrollo de software?&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;¿Sigue sin gustarte? me juego con la última&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;Te dedicas a hacer software y trabajas en modo Ninja, siguiendo solo tu instinto y reaccionando a los cambios a medida que surgen: Pues … ¡¡¡ morirás entre terribles sufrimientos !!!&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;Espero que después de esta introducción haya podido explicar el concepto: los llamemos metodologías, buenas prácticas o de alguna otra manera; todos seguimos una serie de normas cuando desarrollamos software. La pregunta inicial es porqué hacemos esto, y la respuesta es más que obvia&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;Para reducir el riesgo en nuestros proyectos&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;o si te gusta más&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;Para tener resultados más predictivos sobre los que trabajar&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;¿Parece simple no? Pues que sepas que han pasado más de 50 años desde que uno se dio cuenta de esto y lo formalizó. En primer lugar se crearon los procesos, que se encargaban de definir la forma en la que se debía trabajar. Lo bueno de los procesos es que eran 100% mesurables. Era muy fácil decir que como a esta tarea la hemos definido sobre estas bases, pues la misma debería tardar 6 meses. Si todas las personas respetaban esos procesos pues los resultados eran altamente predecibles.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Pero claro, las personas somos unos seres bastante impredecibles; y tanto desde el lado del cliente como del los programadores los cambios se sucedían constantemente. Es por esto, que un par de cracks se juntaron y crearon el &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/Manifiesto_%C3%A1gil" target="_blank"&gt;&lt;font size="3"&gt;manifiesto ágil&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;; personas sobre procesos, respuesta al cambio sobre el seguimiento, etc. Vamos que ya lo conoces …&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Y de nuevo, detrás de todo esto había un motivo más que simple: poder predecir los resultados y ser coherentes con lo que una persona o un equipo puede hacer. Así que ya sabes, si alguna vez te preguntas porqué un equipo trabaja con una serie de reglas, con una metodología, best practices o el nombre de moda, pues es probable que sea para mejorar el output del equipo y para ser más predecibles (entre otras cosas)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font size="3"&gt;&lt;strong&gt;Aclaración: &lt;/strong&gt;cuidado! que eso no quita que un equipo trabaje bajo unas premisas que no sirven absolutamente para nada, esos casos ya sabes la forma de arreglarlo: DOLOR !!!!&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Y para cerrar una de &lt;/font&gt;&lt;a href="http://www.dilbert.com" target="_blank"&gt;&lt;font size="3"&gt;Dilbert&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; de regalo&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_78DA0197.png"&gt;&lt;font size="3"&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:4px 10px;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_28B4A359.png" width="604" height="246" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Saludos @ Home&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;El Bruno&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" width="110" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="36"&gt;&lt;a href="http://facebook.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image2.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="http://es.linkedin.com/in/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image3.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="https://twitter.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image4.png" width="40" height="40" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209490" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/ALM/default.aspx">ALM</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Opinion/default.aspx">Opinion</category></item><item><title>SharePoint 2013: Como cambiar el idioma de un sitio (I)!</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/19/sharepoint-2013-como-cambiar-el-idioma-de-un-sitio-i.aspx</link><pubDate>Sun, 19 May 2013 21:03:32 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209489</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;En SharePoint 2013, como sucedía con su predecesor, podemos configurar un sitio para qué se pueda mostrar en diferentes idiomas. Sin embargo, hay una diferencia fundamental: mientras en SharePoint 2010 el usuario tenía la opción de cambiar el idioma, en SharePoint 2013 esto ya no es así y depende de la cultura del navegador para que el usuario vea el sitio en un idioma o en otro. En este artículo se expone claramente esta nueva forma de soportar varios idiomas en sitios de tipo Intranet en SharePoint 2013: &lt;a title="http://olafd.wordpress.com/2012/11/02/switch-language-in-sharepoint-2013/" href="http://olafd.wordpress.com/2012/11/02/switch-language-in-sharepoint-2013/"&gt;http://olafd.wordpress.com/2012/11/02/switch-language-in-sharepoint-2013/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209489" 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/SharePoint+2013/default.aspx">SharePoint 2013</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2013/default.aspx">SharePoint Foundation 2013</category></item><item><title>[#VS2012] Image Comment, un AddIn interesante para #VisualStudio2012</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/19/vs2012-image-comment-un-addin-interesante-para-visualstudio2012.aspx</link><pubDate>Sun, 19 May 2013 18:34:15 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209488</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://brunocapuano.files.wordpress.com/2012/06/image1.png"&gt;&lt;font size="3"&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://brunocapuano.files.wordpress.com/2012/06/image1.png" width="464" height="164" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Buenas,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;gracias al gran &lt;/font&gt;&lt;a href="https://twitter.com/MarinoPosadas" target="_blank"&gt;&lt;font size="3"&gt;Marino Posadas&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; (&lt;/font&gt;&lt;a href="https://twitter.com/MarinoPosadas" target="_blank"&gt;&lt;font size="3"&gt;@MarinoPosadas&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;) veo un addin para &lt;/font&gt;&lt;a href="http://www.microsoft.com/visualstudio/eng#downloads" target="_blank"&gt;&lt;font size="3"&gt;Visual Studio 2012&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; que tiene buena pinta: “&lt;strong&gt;&lt;em&gt;Image Comments&lt;/em&gt;&lt;/strong&gt;”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote lang="es" class="twitter-tweet"&gt;   &lt;p&gt;&lt;font size="3"&gt;ImageComments (a Visual Studio Extensión): &lt;/font&gt;&lt;a title="https://github.com/lukesdm/image-comments#imagecomments-a-visual-studio-extension" href="https://t.co/8xyOa8SgVI"&gt;&lt;font size="3"&gt;github.com/lukesdm/image-…&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;   &lt;font size="3"&gt;— Marino Posadas (@MarinoPosadas) &lt;/font&gt;&lt;a href="https://twitter.com/MarinoPosadas/status/336148861733187585"&gt;&lt;font size="3"&gt;19 de mayo de 2013&lt;/font&gt;&lt;/a&gt;&lt;/blockquote&gt;   &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;AddIn es simple, aprovechar la potencia de WPF en el editor de código para poder insertar imágenes en el mismo. Para esto se sirve de una sintaxis específica en los comentarios, por ejemplo:&lt;/font&gt;&lt;/p&gt;  &lt;pre&gt;&lt;font size="3" face="Calibri"&gt;/// &amp;lt;summary&amp;gt;
/// &amp;lt;image url=&amp;quot;c:\rome.png&amp;quot; /&amp;gt;
///…&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3"&gt;Los puristas seguro que se arrancan los pelos de la cabeza, no solo estoy promoviendo poner comentarios, sino que además … estoy poniendo imágenes !!! Muerte al hereje !!! Pero les puedo asegurar que en algunos casos, un comentario ayuda mucho, y ni hablar una imagen. Los ejemplos del site son relacionados con fórmulas matemáticas, yo he aprovechado para completar un cliente “no oficial” de Lync en el que estamos trabajando, que tiene que además … bueno hacer algo con &lt;/font&gt;&lt;a href="https://www.skype.com" target="_blank"&gt;&lt;font size="3"&gt;Skype&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; sobre lo que no puedo hablar mucho. &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Eso sí, en el código queda muy llamativo el ejemplo …&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_27EB192D.png"&gt;&lt;font size="3"&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:4px 10px;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_0970B277.png" width="442" height="622" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Ahora bien, si has prestado atención al código, verás que el path de las imágenes es absoluto. Esto es una feature que está en progreso, ya que los paths relativos se toman a partir del path de ejecución del AppDomain del IDE de Visual Studio. Si el AddIn soportara la siguiente sintaxis ya sería un #musthave&lt;/font&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;image url=&amp;quot;.\samplecall.png&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; VideoChannel videoChannel;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;font size="3"&gt;Y yo como soy un pesado, pues lo he pedido : &lt;/font&gt;&lt;a title="https://github.com/lukesdm/image-comments/issues/10" href="https://github.com/lukesdm/image-comments/issues/10"&gt;&lt;font size="3"&gt;https://github.com/lukesdm/image-comments/issues/10&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;HomePage: &lt;/font&gt;&lt;a title="https://github.com/lukesdm/image-comments#imagecomments-a-visual-studio-extension" href="https://github.com/lukesdm/image-comments#imagecomments-a-visual-studio-extension"&gt;&lt;font size="3"&gt;https://github.com/lukesdm/image-comments#imagecomments-a-visual-studio-extension&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Además de pedir que publique el AddIn en la Visual Studio Gallery: &lt;/font&gt;&lt;a title="https://github.com/lukesdm/image-comments/issues/11" href="https://github.com/lukesdm/image-comments/issues/11"&gt;&lt;font size="3"&gt;https://github.com/lukesdm/image-comments/issues/11&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Saludos @ Home&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;El Bruno&lt;/font&gt;&lt;/p&gt;

&lt;table cellspacing="0" width="110" border="0"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="36"&gt;&lt;a href="http://facebook.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image2.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;

      &lt;td valign="top" width="36"&gt;&lt;a href="http://es.linkedin.com/in/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image3.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;

      &lt;td valign="top" width="36"&gt;&lt;a href="https://twitter.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image4.png" width="40" height="40" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209488" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/VisualStudioGallery/default.aspx">VisualStudioGallery</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category></item><item><title>[#ALM] ALM para Microsoft Dynamics CRM</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/18/alm-alm-para-microsoft-dynamics-crm.aspx</link><pubDate>Sat, 18 May 2013 18:42:14 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209487</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://brunocapuano.files.wordpress.com/2012/03/alm-03.png" target="_blank"&gt;&lt;font size="3"&gt;&lt;img title="ALM 03" style="margin:0px 0px 3px;display:inline;" alt="ALM 03" src="http://brunocapuano.files.wordpress.com/2012/03/alm-03_thumb.png" width="735" height="243" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Buenas,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;los amigos de la edición avanzada de Outlook, es decir Microsoft CRM estarán más que contentos, ahora ya tienen un punto de partida para gestionar el ciclo de vida cuando se desarrollen aplicaciones para esta plataforma. Se ha liberado un whitepaper que describe como trabajar con los proyectos de CRM dentro de Visual Studio y como colaborar con los mismos utilizando Team Foundation Server.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Si bien el inicio de este post puede tener un tono de ironía, he de reconocer que MS CRM es un producto muy bueno. Olvidándonos del CRM propiamente dicho, la plataforma XRM provee una base robusta y completa para desarrollar aplicaciones sobre la misma. En días como los actuales, donde el TTM de las aplicaciones es fundamental, contar con una plataforma que nos de un quick start muy rápido es fundamental, y CRM lo hace.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Espero durante los siguientes días, poder contactar con la gente de CRM de &lt;/font&gt;&lt;a href="http://www.avanade.com" target="_blank"&gt;&lt;font size="3"&gt;Avanade&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; para que me den su opinión al respecto. ;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Fuente: &lt;/font&gt;&lt;a title="http://blogs.msdn.com/b/aymerics_blog/archive/2013/05/17/new-microsoft-release-alm-for-microsoft-dynamics-crm-2011-crm-solution-lifecycle-management.aspx?utm_source=feedly" href="http://blogs.msdn.com/b/aymerics_blog/archive/2013/05/17/new-microsoft-release-alm-for-microsoft-dynamics-crm-2011-crm-solution-lifecycle-management.aspx?utm_source=feedly"&gt;&lt;font size="3"&gt;http://blogs.msdn.com/b/aymerics_blog/archive/2013/05/17/new-microsoft-release-alm-for-microsoft-dynamics-crm-2011-crm-solution-lifecycle-management.aspx?utm_source=feedly&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Saludos @ Home&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;El Bruno&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" width="110" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="36"&gt;&lt;a href="http://facebook.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image2.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="http://es.linkedin.com/in/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image3.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="https://twitter.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image4.png" width="40" height="40" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209487" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/ALM/default.aspx">ALM</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Team+Foundation+Server+2012/default.aspx">Team Foundation Server 2012</category></item><item><title>SharePoint 2013: Procedimiento para instalar actualizaciones de Windows Azure Workflow!</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/18/sharepoint-2013-procedimiento-para-instalar-actualizaciones-de-windows-azure-workflow.aspx</link><pubDate>Sat, 18 May 2013 09:03:51 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209486</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Si estás haciendo uso de la nueva infraestructura de flujos de trabajo de SharePoint 2013 disponible a través del Windows Azure Workflow y quieres aplicar algunas de las actualizaciones liberadas por Microsoft, es importante que revises el procedimiento qué Microsoft ha habilitado al respecto. Este procedimiento está detallado en el siguiente enlace: &lt;a title="http://technet.microsoft.com/en-us/library/dn133867" href="http://technet.microsoft.com/en-us/library/dn133867"&gt;http://technet.microsoft.com/en-us/library/dn133867&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209486" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2013/default.aspx">SharePoint 2013</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2013/default.aspx">SharePoint Foundation 2013</category></item><item><title>[Tips] Exportar String a PDF en ASP.NET con iTextSharp</title><link>http://geeks.ms/blogs/gperez/archive/2013/05/18/tips-exportar-string-a-pdf-en-asp-net-con-itextsharp.aspx</link><pubDate>Sat, 18 May 2013 02:23:31 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209485</guid><dc:creator>Gonzalo Perez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Una de las consultas recurrentes que recibo es sobre como crear pdf en ASP.NET, para esto hay varias respuestas, esta vez voy a mostrar una bastante sencilla de la mano de iTextSharp, que es una biblioteca gratis con muy buenas opciones para la generación pdf a partir de un string que almacena un HTML.&lt;/p&gt;  &lt;p&gt;Lo primero que vamos a hacer es , mediante Nuget, obtener la biblioteca:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_41115D9B.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_0C24585E.png" width="535" height="258" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez instalado, vamos a agregar (esto es opcional) una carpeta en donde estén nuestras plantillas para imprimir nuestro informe:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_21525E06.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_31EA58F4.png" width="244" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Este archivo test.html no es nada más que un archivo HTML en donde agregué el siguiente código:&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;!&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;DOCTYPE&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#ff0000"&gt;html&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;html&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;head&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;meta&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#ff0000"&gt;http-equiv&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Content-Type&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#ff0000"&gt;content&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;=&amp;quot;text/html; charset=utf-8&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;title&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;title&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;head&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;body&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;Nombre:[nombre]&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;Apellido:[apellido]&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;Edad:[edad]&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;body&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#800000"&gt;html&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Como puedes ver es bastante simple, y tambien verás que tengo [campos] que son los que vamos a remplazar con los datos que se van a agregar desde la siguiente Pagina aspx:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_16D189E6.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_55C30A81.png" width="223" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ahora en el botón agregamos:&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;Protected&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; Button1_Click(sender &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;Object&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;, e &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;) &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;Handles&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt; Button1.Click&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; document = &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;New&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;Document&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;(&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;PageSize&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;.A4, 50, 50, 25, 25)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; output = &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;New&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;MemoryStream&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;()&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; writer = &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;PdfWriter&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;.GetInstance(document, output)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; document.Open()&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; contents &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; = &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;File&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;.ReadAllText(Server.MapPath(&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#a31515"&gt;&amp;quot;/HTMLTemplate/Test.html&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;))&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; contents = contents.Replace(&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#a31515"&gt;&amp;quot;[nombre]&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;, tx_nombre.Text)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; contents = contents.Replace(&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#a31515"&gt;&amp;quot;[apellido]&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;, tx_apellido.Text)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; contents = contents.Replace(&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#a31515"&gt;&amp;quot;[edad]&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;, tx_edad.Text)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; parsedHtmlElements = &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;HTMLWorker&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;.ParseToList(&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;New&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;StringReader&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (contents), &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;Nothing&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; For&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;Each&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; var &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;IElement&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;In&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt; parsedHtmlElements&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;document.Add(&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;TryCast&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;(var, &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#2b91af"&gt;IElement&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;))&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Next&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160; document.Close()&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160; Response.ContentType = &lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#a31515"&gt;&amp;quot;application/pdf&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;font face="Consolas"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160; Response.AddHeader(&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#a31515"&gt;&amp;quot;Content-Disposition&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;, &lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font color="#a31515"&gt;&amp;quot;attachment;filename=test.pdf&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160; Response.BinaryWrite(output.ToArray())&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;line-height:normal;mso-layout-grid-align:none;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;mso-highlight:white;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 8pt;line-height:12pt;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;line-height:10pt;mso-highlight:white;"&gt;&lt;font color="#0000ff"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;line-height:10pt;mso-highlight:white;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;line-height:10pt;mso-highlight:white;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 8pt;line-height:12pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;line-height:10pt;mso-highlight:white;"&gt;Como puedes ver, estamos creando el documento con las dimensiones especificadas en el contructor, luego leemos el contenido del archivo html para finalmente reemplazar el contenido del los campos con [corchetes]. Finalmente escribimos el pdf.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 8pt;line-height:12pt;"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_0609DF38.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_792F8919.png" width="512" height="298" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 8pt;line-height:12pt;"&gt;&lt;span style="background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0% 0%;line-height:10pt;mso-highlight:white;"&gt;Abrimos y listo!, PDF creado:&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin:0cm 0cm 8pt;line-height:12pt;"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_4F6C0E26.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gperez/image_5F00_thumb_5F00_7FB2E2DC.png" width="363" height="261" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Obviamente esto es una simplificación al máximo de lo que se puede realizar , te recomiendo que visites la página del proyecto para muchas más opciones:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://sourceforge.net/projects/itextsharp/" href="http://sourceforge.net/projects/itextsharp/"&gt;http://sourceforge.net/projects/itextsharp/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Saludos!.,   &lt;br /&gt;@chalalo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209485" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/gperez/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>[#ALM] Sobre #House, la navaja de Occam y como al final todos la cagamos</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/17/alm-sobre-house-la-navaja-de-occam-y-como-al-final-todos-la-cagamos.aspx</link><pubDate>Fri, 17 May 2013 18:05:50 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209484</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://brunocapuano.files.wordpress.com/2012/03/alm-03.png" target="_blank"&gt;&lt;font size="3"&gt;&lt;img title="ALM 03" style="margin:0px 0px 3px;display:inline;" alt="ALM 03" src="http://brunocapuano.files.wordpress.com/2012/03/alm-03_thumb.png" width="735" height="243" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Buenas.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;El post de hoy empieza con una afirmación: &lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;HOUSE&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt; es un crack&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;Alguno me podrá refutar que todos los capítulos son iguales, algo así:&lt;/font&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font size="3"&gt;Paciente X tiene enfermedad desconocida&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;Se lo dan a &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; que no lo quiere ver y lo acepta de mala gana&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;Paciente X crea un vínculo con uno de los asistentes de &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; se salta las normas para ver que tipo de enfermedad tiene el paciente&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;El equipo la caga, casi se cargan al paciente&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;A &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; le cae una buena de sus jefes&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;En un momento de inspiración, &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; da con la enfermedad&lt;/font&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;font size="3"&gt;… y siempre, o casi siempre, por el camino se descarta el Lupus o alguna enfermedad autoinmune.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Con este resumen te he ahorrado ver las 8 temporadas de &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;. Sin embargo lo mejor que tiene &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;, es que a lo largo de toda la serie, el protagonista tiene una mala leche / hostia que tiene hace que suelte unas frases que son sabiduría pura. Un excelente ejemplo y de las que más me gusta es:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;Las mujeres nunca se equivocan, incluso cuando se equivocan, llega un momento dela discusión en la que sorprendentemente vuelven a tener razón.&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;Pues eso, el 3er capítulo de la primera temporada se titula “&lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/Occam%27s_razor" target="_blank"&gt;&lt;font size="3"&gt;Occam’s Razor&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;”, que traducido al spanglish es algo así como la &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/Navaja_de_Occam" target="_blank"&gt;&lt;font size="3"&gt;navaja de Ockham&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;. La navaja de Ockham es un principio de hace una pila de años (del siglo XIV) que dice algo similar a esto:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;En igualdad de condiciones, la explicación más sencilla suele ser la correcta.&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;Esto es sabiduría pura, y sentido común al cuadrado. Cuando trabajas en informática y te enfrentas a problemas diariamente, te terminas dando cuenta de que esta es una verdad para enmarcar. Pero claro, como en toda verdad para enmarcar, hay que tener en cuenta el contexto de cada afirmación. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Hoy estoy muy grafico, así que veamos un ejemplo más claro:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/elbruno/image_5F00_4C974D8E.png"&gt;&lt;font size="3"&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:4px 10px;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_1408DB1C.png" width="666" height="230" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;¿Queda claro no?, espero que sí, las afirmaciones más simples tampoco suelen ser las correctas.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Y ahora si, ya podemos volver a &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;. En el capítulo que inspira este post, &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/House_%28serie%29" target="_blank"&gt;&lt;font size="3"&gt;House&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; da una vuelta más a la frase de Ockham, reformulando algo así como:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;La explicación más sencilla es que casi siempre alguien metió la pata&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;Esto también es 100% aplicable al día a día de nuestro trabajo en informática. Muchas veces nos podemos a buscar problemas de redes, problemas de despliegues, actualizaciones, etc.; cuando lo 1ro que deberíamos hacer es hablar con la gente para ver que o quien ha tocado algo. Es increíble como una pequeña sesión de 5 minutos con las personas afectadas por un problema puede ayudar más que horas y horas de prueba y error frente a un problema.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Y para cerrar, el consejo de siempre: &lt;strong&gt;&lt;em&gt;fomenta una cultura de comunicación en tu equipo de trabajo, esto es fundamental para el correcto funcionamiento del mismo.&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Saludos @ Home&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;El Bruno&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" width="110" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="36"&gt;&lt;a href="http://facebook.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image2.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="http://es.linkedin.com/in/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image3.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="https://twitter.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image4.png" width="40" height="40" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209484" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/ALM/default.aspx">ALM</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Opinion/default.aspx">Opinion</category></item><item><title>SharePoint 2013: ¿Se puede usar NAPA en OnPremise?</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/17/sharepoint-2013-191-se-puede-usar-napa-en-onpremise.aspx</link><pubDate>Fri, 17 May 2013 12:37:26 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209482</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Un post muy rápido en esta ocasión…respuesta también rápida: No. Para demostrarlo:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Creamos un sitio o una colección de sitios con la plantilla Sito de desarrollador en SharePoint 2013 On-Premise.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Accedemos a la tienda de SharePoint (u Office Store) e intentamos agregar NAPA. Comprobaremos que no es posible agregar la aplicación.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div align="center"&gt;   &lt;table cellspacing="0" cellpadding="2" width="640" align="center" border="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="349"&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Se-puede-usar-NAPA-en-On_12044/image.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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Se-puede-usar-NAPA-en-On_12044/image_thumb.png" width="244" height="174" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="289"&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Se-puede-usar-NAPA-en-On_12044/image_3.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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Se-puede-usar-NAPA-en-On_12044/image_thumb_3.png" width="244" height="212" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209482" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2013/default.aspx">SharePoint 2013</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2013/default.aspx">SharePoint Foundation 2013</category></item><item><title>El mensaje de error al intentar predeterminar un programa sobre los archivos en Windows 8, Process Monitor y su solución</title><link>http://geeks.ms/blogs/checho/archive/2013/05/17/el-mensaje-de-error-al-intentar-predeterminar-un-programa-sobre-los-archivos-en-windows-8-process-monitor-y-su-soluci-243-n.aspx</link><pubDate>Thu, 16 May 2013 22:05:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209480</guid><dc:creator>Checho</dc:creator><slash:comments>2</slash:comments><description>&lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/shutterstock_5F00_82751101_5F00_6E4CAFF4_5F00_179F3C6A.jpg"&gt;&lt;img title="shutterstock_82751101_6E4CAFF4" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="shutterstock_82751101_6E4CAFF4" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/shutterstock_5F00_82751101_5F00_6E4CAFF4_5F00_thumb_5F00_427A312D.jpg" width="159" height="120" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Uno de los cambios más sutiles, pero de gran trascendencia en Windows 8, es la asociación neutral que ahora tienen los archivos; es decir, la mayoría no tiene una predeterminada como sucedía en todas las versiones anteriores. Esto ayuda a que no se den fallos en asociación errónea de los archivos (Problema muy común en Windows 7), y que el usuario la pueda asignar fácilmente cada que abra por primera vez los diferentes tipos de archivos. &lt;/p&gt;  &lt;p align="justify"&gt;La forma en que se asocian los diferentes programas a las extensiones no ha cambiado, y aunque hay incluso otras maneras de hacerlo en Windows 8 (Utilizando PowerShell, por ejemplo), las más comunes suelen ser: Ir a las propiedades del archivo haciendo clic derecho, Propiedades, y haciendo clic en el botón &lt;strong&gt;Cambiar&lt;/strong&gt;, o bien haciendo clic derecho sobre el archivo, seleccionar &lt;strong&gt;Abrir con&lt;/strong&gt; y darle a&amp;#160; “&lt;strong&gt;Seleccionar programa predeterminado&lt;/strong&gt;” si los que están en la lista no nos sirven. En últimas, todas las formas resultan creando la subclave de &lt;strong&gt;UserChoice&lt;/strong&gt; en el registro y el respectivo valor de ProgId para referenciar la aplicación.&lt;/p&gt;  &lt;h3 align="justify"&gt;El problema&lt;/h3&gt;  &lt;p align="justify"&gt;En este caso, que surgió desde &lt;a href="http://answers.microsoft.com/es-es/windows/forum/windows_8-desktop/incidencia-en-la-opcion-abrir/6749f728-bd66-41c1-be92-87dc463936e1" target="_blank"&gt;un hilo abierto&lt;/a&gt; en los &lt;a href="http://answers.microsoft.com/es-es/windows" target="_blank"&gt;Foros de Windows de Microsoft Community&lt;/a&gt;,&amp;#160; lo que sucedía es que el usuario estaba intentando realizar cambios en el Programa Predeterminado de diferentes archivos, pero al hacer clic derecho, Abrir con, y Escoger programa predeterminado, estaba obteniendo un extraño mensaje de error similar al siguiente:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_249BAD2C.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_7F9DECB2.png" width="532" height="145" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5 align="justify"&gt;Inglés:&lt;/h5&gt;  &lt;p align="justify"&gt;“This fiel does not have a program associated with it for performing this action. Please install a program or, if one is already installed, create an association in the Default Programas control panel.”&lt;/p&gt;  &lt;h5 align="justify"&gt;Español:&lt;/h5&gt;  &lt;p align="justify"&gt;“Este archivo no tiene ningun programa asociado para ejecutar esta acción. Por favor instale el programa o si lo tiene cree una asociación en el panel de control de Programas Predeterminados.”&lt;/p&gt;  &lt;p align="justify"&gt;No importaba con qué tipo de archivo intentara hacer el cambio, siempre obtenía el mismo mensaje de error, que sólo permitía aceptar para cerrar.&lt;/p&gt;  &lt;h3 align="justify"&gt;La causa&lt;/h3&gt;  &lt;p align="justify"&gt;Como diferentes alternativas, que iban entre crear un nuevo usuario, hasta probar diferentes modos de abrir el archivo no funcionaban, había que recurrir a la herramienta por excelencia, es decir: &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx" target="_blank"&gt;Process Monitor&lt;/a&gt; de &lt;strong&gt;Sysinternals&lt;/strong&gt; nuevamente. &lt;/p&gt;  &lt;p align="justify"&gt;Como el problema le sucedía en cualquier usuario, se podía concluir que era un evento que afectaba a toda la máquina, y no estaba asociado a una cuenta, por lo que todo lo relacionado a &lt;strong&gt;HKEY_CURRENT_USER (HKCU)&lt;/strong&gt; se podía obviar, y además se manejaba desde el proceso de &lt;strong&gt;Explorer.exe&lt;/strong&gt;, pues no estaba ligado tampoco a una extensión. Esto permitía hacer un filtro más preciso dentro de la traza de Process Monitor, pero para saber con ciencia cierta dónde podía estar el problema, era necesario comparar el comportamiento con un equipo funcional. &lt;/p&gt;  &lt;p align="justify"&gt;Suele ser una gran técnica, pues basta básicamente con correr Process Monitor en el equipo para reproducir el problema, y en un equipo que se pueda abrir la ventana que lanza la opción de Escoger un programa predeterminado y comparar línea por línea. Claro está, existen herramientas muy buenas para esto, como &lt;a href="http://sourceforge.net/projects/kdiff3/files/" target="_blank"&gt;Kdiff3&lt;/a&gt; pero igual requiere tiempo para analizar los resultados en ambos lados. &lt;/p&gt;  &lt;p align="justify"&gt;Después de un buen par de horas, finalmente encontré algo muy interesante dentro de la Traza que me envió el usuario con el inconveniente:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/Proc1_5F00_7644B82F.png"&gt;&lt;img title="Proc1" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="Proc1" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/Proc1_5F00_thumb_5F00_384B2771.png" width="538" height="91" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Como ven, el proceso de &lt;strong&gt;Explorer.exe,&lt;/strong&gt; utilizando la operación de &lt;strong&gt;RegOpenKey,&lt;/strong&gt; que hace parte de la API de Win32 para abrir claves de Registro, intentaba abrir la clave de &lt;strong&gt;OpenWithSetDefaultOn&lt;/strong&gt;, ubicada en: &lt;strong&gt;HKEY_CLASSES_ROOT\Unknown\shell\Open, &lt;/strong&gt;pero obtenía el resultado de &lt;strong&gt;NAME NOT FOUND&lt;/strong&gt;; es decir, la clave no existía. &lt;/p&gt;  &lt;p align="justify"&gt;Esta operación era la importante, porque al momento de compararla con un equipo funcional, el resultado era completamente diferente:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/F2_5F00_2EF1F2EE.png"&gt;&lt;img title="F2" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="F2" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/F2_5F00_thumb_5F00_09F43275.png" width="540" height="93" /&gt;&lt;/a&gt;&lt;/p&gt;          &lt;p align="justify"&gt;La operación no solo era exitosa (&lt;strong&gt;SUCCESS&lt;/strong&gt;), sino que además hacía consultas sobre ella (RegQueryKey), mientras que en la de arriba, la cerraba al no encontrarla. Además de todo esto, &lt;strong&gt;HKEY_CLASSES_ROOT&lt;/strong&gt; se encarga de administrar todas las asociaciones que Windows requiere y utiliza, o las que no están en su equivalente de &lt;strong&gt;HKEY_CURRENT_USER. &lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Efectivamente, cuando en mi máquina funcional eliminé la clave de &lt;u&gt;OpenWithSetDefaultOn&lt;/u&gt;, pude reproducir exactamente el mismo mensaje de error, realizando la misma operación.&lt;/p&gt;  &lt;h3 align="justify"&gt;La solución&lt;/h3&gt;  &lt;p align="justify"&gt;Afortunadamente, la solución para este tipo de problemas con asociaciones, como en casi todos los problemas que el registro está involucrado, pasan por restablecer la clave, importándola desde un equipo funcional, y de preferencia, en limpio (Esto evita que la clave o valores ya se hayan modificado, y varíen de los predeterminados).&lt;/p&gt;  &lt;p align="justify"&gt;Para este caso en cuestión, si es que alguna vez llegan aquí porque lo están enfrentando, el procedimiento sería así:&lt;/p&gt;  &lt;p align="justify"&gt;Descargar el archivo &lt;strong&gt;Unknown&lt;/strong&gt; desde aquí:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;iframe height="120" src="https://skydrive.live.com/embed?cid=69FBD8240F3B536E&amp;amp;resid=69FBD8240F3B536E%21882&amp;amp;authkey=ALML1xXOgrA4778" frameborder="0" width="98" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Descomprimir y ejecutar el archivo Unknown.reg que des comprime. Se deben asegurar que el mensaje de importación correcta aparezca después de la ventana de advertencia por importar claves de registro:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_797BC179.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_5B9D3D78.png" width="539" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Una vez hecho esto, deberían poder acceder sin problemas a la selección de programas predeterminados desde el clic derecho como siempre:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_725F15B2.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/checho/image_5F00_thumb_5F00_1F740281.png" width="312" height="259" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Espero sea de utilidad.&lt;/p&gt;  &lt;p align="justify"&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=209480" 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+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/Windows+8/default.aspx">Windows 8</category><category domain="http://geeks.ms/blogs/checho/archive/tags/KDiff3/default.aspx">KDiff3</category></item><item><title>SharePoint 2013: Cómo recuperar y cambiar la frase de contraseña!</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/16/sharepoint-2013-c-243-mo-recuperar-y-cambiar-la-frase-de-contrase-241-a.aspx</link><pubDate>Thu, 16 May 2013 20:49:07 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209479</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Como sabéis, desde SharePoint 2010 disponemos de la frase de contraseña como mecanismo para agregar o eliminar servidores en una granja en la que tengamos desplegado nuestro servidor favorito. La frase de contraseña se especifica inicialmente durante el proceso de instalación de SharePoint 2010 y 2013, por lo que en caso de olvido posteriormente es posible cambiar su valor. Para ello:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Abrimos la consola de administración de SharePoint 2013.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Ejecutamos en la misma el siguiente Script PowerShell (la primera línea del mismo no es necesaria puesto que ya tenemos precargados los comandos de PowerShell específicos de SharePoint 2013 en la consola).&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;Add&lt;/span&gt;-PSSnapin Microsoft.SharePoint.PowerShell&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;Get&lt;/span&gt;-Help &lt;span class="kwrd"&gt;Set&lt;/span&gt;-SPPassPhrase -Detailed&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;$passphrase = ConvertTo-SecureString -String &amp;quot;SharePoint2013PassPhrase&amp;quot; -asPlainText -Force&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt;-SPPassPhrase -PassPhrase $passphrase -Confirm&lt;/pre&gt;
&lt;/div&gt;


&lt;ul&gt;
  &lt;li&gt;Lo primero que hacemos es obtener información detallada relativa a Set-SPPassPhrase. &lt;/li&gt;

  &lt;li&gt;A continuación, generamos la nueva frase de contraseña de forma segura especificando el valor de la misma como texto plano. &lt;/li&gt;

  &lt;li&gt;Finalmente, con el cmdlet Set-SPPassPhrase fijamos la frase de contraseña de la granja con el nuevo valor. Al ejecutar este comando, se nos pedirá confirmar el valor de la frase de contraseña. &lt;/li&gt;
&lt;/ul&gt;

&lt;div align="center"&gt;
  &lt;table cellspacing="0" cellpadding="2" width="636" align="center" border="0"&gt;&lt;tbody&gt;
      &lt;tr&gt;
        &lt;td valign="top" width="340"&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Cmo-recuperar-y-cambiar-_94D6/image.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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Cmo-recuperar-y-cambiar-_94D6/image_thumb.png" width="164" height="244" /&gt;&lt;/a&gt;&lt;/td&gt;

        &lt;td valign="top" width="294"&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Cmo-recuperar-y-cambiar-_94D6/image_3.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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Cmo-recuperar-y-cambiar-_94D6/image_thumb_3.png" width="244" height="114" /&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;Referencias:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a title="http://hossambehery.blogspot.com.es/2010/07/retrieve-passphrase-in-sharepoint-2010.html" href="http://hossambehery.blogspot.com.es/2010/07/retrieve-passphrase-in-sharepoint-2010.html"&gt;http://hossambehery.blogspot.com.es/2010/07/retrieve-passphrase-in-sharepoint-2010.html&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a title="http://blogs.technet.com/b/nathbr/archive/2010/08/11/forget-your-sharepoint-passphrase-no-problem.aspx" href="http://blogs.technet.com/b/nathbr/archive/2010/08/11/forget-your-sharepoint-passphrase-no-problem.aspx"&gt;http://blogs.technet.com/b/nathbr/archive/2010/08/11/forget-your-sharepoint-passphrase-no-problem.aspx&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=209479" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2013/default.aspx">SharePoint 2013</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2013/default.aspx">SharePoint Foundation 2013</category></item><item><title>[#VS2012] NuGet en C++ (de lo mejorcito del 2013 che)</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/16/vs2012-nuget-en-c-de-lo-mejorcito-del-2013-che.aspx</link><pubDate>Thu, 16 May 2013 18:07:39 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209478</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://brunocapuano.files.wordpress.com/2012/06/image1.png"&gt;&lt;font size="3"&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://brunocapuano.files.wordpress.com/2012/06/image1.png" width="464" height="164" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Buenas,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;el que diga que la vida no da vueltas como la &lt;/font&gt;&lt;a href="http://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci" target="_blank"&gt;&lt;font size="3"&gt;sucesión de Fibonacci&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;, es que nunca se ha saltado un semáforo en rojo y luego ha huido de la policía en una persecución de cine. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Yo por ejemplo, unos años después de haberlo dejado, me veo volviendo a C++ de una forma más que agresiva. (&lt;strong&gt;&lt;em&gt;Agresiva:&lt;/em&gt;&lt;/strong&gt; es la única forma de crear aplicaciones bien hechas para plataformas como &lt;/font&gt;&lt;a href="http://www.arduino.com" target="_blank"&gt;&lt;font size="3"&gt;Arduino&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;.)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Ahora bien, cuando el output de tu aplicación es un programa de solo 8K de tamaño, tenes que tener en cuenta muchas cosas para hacer bien las cosas. Y en ese momento entra en juego el contar con buenas herramientas. En el caso de &lt;/font&gt;&lt;a href="http://www.arduino.com" target="_blank"&gt;&lt;font size="3"&gt;arduino&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;, el editor de C++ que viene de fábrica es &lt;strike&gt;una mierda&lt;/strike&gt; un poco pobre de capacidades. Lo bueno es que con ganas es posible utilizar &lt;/font&gt;&lt;a href="http://www.microsoft.com/visualstudio/eng#downloads" target="_blank"&gt;&lt;font size="3"&gt;Visual Studio 2012&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; para tirar líneas en C++. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Y, cuando me pongo a ver el IDE y lo que es posible e imposible en el mundo de C++, me encuentro con que … &lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;En C++ tenemos soporte para &lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;a href="http://nuget.codeplex.com/" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;NuGet&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt; !!!&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;Eso sí, solo con la versión 2.5 o superior, es posible actualizar la versión desde &lt;/font&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c" target="_blank"&gt;&lt;font size="3"&gt;aquí&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Y claro, en un mundo donde cada sensor posee su propia biblioteca (o .h), donde cada escenario es similar al anterior; &lt;/font&gt;&lt;a href="http://nuget.codeplex.com/" target="_blank"&gt;&lt;font size="3"&gt;NuGet&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; es imprescindible.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Fuente: &lt;/font&gt;&lt;a title="http://blogs.msdn.com/b/vcblog/archive/2013/04/26/nuget-for-c.aspx" href="http://blogs.msdn.com/b/vcblog/archive/2013/04/26/nuget-for-c.aspx"&gt;&lt;font size="3"&gt;http://blogs.msdn.com/b/vcblog/archive/2013/04/26/nuget-for-c.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Download: &lt;/font&gt;&lt;a href="http://nuget.codeplex.com/" target="_blank"&gt;&lt;font size="3"&gt;NuGet&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; Package Manager, &lt;/font&gt;&lt;a title="http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c" href="http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c"&gt;&lt;font size="3"&gt;http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Saludos @ Home&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;El Bruno&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" width="110" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="36"&gt;&lt;a href="http://facebook.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image2.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="http://es.linkedin.com/in/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image3.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="https://twitter.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image4.png" width="40" height="40" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209478" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/VisualStudioGallery/default.aspx">VisualStudioGallery</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/NuGet/default.aspx">NuGet</category><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category></item><item><title>Cómo hacer uso del tenant de WAAD de Office 365 junto con ACS</title><link>http://geeks.ms/blogs/ilanda/archive/2013/05/16/c-243-mo-hacer-uso-del-tenant-de-waad-de-office-365-junto-con-acs.aspx</link><pubDate>Thu, 16 May 2013 13:48:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209370</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>0</slash:comments><description>&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.estoyenlanube.com/usando-acs-y-tokens-jwt-para-securizar-aplicaciones-web/" target="_blank"&gt;Cómo securizar aplicaciones web usando ACS y tokens JWT.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.estoyenlanube.com/desplegar-aplicaciones-web-en-windows-azure-websites-que-hagan-uso-de-wif" target="_blank"&gt;Desplegar aplicaciones web en Windows Azure WebSites que hagan uso de WIF.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.estoyenlanube.com/cmo-securizar-servicios-webapi-usando-acs-y-tokens-jwt" target="_blank"&gt;Cómo securizar servicios WebAPI usando ACS y tokens JWT.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.estoyenlanube.com/cmo-securizar-una-aplicacin-que-contenga-tanto-aplicaciones-web-como-servicios-webapi" target="_blank"&gt;Cómo securizar una aplicación MVC que contenga tanto aplicaciones web como servicios WebAPI.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.estoyenlanube.com/securizar-aplicaciones-web-usando-windows-azure-active-directory" target="_blank"&gt;Cómo securizar aplicaciones web usando Windows Azure Active Directory ( WAAD ).&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Cómo hacer uso del tenant de WAAD de Office 365 para securizar aplicaciones web con ACS. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Como ya comentaba en el post anterior, Office 365 hace uso de Windows Azure Active Directory para la autenticación, por lo que si posees ya una cuenta de Office 365 ya dispones de un tenant de WAAD para securizar tus aplicaciones.&lt;/p&gt;  &lt;p&gt;Si por ejemplo estás autenticado en tu subscripción de Office 365 y vas a &lt;a title="http://activedirectory.windowsazure.com" href="http://activedirectory.windowsazure.com"&gt;http://activedirectory.windowsazure.com&lt;/a&gt; podrás ver la información y configuración de tu tenant de WAAD, pero…¿Se puede ver dentro del portal de Windows Azure como veíamos en el post anterior?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS37_5F00_18306062.png"&gt;&lt;img title="DemoACS37" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="DemoACS37" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS37_5F00_thumb_5F00_5CFC8496.png" width="964" height="609" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sí, se puede ver dentro del portal de Windows Azure, de dos maneras:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creando una subscripción de Windows Azure asociada al administrador de la subscripción de Windows Azure.&lt;/li&gt;    &lt;li&gt;Llamando a centro de soporte para que asocien una subscripción que ya tenga con el usuario administrador de Office 365.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Una vez hecho uno de estos pasos, si estas autenticado en Office 365 con el usuario administrador y vamos al portal de Windows Azure, podremos ver el tenant de WAAD tal y como veíamos en el post anterior.&lt;/p&gt;  &lt;p&gt;Sea como sea, en este post vamos a ver cómo podemos usar el tenant de WAAD de Office 365 como un proveedor de identidad de ACS, para lo cuál no necesitamos que el tenant se vea en el portal de Windows Azure.&lt;/p&gt;  &lt;p&gt;¿Qué conseguimos con esto?&lt;/p&gt;  &lt;p&gt;Si configuramos este proveedor de identidad, podríamos securizar una aplicación web o WebAPI, tal y como ya hemos visto, desplegarlas en Windows Azure y usar los usuarios de Office 365 para autenticarse en todas las aplicaciones, con Single Sign On entre ellas claro.&lt;/p&gt;  &lt;p&gt;Si además nos encontramos en un escenario real corporativo, seguramente tendremos el Office 365 sincronizado con nuestro dominio corporativo, por lo que es una manera de usar nuestras credenciales corporativas para logearnos en cualquier aplicación, ya esté en Office 365 o desplegada directamente en Windows Azure.&lt;/p&gt;  &lt;p&gt;Desde el portal de Windows Azure, desde el namespace de ACS que hemos estado usando en el resto de ejemplo, añadiremos un nuevo proveedor de identidad de tipo “WS-Federation”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS49_5F00_45EE035A.png"&gt;&lt;img title="DemoACS49" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="DemoACS49" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS49_5F00_thumb_5F00_44A96A7B.png" width="669" height="369" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;E indicaremos la URL dónde están los metadatos:&lt;/p&gt;  &lt;p&gt;&lt;a title="https://accounts.accesscontrol.windows.net/microsoftdevdiv.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml" href="https://accounts.accesscontrol.windows.net/nombredeltenant.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml"&gt;https://accounts.accesscontrol.windows.net/nombredeltenant.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS50_5F00_71522454.png"&gt;&lt;img title="DemoACS50" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="DemoACS50" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS50_5F00_thumb_5F00_0FBC653E.png" width="887" height="472" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Así mismo, podremos configurar las diferentes aplicaciones para que usen los proveedores de identidad que queramos. Hasta ahora habíamos usado siempre Windows Live ID.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS51_5F00_152AD5E2.png"&gt;&lt;img title="DemoACS51" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="DemoACS51" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS51_5F00_thumb_5F00_14526FF8.png" width="558" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por último, tenemos que configurar el tenant de Office 365 para que permite conexiones del ACS para la autenticación.&lt;/p&gt;  &lt;p&gt;Para poder hacer esta configuración no tenemos interfaz de usuario y necesitamos hacer uso las “&lt;a href="http://technet.microsoft.com/en-us/library/jj151815.aspx" target="_blank"&gt;Windows Azure Active Directory Module for Windows Powershell&lt;/a&gt;” para poder lanzar estos comandos y realizar la configuración:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;connect-msolservice 
import-module msonlineextended –force 
$replyUrl = New-MsolServicePrincipalAddresses -Address &lt;span class="str"&gt;&amp;quot;https://[yournamespace].accesscontrol.windows.net/&amp;quot;&lt;/span&gt; 
New-MsolServicePrincipal -ServicePrincipalNames @(&lt;span class="str"&gt;&amp;quot;https://[yournamespace].accesscontrol.windows.net/&amp;quot;&lt;/span&gt;)  -DisplayName &lt;span class="str"&gt;&amp;quot;[displayName]&amp;quot;&lt;/span&gt; -Addresses $replyUrl&lt;/pre&gt;


&lt;ul&gt;&lt;/ul&gt;



&lt;p&gt;Y con estos pasos, ya podremos usar las credenciales que estuviéramos usando en Office 365 para autenticarnos.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS47_5F00_178457E0.png"&gt;&lt;img title="DemoACS47" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="DemoACS47" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DemoACS47_5F00_thumb_5F00_1D5EFB79.png" width="694" height="470" /&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=209370" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WIF/default.aspx">WIF</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Access+Control/default.aspx">Access Control</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Windows+Azure+Active+Directory/default.aspx">Windows Azure Active Directory</category></item><item><title>Cómo extender/aumentar la partición del sistema en Windows Server</title><link>http://geeks.ms/blogs/jalarcon/archive/2013/05/16/c-243-mo-extender-aumentar-la-partici-243-n-del-sistema-en-windows-server.aspx</link><pubDate>Thu, 16 May 2013 13:00:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209471</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/Como-extenderaumentar-la-particion-del-sistema-en-Windows-Server.aspx Hoy he tenido que redimensionar el disco de sistema de un servidor virtual y me ha dado un poco más de trabajo del que preveía, por lo que os cuento aquí como lo he solucionado por si le sirve de ayuda a alguien. Resulta que en una máquina virtual necesitaba duplicar el tamaño del disco principal virtualizado (con VMWare), así que simplemente desde la herramienta de administración...(&lt;a href="http://geeks.ms/blogs/jalarcon/archive/2013/05/16/c-243-mo-extender-aumentar-la-partici-243-n-del-sistema-en-windows-server.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209471" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jalarcon/archive/tags/Trucos+y+consejos+gen_26002300_233_3B00_ricos/default.aspx">Trucos y consejos gen&amp;#233;ricos</category><category domain="http://geeks.ms/blogs/jalarcon/archive/tags/Sistemas+Operativas/default.aspx">Sistemas Operativas</category></item><item><title>Evento–Taller | Desarrolla tu App para Windows 8 y Windows Phone</title><link>http://geeks.ms/blogs/santypr/archive/2013/05/15/evento-taller-desarrolla-tu-app-para-windows-8-y-windows-phone.aspx</link><pubDate>Wed, 15 May 2013 20:35:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209477</guid><dc:creator>Santiago Porras Rodríguez</dc:creator><slash:comments>0</slash:comments><description>Mañana tendré el placer de impartir junto a Alberto Díaz un taller gratuito de desarrollo de aplicaciones para Windows Phone y Windows 8 en las jornadas de AdejeTec 2013 en el que trataremos de enseñar a los asistentes a crear sus propias aplicaciones y publicarlas en las Tiendas de Aplicaciones. AdejeTec consta de varias jornadas de formación relacionada con las TIC y, sobre todo para developers. Su objetivo es que todos los asistentes puedan estar al día en las nuevas tendencias y tecnologías sean...(&lt;a href="http://geeks.ms/blogs/santypr/archive/2013/05/15/evento-taller-desarrolla-tu-app-para-windows-8-y-windows-phone.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209477" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/santypr/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Dise_26002300_241_3B00_o/default.aspx">Dise&amp;#241;o</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Comunidad/default.aspx">Comunidad</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/TenerifeDev/default.aspx">TenerifeDev</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Windows+Store/default.aspx">Windows Store</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category><category domain="http://geeks.ms/blogs/santypr/archive/tags/Nokia+Developer+Champion/default.aspx">Nokia Developer Champion</category></item><item><title>[#BING] Ahora con soporte para …. #KLINGON !!! (si y no es 1 de abril ni 28 de diciembre)</title><link>http://geeks.ms/blogs/elbruno/archive/2013/05/15/bing-ahora-con-soporte-para-klingon-si-y-no-es-1-de-abril-ni-28-de-diciembre.aspx</link><pubDate>Wed, 15 May 2013 18:10:54 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209476</guid><dc:creator>El Bruno</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://brunocapuano.files.wordpress.com/2012/06/image1.png"&gt;&lt;font size="3"&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://brunocapuano.files.wordpress.com/2012/06/image1.png" width="464" height="164" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Buenas,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Los de Bing son unos cracks, desde hace un par de días han incorporado soporte para Klingon !!! Y sí, leiste bien, es Klingon (no tengo un derrame, ni tampoco me he pasado con los vinos ahora que estoy soltero, es Klingon!). Como lo estamos utilizando en un proyecto interno de &lt;/font&gt;&lt;a href="http://www.avanade.com" target="_blank"&gt;&lt;font size="3"&gt;Avanade&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;, tendré que tirar de la API para verlo en tiempo real y por aquí solo poner mi post de ayer … pero traducido al KLINGON !!! (como mola decirlo no?)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Fuente: &lt;a title="http://blogs.msdn.com/b/translation/archive/2013/05/14/announcing-klingon-for-bing-translator.aspx" href="http://blogs.msdn.com/b/translation/archive/2013/05/14/announcing-klingon-for-bing-translator.aspx"&gt;http://blogs.msdn.com/b/translation/archive/2013/05/14/announcing-klingon-for-bing-translator.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;PD: a ver el proceso automático que tengo de traducción que hace mañana con el Spanish + Klingon.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;maj&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;majQa&amp;#39; Suq vI&amp;#39;Iprup Quch puS puq mach upDate Segh &amp;#39;e&amp;#39; leghDI&amp;#39;: chu&amp;#39; cholortlhul &amp;#39;ej chu&amp;#39; layoutS &amp;#39;ej team QutlhwI&amp;#39; &amp;#39;oH jabwI&amp;#39; 2012 bebvo&amp;#39; jIH.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&amp;#39;IjmeH achchount&lt;/font&gt;&lt;a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;amp;to=tlh&amp;amp;a=http%3A%2F%2Ftfs.visualstudio.com%2F"&gt;&lt;font size="3"&gt; team QutlhwI&amp;#39; &amp;#39;oH chavmoH &lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;laH Dulegh chonayta&amp;#39;, &amp;#39;ej latlh Datoy&amp;#39;taHvIS&lt;/font&gt;&lt;a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;amp;to=tlh&amp;amp;a=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fbharry"&gt;&lt;font size="3"&gt; brian harry &lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;nob naQ tetlh, upDate pa&amp;#39; choH 2 &amp;#39;ej QuQ ghaH potlh.&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="3"&gt;workitem Segh tHantlhS to cholor rap bachtlhlogh laH DaH DItlhtlherentIate . legh rur ta&amp;#39; nap, eQtremely lI&amp;#39; nuq. vaj Hop tHantlhS to yejquv &lt;/font&gt;&lt;a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;amp;to=tlh&amp;amp;a=http%3A%2F%2Ftwitter.com%2Fedudelpozo"&gt;&lt;font size="3"&gt;edu &lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;ghew-moHaq lan nuq ta&amp;#39; &amp;#39;e&amp;#39; Segh ghew chaH chev pbi Schope. je layout rIn moHaq tu&amp;#39;HomI&amp;#39;raH wis.&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;amp;to=tlh&amp;amp;a=http%3A%2F%2Fbrunocapuano.files.wordpress.com%2F2013%2F05%2Fimage22.png"&gt;&lt;font size="3"&gt;&lt;img title="image" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2013/05/image_thumb22.png?w=729&amp;amp;h=343" width="729" height="343" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="3"&gt;DaH tIj chapabIlIty ghaj&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="3"&gt;Qu&amp;#39; neH wa&amp;#39; nuv legh. &amp;#39;e&amp;#39; neH mej vISIble nuv Qu&amp;#39;. mola&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;jIH QapHa&amp;#39;choH SprInt, pagh prevIouS wa&amp;#39; vIyajlaH. je apprechIateD &amp;#39;oH &lt;img alt=";)" src="http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif?m=1129645325g" /&gt;&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;amp;to=tlh&amp;amp;a=http%3A%2F%2Fbrunocapuano.files.wordpress.com%2F2013%2F05%2Fimage23.png"&gt;&lt;font size="3"&gt;&lt;img title="image" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2013/05/image_thumb23.png?w=660&amp;amp;h=358" width="660" height="358" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;reH naQmoH wanI&amp;#39;mey tetlh tlheatureS je Del brian poSt. Daj, mach upDate &amp;#39;ach molon.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Hal:&lt;/font&gt;&lt;a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;amp;to=tlh&amp;amp;a=http%3A%2F%2Ftfs.visualstudio.com%2Fen-us%2Fhome%2Fnews%2F2013%2Fmay-13%2F"&gt;&lt;font size="3"&gt; http://tfs.visualstudio.com/en-us/home/news/2013/may-13/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Saludos @ Home&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;El Bruno&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" width="110" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="36"&gt;&lt;a href="http://facebook.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image2.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="http://es.linkedin.com/in/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image3.png" width="41" height="41" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="36"&gt;&lt;a href="https://twitter.com/elbruno" target="_blank"&gt;&lt;font size="3"&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;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://brunocapuano.files.wordpress.com/2012/03/image4.png" width="40" height="40" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209476" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/elbruno/archive/tags/Bing/default.aspx">Bing</category></item><item><title>EF 6: Operaciones de migraciones personalizadas</title><link>http://geeks.ms/blogs/unai/archive/2013/05/15/ef-6-operaciones-de-migraciones-personalizadas.aspx</link><pubDate>Wed, 15 May 2013 17:57:12 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209475</guid><dc:creator>Unai</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hace ya un tiempo, el buen amigo &lt;a href="https://twitter.com/iceoverflow"&gt;@iceoverflow&lt;/a&gt; ,hizo un pequeño pero muy interesante &lt;a href="http://entityframework.codeplex.com/SourceControl/network/forks/iceclow/efmigrationsextensions2/contribution/4064#!/tab/changes"&gt;pull request&lt;/a&gt; que nos habilita la posibilidad de crear y enchufar nuevas operaciones de migración que no tengamos por defecto en&lt;strong&gt; Entity Framework&lt;/strong&gt;. Aunque el proceso es un poco mecánico, abre un montón de posibilidades para hacer nuevas contribuciones, incluso aunque no sea directamente en el código de EF y si en alguna contribución ( tengo una pequeña sorpresa con esto pero ya os la contaré cuando esté más avanzada ). A continuación me gustaría enseñaros un pequeño ejemplo de lo que podemos hacer y, por supuesto, todo aquello que os gustaría tener me encantaría escucharlo e incluso hacerlo…&lt;/p&gt;  &lt;p&gt;Bien, empezamos, trataremos de hacer una operación de migración para crear una vista, lo primero por lo tanto es definir la operación, para ello, solamente tenemos que heredar de &lt;strong&gt;MigrationOperation&lt;/strong&gt;, como por ejemplo vemos a continuación:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; System.Data.Entity.Migrations.Model
{
    &lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.Entity.Utilities;

    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Represent a create view in database&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; CreateViewOperation
        :MigrationOperation
    {
        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// The view name&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ViewName { get; &lt;span class="kwrd"&gt;private&lt;/span&gt; set; }

        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// The view body sql&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; BodySql { get; &lt;span class="kwrd"&gt;private&lt;/span&gt; set; }


        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// Create a new instance&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;viewName&amp;quot;&amp;gt;the view name to create&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;bodySql&amp;quot;&amp;gt;the view body sql &amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; CreateViewOperation(&lt;span class="kwrd"&gt;string&lt;/span&gt; viewName, &lt;span class="kwrd"&gt;string&lt;/span&gt; bodySql)
            :&lt;span class="kwrd"&gt;base&lt;/span&gt;(&lt;span class="kwrd"&gt;null&lt;/span&gt;)
        {
            Check.NotEmpty(viewName,&lt;span class="str"&gt;&amp;quot;viewName&amp;quot;&lt;/span&gt;);
            Check.NotEmpty(bodySql,&lt;span class="str"&gt;&amp;quot;bodySql&amp;quot;&lt;/span&gt;);

            &lt;span class="kwrd"&gt;this&lt;/span&gt;.ViewName = viewName;
            &lt;span class="kwrd"&gt;this&lt;/span&gt;.BodySql = bodySql;
        }

        &lt;span class="rem"&gt;/// &amp;lt;inheritdoc/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsDestructiveChange
        {
            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;; }
        }

        &lt;span class="rem"&gt;/// &amp;lt;inheritdoc/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; MigrationOperation Inverse
        {
            get
            {
                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; DropViewOperation(ViewName);
            }
        }
    }
}&lt;/pre&gt;

&lt;p&gt;Bien, ahora que ya tenemos definida nuestra operación, ya la podemos incluir dentro de nuestras migraciones, para que quede de una forma consistente con las operaciones actuales, podríamos crear un método extensor de de &lt;strong&gt;DbMigration&lt;/strong&gt; como el siguiente:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// Create a new view&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;migration&amp;quot;&amp;gt;The DBMigration&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;viewName&amp;quot;&amp;gt;The name of view to create&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;bodySql&amp;quot;&amp;gt;The sql body of view to create&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateView(&lt;span class="kwrd"&gt;this&lt;/span&gt; DbMigration migration, &lt;span class="kwrd"&gt;string&lt;/span&gt; viewName, &lt;span class="kwrd"&gt;string&lt;/span&gt; bodySql)
        {
            ((IDbMigration)migration)
              .AddOperation(&lt;span class="kwrd"&gt;new&lt;/span&gt; CreateViewOperation(viewName, bodySql));
        }&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Una vez hecho este trabajo, cuando una operación se ejecute, esta operación se enviará al generador sql que tengamos configurado,recuerde que puede establecerlo ahora con nuestro punto central de configuración DbConfiguration. Por lo tanto, este generador debe de estar preparado para procesar estas operaciones, por lo tanto, lo normal será partir de un generador dado como por ejemplo SqlServerMigrationSqlGenerator para extenderlo con esta nueva operación. Para nuestro ejemplo podríamos hacer algo como lo siguiente:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Extented Sql Server Migrations Sql Generator with more&lt;/span&gt;
    &lt;span class="rem"&gt;/// operations.&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;remarks&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// For set  this migrations sql generator you need register it in&lt;/span&gt;
    &lt;span class="rem"&gt;/// your DbMigrationsConfiguration{TContext} using the method &lt;/span&gt;
    &lt;span class="rem"&gt;/// SetSqlGenerator&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;example&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// SetSqlGenerator(&amp;quot;System.Data.SqlClient&amp;quot;, new AdvancedSqlServerMigrationSqlGenerator());&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/example&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/remarks&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ExtendedSqlServerMigrationSqlGenerator
        : SqlServerMigrationSqlGenerator
    {
        &lt;span class="rem"&gt;/// &amp;lt;inheritdoc/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Generate(MigrationOperation migrationOperation)
        {
            
        }
     }&lt;/pre&gt;

&lt;p&gt;Ahora, en nuestro &lt;em&gt;Generate&lt;/em&gt; deberíamos ver como procesar cada una de las posibles operaciones personalizadas que podamos querer incluir, para facilitar la tarea y no ver demasiada conversión o switch un truquito rápido sería este:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;        /// &amp;lt;inheritdoc/&amp;gt;
        &lt;span class="kwrd"&gt;protected&lt;/span&gt; override void Generate(MigrationOperation migrationOperation)
        {
            this.Generate((dynamic)migrationOperation);
        }

        /// &amp;lt;summary&amp;gt;
        /// Generate a SQL &lt;span class="kwrd"&gt;to&lt;/span&gt; create a &lt;span class="kwrd"&gt;new&lt;/span&gt; view &lt;span class="kwrd"&gt;in&lt;/span&gt; database
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&lt;span class="str"&gt;&amp;quot;createViewOperation&amp;quot;&lt;/span&gt;&amp;gt;The operation &lt;span class="kwrd"&gt;to&lt;/span&gt; produce sql &lt;span class="kwrd"&gt;for&lt;/span&gt;.&amp;lt;/param&amp;gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; virtual void Generate(CreateViewOperation createViewOperation)
        {
            using (var writer = Writer())
            {
                writer.Write(&lt;span class="str"&gt;&amp;quot;IF object_id(N&amp;#39;{0}&amp;#39;, &amp;#39;V&amp;#39;) IS NOT NULL &amp;quot;&lt;/span&gt;,createViewOperation.ViewName);
                writer.WriteLine(&lt;span class="str"&gt;&amp;quot;DROP VIEW {0} &amp;quot;&lt;/span&gt;,createViewOperation.ViewName);
                writer.WriteLine(&lt;span class="str"&gt;&amp;quot;GO &amp;quot;&lt;/span&gt;);
                writer.WriteLine(&lt;span class="str"&gt;&amp;quot;CREATE VIEW {0} AS {1}&amp;quot;&lt;/span&gt;,createViewOperation.ViewName,createViewOperation.BodySql);

                this.Statement(writer);
            }
        }&lt;/pre&gt;


&lt;p&gt;Al ponerlo como &lt;em&gt;dynamic&lt;/em&gt; podemos crear un método para cada una de las operaciones personalizadas y por lo tanto simplificar tanto la lectura como el mantenimiento del código.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que os haya gustado esta posibilidad, por supuesto, para los que os habéis fijado en el código esto forma parte de un proyecto que ya contiene muchas más posibles operaciones de migración que pronto compartiré con todos vosotros, de ahí que os preguntará que os gustaría tener!!, animaros…&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos&lt;/p&gt;

&lt;p&gt;unai&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209475" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/unai/archive/tags/EF/default.aspx">EF</category><category domain="http://geeks.ms/blogs/unai/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://geeks.ms/blogs/unai/archive/tags/EF+6/default.aspx">EF 6</category><category domain="http://geeks.ms/blogs/unai/archive/tags/Entity+Framework+6/default.aspx">Entity Framework 6</category><category domain="http://geeks.ms/blogs/unai/archive/tags/.NET/default.aspx">.NET</category></item><item><title>[Cartujadotnet] Evento de Wave Engine. Desarrollo de videojuegos multiplataforma en Sevilla</title><link>http://geeks.ms/blogs/fdiaz/archive/2013/05/15/cartujadotnet-evento-de-wave-engine-desarrollo-de-videojuegos-multiplataforma-en-sevilla.aspx</link><pubDate>Wed, 15 May 2013 17:34:26 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209474</guid><dc:creator>Fran Díaz</dc:creator><slash:comments>0</slash:comments><description>&lt;h4&gt;&lt;font style="font-weight:normal;" size="2"&gt;El desarrollo de aplicaciones para dispositivos móviles es un área que gana adeptos y suma peso día a día. Entre las aplicaciones destacadas, más descargadas y que aportan grandes beneficios contamos con los juegos. Dada la variedad de dispositivos, SDKs, herramientas y lenguajes a aprender, sacar el máximo partido a cada plataforma con eficacia y rapidez es una tarea complicada.&amp;#160; Wave Engine es un motor multiplataforma en 3D para facilitar la adaptación de los juegos móviles a cualquier plataforma (Android, iOS, Windows Phone y Windows 8). Incluye multitud de herramientas que facilitan tareas importantes como la gestión de publicidad, analítica del juego, etc.&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;En este evento se realizará una introducción al engine donde se mostrarán todas sus&amp;#160; posibilidades.&lt;/p&gt;  &lt;p&gt;&lt;img alt="WaveEngine" src="http://javiersuarezruiz.files.wordpress.com/2013/05/waveengine.jpg?w=600&amp;amp;h=138" width="600" height="138" /&gt;&lt;/p&gt;  &lt;h4&gt;Fecha&lt;/h4&gt;  &lt;p&gt;El evento tendrá lugar el próximo &lt;strong&gt;Jueves, 23 de Mayo &lt;/strong&gt;de &lt;strong&gt;19:30h a 21:30h&lt;/strong&gt; (2 horas de duración).&lt;/p&gt;  &lt;h4&gt;Lugar&lt;/h4&gt;  &lt;p&gt;Tendrá lugar en el &lt;strong&gt;Cloud Pointing de Sevilla&lt;/strong&gt; situado en el Parque Empresarial Nuevo Torneo. Tenéis la información exacta del lugar a continuación:&lt;/p&gt;  &lt;p&gt;c\ Biología, 12, Edificio Vilamar 2, 3ª Planta   &lt;br /&gt;Parque Empresarial Nuevo Torneo    &lt;br /&gt;41015 Sevilla&lt;/p&gt;  &lt;h4&gt;Ponentes&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Marcos Cobeña (LIGHTYEAR)&lt;/strong&gt;: Developer Advisor en Plain Concepts. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;David Ávila (WOODY)&lt;/strong&gt;: Software Developer Advisor en Plain Concepts.&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Más información&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Página web de &lt;a href="http://waveengine.net/"&gt;Wave Engine&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://javiersuarezruiz.wordpress.com/2013/05/14/evento-cartujadotnet-wave-engine-desarrollo-de-videojuegos-multiplataforma/blog.waveengine.net"&gt;Blog&lt;/a&gt; oficial de Wave Engine. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enlace de Registro: &lt;a title="http://cartujawaveengine.eventbrite.com/" href="http://cartujawaveengine.eventbrite.com/"&gt;http://cartujawaveengine.eventbrite.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nos vemos allí &lt;img class="wlEmoticon wlEmoticon-winkingsmile" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;" alt="Winking smile" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fdiaz/wlEmoticon_2D00_winkingsmile_5F00_3F752391.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209474" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/fdiaz/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://geeks.ms/blogs/fdiaz/archive/tags/Cartujadotnet/default.aspx">Cartujadotnet</category><category domain="http://geeks.ms/blogs/fdiaz/archive/tags/Wave+Engine/default.aspx">Wave Engine</category></item><item><title>Totales parciales con SUMMARIZE. Profundizando en el uso de DAX como lenguaje de consulta (y 9)</title><link>http://geeks.ms/blogs/lmblanco/archive/2013/05/15/totales-parciales-con-summarize-profundizando-en-el-uso-de-dax-como-lenguaje-de-consulta-y-9.aspx</link><pubDate>Wed, 15 May 2013 17:16:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209473</guid><dc:creator>Luis Miguel Blanco</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;La cl&amp;aacute;usula &lt;a href="http://technet.microsoft.com/en-us/library/gg492171.aspx"&gt;ROLLUP&lt;/a&gt; perteneciente a la funci&amp;oacute;n SUMMARIZE genera, en las columnas de agregaci&amp;oacute;n que especifiquemos, filas adicionales de resultados acumulados (totales parciales) para las columnas num&amp;eacute;ricas utilizadas en la consulta.&lt;/p&gt;
&lt;p&gt;A modo de ejemplo, en la siguiente consulta utilizamos ROLLUP para la columna StoreType de la tabla DimStore, por lo que obtendremos, adem&amp;aacute;s de las cifras de venta por tipo de almac&amp;eacute;n, una &amp;uacute;ltima fila adicional con el total de las ventas.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(&amp;#39;DimStore&amp;#39;[StoreType]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount]) &lt;br /&gt;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_32.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Partiendo de este resultado, supongamos ahora que necesitamos que los tipos de almac&amp;eacute;n aparezcan ordenados, pero manteniendo la fila de total al final. Si usamos la cl&amp;aacute;usula ORDER BY en la consulta, el resultado no ser&amp;aacute; totalmente satisfactorio, ya que&amp;nbsp; se ordenar&amp;aacute;n los nombres, pero la fila de total quedar&amp;aacute; al principio.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(&amp;#39;DimStore&amp;#39;[StoreType]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount])&lt;br /&gt;)&lt;br /&gt;ORDER BY [StoreType]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_33.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Aplicando el modificador DESC a la cl&amp;aacute;usula ORDER BY solucionamos el problema solamente en parte, ya que conseguimos que el total vuelva a colocarse al final del conjunto de resultados, pero como es l&amp;oacute;gico, los nombres quedan ordenados en sentido descendente.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(&amp;#39;DimStore&amp;#39;[StoreType]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount])&lt;br /&gt;)&lt;br /&gt;ORDER BY [StoreType] DESC&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_34.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Controlando la ubicaci&amp;oacute;n de los acumulados mediante ISSUBTOTAL&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Si queremos ordenar los nombres en sentido ascendente, pero manteniendo la ubicaci&amp;oacute;n del total al final, debemos recurrir a &lt;a href="http://technet.microsoft.com/en-us/library/gg492171.aspx"&gt;ISSUBTOTAL&lt;/a&gt;, otra de las cl&amp;aacute;usulas de SUMMARIZE, la cual crea una columna de tipo l&amp;oacute;gico, en la que cada valor nos indica si la fila actual del conjunto de resultados corresponde a un acumulado (total parcial) o bien se trata de una fila normal de datos. El truco en este caso reside en aplicar una doble ordenaci&amp;oacute;n: primero por la columna de ISSUBTOTAL y a continuaci&amp;oacute;n por la de datos.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(&amp;#39;DimStore&amp;#39;[StoreType]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount]),&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Subtotal_StoreType&amp;quot;, ISSUBTOTAL(&amp;#39;DimStore&amp;#39;[StoreType])&lt;br /&gt;)&lt;br /&gt;ORDER BY [Subtotal_StoreType],[StoreType]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_35.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ahora vamos a a&amp;ntilde;adir la columna ContinentName, de la tabla DimGeography, como nueva columna de agrupaci&amp;oacute;n a la consulta. De esta manera, cada fila de acumulado resultante se corresponder&amp;aacute; con el total de ventas de un continente para todos los tipos de almac&amp;eacute;n.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(&amp;#39;DimStore&amp;#39;[StoreType]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimGeography&amp;#39;[ContinentName],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount])&lt;br /&gt;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_36.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;La interpretaci&amp;oacute;n de los datos que obtenemos, no obstante, es poco amigable, por lo que nuevamente usaremos ISSUBTOTAL y ordenaremos las columnas tal y como muestra el siguiente bloque de c&amp;oacute;digo, consiguiendo que las filas de acumulado se sit&amp;uacute;en proporcionando la informaci&amp;oacute;n de un modo m&amp;aacute;s legible.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(&amp;#39;DimStore&amp;#39;[StoreType]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimGeography&amp;#39;[ContinentName],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Subtotal_StoreType&amp;quot;, ISSUBTOTAL(&amp;#39;DimStore&amp;#39;[StoreType])&lt;br /&gt;)&lt;br /&gt;ORDER BY [ContinentName], [Subtotal_StoreType], [StoreType]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_37.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ya que ROLLUP admite m&amp;aacute;s de una columna de agregaci&amp;oacute;n como par&amp;aacute;metro, vamos a a&amp;ntilde;adirle la columna ContinentName para obtener en esta ocasi&amp;oacute;n, adem&amp;aacute;s de los acumulados anteriormente mencionados, una nueva fila de total con el importe de las ventas para todos los tipos de almac&amp;eacute;n y continentes. Al mismo tiempo crearemos con ISSUBTOTAL sendas columnas para StoreType y ContinentName, que junto a un adecuado orden facilitar&amp;aacute;n la lectura de los datos.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(&amp;#39;DimStore&amp;#39;[StoreType], &amp;#39;DimGeography&amp;#39;[ContinentName]),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Subtotal_StoreType&amp;quot;, ISSUBTOTAL(&amp;#39;DimStore&amp;#39;[StoreType]),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Subtotal_ContinentName&amp;quot;, ISSUBTOTAL(&amp;#39;DimGeography&amp;#39;[ContinentName])&lt;br /&gt;)&lt;br /&gt;ORDER BY [Subtotal_StoreType], [StoreType], [Subtotal_ContinentName], [ContinentName]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_38.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Agrupar los acumulados con ROLLUPGROUP&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;A pesar de existir la posibilidad de utilizar varias columnas con ROLLUP, en determinadas situaciones quiz&amp;aacute; nos interese tener una &amp;uacute;nica fila de acumulado para todas las columnas de agregaci&amp;oacute;n incluidas en esta cl&amp;aacute;usula, lo que podemos lograr&amp;nbsp; mediante &lt;a href="http://technet.microsoft.com/en-us/library/gg492171.aspx"&gt;ROLLUPGROUP&lt;/a&gt;, otra de las cl&amp;aacute;usulas de SUMMARIZE.&lt;/p&gt;
&lt;p&gt;Esta cl&amp;aacute;usula se utiliza como par&amp;aacute;metro de ROLLUP, colocando las columnas de agregaci&amp;oacute;n como par&amp;aacute;metros de la llamada a la funci&amp;oacute;n ROLLUPGROUP.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EVALUATE&lt;br /&gt;SUMMARIZE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;DimStore&amp;#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLLUP(ROLLUPGROUP(&amp;#39;DimStore&amp;#39;[StoreType], &amp;#39;DimGeography&amp;#39;[ContinentName])),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Ventas&amp;quot;, SUM(&amp;#39;FactSales&amp;#39;[SalesAmount]),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Subtotal_StoreType&amp;quot;, ISSUBTOTAL(&amp;#39;DimStore&amp;#39;[StoreType])&lt;br /&gt;)&lt;br /&gt;ORDER BY [Subtotal_StoreType], [StoreType], [ContinentName]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://geeks.ms/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/lmblanco.ImagenesArticulos.201303/ProfundizandoUsoDAXComoLenguajeConsulta_5F00_39.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cabe destacar que la informaci&amp;oacute;n sobre ROLLUPGROUP disponible en la documentaci&amp;oacute;n online de la funci&amp;oacute;n &lt;a href="http://technet.microsoft.com/en-us/library/gg492171.aspx"&gt;SUMMARIZE&lt;/a&gt; es una aportaci&amp;oacute;n de &lt;a href="http://sqlblog.com/blogs/marco_russo/"&gt;Marco Russo&lt;/a&gt;, puesto que dicha entrada, correspondiente a la &lt;a href="http://technet.microsoft.com/en-us/library/ee634396.aspx"&gt;referencia&lt;/a&gt; de las funciones del lenguaje DAX, no dispon&amp;iacute;a inicialmente de rese&amp;ntilde;a alguna acerca de esta cl&amp;aacute;usula.&lt;/p&gt;
&lt;p&gt;Para lograr un comportamiento similar en Transact-SQL haremos uso del operador ROLLUP cuando especifiquemos las columnas a agrupar, as&amp;iacute; como de la funci&amp;oacute;n GROUPING en la lista de columnas a mostrar de la instrucci&amp;oacute;n SELECT.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SELECT&lt;br /&gt;CASE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN (GROUPING(StoreType)=1) THEN &amp;#39;--Total General--&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE StoreType&lt;br /&gt;END AS StoreType,&lt;br /&gt;CASE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN (GROUPING(ContinentName)=1) THEN &amp;#39;--Acumulado por tipo almac&amp;eacute;n--&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE ContinentName&lt;br /&gt;END AS ContinentName,&lt;br /&gt;SUM(SalesAmount) AS Ventas&lt;br /&gt;FROM DimStore&lt;br /&gt;INNER JOIN DimGeography&lt;br /&gt;ON DimStore.GeographyKey = DimGeography.GeographyKey&lt;br /&gt;INNER JOIN FactSales&lt;br /&gt;ON DimStore.StoreKey = FactSales.StoreKey&lt;br /&gt;GROUP BY StoreType, ContinentName WITH ROLLUP&lt;br /&gt;ORDER BY StoreType, GROUPING(ContinentName), ContinentName&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Y llegados a este punto damos por concluida esta serie de art&amp;iacute;culos en los que hemos expuesto diversas t&amp;eacute;cnicas para la creaci&amp;oacute;n de consultas contra modelos tabulares empleando el lenguaje DAX, espero que os resulten de utilidad.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209473" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/Excel/default.aspx">Excel</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/PowerPivot/default.aspx">PowerPivot</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/Business+Intelligence/default.aspx">Business Intelligence</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/Data+Warehouse/default.aspx">Data Warehouse</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/BISM/default.aspx">BISM</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/SQL+Server+2012/default.aspx">SQL Server 2012</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/Tabular+Model/default.aspx">Tabular Model</category><category domain="http://geeks.ms/blogs/lmblanco/archive/tags/DAX/default.aspx">DAX</category></item><item><title>Generar archivos Excel como un señor con ClosedXml</title><link>http://geeks.ms/blogs/jmaguilar/archive/2013/05/15/generar-archivos-excel-como-un-se-241-or-con-closedxml.aspx</link><pubDate>Wed, 15 May 2013 15:10:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209453</guid><dc:creator>José M. Aguilar</dc:creator><slash:comments>0</slash:comments><description>Venga, lo confieso: yo tambi&amp;eacute;n he generado desde mis aplicaciones contenidos HTML y los he enviado al cliente en un archivo con extensi&amp;oacute;n XLS, incluso modificando el content-type, para que pareciera un documento de hoja de c&amp;aacute;lculo. Durante a&amp;ntilde;os. Y tambi&amp;eacute;n le he dicho a mis clientes que el molesto mensaje que aparece al abrirlo desde Excel, el que indica que el contenido del archivo no coincide con la extensi&amp;oacute;n del mismo, es algo normal. Pero esto se acab&amp;oacute;...(&lt;a href="http://geeks.ms/blogs/jmaguilar/archive/2013/05/15/generar-archivos-excel-como-un-se-241-or-con-closedxml.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209453" 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/.net/default.aspx">.net</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/componentes/default.aspx">componentes</category><category domain="http://geeks.ms/blogs/jmaguilar/archive/tags/closedxml/default.aspx">closedxml</category></item><item><title>SharePoint 2013: Instalación de la actualización pública de marzo de 2013!</title><link>http://geeks.ms/blogs/ciin/archive/2013/05/15/sharepoint-2013-instalaci-243-n-de-la-actualizaci-243-n-p-250-blica-de-marzo-de-2013.aspx</link><pubDate>Wed, 15 May 2013 06:54:59 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209472</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="justify"&gt;Cómo sabéis, desde marzo de este año tenemos disponible la primera actualización pública (Public Upate – PU) para SharePoint qué es de obligatoria instalación si se van a instalar actualizaciones que vayan saliendo con posterioridad a la liberación de esta PU. Os dejo un &lt;a href="http://blog.cloudshare.com/2013/05/07/installing-march-public-update-for-sharepoint-2013-in-a-cloudshare-environment/"&gt;paso a paso de como hacer la instalación de la PU en un entorno de SharePoint 2013 RTM de CloudShare&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ciin.es/imagenes/SharePoint-2013-Insta_94D5/image.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://www.ciin.es/imagenes/SharePoint-2013-Insta_94D5/image_thumb.png" width="244" height="152" /&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=209472" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+2013/default.aspx">SharePoint 2013</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/SharePoint+Foundation+2013/default.aspx">SharePoint Foundation 2013</category></item><item><title>Episodio 6 – Arquitectos.NET Podcast</title><link>http://geeks.ms/blogs/eortuno/archive/2013/05/14/episodio-6-arquitectos-net-podcast.aspx</link><pubDate>Tue, 14 May 2013 14:16:23 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209470</guid><dc:creator>Enrique Ortuño</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Las múltiples ocupaciones retrasaron su publicación pero lo prometido es deuda, en esta ocasión, les entregamos la segunda parte de la grabación acerca del tema Bases de Datos NoSQL, conversamos acerca de:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Una recapitulación rápida de lo hablado anteriormente&lt;/li&gt;    &lt;li&gt;Revisión de los Modelos distribuidos&lt;/li&gt;    &lt;li&gt;Normalización/Des normalización&lt;/li&gt;    &lt;li&gt;Patrones de Diseño&lt;/li&gt;    &lt;li&gt;Map/Reduce&lt;/li&gt;    &lt;li&gt;Persistencia Poliglota (CQRS)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;object data="http://judahhimango.com/FlashAudioPlayer/player.swf" width="290" height="24" id="audioplayer1" type="application/x-shockwave-flash"&gt; &lt;param name="movie" value="http://judahhimango.com/FlashAudioPlayer/player.swf"&gt; &lt;param name="FlashVars" value="playerID=1&amp;amp;soundFile=https://dl.dropboxusercontent.com/u/48491726/Podcast/Podcast06.mp3"&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;Para aquellas personas que deseen bajar el mp3, &lt;a href="https://dl.dropboxusercontent.com/u/48491726/Podcast/Podcast06.mp3"&gt;aquí se encuentra el enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Esperamos que les haya agradado y quisiéramos escuchar sus comentarios y sugerencias, es perfectamente valido hacerlo de manera privada a nuestros email (&lt;a href="mailto:dnimrevo@gmail.com"&gt;dnimrevo@gmail.com&lt;/a&gt; y &lt;a href="mailto:enrique@ortuno.net"&gt;enrique@ortuno.net&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=209470" width="1" height="1"&gt;</description></item></channel></rss>